Making Sense of Consensus
In order for blockchain systems to be truly decentralized, they need a way for each participating node to agree on, or validate, each transaction without the help of a third party. This task is carried out by the consensus protocol, which is a key component of any blockchain network. There are various algorithms that have been developed to achieve this important goal, with each of them having a different effect on how the blockchain network can operate. In this article we’re going to give an overview of a few of these algorithms, with a focus on their pros and cons as well as how they may affect your application of the blockchain.
Why is a Consensus Needed?
As mentioned above, nodes within a blockchain network need to arrive at a consensus in order for the system to function. The inherent issue with a decentralized system which makes consensus difficult is best described by the Byzantine (biz-un-teen) Generals Problem. To combat this problem, blockchain networks need to be imbued with coding that allows them to operate successfully regardless.
When a new block is mined, the information within it must be validated in some way and “saved” so that the chain can continue with another block. Without first achieving this consensus, new blocks are not formed and the blockchain does not function. The ability of a system to resist the type of failures presented by the Byzantine Generals Problem is known as Byzantine Fault Tolerance (BFT).
Types of Consensus Algorithms
Multiple ways of reaching consensus have been tested and developed in the years since blockchain has come into use. The original proposal for a protocol as put forth in Nakamoto’s whitepaper and therefore, on which the Bitcoin blockchain operates, is a practical Byzantine Fault Tolerance (PBFT) known as Proof of Work. In the PoW protocol, miners must compete to have their computer be the first to crack the mathematical problem and release each new block, based on a cryptographic algorithm. Successful miners are rewarded with a set quantity of Bitcoin (6.25 coins), which increases the competition. Because each machine must complete multiple, intense calculations to mine the blocks and not every one will be successful, the PoW protocol consumes large amounts of electricity and so has been labeled as energy inefficient. The Bitcoin chain is noted as having used more energy than most countries do in one year. This will only get worse, since with time, the algorithm gets more difficult in order to maintain the time taken to process it. This means that computer processing power will need to increase continuously to keep up with this complexity. Such a process also means that any chance of scaling the system is greatly restricted since validations will be significantly slowed down with more transaction volume.
In light of the issues identified with the Proof of Work consensus algorithm, some blockchain developers have begun implementing Proof of Stake (PoS). Unlike PoW, this protocol selects the next block validator based on how much “stake” or wealth each miner has in the blockchain. PoS also does not reward successful miners with coin — they receive the transaction fees created in the process. While this approach greatly minimizes the amount of useless, excess energy wasted, it tends to create a ‘rich-get-richer, poor-get-poorer’ state of affairs. Ethereum is moving to a PoS mechanism for their Ethereum 2.0 system, which will allow much faster transaction speeds and lower energy usage.
In another step towards developing a more effective and efficient system, the Delegated Proof of Stake protocol was established. In this system, select validators are voted up or ‘delegated’ from a larger group of validators-in-waiting. The more tokens a participant in the system has, the more voting power they hold. The delegated participants are then the ones who can stake on mining new blocks. Competition is created here as there will always be participants waiting in the hopes of being selected to mine the next block. Scale and efficiency is quite high with this consensus mechanism.
Proof of Authority consensus takes a different approach in requiring validators to complete a number of steps and essentially stake their identity on the chain or in a public network. Candidates must pass a series of exams and prove they are in good moral standing before being selected. The validator pool remains pretty small at around 25 persons, making this system very efficient, yet not quite as automated or secure as something like Proof of Work.
With a Proof of Weight system, it is quite similar to PoS, however there is flexibility in what values can be staked in the system. Whereas PoS relies solely on the amount of currency each user has on the blockchain, the PoWeight algorithm can be set up to use different values, such as the amount of IPFS data a user stores, as a decider of who will successfully mine each block. PoWeight is the basis of a new protocol known as Byzantine Agreement. It creates consensus committees where the participants keep changing overtime, increasing security and fairness, although it also creates a level of centralization. This method proves highly customizable and scalable, however there is currently no extrinsic incentive for users to want to mine on such a network.
The Proof of Burn mechanism is another highly wasteful process where, instead of using high-powered machines, the blockchain validators send large amounts of cryptocurrency to an irretrievable address (effectively “burning” it) in exchange for the chance to to be randomly selected to mine the next block.
Proof of Elapsed Time (PoET) is a consensus system developed by Intel Corporation which is currently only used on permissioned networks. A permissioned blockchain network requires users to confirm their identity before joining. The PoET algorithm prevents high resource consumption by carrying out a fair lottery selection process based on the amount of time elapsed. It generates a random time duration for which the nodes must sleep, or can perform other functions. Each node guesses a time and the one with the shortest duration will wake up first and therefore have access to mine the new block. There are systems in place on this type of algorithm to ensure that nodes cannot automatically generate the lowest number to win each time.
A number of other consensus systems also exist and are continuously being developed on various blockchain networks with the goal of creating the most effective, efficient and scalable protocol for their specific use case. A few of these are Proof of Capacity, Proof of Existence and Proof of Activity.
What to Consider When Selecting a Blockchain Network
If you’re building a blockchain business and trying to decide which network to build on, it’s important to think about the aspects that will be most relevant to your use case. These include the size of your DAO or the number of transactions you expect to be processing. This will influence whether you can use something like Proof of Work or maybe a Delegated Proof of Stake approach will give more flexibility.
Consider the level of privacy users and information on your chain will need. For example, a health care system will certainly need to keep a large amount of data private, while allowing for transparency in certain processes. Data can be encrypted by a hash to allow verification by users without revealing all details. Some information can even be kept off the chain or stored on a sidechain to maintain privacy and restrict public access. Should your network be permissionless? Private? Maybe a hybrid setup would serve you best.
The use of tokens by new projects is sometimes arbitrary. Is it important that your users have tokens specific to your DAO, or does it make more sense to simply use an existing coin for your exchanges? Private networks may not need tokens at all, or maybe based on your growth plan, they can be introduced at a later stage. Do potential participants need an incentive to get on board? In that case, creating your own, new token is not likely to offer very much motivation as the value is sure to start off pretty low. Using an established coin will give you more clout and help convince users that joining is worth it.
In this quickly growing market it can be tempting to throw caution to the wind and join the bandwagon, but there are various strategies that can and should be implemented to ensure you are getting the most out of the system. Always consider first what exists and what features you will need to take advantage of in order to gain maximum value.
* * *
Looking to get into the Blockchain space or to continue growing your DAO? Unpluggd Digital provides services in on-chain software development including dApp creation, protocol implementation and more.
Reach out to set up a chat so we can get to work on your next project.