Consensus
A blockchain is an immutable ledger maintained by a decentralised, distributed, peer-to-peer network of nodes. Each mutually distrusting node performs in accordance with a consensus algorithm. Consensus can be thought of as ‘voting’ to build agreement among the nodes on a common, unambiguous ordering of transactions and blocks.
The consequences of failure
The consensus algorithm plays a crucial part in determining whether a blockchain can succeed for its intended purpose. The consensus mechanism should guarantee the blockchain’s integrity and consistency across all nodes, to safeguard the key blockchain properties of immutability and auditability. A poor choice of consensus mechanism can render the blockchain platform useless by compromising the data recorded on it.
An inferior consensus mechanism can result in a Blockchain fork which occurs when different nodes converge on different blocks as the ‘true’ blockchain.
Consensus failure
Occurs when the nodes fail to reach consensus (e.g. from failure to reach required supermajority, failure due to node or network failure, non-compliant nodes, or inability to resolve consensus due to inconsistent messages).
Dominance
Occurs when a group of nodes can manipulate consensus to confirm and process transactions according to their own rules (e.g. Sybil1 or ‘51%’2 attack).
Cheating
Occurs when validating nodes can maintain parallel and different forks in the blockchain, allowing them to ‘double spend’ fraudulently.
Inferior Performance
Occurs when the consensus is unacceptably slow to converge under certain conditions.