Consensus algorithms for public blockchains require computational or financial resources to secure the blockchain state. Mining mechanisms used by these algorithms are broadly divided into proof-of-work (PoW), in which nodes dedicate computational resources, and proof-of-stake (PoS), in which nodes dedicate financial resources. The intention behind both proof-of-work and proof-of-stake is to make it practically infeasible for any single malicious actor to have enough computational power or ownership stake to attack the network.
With proof-of-work, a miner does some “work” that consumes electricity and is rewarded with digital currency. The miner is, theoretically, converting electricity and computing power into the newly minted digital currency. Bitcoin is an example of this and is by far the largest and most secure PoW blockchain.
With proof-of-stake, miners are staking their holdings of a new digital currency to participate in the consensus algorithm and bad behavior can be penalized by “slashing” the funds of the miner. PoS requires less energy/electricity to be consumed and can give cryptocurrency holders who participate in staking a reward on their holdings in the base cryptocurrency. PoS may be less secure than PoW given (a) the trusted channel for new nodes problem[1], and (b) ability of an attacker to create many “fake” histories of the blockchain with minimal cost [2].
By far, the most secure blockchain today is Bitcoin. Blockstack has, since its earliest days, relied on Bitcoin as a mechanism for establishing trust in an open and permissionless network: the Stacks 1.0 blockchain, launched in 2018, operates as a “virtual blockchain” on top of Bitcoin [3]. We continue to believe that Bitcoin can become the “flag of technology” [4], and that most people will be introduced to cryptocurrencies through Bitcoin. The developer ecosystem around Bitcoin continues to grow.
However, adding new features to the Bitcoin blockchain poses a challenge: Bitcoin is secure because it is stable and does not change. While it possesses a scripting language, this language is extremely limited. This is by design— adding complexity increases the attack surface, which reduces the value of Bitcoin as a foundational layer.
Despite this, a user owned internet requires a more complex feature set. The blockchain that powers this next chapter of the web must be designed for this task– it should support the creation of new kinds of digital goods, the management of new kinds of decentralized applications, and be flexible enough to allow developers to build applications that we cannot yet imagine. The Stacks blockchain is an attempt to create this blockchain, and over its lifetime, we have explored the design space for establishing novel, feature-rich blockchains on top of Bitcoin, using it as a trusted foundation.
The Stacks 1.0 blockchain operates as a “virtual blockchain” on top of Bitcoin. Each transaction in the Stacks 1.0 chain is also a Bitcoin transaction. All of the data of a Stacks transaction is encoded within the metadata of a Bitcoin transaction. This design is limited; Stacks transactions must share bandwidth with Bitcoin transactions. Stacks transactions must be separately validated by non-mining blockchain nodes, which do not receive mining rewards for validation.
3