Stacks has learned from these ongoing debates and is optimized to offer developers the best of both Bitcoin and Ethereum in a multi-chain world. The Stacks blockchain combines Bitcoin’s commitment to security and decentralization with the ambitious Web3 dreams of Ethereum, establishing a trusted foundation for NFTs, DeFi, and a whole host of other applications.
A Quick Recap of the Bitcoin vs. Ethereum Debate
Just after the 2008 global economic meltdown, Bitcoin was created in 2009 as a decentralized form of money secured by the first ever blockchain. In the last decade, Bitcoin has grown significantly in popularity and adoption. Bitcoin’s market cap crossed $1 trillion last year, and it became legal tender in El Salvador.
Bitcoin currently maintains an economic lead in the crypto industry by being the most secure chain with the largest market cap. However, Bitcoin’s design doesn’t support smart contracts; in fact, smart contracts didn’t even exist when Bitcoin launched in 2009. Bitcoin was designed as a decentralized currency, and an expressive language could have opened Bitcoin up to various attack vectors and potentially unforeseen consequences on Bitcoin's tokenomics. Instead, the limitations and simplicity of Bitcoin’s script give the currency greater durability.
In 2015, Ethereum emerged as a more programmable blockchain with the invention of smart contracts and decentralized applications. Ethereum became a popular choice for developers because beyond creating cryptocurrencies, they could create self-executing contracts for all kinds of use cases. Simply put, Ethereum provided a versatility that Bitcoin didn’t have.
As blockchain adoption grows, so do the debates between the top two cryptocurrencies: from proof of work vs proof of stake to prioritizing experimentation or security. The crux of the Bitcoin vs. Ethereum debate is whether Ethereum will be able to leverage its smart contract functionality to displace Bitcoin’s dominance as a store of value and decentralized currency. Here are four of the lessons Stacks has learned from this debate.
Lesson 1: Consensus Mechanisms Can Be Recycled
Both Bitcoin and Ethereum are optimized for security. However, optimizing for security comes at a cost because the reality of the blockchain trilemma is that blockchains can’t be concurrently secure, decentralized, and scalable. What neither blockchain realized is that you can use the consensus mechanism of another chain to secure a new one to solve the trilemma – this is where Stacks comes in.
Bitcoin vs. Ethereum
Both Bitcoin and Ethereum currently use a Proof-of-Work (PoW) consensus mechanism. Both networks deliver security because they’ve grown to the point where a 51% attack is unfeasible.
However, both Bitcoin and Ethereum face criticisms associated with any PoW chain; the energy consumption needed to sustain the network is substantial and a primary concern for many cryptocurrency detractors and environmental activists. Other challenges to PoW include a high barrier to entry in the cost of hardware and centralization risk as mining pools emerge.
As a result of these challenges, Ethereum is in the process of switching to the Proof-of-Stake (PoS) consensus mechanism. Switching to PoS will reduce energy consumption and assuage environmental concerns. However, that transition poses some uncertainty for developers building on Ethereum. For one, it’s not clear how soon the switch will happen. Secondly, there are concerns that the switch might put Ethereum smart contracts at risk due to network centralization.
Stacks uses a novel consensus mechanism called Proof of Transfer (PoX), which leverages the computation from a PoW blockchain to secure a new blockchain. In this case, Stacks recycles the sunk cost of Bitcoin’s energy consumption to secure a new blockchain without consuming more energy and causing additional environmental concerns.
On Stacks, miners participate in PoX by transferring BTC to a predetermined address, giving them the chance to mine new blocks on Stacks. For validating a block, miners receive newly-minted STX tokens and the transaction fees for that block. The BTC is then transferred to everyday users, who have locked up their STX tokens to secure the network.
PoX delivers three distinct benefits over PoW and PoS.
- PoX enables greater energy efficiency in the operation of blockchains because it doesn't expend new energy. Instead, it repurposes the computations of an anchor PoW chain, effectively ‘recycling’ the energy spent on a PoW to secure another blockchain altogether.
- PoX eliminates the difficult choice between security and programmability (programmability introduces more attack vectors) because PoX enables the Stacks blockchain to benefit from the security of Bitcoin’s PoW while creating programmability at a separate, but connected layer.
- PoX enables decentralization and avoids the risks of a centralized network because anyone with BTC can become a miner. You don’t need expensive mining hardware (PoW) or a high threshold of tokens (PoS) to participate.
Lesson 2: Scaling Solutions Shouldn’t Be an Afterthought
The scalability of your decentralized application depends on the scalability of the underlying blockchain on which it is built. ETH has high fees because the network isn't scalable in its current form. Similarly, Bitcoin has scalability challenges as its average block creation time and block size limit constrain its throughput. STX is taking the learnings from these two blockchains to tackle the scaling work before congestion becomes an issue.
Bitcoin vs. Ethereum
A fundamental truth in crypto is that blockchains don’t scale, and this is based on the nature of blockchains: blockspace is limited. As both Ethereum and Bitcoin have demonstrated, their networks have become increasingly congested as their adoption has grown.
The Ethereum network currently processes about 15 transactions per second, and Bitcoin processes about 5 transactions per second. That low transaction throughput often leads to network congestion. For instance, Bitcoin’s unconfirmed transactions often surge in tandem with its bull runs. At the height of the last bull run in 2021, as many as 135K Bitcoin transactions were stuck in the mempool, and you can see this pattern in previous bull runs.
When the network is congested, it leads to users trying to outbid each other for their transactions to go through. The bidding wars cause transaction fees to soar, making it expensive to use Bitcoin or Ethereum. The rising fee is particularly obvious on Ethereum because of the surge in transactions from Web3, DeFi, NFTs, and other decentralized apps. Over the last three years, Ethereum’s pending transactions have averaged more than 150K transactions, and users typically spend 50% to 98% more than the expected gas limit. Instances where users need to pay more than $4000 in transaction fees to process $5 worth of value have become a running joke.
Over the past few years, both Bitcoin and Ethereum have taken important steps towards increasing scalability. In Bitcoin, recent upgrades, such as the Segregated Witness (SegWit) upgrade in 2017 and the Taproot Upgrade in 2021, both improved Bitcoin’s scalability. Lightning also emerged as a useful solution to scale Bitcoin payments off-chain.
In Ethereum, there are several scalability solutions, with the most prominent being Layer 2 (L2) scaling solutions that bring transactions off the main Ethereum chain and periodically settle back on Ethereum (similar to the approach that Stacks takes with Bitcoin). Layer 2 solutions can be broadly grouped into sidechains, such as Polygon: plasma chains such as OMG Network: rollups such as Arbitrum: and state channels such as Connext. Sharding is another theoretical path to Ethereum’s scalability but it is fraught with technical challenges.
Stacks’ core design choices optimize for security and decentralization. In that regard, Stacks is similar to Bitcoin. Indeed, Stacks’ blocks are finalized on Bitcoin every 10 minutes (with the mining of a new Bitcoin block). However, Stacks takes learnings from Bitcoin and Ethereum and is proactively addressing scalability before congestion causes usability issues.
At its core, Stacks’ design believes in the concept of layering, the idea that different blockchains can be layered on top of each other to scale a system. You can see this design in the consensus mechanism, where the Stacks blockchain periodically settles on Bitcoin, a more secure and decentralized base layer. This is similar to the approach we now see in Ethereum L2s, where Ethereum is increasingly being used as a base chain where the majority of transactions happen on a different layer above it and periodically settle back to Ethereum.
At its core, Stacks’ design believes in the concept of layering, the idea that different blockchains can be layered on top of each other to scale a system.
By design, Stacks also minimizes global state and keeps as much data off-chain as possible (a concrete example of this design in practice is BNS subdomains). This makes the Stacks architecture more amenable to different scalability solutions. Today, the ecosystem is furthering its research into a layering approach to scalability through the creation of L2 blockchains in two projects called Hyperchains and Appchains.
- Hyperchains: Hyperchains are a new scalability layer being developed by Hiro to meet the needs of applications requiring high throughput and low latency. Hyperchains are connected to the Stacks mainnet but are L2 blockchains with independent consensus rules and trust assumptions. The Hyperchains MVP, which will launch later this year, will be a federated model where users trust a handful of hyperchains miners to validate transactions on the hyperchain and approve asset withdrawals.
- Appchains: Appchains are another scaling solution that is being explored. Appchains allow for the creation of new Proof-of-Transfer blockchains, essentially clones of the Stacks blockchain, that settle on Stacks in the same way that Stacks settles on Bitcoin. So you could have multiple Appchains existing on top of Stacks, and you could even have Appchains built on top of Appchains.
Lesson 3: Programming Languages Should Be Inherently Secure
It’s obvious but worth spelling out: the programming language used on a blockchain has an impact on the inherent security of any Web3 applications built using that language. Different design choices in a language impact what attack vectors exist for hackers to exploit. Stacks takes the security of Bitcoin script and the programmability of Solidity to create a new programming language, one optimized for security and transparency.
Bitcoin vs. Ethereum
Bitcoin and Ethereum both fulfill highly different use cases (a global currency vs a global computer), so it’s not surprising that the programming languages used to build each are quite different. In Bitcoin’s case, the programming language is a very simple language called Bitcoin Script. Bitcoin script is a Turing-incomplete language, and the simple design of the language is an intentional choice that prevents infinite loops or other execution errors.
That simple design reduces the attack surface and makes Bitcoin more secure and more durable, two very important traits for a global decentralized currency. As a result of its design, Bitcoin has never been hacked. Its very simplicity is a feature, not a bug. Bitcoin was not designed for smart contracts and greater programmability.
However, Solidity smart contracts are vulnerable to bugs. In some ways, that's part of programmability: you create code, you create bugs. But Solidity’s design makes it easier to introduce bugs and harder to debug contracts and iron out the problems. For instance, Solidity is a Turing-complete language that introduces new attack vectors and makes it harder to reason with how the code will behave. The code is also compiled, making it harder for others to verify the source code and whether the contract will act as described. Ethereum’s popularity and the nature of its programming language have led to many high profile hacks over the years.
Stacks has learned from the security of Bitcoin script and the programmability of Solidity to bring something new to the table. Clarity is the open-source programming language for writing smart contracts on Stacks. Clarity is an interpreted (human-readable) language with strong influences from LISP. Because LISP has an easy-to-parse syntax, it is easy to write a compact parser for Clarity programs. This simplicity reduces the surface area for potential bugs in Clarity code and allows for more advanced tooling, enhancing the security of your smart contracts.
By design, the source code for Clarity smart contracts is also stored on the blockchain, which means that any user can look at the code and verify how a smart contract will work. This introduces more transparency and also makes the Stacks ecosystem more composable, letting other developers look at other code in the ecosystem and take that code for their own application.
Stacks combined the lessons learned from Bitcoin and Ethereum to create a new breed of programming language: one uniquely designed for the reality of smart contracts.
In addition, Clarity is decidable, making it easier to analyze Clarity code for runtime cost and data usage. The decidability helps developers predict gas fees for their end-users and also makes the language easier to reason about, making the debugging process much easier. Stacks combined the lessons learned from Bitcoin and Ethereum to create a new breed of programming language: one uniquely designed for the reality of smart contracts.
Learn more about the differences between Clarity and Solidity:
Lesson 4: Everything Rises or Falls on the Strength of the Developer Community
The developer ecosystem within a blockchain impacts the individual developer’s experience. What resources are available to them? Who can they turn to for questions?
Bitcoin is powered by a passionate open-source developer community who contribute to Bitcoin Core and maintain its related software. Ethereum also has a community that contributes to Ethereum core, but they also have thousands of developers building new applications on top of Ethereum. Stacks marries these two concepts: the passion of the Bitcoin community and the vibrant ecosystem of Ethereum.
Bitcoin vs. Ethereum
Bitcoin has a large and committed network of developers who keep the protocol working. In 2021, Bitcoin had a consistent pipeline of 100 new developers per month, a 9% growth in monthly active developers, and its total developer count grew to 673. These developers are highly passionate and largely work on the protocol level to further Bitcoin as a decentralized global currency.
Developer funding for Bitcoin is also mainly geared towards the protocol level: this is understandable since Bitcoin doesn’t have a native application layer. Organizations such as Square Crypto, ChainCode MIT DCI, Blockstream, Brink and Hardcore Fund provide funding to support developers working on the Bitcoin Protocol. In terms of educational resources for new developers, the Bitcoin Developer Network has a compendium of educational resources for developers interested in Bitcoin, including tutorials on Intro Bitcoin.js and Bitcoin Script 101.
In contrast to the laser focus of a few hundred Bitcoin contributors, Ethereum has a community of thousands of developers working on hundreds of different projects, most of which are unrelated to Ethereum protocol development. In 2021, 20% of all new Web3 developers joined the Ethereum ecosystem, and the network maintained an average of 1,184 monthly active developers.
To support that community, the Ethereum Foundation funds the critical development of Ethereum and Ethereum-related technologies. Reports also indicate that Ethereum is a hotbed for VC investment, with over $33B invested in 2021 to support the growing number of startups in the ecosystem.
In terms of educational resources, the large community translates to a large library. Some notable contributors include Consensys (developers of Truffle and Metamask), Remix Project, and Parity Technologies, among others.
Stacks is a young ecosystem—mainnet launch occurred in just January 2021—but a vibrant and passionate developer community is already forming. Today, Stacks is the largest and fastest-growing Web3 project on Bitcoin. By the end of 2021, Stacks’ developer community had more than 120 monthly active developers.
To fund applications built on Bitcoin, the Stacks Foundation provides funding to support developers through community grants or residency programs and through the Stacks Accelerator Program. Developers can also check out Bitcoin Odyssey, a new $165M fund dedicated to supporting developers building Web3 applications for Bitcoin through Stacks.
For developer support, Hiro creates developer tools and resources for developers building Web3 applications on Stacks. Some of Hiro’s tools include the Hiro Wallet, the #1 wallet in the Stacks ecosystem, and the Stacks API, which services more than 400M requests every month. The developer community also benefits from tools such as the Clarity Lang platform and Clarity bootcamps, tools for learning the Clarity programming language.
Should Developers Build on Bitcoin, Ethereum, or Stacks?
Developers have lots of options when choosing where to build and should do their research before making a decision, but at a high level here are some things to keep in mind when deciding between Bitcoin, Ethereum, and Stacks.
If you want to work on a global digital currency or if you are interested in building solutions like the Lightning Network around global payments, Bitcoin may be the best choice for you. If you want access to the Ethereum community and all of the resources behind it or you want flexibility to build on any Ethereum-compatible blockchain, then Ethereum may be the right choice for you. And if you want to build a decentralized application on top of Bitcoin’s sound money and be a part of a burgeoning community of builders, then you may find your tribe with the Stack ecosystem.
The Bitcoin economy is still in the early stages of building out its Web3 ecosystem. There are a lot of opportunities, and Stacks is the key to making that happen. At Hiro, we are committed to empowering you to build concurrently secure and decentralized applications that can scale for the Bitcoin economy.
Have more questions about where you should build? Download our guide to Web3 ecosystems to find the right home for your blockchain app.