Blockchain Consensus
In my previous article titled “Blockchain”, I provided an overview of the technology, describing the benefits of the open, decentralized architecture.
In the article, I referenced a consensus protocol, specifically Bitcoin’s “Proof of Work” algorithm and mining. For those who are not familiar, this algorithm achieves two things:
- It enforces the chronological order in the blockchain.
- It ensures that no individual can control what is included in the blockchain, replace parts or manipulate the outcome.
In Bitcoin, miners use software to solve complex math problems, which helps to keep the blockchain consistent, complete and unalterable by repeatedly collecting and verifying new transactions. As a reward for sharing their computing resources, miners are given new Bitcoins.
In many respects, this approach is ingenious, but it has one significant criticism… The vast amounts of computational power required for mining, as millions of computers operate at load for extended periods of time.
As a result, a number of other consensus algorithms have emerged. I have highlighted four below.
Proof of Stake (PoS)
Proof of State is the most common alternative to Proof of Work.
Unlike Proof of Work, the total supply of coins exist from day one, meaning no new coin creation can occur via mining. Instead, validators (AKA stakeholders) are paid strictly in transaction fees.
As a result, instead of investing in custom hardware to mine blocks, a validator is incentivised to invest in the coins of the system. This is because the chance of being picked to create the next block depends on the number of coins owned by the account (e.g. stake). As no actual mining exists, Proof of State blocks are said to be forged or minted, rather than mined.
Proof of Activity (PoA)
Proof of Activity is a hybrid between Proof of Work and Proof of Stake, where each block is a product of combined effort of Proof of Work and Proof of Stake miners.
For example, mining begins following the traditional Proof of Work algorithm, with miners racing to solve complex math problems. However, blocks mined do not contain any transactions, therefore the winning block only contains a header and the miner’s reward address. At this point, the system switches to Proof of Stake, where based on information in the header, a random group of validators is chosen to sign the new block.
Proof of Activity was introduced to provide an alternative incentive structure for cryptocurrencies with a limited supply of coins (as described in the article 21 Million Bitcoins).
Although this model provides an interesting evolution for certain cryptocurrencies, it does not immediately rectify the criticism regarding power efficiency.
Proof of Burn (PoB)
Proof of Burn incentivises miners to “burn” coins by sending them to an irretrievable address. Once burnt, the account is granted access to mine.
Similar to Proof of Stake, the more coins burnt, the higher the chance of being selected to mine the next block. As a result, there is a continued incentive to burn more coins.
Proof of Burn is my least favourite algorithm, as it directly prioritises mining based on wealth.
Proof of Elapsed Time (PoeT)
As part of Intel’s enterprise distributed ledger (Sawtooth), they have introduced a new consensus protocol called Proof of Elapsed Time. Conceptually, it is very similar to proof of work, but aims to be far more efficient (therefore mitigating the primary criticism).
Proof of Elapsed Time has three goals:
- Fairness: The function should distribute leader election across the broadest possible population of participants.
- Investment: The cost of controlling the leader election process should be proportional to the value gained from it.
- Verification: It should be relatively simple for all participants to verify that the leader was legitimately selected.
Proof of Elapsed Time leverages secure CPU instructions (such as Intel’s Software Guard Extensions - SGX), which are becoming widely available in consumer and enterprise processors. This approach guarantees a wait time (e.g. elapsed time) that enables the algorithm to scale to thousands of nodes and is very power efficient when running on any processor that supports SGX.
My only hesitation with this approach is the connection that is established between the consensus algorithm and Intel, as the key value proposition of blockchain is the removal of a central authority.