What is the Byzantine Fault Tolerance (BFT)?
Have you ever been the leader of a large group? Then you might understand how difficult it can be to make a decision that the whole group supports. However, this is also how it goes with the blockchain. This is because the participants of the blockchain will have to agree with each other on what will happen.
To manage this, there is the Byzantine Fault Tolerance (BFT). This is actually the basis for the blockchain and has also led to the various consensus algorithms that currently exist. We'll explain more about the Byzantine Fault Tolerance in this article.
What is the Byzantine Fault Tolerance (BFT)?
To fully understand what the Byzantine Fault Tolerance (BFT) algorithm is, we need to start at the beginning. And that is the blockchain. The blockchain is a decentralized system on which different participants can perform certain actions. For example, consider sending a transaction.
Once a transaction is sent to the network, the nodes (participating machines in the network) ensure that it is verified, validated, and finally stored in a kind of database. All nodes in the network have a copy of this database on their machine.
It is important to note that the network must reach consensus. This term gets its full meaning when more than half of the participants make a decision between different actions and come to an agreement. Often, in the case of blockchain, at least 51% of the network must agree on a particular decision.
But why is reaching consensus so important? Obviously, you don't want someone to perform certain actions that shouldn't be performed. Consider bugs, for example, but also attacks on the network, such as the 51% attack.
The founders of blockchain solved this problem using the solution that was also used in the Byzantine Empire.
The problem of the Byzantine generals
In the Byzantine Empire, the generals of the army had a problem. And that was that the Empire was much too big. In order to make a decision, they first had to go down to all the generals for a consultation. You can imagine that, because of the size of the Byzantine Empire, this was a very time-consuming job.
Two or more generals had to agree on when to attack an enemy. In doing so, they also knew that one or more of them might be a traitor. And that, of course, would not end well. So a solution had to be found for this.
The paradigm that emerges in this famous problem is the establishment of a configuration of commander and lieutenant, through which a consensus can be reached. This proved to be the best solution for all concerned.
How is the BFT applied to blockchains?
You are right to ask yourself what the story of the Byzantine army has to do with blockchain. However, it does.
As mentioned, it is important that the nodes in the blockchain
network can trust each other. When a node approves a transaction, it must actually be a valid transaction. If this is not the case, the blockchain could never be.
The moment nodes have validated transactions and have a block ready; the whole network will check this block. Does more than 51% of the network agree that everything is correct? Then the block, if it is the first one, is added to the blockchain.
However, the way this is done is different for every blockchain. The agreement is always that consensus must be reached, using Byzantine Fault Tolerance as the basis. How this is done is agreed upon through the consensus algorithm.
What is the consensus algorithm?
The consensus algorithm is an algorithm that determines how nodes should approve transactions in the blockchain network. Every blockchain has a different consensus algorithm. For example, consider Proof of Work (PoW), which is used by Bitcoin's blockchain. But Proof of Stake (PoS) is also increasingly used.
Proof of Work (PoW)
Proof of Work is all about computing power. The node that processed the transactions the fastest gets to add the block to the blockchain. Of course, only when the rest of the network approves the block.
This means that as a node you must have powerful hardware. Because the hardware is getting better and better, there will be a need for continuous reinvestment. In addition, Proof of Work also causes high energy consumption. This has already brought Bitcoin a lot of criticism and is one of the reasons that Ethereum is currently moving to Proof of Stake.
Proof of Stake (PoS)
The second-best-known consensus algorithm is Proof of Stake. This is not about computational power, but about how much you can bet.
If you want to validate transactions, you will have to bet a certain amount of money in the form of crypto
coins. We call this the stake. These coins will be held by the blockchain, so you can't access them if you are active as a node.
The moment a node does not do its job properly, and for example approves malicious transactions, it can lose (part of) its stake. So, this should be an incentive to do the job well. If the node decides to terminate its work as a node, it gets its stake back.
A concept that you have come across several times in this article is the 51% attack. To better understand the Byzantine Fault Tolerance and the consensus algorithm, it is good to know what the 51% attack is.
As mentioned, at least 51% of the network must agree on a decision. However, this is only safe if enough nodes participate in the network. If this is not the case, then someone can easily perform a 51% attack.
In such an attack, someone controls more than 51% of the network. This allows the attacker to approve transactions that should not be approved.
The attacker in this case is actually always out to destroy the blockchain. Suppose this happened to Bitcoin
, its value would collapse immediately. Thus, there is almost never any financial gain possible from a 51% attack when it comes to obtaining crypto coins.
Byzantine Fault Tolerance is a system that allows the blockchain to check each other for errors. This problem is quite difficult to solve. This is because when the algorithm is not working, someone can send incorrect transactions to the blockchain or make adjustments that should not be allowed.
Without the algorithm, a node can generate various random data by pretending to be an honest player. Fortunately, blockchains take advantage of Byzantine Fault Tolerance by using a certain type of consensus algorithm. Proof of Work and Proof of Stake are the best-known algorithms.
However, it is not entirely unrealistic that problems no longer arise. For example, it is also possible to perform a 51% attack to bypass the Byzantine Fault Tolerance. In doing so, a node with malicious intentions controls more than 51% of the network.