byzantine-fault-tolerance

Byzantine Fault Tolerance: Is BFT Important In Smooth Blockchain Performance?

The blockchain technology introduction in 2008 with a whitepaper on the peer-to-peer (P2P) electronic cash systems by Satoshi Nakamoto had changed the perception of technology. Over the years, blockchain technology has found several noticeable applications across several sectors other than finance. Slowly, Byzantine Fault Tolerance was included in blockchain. Keeping aside specific exceptions, the blockchain solutions are specifically tailored as being decentralized in nature. Various nodes that are arranged in a distributed network take care of a digital ledger that preserves a record of all transactions on the network.

All the participants must agree on the specific transactions for their validity and thereby imply the requirement for consensus mechanisms like the Byzantine Fault Tolerance or BFT. When you are going through various aspects of the Blockchain technology, you will often come across the term. However, the exact functions are unknown to many. This article will help you to uncover the basics of the so popular BFT. This will also include its foundation, benefits and use cases. But before that, you will be required to learn the basic blockchain working.

Blockchain Basics About Peers And Nodes

If you are curious to know about the Byzantine Fault Tolerance in blockchain, then you have to know how the consensus mechanisms work. Subsequently, you will also be able to find out how the military tactics fit into the equation with the blockchain technology and its applications.

The blockchain solutions run in the form of networks that allot equal rights and access to all the computers in the network. Directly, the nodes could communicate with each other. So what does a node mean? Every computer on the blockchain network is referred to as a node or peer. In a completely decentralized solution, no node or peer bears more power than the other nodes or peers.

Thus, a blockchain does not have coordinators, managers or directors to enforce rules and determine as well as punish the unacceptable behavior. On the other hand, the system depends on the fact implying that all of the nodes follow similar protocol or rules for entering the agreement.

When you will be looking for the agreement among all the nodes, you will come across a term “Consensus”. It literally means “general agreement”. Consensus is most important and a difficult task in the decentralized system devoid of any authorities. A major share of the nodes must agree on the validity or truth of transactions or information, thereby ensuring the proper functioning of the network or system.

However, the blockchain network must carry out consensus at regular intervals. Consensus mechanisms like the Byzantine Fault Tolerance are obligatory to deal with the uncertainty of some nodes that are misbehaving or failing. Additionally, some nodes might disagree with the consensus of the other nodes. Thus, it is very important to ensure that the system design can easily overcome such vulnerabilities.

What Is Byzantine Fault Tolerance (BFT)?

The Byzantine Fault Tolerance algorithm, commonly known as BFT, is a computer system’s ability to continue operating even if some of its nodes act maliciously or fail. The term comes from the hypothetical known as the Byzantine Generals Problem. As you would expect, this logical dilemma is regarding a group of Byzantine generals. Each of the generals possesses an army and a location surrounding a fortress and they need to decide as a group to attack or retreat.

If all of them make the same decision, they are successful. But, if there is a miscommunication or deceit causing some generals to attack while the others retreat, then the battle is lost. These types of faults are termed as Byzantine Faults. With any computer system possessing multiple nodes, each node could be considered a general. The Byzantine Fault Tolerance of a system refers to whether it can keep working even when some of the nodes go down or try to deceive it intentionally.

What Is The Importance Of Byzantine Fault Tolerance?

From the computing perspective, Byzantine Fault Tolerance is very crucial as it means that a system can keep on functioning even if some of the components stop working. Thus, anything that uses the computing system, like a space probe or an airplane, is required to be able to function properly when all of itrs nodes are not at its best. Learning about BFT is equally important if you invest in crypto stocks or the individual coins. It is a crucial element for the blockchains that handle the cryptocurrency transactions.

Brief Backstory & Mission Of BFT

Miguel Castro and Barbara Liskov had introduced the term as well as the BFT algorithm in the late 90s. It was then tailored to work efficiently as Asynchronous Byzantine Fault Tolerance devoid of any upper limit on the time of receiving a response in accordance to a concerned request. The practical BFT application has been curated for addressing the notable issues in the existing BFT models. Nevertheless, it is crucial to learn about the BFT model as it was originally created for understanding the asynchronous BFT or practical BFT.

The “asynchronous” property of the Byzantine Fault Tolerance overcomes the challenge of the fault tolerance, which is that of the timing. Most forms of BFT assume that there is a maximum threshold of message latency while considering consensus. An ABFT or Asynchronous Byzantine Fault Tolerance network aims to eliminate this assumption and permits for some messages to be indefinitely delayed or lost.

The origins of the Byzantine Fault Tolerance goes back to 1982 with the foundation of the Byzantine Generals Problem. Marshall Pease, Leslie Lamport and Robert Shostak created the Byzantine Generals Problem and then subsequently gave rise to the BFT. The concept of BFT offers a promising relationship with the military tactics in a scenario where various Byzantine Generals gather around an enemy city prior to attacking it. Some of the famous highlights of the Byzantine Generals problem might help in understanding the actual operation of the Byzantine Fault Tolerance consensus algorithm.

  • The various Byzantine Generals command their respective units at variable positions outside the city that they are about to attack.
  • The generals are able to communicate with each other via the messengers where they can send one message at a time.
  • The Byzantine Generals must possess cooperation and agreement on a specific plan of action for successfully attacking or retreating.
  • If all the generals will attack at the same time or even all of them retreat at the same time, there will be no problem. Nevertheless, if one general. Retreats while the other attacks or one attacks while the others retreat, the general will automatically end up losing. Thus, the end results will be bad for all the generals and their units.
  • Another very significant point in the Byzantine Generals Problem is the fact that some of the generals are not at all loyal. These generals might try to send the wrong or even manipulated information to the other generals in order to confuse them.

Thus, the Byzantine Fault Tolerance model or BFT model might help in resolving this problem. The generals would require an algorithm that might guarantee the below-mentioned conditions.

  • All of the loyal generals would act upon and agree on the same action plan.
  • The Byzantine army’s loyal generals would not abide by a bad plan under the influence of the traitor generals.
  • The loyal generals would abide by all the specified rules in the algorithm.
  • The loyal generals of the Byzantine army must reach a consensus regardless of the traitor’s actions.
  • Most importantly, the loyal generals must also reach an agreement on a reasonable and specific plan.

How Does BFT Relate To Blockchain?

The blockchain is the way cryptocurrencies validate, process and record all the transactions. For a transaction to go through, a group of nodes have to agree that it is valid. Every blockchain network possesses a consensus algorithm that are the specific rules the nodes have to follow in order to reach an agreement on the transactions.

The consensus algorithm is a way the blockchain achieves the Byzantine Fault Tolerance. As the cryptocurrencies are decentralized, each of them faces a large-scale version of the Byzantine Generals Problem. The blockchain is required to be able to work even if it possesses nodes that are not working correctly or are offering false information.

Bitcoin (BTC) had first attempted to solve this issue with its Proof of Work consensus. In this consensus algorithm, the miners are required to solve the complex equations utilizing the specialized computer equipment. The first miner that solves an equation correctly, acquires the right to add a block of transactions and thereby earn rewards. If you fail to produce the correct data, congratulations! You have spent energy and time for nothing.

Proof of Stake is another popular type of consensus mechanism that involves the validators staking their cryptocurrency, meaning that they lock their cryptos in a wallet for the right to verify the transactions. If the protocol enables you to add a block to the blockchain, then you will be eligible to earn cryptocurrency rewards. However, if you try to approve tye invalid transactions, then you will lose some or all of your staked digital coins.

Both the consensus algorithms possess Byzantine Fault Tolerance to an extent as they can work properly even if some of the nodes are providing the incorrect data.

What Do You Mean By Practical Byzantine Fault Tolerance?

The Practical Byzantine Fault Tolerance (pBFT) is a system that possesses a primary node and secondary nodes. These nodes perform together for reaching a consensus. This makes this system one of the solutions to the Byzantine Generals Problem.

Below is a primary breakdown of how the practical BFT works:

  • The client makes a request to the primary node.
  • That request is sent to the secondary nodes by the primary node.
  • The nodes process the request, offers the service and responds to the client.
  • The client waits until it has received the same response from the m+1 nodes, where the “m” is the maximum number of malicious or faulty nodes the system permits.

In the practical BFT system, the maximum number of the malicious or the faulty nodes cannot be equal to or greater than one-third of the total nodes of the system.

The Pros & Cons Of The Byzantine Fault Tolerance

Below are some of the important benefits and pitfalls of BFT.

Pros

  • It does not require significant computing power or usage of energy as there are no miners solving the complex equations for every block of transactions. This makes it more environment friendly than the proof of work.
  • The transactions do not require multiple confirmations. If the nodes are in agreement regarding a block of transactions, then it is immediately confirmed.
  • As all the nodes can get in on the action, they all can share in the rewards. There is not much variance between the nodes that earn rewards like there can be in proof of work and the proof of stake.

Cons

  • It is vulnerable to the Sybil attacks. The attack is named after a book about a woman with multiple personality disorder. In this attack, one person is able to receive control of a large portion of nodes. The more nodes it possesses, the harder it is to launch a Sybil attack.
  • It seeks for communication between the nodes at every step of the process. This, however, consumes some time. This might be a problem from a scalability standpoint.

The Istanbul BFT Consensus Algorithm

Istanbul Byzantine Fault Tolerance, commonly known as the IBFT is a simple and elegant BFT consensus algorithm that has been used to implement the state machine replication in the \emph{Quorum} blockchain. It assumes a partially synchronous communication model, where safety does not rely on any timing assumptions and only liveness depends on periods of synchrony. The algorithm is leader-based, deterministic, and optimally resilient – tolerating f faulty processes out of n, where n≥3f+1. During periods of good communication, IBFT achieves termination in three message delays and has O(n2) total communication complexity.

The Istanbul BFT has been inspired by the paper by Castro-Liskov. Nevertheless, the original PBFT requires quite a bit of tweaking in order to make it work with the blockchain. First of all, there is no specific “client” that sends out the requests and awaits the results. Instead, all the validators can be seen as “clients”.

Additionally, in the bid to keep the blockchain progressing, a proposer will be selected continuously in each round for creating block proposals for consensus. Also, for each of the consensus results, it is anticipated to generate a verifiable new block rather than a bunch of write/read operations to the file system.

Bottom Line

It is quite clear that the Byzantine Fault Tolerance or BFT possesses a significant role in transforming the approaches used in the consensus. Slowly the blockchain applications are gaining momentum throughout various sectors. However, there are several concerns emerging in the contemporary blockchain networks.

Consequently, it is important to look at BFT as a crucial instrument to ensure that the network functions normally irrespective of the malicious actors. Blockchain is transparent and accessible and thus it can invite several unwanted participants wishing to take out their private or individual interests. So, a clear understanding of the consensus mechanisms like the BFT and its improvisations like the Practical BFT (pBFT) is necessary.

Check Also

sushiswap-review

SushiSwap Review: A Comprehensive Guide To The Decentralized Exchange

Are you looking for an alternative to traditional centralized exchanges? If so, you might want …

Leave a Reply

Your email address will not be published. Required fields are marked *