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.
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).
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).
Occurs when validating nodes can maintain parallel and different forks in the blockchain, allowing them to ‘double spend’ fraudulently.
Occurs when the consensus is unacceptably slow to converge under certain conditions.