As the world of crypto matures, different methods of maintaining blockchain consensus have arisen. There is intense debate in the crypto community about the strengths and weaknesses of the different methods suggested. The winners of the consensus algorithm battle will shape the entire future of the crypto ecosystem.
Consensus algorithms in public blockchains are required to ensure that all parties agree on the current state of the blockchain without the need of a trusted central authority.
Bitcoin, the original crypto coin has survived over 12,000 attempts to alter transaction records because of the consensus algorithm and the distributed nature of the Bitcoin nodes. The network however, has been successfully hacked in the past. The vulnerability was patched and the code hard forked. In 2010, 184 billion Bitcoins were created. The problem was resolved within 5 hours. The incident did not cause serious issues, due to the fact that at that time Bitcoin was not used by so many people. If this happens today, then it will cause real chaos, many users will suffer heavy losses and Bitcoin would get very bad PR. Proof of Work is the most tried and tested consensus algorithm to date.
The origins of Proof of Work
Proof of Work did not actually start off as a computing term. An early example of Proof of Work is the “shell money” of the Solomon Islands. Up to 1882 local trade was carried out using this coinage. Women would grind down shells to a predefined size. This was labour intensive and no more were minted than were actually required. Due to the skill required to make the cash the value of the shell currency was adequately maintained.
Move forward to 1999 The term “Proof of Work” or PoW was first coined and formalized in a paper by Markus Jakobsson and Ari Juels. It is a concept designed to slow down a computational process by requiring the client to perform a moderately difficult computational task. This can prevent things like denial of service attacks. The concept however remained in relative obscurity until Satoshi Nakamoto produced his Bitcoin white paper. Satoshi had realised that this process could be applied to a type of merkle tree to make a distributed ledger that was incredibly hard to compromise. With this realisation Bitcoin was created and the crypto revolution had begun.
Proof of work mining establishes that any given block on the blockchain requires a certain amount of work to be mined. This allows participants to pick the longest valid chain with the highest amount of work done, as the correct chain and achieve consensus.
Due to the fact that all participants in the network are competing to achieve an ever more complex goal, Proof of Work becomes extremely inefficient when it comes to energy consumption. (Some people argue this is what gives Bitcoin value). This makes mining costly and incentivizes miners to centralize their hashing power. A downside of this is that instead of moving us towards a truly distributed network it has made concentrated mining farms into the de facto rulers of the Bitcoin network.
Before crypto could be anything other than a store of value, a different consensus algorithm was going to be needed.
Proof of Stake
Proof of Stake varies from Proof of Work in that it is not about solving a complex computational puzzle and instead works in terms of validation. All nodes in a Proof of Stake algorithm have a chance of becoming a validator. The validator is chosen randomly but the chance of being chosen is dependent upon your coin holding or “stake”. The stake is bonded so validators are unable to spend their bonded coins whilst participating in the validating process.
Some people within the Bitcoin community have suggested migrating the network to a proof of stake system, to address both scaling issues and potentially improve the networks performance.
This type of system brings with it its own issues. There is no guarantee that the validator with the highest collateral deposited for a block is going to operate the network in its best interests. Could there be an even better method of achieving consensus?
While PoS consumes considerably less energy than PoW, PoW is considered by many to be superior to POS. One of the primary arguments for that position is a security flaw in PoS systems, PoS gives away your public key when you stake.
This argument holds weight because in most cases coins are stored in a small amount of addresses, mostly one, and that address has to be unlocked (unencrypted) for staking. The public key of these unlocked staking addresses then regularly broadcast to the network.
Proof of Authority.
Proof of Authority builds upon the Proof of Stake algorithm. It has been designed to solve the issues of trust related to PoS. No longer are validators chosen randomly or weighted by stake, instead a multitude of factors help decide who the validator is.
After stake is considered, the last time the node acted as a validator is then taken into account. Thirdly it is taken into consideration if the last time they acted as a validator, their decision was approved by the network to achieve consensus.
Each of these systems has their own upsides and downsides. Proof of Stake and Proof of Authority both have different attack vectors. They are however, Quantum computer proof. Quantum computers have the potential to break Proof of Work systems. However, a quantum attack would probably be used to reverse your private key from your public key, so address reuse becomes a problem.
None of the above mentioned consensus methods listed above are fool proof and in time I’m sure we will further improve our consensus algorithms. Even if we do get the perfect model, it will still not prevent a 51% attack; something which was once a theoretical idea has this year affected several crypto currencies including Monacoin, bitcoin gold, Zencash, verge and now, Litecoin cash. All is not lost in the event of a hack. The solution of last resort has always been to hard fork and rewind the blockchain.