*https://medium.com/loom-network/understanding-blockchain-fundamentals-part-2-proof-of-work-proof-of-stake-b6ae907c7edb*


Georgios Konstantopoulos, December 2017

In part one, we discussed the Byzantine Generals Problem, how to achieve Byzantine Fault Tolerance, and how this all relates to blockchain.

The algorithm in the previous article is in fact a solution which achieves Byzantine Fault Tolerance. However, that solution is not efficient enough, and its variations have constraints, namely that less than a third of the network is dishonest.

1_mG4Q1M0-fyNrWJjwCMUdDg.png

Running time of solving the Byzantine Generals Problem with the algorithm proposed by Lamport, Shostak and Pease (n = number of actors, m = number of traitors)

That leads us to a classic question in Computer Science:

Can we do better?

The topic of the present article will discuss alternative algorithms which achieve Byzantine Fault Tolerance.

Note: Please bear with any simplifications that I make. These algorithms have a lot of complex research behind them. I will be providing links as we proceed for the interested reader to do their own further research.

Blockchains use consensus algorithms to elect a leader who will decide the contents of the next block.

That leader is also responsible for broadcasting the block to the network, so that the other peers can verify the validity of its contents.

Proof of Work (PoW)

This is the most popular algorithm being used by currencies such as Bitcoin and Ethereum, each one with its own differences.

Before continuing, for the non-technical readers: