A critical concept to be familiar with in blockchain is that of group consensus. This is a simple concept that states that there’s no way to know, without any room for doubt, what the absolute truth is. Therefore, we assume the truth to be whatever most participants agree on. A great example of this is a police detective working to solve a crime:
Imagine that you are a detective. One day, the police chief asks you to investigate a bank robbery. Since you were not present when the bank was robbed, you don’t know the actual truth of what happened. However, as a detective, it is your job to try to determine what transpired. So, you do what any good detective would do in such a situation – you find witnesses to the event and ask them what they observed. Imagine the following – you query ten witnesses about the robbery. Eight out of those ten witnesses tell you one version of the event – that four robbers ran out of the bank, jumped into a red sedan, and drove away from the bank heading north. Two of your ten witnesses tell a much different story – that two robbers ran out of the bank, got into a white pickup truck, and drove away from the bank heading south. Which version is the truth? As a good detective, you’re likely to believe the version of the story told by most of the participants. When you provide a suspect description, you’ll most likely describe four robbers in a red sedan heading north.
This same principle is used extensively in a blockchain – the truth is always assumed to be whatever most participants agree on.
Types of Consensus
Proof of Work
Bitcoin the first blockchain technology, has implemented BFT (byzantine, fault tolerance) using proof of work.
In proof of work, consensus mining nodes will attempt to guess ‘nonce’ (a piece of data) to validate the block. Block data and current guess (nonce) are fed into a cryptographic hash. In case the result matches the current level of difficulty (normally a fixed number of leading zeros) that means the minor has guessed the correct answer.
Proof of Stake
Also called PoS and initially used by Ethereum, “proof of stake” is a relatively new consensus. It discards the guessing game for validation hence removing the requirement of heavy computing resources required by mining nodes as with proof or work.
PoS uses a system where each validator (minor) pays a stake for transaction validation. At the time of group consensus, all nodes who want to participate in consensus will look for funds at stake. A random node is selected, a hash of nodes’ data is published to the rest of the participants.
Some other Consensus Mechanisms…
Proof of Activity
Hybrid consensus used Proof of Work and Proof of Stake. It selects empty template blocks, mines them using Proof of Work and later fills them with transactions that are validated using Proof of Stake.
Proof of Burn
This is where crypto coins are ‘burned’ by sending them to a public address (the private key is unknown, therefore, can’t be retrieved). The more the coins are burned the better the chances that the miner is to be selected for mining the next block.
Proof of Capacity
This is where hard drive space is accumulated or staked to be part of mining blocks. The more the disk space is stacked, the better chances the miner gets to mine the next block. The consensus generates huge datasets named ‘plots’ and they consume disk space.
Proof of Elapsed Time
Initially, this was developed by Intel corp. and runs on their trusted execution environments. It is similar to Proof of Work with the addition of being more energy efficient. However, a drawback of this consensus is that it violates the basic principle of blockchain because of its dependency on Intel, a single organistion.
Proof of Authority
A set of ‘authority holding nodes’ are allowed access to create new blocks and keep the blockchain secure. It replaces proof of work for private blockchains only. Blockchain nodes must earn the right to be granted ‘authority nodes’.