The word “consensus algorithm” invokes in many people’s minds the intricate mechanisms that both proof-of-work and proof-of-stake blockchains use to process transactions. But consensus algorithms aren’t unique to blockchains; they’ve been around for decades. In fact, you probably interact with technology that uses a consensus algorithm of some kind on a regular basis, and you may not realize it.
A consensus algorithm comes in handy any time we need a group of distinct machines to agree on something. These situations can get really diverse. The machines may need to agree on an account balance, a list of account holders, a password database, or how many lives a player has left in a computer game. Consensus algorithms come in all shapes and sizes too, and most often don’t look like the ones that power blockchains.
In particular, internet applications use consensus all the time. Just like there are several ways in which people come to agree on something – through debate, a person or group of people in authority dictating decisions, a hierarchy of leadership, etc. – there are several different kinds of situations and ways in which computers come to consensus. Some of these are more authoritative, using a central database or trusted user, and some are totally decentralized. None of these are necessarily bad or inherently better than others, they’re just useful in different situations.
For example, your airline and the app on your phone need to agree on your rewards account balance so you can check it remotely. In this case, the airline is a central authority and the app just has to ask for information. Online games with multiple players need to keep an accurate, updated state of the game so the players can interact. This most often uses a central authority and database of some kind, though games can be run on a blockchain.
Google docs needs to display a consistent view of the document that several people want to edit and make changes in real-time. Again, we have a central authority, in this case Google. The more you stop to think, the more you’ll notice that there are computers all around us coming to consensus, constantly – and most of them don’t use a blockchain to do it.
Notice that each of these cases makes use of the inherent advantage of some kind of trusted, third party who was always online when they needed to be. That third party could serve as an authority, since they kept a centralized database, and so “consensus” is quick and easy: all you have to do is talk with the authority.
There are cases, however, where a centralized authority and trust are undesirable. These are situations where the parties working together do not trust each other, and may even suspect others of illicit activity. In these cases, consensus gets more complicated since there is no central authority that everyone can trust.
Most notably in the crypto world, consumers pay high transaction fees to credit card companies and have to rely on banks and governmental policy to use and store money. If we want to transact peer-to-peer with strangers and avoid these fees and dependencies, we have to do so in such a way that precludes the need for trust or centralization. That means no banks or credit cards to mediate things – only the consumer and merchant interact.
While with crypto, we save money on third-party transaction fees, getting rid of the trusted third party in any distributed system is expensive in time, energy, and money. The more that consensus has to take these added challenges into account, the more costly and slow it becomes. Even worse, it gets impractical to scale. That’s why blockchain, while extraordinary and useful in its domain, isn’t always the most practical way to achieve consensus on a distributed system. Often, the added expense of decentralization and trustlessness outweigh the rewards.
However, this may not be the case forever. Platforms are being developed to perform much faster than Bitcoin.
Derek Sorensen is a research mathematician at Pyrofex.
Pyrofex looks forward to unlocking the next generation of blockchain technology through C?, designed to make revolutionary advances in consensus and transaction processing while maintaining the highest standards of safety and liveness.
Follow Us on Twitter Facebook Telegram