Consensus algorithms on the blockchain

Distributed consensus based algorithms on crypto-networks have been created to ensure byzantine fault-tolerance. Many such algorithms have their sources in the Proof-of-work. Proof of work itself has evolved to different mechanisms e.g. ethhash, SHA-256, scrypt, equihash, cryptonode, and others.

A few other important ones are listed below:

1. Proof of stake (PoS) – going to be adopted by most leading blockchains
2. Delegated Proof of Stake (DPoS)- Adopted by STEEM wherein witness nodes randomly selected validate transactions and create blocks. The witnesses are voted by other members of the community.
3. Proof of activity (PoA)- a mixture of Proof of Work and Proof of stake
4. Federated Byzantine Agreement – Proof by consensus amongst nodes – Ripple and Stellar cryptocurrencies use this mode.
5. Proof of Space – Here, nodes concur about the amount of space or storage that has been used.
6. Proof of Authority – wherein a particular set of nodes randomly become validators, with the rule that no two subsequent blocks are not mined by the same node
7. Directed Acyclic Graphs ( DAGs ) – Examples include Pay-it-forward consensus where each node on the network is responsible for validating networks before forwarding it. Typically a centralized node also validates each transaction. e.g. IOTA uses this.
8. SPECTRE – Serailized Proof of work through Recursive elections: This proposal uses a combination of PoW and DAGs to accomplish scalability on the Bitcoin blockchain.

 

Each of these consensus algorithms have suffered from one or more drawbacks e.g. PoW is computationally expensive, PoS leads to No Stakes problem, FBA proponents disagree about the decentralized nature of the protocol, PoS claims resource usage in terms of space, etc… Overall, what we see is practical manifestations of years of research in computer science in fields as diverse as graph theory and theory of computation taking shape and supporting a large economic and financial shift in the way business problems are solved.