Today we will visit the consensus concept in Blockchain and dig deep into its real relevance and consequences.
Blockchain is one of those hype technologies that we hear every day in the news. From bitcoin to crypto wallets, from tracking to trust. It is the technology that will make us confident on what we are told is the truth, indeed it is.
On the other hand we are also told that the real magic behind Blockchain is that there is no need to rely on a single agency/bank/company, it will be the “network” who we will trust in.
How is this possible? Thought consensus algorithms.
What is a consensus algorithm?
A consensus algorithm in Blockchain is the mechanism used by a Blockchain network in order to select the correct state of a ledger after a transaction is made. This way what the consensus algorithm says is the truth all nodes must follow.
This is typically selecting the majority among all the purposed states. Bitcoin, the first Blockchain network, uses Proof of Work (PoW): any ledger state proposal arrived with the result of a complex hashing calculation that took quite high of computing power. Its verification is quite fast and simple so it is not worthy to send a fake state. Also the state (worked as blocks of transactions) has a reference to the previous state and its hashing calculation result, so everything is linked and it is not possible to change a past block without changing all the following.
Hands on the PoW consensus problem
PoW is one method to ensure that the ledger is immutable. It relies on a basic principle: it is too costly to become (or convince) the 51% of the network (the participants, like the students at Linda class) and also very expensive to recalculate all the blocks.
Is it really so difficult? Like many other things it depends on the size. Hopefully larger than the largest bite the attackers can chew. Public networks like Ethereum or Bitcoin are considered large enough to resist a 51% attack. But smaller ones are not: Ethereum Classic is a smaller network (an earlier version of Ethereum that didn’t follow the updates –known as hard forks – of Ethereum). And it was attacked: https://www.ccn.com/ethereum-classic-might-have-been-hit-by-a-51-attack/ and it is not the only one: https://komodoplatform.com/51-attack-how-komodo-can-help-prevent-one/
In the other hand the weakness it may not be an attack. A deeper lecture shows that a few companies/consortiums that have access to cheap electricity may dominate a network. It won’t be independent any more. Electricity is, at the end, the only important factor, because ASICs are very specialized hardware circuits that has a lot of computing power for a fraction of the electricity that a user PC may consume, and those are cheaper that GPUs for mining (the name given to process of the block calculations). Single entity dominion on a network may compromise its focus, updates and neutrality, at least.
Which are the alternatives to PoW?
Alternatives to PoW depends on many factors. Is it a private or a public network? Anonymity is required? Who do we want to have more influence?
PoA for permissioned networks
Private networks usually choose “Proof of authority (PoA)” because all the participants involved are well-known entities. This is mainly because of permissioned networks: you have to be accepted in order to participate (also called permissioned networks). PoA means that at the expense of anonymous operations (at least there must be someone outside the transaction who knows who is involved in the operation) we obtain the security offered by Blockchain network: each participant in an operation signs the operation with his digital certificate. This, along with proper legal contracts, protect each one of the parties in a transaction from fraud. But, as said, limited to private networks.
In future posts we will discuss other options for permissioned networks: BFT, RAFT, Zero Knowledge Proofs, etc.
Public networks: Proof of Stakes and Proof of Elapsed Time
Then Proof of Stakes (PoS) arises, it is a process where the validator of a block depends on the stakes that validator has in the network. It relies on the idea that the more you have to lose the more reliable you are. This can also lead to the undesirable centralization.
Another approach is to select validator with a random method. Proof of Elapsed Time (POET) kicks in. This method tries to select the validation the one made by the first validator completing the block after waiting a random assigned time. Essentially the method is similar to PoW but without the high power consumption. To assign the random sleeping time and certify that the validator has waited a trusted compute environment is required. The question is: if a trusted compute environment is used, why not use it for the block validation instead of only selecting sleeping time?
ProgPoW: a more complex PoW
ProgPoW is an evolution of PoW designed for Ethereum network. ProgPoW tries to compensate the power of ASICs in PoW changing the algorithm so there is the need of a GPU to compute. Whether this re-balance –a bit- the mining capacities from ASIC farms to users is still something we do not know. So ProgPoW is the first consensus algorithm that tell us about one of the hidden truths of Blockchain: you trust no one, you try to trust the majority, and you have doubts of that.
But will ProgPoW bring the balance to the force just by changing the computing algorithm? Not likely, soon ASIC designers will solve the problem and probably a new generation of more capable ASICs will be in the market.
Thinking beyond programmatic evolution
In spite of this ProgPoW movement is quite bold itself: it address the problem and creates a new innovative way of doing thing: if the threat adapts, change your defenses.
So there may be two new approaches to network dominance:
- Change the Proof often enough to challenge ASICs and large mining companies but not so frequently that the network loses interest or becomes too unstable.
- Evolve the consensus algorithms to a new age: the social consensus, the step beyond PoS.
The first one is self-explaining. What about the second?
What we have called “social consensus” is a method where not only algorithms are in control but also what parties think about the validators, it is like reverse social engineering: the more confidence you build in the network the more validator capabilities you’ll have.
We won’t start a discussion on confidence: PoS suggests the value of the assets, but there are other options like reputation networks (eBay style, based on number of transactions and customer satisfaction), confidence rings open via invitation, reputation networks following the style of scientific magazines impact, etc.
At the end there’s, obviously, a lot of room and need for a new generation of consensus and, therefore, Blockchain networks.