The consensus protocol describes how a network’s nodes reach agreement on what to do next. In a blockchain context, it regulates things like transaction validity, inclusion of new nodes and dealing with malicious nodes (sybil control), block production, or reward distribution. Any running system’s consensus can potentially be affected by tiny changes in the node software, causing voluntary or involuntary chain splits or chain stalls as the participating nodes can no longer reach agreement on how to proceed.
List of Consensus Protocols
Work in progress. This entry only deals with high-level differences of the various consensus protocols. While sybil control is an essential part of any fault tolerant consensus system, actual consensus-finding mechanisms and sybil control mechanisms can to a certain extent be combined freely. The two concepts should not be confused.
- Nakamoto-Style Consensus: The original blockchain consensus model proposed by Satoshi Nakamoto randomly selects block producers via proof of work mining. Nakamoto nodes will always track the heaviest chain (the one with the most accumulated work). Availability is prioritized over consistency. Chain reorganizations, especially near the chain tip, can happen as a heavier chain gets produced by malicious or well-meaning nodes. Nakamoto consensus remains reliable as long as the number of malicious nodes in the network does not exceed 50%. Slowness, and high resource usage due to mining are common issues of Nakamoto-style consensus.
- Tendermint: In this round-based consensus mechanism, a block proposer suggests a new block and the network’s validator nodes then try to reach 75% agreement on that new block. If the agreement process fails, the round reverts to the block proposal phase. Tendermint reaches instant finality of transactions on block inclusion, at the cost of availability, since the chain will not be extended if the validators are unable to reach 75% consensus. Tendermint has been implemented as part of the Cosmos federated chain ecosystem. Tendermint works well with PoS-based sybil control mechanisms. Because the protocol requires 75% consensus to produce a new block, actual implementations will tend to improve communication efficiency by operating with a relatively small set of (delegated) validator nodes.
- Algorand: Algorand solves the leader (block proposer) selection problem by emitting an unpredictable selection seed with each new block. This allows for a system that is efficient thanks to its ability to select a reasonably small validator group for each block, yet egalitarian, since any participating node in the network has a chance to become a block producer. This consensus protocol eliminates the need to invest work to achieve random leader selection. Implemented by the Algorand blockchain, it is combined with proof of stake as a sybil control mechanism. Similar to Tendermint, blocks are settled in a propose/vote/confirm round, requiring 75% agreement to achieve instant finality on block production.
- Snow (Avalanche): Proposed by researchers at Cornell University and implemented as part of the AVA distributed ledger technology, the Snow protocol suite establishes node consensus via a network sampling strategy: individual nodes do not communicate with all nodes in the network. Instead, they form their opinion on the network’s state by repeatedly communicating with random sub-samples of nodes. This approach enables higher parallelism, lower resource usage and faster throughput. The Snow protocol suite reaches metastability of state as the network’s nodes gradually converge towards the desired outcome. Possible critical issues of this approach are failure to reach consensus, and safety concerns related to the asynchronous properties of the protocol (e.g. message reordering/delaying attacks).