A consensus mechanism is a fault-tolerant mechanism that is used in computer and blockchain systems to achieve the necessary agreement on a single data value or a single state of the network among distributed processes or multi-agent systems.
Consensus mechanisms are a vital part of blockchain technology. They are the recipe for the rules of a network that describe the sequence of events. The algorithm basically lays out: if this happens, then that happens, then that happens, and so on. For blockchains, these consensus mechanisms are put in place to ensure a group of people agree that all transactions are validated and authentic.
Transactions can be financial transactions, such as with Bitcoin, but also blockchain-based transactions such as trading data, swapping ownership rights, access to dapps and much, much more.
Consensus mechanisms ensure a network of random people can achieve consensus about transactions in the network. People have to cooperate and grow accustomed to these new decentralized networks that have no central authority, unlike the governments, institutions, and businesses we are used to.
Consensus mechanisms secure a blockchain’s transactions by preventing the double-spending problem. The double-spending problem has been an obstacle in previous attempts at creating a digital currency. At its very basic, double-spending is much like sending a photo to someone digitally. You do not send the original picture, but a copy and now two people have the same picture
Popular Consensus Algorithms
Proof of Work (PoW)
Proof of Work (PoW) is when your voice is heard as a result of showing evidence that you worked hard. In the case of Bitcoin, it’s a number that was really really hard to find, so having it means you must have done a lot of work.
In order to confirm the transaction and enter a block into a blockchain, a miner has to provide an answer, or a proof, to a specific challenge.
Miners use PoW to validate transactions and mining new coins, but its main goal is to block potential cyber-attacks or suspicious activities within the network.
Each times a miner confirm a transaction, he is reward with coins.
The only disadvantage in this technique is it’s a costly and intensive process.
Proof of work is not only used by the bitcoin blockchain but also by ethereum and many other blockchains.
Proof of Stake (PoS)
Proof of Stake (PoS) is when your voice is heard as a result of showing evidence for being invested. While it’s a lot less work, but also less straightforward and obvious than PoW.
Unlike the PoW, where solving an algorithm rewards miners with new crypto coins, PoS chooses a new block creator in a deterministic (pseudo-random) way — depending on its wealth (stake). Because there are no block rewards, miners only take the transaction fees.
This is why, PoS system miners are called forgers, instead of miners. Same way, mining is called minting.
Once a user has a balance in their wallet, they need to keep the wallet open and connected to the internet to earn stake rewards. People who own a significant amount of the total coin supply will earn more stakes. So the more you invest, the more you earn.
Proof of stake first idea was suggested on the bitcointalk forum back in 2011, but the first digital currency to use this method was Peercoin in 2012, together with ShadowCash, Nxt, BlackCoin, NuShares/NuBits, Qora and Nav Coin.
Proof of Authority (PoA)
Proof of Authority (PoA) is a modified form of Proof of Stake (PoS) where instead of stake with the monetary value, a validator’s identity performs the role of stake. In this context, identity means the correspondence between a validator’s personal identification on the platform with officially issued documentation for the same person, i.e. certainty that a validator is exactly who that person represents to be.
PoA is a consensus mechanism for blockchain in which consensus is achieved by referring to a list of validators (referred to as authorities when they are linked to physical entities). Validators are a group of accounts/nodes that are allowed to participate in the consensus; they validate the transactions and blocks.
Proof-of-Authority is a newer concept in the blockchain world where you have a number of pre-approved authority nodes (called sealers, think of these as mining nodes). Any new node that you want to add has to be voted on by the currently approved set of authority nodes, this gives you full control over which nodes can seal blocks (mine) on your network. To make sure a malicious signer cannot do too much harm to the network any signer can sign at most one of a number of consecutive blocks (floor(SIGNER_COUNT / 2) + 1). The same consensus is applied when an authority node is removed from the network.
The Ethereum Proof-of-Authority protocol is called Clique and is well described in the Clique Github issue.
There are various types of PoA protocols, and they vary depending on how they actually work.
The consensus mechanism used by Stellar is a decentralised version of PBFT called Stellar Consensus Protocol , whereas Ripple uses probabilistic voting . Those are fairly different even though they both tackle solving the same problem of reaching consensus between nodes. SCP biases towards correctness at the expense of liveness; Ripple follows a model similar to Bitcoin allowing ledger forks to occur temporarily and relying on majority validation.
- Parity supports PoA claims on the Ethereum network.
- POA Network
- Kovan is an Ethereum test-net, that runs on PoA
- The VeChain blockchain will run using a PoA consensus model
- Indium Network
Lesser known consensus Mechanisms
Proof of Capacity
Proof-of-capacity closely resembles proof-of-work, with the notable exception that transaction blocks are validated using disk space rather than computational power. Participants must allocate a set amount of their disk space to be used exclusively for this purpose. This space is then plotted on the drive and filled with nonces, groups of precomputed hashes containing 4096 pairs (or ‘scoops’).
Proof of Importance
Proof-of-importance closely comports with proof-of-stake but with an added twist. Like proof-of-stake, the capacity to mine tokens ties in with the number of tokens held. However, users can also gain additional mining capacity by regularly buying and selling tokens. This mechanism ensures that the price stays at market level. NEM employs this option to encourage the mining of their popular cryptocurrency, XEM.
Proof of Elapsed Time
Proof-of-elapsed time works by requiring participants to wait a random amount of time before setting upon the next transaction block. The first participant who finishes waiting receives the next block. While organized more like a lottery than a consensus method, it remains a suitable alternative given that its run Intel SGX systems hardware. As such, it allows applications to set protected environments and execute trusted code. It also ensures that the lottery for random wait times is conducted fairly. Critics assert that using SGX hardware to execute the trusted code is a centralizing feature and gives too much power to Intel.
Proof of Burn
Proof-of-burn is nearly identical to proof-of-stake. However, mining capacity is predicated on the user burning tokens rather than holding them. Burning tokens requires sending them to an address from which they can never return or be sent elsewhere. This process effectively removes the economy of that token. It also results in a deflationary token, one that naturally becomes scarcer over time.
Proof of DDoS
While only theoretical at this point, proof-of-DDoS is a malicious proof-of-work form. In brief, it rewards participants who participate in qualifying DDoS attacks. Introduced by researchers at the University of Michigan, this consensus method works with a fictional DDoSCoin.
The purpose of a consensus algorithm in a public Blockchain network is to make sure that the network’s participants agree on the current state of the Blockchain without the need to trust each other or to have a central authority.
In PoA-based networks, transactions and blocks are validated by approved accounts, known as validators.Validators run software allowing them to put transactions in blocks. The process is automated and does not require validators to be constantly monitoring their computers. It, however, does require maintaining the computer (the authority node) uncompromised. The term was coined by Gavin Wood, co-founder of Ethereum and Parity Technologies.
With PoA individuals earn the right to become validators, so there is an incentive to retain the position that they have gained. By attaching a reputation to identity, validators are incentivized to uphold the transaction process, as they do not wish to have their identities attached to a negative reputation. This is considered more robust than PoS, as:
In PoS, while a stake between two parties may be even, it does not take into account each party’s total holdings. This means that incentives can be unbalanced.
Meanwhile, PoW uses an enormous amount of computing power, which, in itself lowers incentive. It is also vulnerable to attack, as a potential attacker would only need to have 51% of the mining resources (hashrate) to control a network, although this is not easy to do.
On the other hand, PoA only allows non-consecutive block approval from any one validator, meaning that the risk of serious damage is minimised.
PoA is suited for both private networks and public networks, like POA Network, where trust is distributed.
Leave a comment if you feel we missed out any notable consensus mechanism.