Reaching consensus means that a general agreement has been reached among a group, and the agreement means a single truth has been found and agreed upon.
A consensus mechanism is a fault tolerant mechanism that was designed to enable systems, such as blockchains, to reach consensus on proposed changes to a distributed network.
Consensus mechanisms are required in cryptocurrency to overcome the double spending problem and are also known as Byzantine Fault Tolerance mechanisms (BFT). BFT mechanisms overcome the Byzantines Generals problem of reaching consensus, which applies to permissionless decentralised networks without a hierarchy.
Different consensus mechanisms
There are many different types of consensus mechanisms. Your favourite cryptocurrencies could all be based on different ones and you wouldn’t even need to know. Developers disagree about what makes a good consensus mechanism.
It is an important argument because a consensus mechanism is a vital part of the decentralized network. It controls all actions and changes that happen on the network. If the chosen consensus mechanism has a weakness that can be exploited, the network in question is not secure. This means could put all funds stored on the network at risk – a very costly issue.
Two of the most common consensus mechanisms are Proof of Work (PoW) and Proof of Stake (PoS).
Proof of Work
PoW was first introduced with Hashcash and is now the consensus mechanism that powers the two most well known cryptocurrencies: Bitcoin and Ethereum. PoW requires ‘work’ to be done in order to process transactions. This work is done by nodes, also referred to as miners, by using computational power.
Miners all across the world compete to process the next transaction, because if they do they receive a financial reward, paid in the cryptocurrency they are mining. Miners compete to complete a task using computational power.
Proof of Stake
PoS works on the assumption that users with more stake in a network have more incentive to ensure network integrity. Users that wish to be validators in a PoS network must place funds at risk, known as their stake. This stake will be held in the native currency of the network.
Validators are chosen at random for each block that needs to be processed, but the results favour those with larger stakes and can also take into account other things such as the age of the validator. A transaction validator is known as a ‘forger’.
Unlike PoW systems, quite often forgers do not receive direct rewards for validating transactions, but instead they receive the transaction fees. PoS systems also punish bad behaviour. If the network rejects an opinion made by a validator they will receive a financial penalty from their stake. Deciding the forger purely on the size of stake would result in centralisation, so there are a number of block selection variations which are used in a proof of stake system, such as Delegated PoS or selection based on coin age that work on this issue.