10 years of blockchain
An updated Exchange, better UI and more languages
Blockchain and finance in 2019
The Fundamentals of Blockchain: Byzantine Fault Tolerance Systems
The term ‘blockchain’ has been gaining Google search popularity since late 2003. Over time, interest increased, with a massive escalation in December 2017, when the price of Bitcoin skyrocketed. So what does Google have to say about blockchain?
“A system in which a record of transactions made in bitcoin or another cryptocurrency are maintained across several computers that are linked in a peer-to-peer network.”
Let’s examine what this means. Blockchain works as a decentralized ledger which is maintained by a distributed network of computers, known as nodes. Each transaction that needs to be recorded on this ledger must first be validated by this network of nodes. Following such verification, a secure block is created with the details of the transaction, which then is added to the chain of existing blocks.
This sounds like the perfect way to enable a trustless system, which does not have to rely on a central authority. But what happens when the nodes in the network do not agree on the current state of the system? Well, the perfect solution could fail.
That is why consensus is the core foundation of blockchain.
What is Byzantine Fault Tolerance?
The problem of achieving such a consensus dates back to 1978, well before the development of the first blockchain. Known as the Byzantine Generals’ Problem, here is a simple way of explaining it:
Imagine a nation with four generals, each with their own army. These generals and their armies are situated at four different locations around an enemy fort. Each general has two options — to retreat or to attack. Regardless of what they choose, as long as they all choose the same option, the nation will remain safe. In other words, consensus is required. However, the situation is as simple as it appears: the generals can only communicate with one another via private messages carried by a courier. What if one of the messages is lost? What if the enemy bribes one of the carriers? What if a general is secretly planning a malicious takeover?
You may be thinking that the security of this nation is a Herculean task, which it is. In much the same way, so is distributed systems achieving consensus, the failure of which would render the entire concept of decentralization futile. Hundreds of thousands of nodes have to agree while validating a particular transaction or message in order to ensure successful execution of the peer-to-peer technology.
However, all is not lost. There is a solution: the Byzantine Fault Tolerance. The purpose of this solution is to allow a blockchain to keep functioning even when some of the nodes are not in consensus with the majority. In this way, any mechanism which does not allow the Byzantine Generals’ Problem to result in a complete failure is part of the Byzantine Fault Tolerance (BFT). Over time, to enable blockchain to work, several consensus mechanisms have been developed as part of BFT to run a safe and tamper-proof ledger in the absence of any central control.
What are Consensus Mechanisms?
A consensus mechanism comprises protocols and algorithms to ensure that the majority of nodes in a network arrive at a consensus, while defeating the Byzantine Generals’ problem. The presence of such mechanisms does not allow a peer node to promote misleading information about a transaction, defending the original purpose of a blockchain.
While all blockchains are the same in what they intend to accomplish by throwing off centralized systems and leveraging the power of peer-to-peer mechanisms for transparent and secure systems, they can differ in the consensus mechanism that they use. Here are the some of the most popular consensus mechanisms.
Types of Consensus Mechanisms
Let’s explore the prominent types of consensus algorithms used in the cryptocurrency world.
Proof-of-Work was the first-ever blockchain consensus mechanism. It was deployed by Bitcoin in 2009, and has been used since then by several other popular cryptocurrencies, including Litecoin. As the name suggests, each node has to prove itself worthy of participating in the consensus by doing some “work.” This work typically consists of solving complex mathematical puzzles, demanding excessive computational power. The first node who solves this puzzle is rewarded for the work.
This serves as a Byzantine Fault Tolerance mechanism because a node has to hold computational power that totals more than 51% of total network power to be able to authenticate a false transaction — an almost impossible task, given the power that it takes to validate each block. While it is this computational power that makes Proof-of-Work a consensus mechanism, it also has serious consequences for the environment due to outrageously large consumption of energy. It is also less preferred by newer cryptocurrencies because of the long processing time that it takes to validate a single transaction.
Despite these flaws, today approximately 80% of the total market cap is dominated by the 524 coins that use Proof-of-Work.
Proof-of-Stake (PoS) was largely developed to overcome the many inherent pitfalls of the Proof-of-Work mechanism. First used by Peercoin, Proof-of-Stake places a restriction on the number of blocks that a node can validate. A node can only authenticate as many transactions as its stake in the cryptocurrency or in other words the number of coins that it holds. This solves the energy problem by limiting the computational power that one node can spend on validating a transaction.
However, PoS is prone to the “tragedy of commons,” when the rewards for an individual node continue reducing, and keep dropping out of the system as a result. This makes the entire system susceptible to a 51% attack wherein a single node or a pool of nodes could end up holding more than 51% of the total computational power of the network. 413 coins, including BNB, Stellar, Dash, and Neo use Proof-of-Stake.
In an attempt to speed up the processing time it takes for a transaction to complete while maintaining the incentive structure for nodes, the Delegated-Proof-of-Stake (DPoS) is used by such coins as EOS, Lisk, and Steem. As a variation of the Proof-of-Stake mechanism, DPoS requires nodes to vote for other users who they trust to participate in the validation process. The nodes with the highest votes then authenticate the transactions.
This means of delegation and voting renders fairness, and avoids a 51% attack on the whole process. Furthermore, the votes are weighed in accordance with the stake that a voter node holds. This means that to avoid a loss of income and reputation, a node with a high stake will not choose someone who might be capable of malicious attacks. As of end of June 2019, only 18 coins use the Delegated-Proof-of-Stake consensus mechanism.
Practical Byzantine Fault-Tolerant (pBFT)
The pBFT consensus mechanism was first introduced in a paper published in 1999. Its goal was to introduce improved efficiency by allowing thousands of transactions to be processed within a second. It begins by assuming that there are certain malicious nodes in the system. All the nodes then communicate with each other with an aim to bring together all the honest nodes who then come to an agreement regarding the condition of the system, based on a majority rule.
However, to avoid failure like in the Proof-of-Work mechanism, the malicious nodes must not surpass one-third of the total nodes in the system. Similarly, higher the number of nodes, better is the security of the blockchain. Given the communication that the nodes are required to have, this mechanism can also result in an exponential rise in messages. This mechanism is currently being leveraged by Hyperledger Fabric and Zilliqa.
Proof of Elapsed Time
Based on a lottery system, the purpose of the Proof of Elapsed Time is to optimize resource use, reducing energy consumption while simultaneously improving efficiency. All the participating nodes randomly choose a waiting time, which must elapse before they can participate in the process. The first node that completes the waiting time wins the right to validate a block, together with the associated reward.
There are two prerequisites for the successful implementation of Proof of Elapsed Time: that the wait time is chosen randomly, rather than with an intention to be the first to finish, and that the node completes its wait time before validating a transaction. In 2016, Intel developed a chip to render both these requirements possible. It is a popular mechanism being used by permissioned blockchains, of the sort which need all nodes to first identify themselves, such as Hyperledger Sawtooth.
For a self-regulating system such as blockchain, where there is no central authority but a peer-to-peer network for validating transactions, robust consensus mechanisms are required to safeguard security. When hundreds of thousands of participants are involved in working on a distributed ledger for rewards, Byzantine Fault Tolerance emerges as a necessity for blockchain to exist.
There are several consensus mechanisms being used by various coins to optimize their blockchains. Each comes with its own merits and weaknesses, and projects are adopting a combination of two or more mechanisms to achieve the desired outcome. However, without the existence and implementation of these Byzantine Fault Tolerant Systems, blockchain technology cannot be leveraged for its purpose of complete decentralization.