Practical Byzantine Fault Tolerance (pBFT), developed by Barbara Liskov and Miguel Castro in 1999, is a consensus algorithm designed to address robustness issues and work efficiently in asynchronous systems. pBFT is well-optimized for low overhead time – it processes lots of requests per second with a little increase in latency. The protocol was actually designed to give solutions to several problems inherent in the already available Byzantine Fault Tolerance protocols. The use of pBFT is applicable to Blockchain and distributed computing.
What is Practical Byzantine Fault Tolerance?
The pBFT protocol focuses mainly on providing a practical Byzantine state machine replication that endures Byzantine faults and by assuming that there are manipulated messages and independent node failures transmitted by certain, independent nodes. The pBFT protocol is developed to work efficiently in asynchronous systems. Like stated above, it is optimized for high performance with an impressive low overhead time without a significant increase in latency.
How Does Practical Byzantine Fault Tolerant Works?
In the pBFT protocol, all of the nodes are organized in a sequence such that one node is the principal node while the others are the backup nodes. All of the nodes within the pBFT protocol communicate with one another with the goal of enabling honest nodes to reach a consensus on the state of the protocol through a majority. In the system, nodes transmit messages with one another so heavily, hence, the system must ensure that these messages are from the right peer node and are not modified during the transmission.
In order for the pBFT protocol to function properly, the number of Byzantine faults must neither be equal to nor surpass one-third of all nodes in the pBFT protocol in a given vulnerability window. The pBFT protocol works in a very similar way to the Proof of Work (PoW) concept in that the more the number of nodes in a pBFT network, the more secure the pBFT network becomes.
pBFT consensus algorithm rounds are referred to as views, which are broken down into four stages:
- A request is sent from the client to the principal node to initiate a service operation.
- The principal node transmits the request to the other backup nodes.
- The request is executed by the backup nodes and the reply is sent back to the client.
- The client receives g+1 replies from several nodes with the same result, where g is the maximum number of Byzantine faults (malicious nodes) allowed.
During each view, the principal node is changed and can be replaced with the “view change” protocol if a specific period of time has elapsed without the principal node transmitting the request. More so, a large majority of honest nodes can determine when the principal node is faulty and immediately replace it with the next principal node in-line.
Advantages of Practical Byzantine Fault Tolerant
- Energy efficiency: Unlike the PoW concept, distributed consensus can be easily achieved by the pBFT network without the need for complex mathematical computations. For instance, some pBFT protocols use the PoW system to prevent Sybil attack, but only after a set number of blocks (like 100) and not for every block.
- Transaction finality: The transactions on pBFT protocols do not require multiple confirmations like in PoW once the transactions have been finalized and agreed upon.
- Low reward variance: Just like the PoW, pBFT protocol requires every node within the network to take part equally in responding to the request sent from the client. Therefore, every node within the network can be incentivized. This leads to low variance in reward to the nodes that help in decision making.