How an open blockchain arrives at consensus over the state of its ledger is a key element not just for security of the system but also for scalability. We presented the initial ideas for how consensus will work in our Stacks blockchain in our white papers. Here’s a summary in plain language along with a video with Stacks blockchain Core Developer Jude Nelson explaining this system during his presentation in Hong Kong for the Decentralizing the World Tour.
Rather than risk bootstrapping a new proof-of-work blockchain, and instead of working with the limitations and issues inherent to proof-of-stake consensus, the Stacks blockchain uses a novel proof-of-burn consensus mechanism to bootstrap. This mechanism reuses the hashpower of an established blockchain like Bitcoin. There is a path available to slowly transition away from Bitcoin as the hashpower on the new Stacks blockchain builds up.
First the basics.
In traditional cryptocurrency mining, like we see with Bitcoin and many other cryptocurrency networks, the economic cost imposed on miners is the actual electricity, hardware, etc. needed to do the proof-of-work calculations. This makes it more and more costly (as the network hashrate increases) to tamper with transaction data entering the blockchain. This is a great security model which has worked well—as Bitcoin has demonstrated.
Rather than try to mimic that success, the Stacks blockchain builds on it. Instead of expending electrical and hardware costs, participants in proof-of-burn consensus do just that—they provably destroy (or “burn”) their own bitcoin as the economic cost for their participation. Every participant competing for the opportunity to write the next block must burn a certain amount of proof-of-work token (bitcoin) to enter the competition. A participant’s likelihood of winning the competition increases with the percentage of bitcoin they burn compared to other participants. The competition’s winner writes the block, collects transaction fees, and earns the block reward of Stacks tokens.
Safely bootstrapping the Stacks blockchain:
How miners write new blocks:
- The protocol constructs a “dartboard” with pie slice sizes proportional to each distinct chain tip that got burned for.
- The VRF is like a dart — when “thrown” at the board, it will select one of the burners’ chain tips. The more burned for a chain tip, the bigger its slice on the dart board, the higher the chance the VRF-dart has of hitting it.
- The VRF-dart gets“thrown” in the previous epoch — when a new block is generated, the Stacks miner “throws the next dart”.
- The positions of the pie slices on the dart board are randomized by the proof-of-work solution itself. This is necessary because it prevents the Bitcoin miners from “moving the pie slices” to where the VRF-dart will strike (something that Bitcoin miners can tell in advance, but no one else can). Using the proof-of-work solution to randomize their positions effectively prevents Bitcoin miners from gaming the system — Bitcoin miners literally don’t have time to try more than one randomization induced by a PoW solution, since it takes them ~10 minutes to find a PoW solution in the first place.
The system is designed so that neither Stacks miners nor Bitcoin miners can influence the choice of the next block by spending additional energy. The only way the outcome can be influenced is by Bitcoin miners censoring transactions — and even then, selectively censoring transactions can only slow down (but not stop) the Stacks blockchain.
But what if I spend a lot of bitcoin and don’t get rewarded?
The same thing that happens to all those Bitcoin miners who spend all that electricity but lose the block race — it’s irrevocably wasted. If you contribute 90% of all burns in an epoch, there’s still a 10% chance that you will lose (but your Bitcoin is destroyed either way). It must be this way, since otherwise a Stacks miner could “recycle” their burns and build many competing forks (i.e. the Stacks miner could become a Sybil node and work on many parallel forks for marginal cost).
It’s worth noting though; the burns aren’t truly “wasted” — they still improve the chain quality since their (wasted) burns get used to calculate a “burn quota” which helps slow down attackers.
We are building this system because it would be fruitless to compete with Bitcoin on network security though proof-of-work. Instead, we are piggybacking on the most secure blockchain in a way that the cost of mining is only paid once. This way the decentralized web gets the benefits of being verified by people acting out of rational economic self interest.
Version 2 of the Stacks Blockchain is currently under development and there are two open SIPs or Stacks Improvement Proposals for this new consensus algorithm and smart contract system.
Stacks blockchain Core Developer Jude Nelson explained this system in his talk at Blockstack Hong Kong. Here is a video of his presentation: