It's not enough to just provide a decentralized application. Users want the same level of security and scalability as the centralized solutions they’ve been using their whole lives. If it’s not easy to use, billions of people won’t adopt it. How then can developers build applications that solve the blockchain trilemma and are not only decentralized but scalable and secure too?
For most people, Bitcoin is the entry point into the world of cryptocurrencies and blockchain technology. It’s commonly described as a “store of value” or “digital gold”, but Bitcoin could become more than that. It could become the base of a thriving ecosystem of decentralized solutions. In this piece, we highlight how the Stacks blockchain enables smart contracts for Bitcoin to birth a new era of decentralized solutions within the Bitcoin ecosystem.
Bitcoin: Origins, Potential, and Limitations
Bitcoin was the first blockchain, originally described by Satoshi Nakamoto in his 2008 whitepaper before Bitcoin went live in 2009. Over the last decade, Bitcoin emerged as natively digital money that enables the decentralized peer-to-peer transfer of value over a secured network. As decentralized money, Bitcoin has recorded giant strides in its adoption. It now has a market cap of nearly $1 trillion. Corporations add it to their balance sheets, and El Salvador even made it legal tender.
Bitcoin’s success as blockchain-powered money is related to its deflationary economics—Bitcoin has a fixed supply of 21 million BTC. And compared to electronic versions of fiat currencies, the underlying Bitcoin blockchain is a transparent and undeniable source of truth for its supply, transaction history, and records of ownership. Anyone so inclined can verify a transaction.
Bitcoin has also built a reputation for security. The Bitcoin network has never been hacked, and the financial and computational resources needed to attempt a successful hack make such a venture futile.
That security and transparency are important because Bitcoin addresses some of the latent socio-economic problems in fiat money, especially as it relates to wealth inequality and financial censorship. For instance, billions of people all over the world are unbanked or underbanked because there’s little incentive for traditional financial institutions to serve them, and as such, they are shut out of the global economy.
With Bitcoin, anybody with an internet-enabled device can participate in this new monetary system and access new opportunities. Bitcoin proved that decentralized storage and transfer of value are possible without relying on intermediaries.
However, while Bitcoin modeled the decentralized transfer of value over a blockchain, there are instances where the simple transfer of value isn’t enough. For instance, we can store an immutable record that Bob sent 1 Bitcoin to Alice, but what if Bob wanted to loan 1 Bitcoin to Alice? In that case, a simple transfer wouldn’t be enough. Bob would need a measure of guarantee on the terms of the loan (i.e. what is the interest rate?).
To achieve that, developers needed to encode instructions for what conditions had to be fulfilled for the transaction to occur. Those instructions are called smart contracts (do this if that).
However, because Bitcoin has a limited scripting language (which makes it more secure), it was difficult to add smart contracts directly to Bitcoin’s code. Therefore, developers began to explore other options. In 2013, Vitalik Buterin described the need to create “a blockchain with a built-in Turing-complete programming language, allowing anyone to write smart contracts and decentralized applications where they can create their own arbitrary rules for ownership, transaction formats and state transition functions.”
The blockchain Buterin described was the genesis of Ethereum.
Second-Gen Blockchains and the Reality of the Blockchain Trilemma
Second-generation blockchain platforms such as Ethereum emerged with functionalities for developers to write smart contracts encoded with the conditions for the transfer of value and to autonomously execute those transfers. Similar to BASIC’s IF...THEN...ELSEIF...ELSE control structures, counterparties can use smart contracts to draw up conditional transactions and trust that the transactions will go through if predefined conditions are met.
The development of smart contract functionality also enabled developers to build decentralized applications on top of complex smart contracts. This unlocked the true value of blockchains and led to entire decentralized ecosystems in finance, gaming, healthcare, ID management, and more.
As the popularity of smart contracts grew, blockchain platforms had to figure out how to be concurrently secure, scalable, and decentralized — this is the blockchain trilemma. For instance, CryptoKitties became the first decentralized application to gain widespread attention in 2017, but its popularity came with a cost as its users clogged the Ethereum network. Ethereum wasn’t scalable enough. It couldn’t handle the volume caused by CryptoKitties’ popularity.
And that is the root of the problem. Blockchains are not inherently scalable. At its core, decentralization is powerful because it is resilient. Anyone can verify transactions. Anyone can spin up a node and run a full replica of the code. But that comes with a tradeoff.
Those nodes need to reach consensus and agree on the state of the blockchain. Therefore, the speed of the blockchain is dependent on the speed of the slowest node. In order to make a decentralized blockchain scalable, builders can either make the blockchain more centralized (fewer nodes to reach consensus) or sacrifice security (reduce the requirements/difficulty of reaching consensus).
That is the nature of the blockchain trilemma. Since it is difficult for blockchains to have decentralization, scalability, and security concurrently, the blockchain trilemma forces developers to make tradeoffs on those three features. So far, the status quo among second-generation blockchains is to optimize for two features.
Integrating the Best of Bitcoin Into Smart Contracts
If most of the second generation blockchains have made trade-offs on scalability, security, or decentralization, what does that mean for the future? Smart contracts are only as secure, scalable, and decentralized as their underlying blockchain platforms.
So where can developers find a blockchain that solves this trilemma? That’s where Stacks comes in. Stacks is a next-gen blockchain that brings scalability and smart contracts to Bitcoin. Stacks enables you to write expressive smart contracts and create dApps that leverage Bitcoin’s security and decentralization. Bitcoin has never been hacked in more than a decade of its operation, and the dApps built on Stacks enjoy Bitcoin-grade security. To rewrite Stacks’ history, you’d have to rewrite Bitcoin’s too.
Today, Bitcoin has a market cap of nearly $1 trillion but only $16B worth of BTC are locked in DeFi apps through wrapped BTC. There’s a huge amount of latent capital in the Bitcoin ecosystem waiting to be deployed, and Stacks enables you to unlock that capital to build successful dApps.
It also lets you to tap into a thriving ecosystem. Bitcoin is home to a dedicated community of long-term believers. 38.22 million Bitcoin wallets hold a balance, and more than 60% of those wallets have held Bitcoin for more than one year. With Stacks, you get an opportunity to build decentralized applications that are native to the Bitcoin ecosystem and enjoy Bitcoin’s security, capital, and network effects.
An Era of Blockchain Platforms Secured by Bitcoin Begins
When blockchain platforms support smart contracts with decentralization, security, and scalability, smart contracts and dApps will be able to compete against centralized legacy systems — and win.
Stacks solves the blockchain trilemma and extends Bitcoin’s functionality by enabling smart contracts for Bitcoin through the Clarity programming language that exists independently of Bitcoin’s limited scripting language. At Hiro, we build tools and components to empower developers who are building decentralized applications on Stacks. Some of our developer resources include:
- Clarinet: Clarinet is a Command Line Interface (CLI) for Clarity smart contract development. It facilitates rapid smart contract development, testing, and deployment. With Clarinet, you can quickly develop and test a Clarity smart contract, without deploying it in a local mocknet or testnet.
- Hiro Wallet: Hiro Wallet is a safe place to store crypto assets, and it provides single sign-on for decentralized apps while ensuring the protection of users’ funds when interacting with smart contracts.
- Stacks.js: Stacks.js is a monorepo of libraries for authentication, storage, transactions, stacking, and more. It includes turnkey solutions for decentralized authentication, signing transactions, and data storage.
- Stacks Blockchain API: The Stacks Blockchain API allows you to query the Stacks 2.0 blockchain and interact with smart contracts through developer-friendly REST endpoints that provide accurate, real-time, performant data.
- Stacks Explorer: The Stacks Explorer enables you to explore transactions and accounts on the Stacks blockchain. Clone any contract and experiment in your browser with the Explorer sandbox.
Looking for a home for your blockchain app? Download our free guide to Web3 ecosystems in 2022.