An American computer scientist named Barbara Liskov and a computing expert named Miguel Castro introduced a consensus algorithm called Practical Byzantine Fault Tolerance (pBFT) in the late 90s. The consensus algorithm pBFT could work efficiently in asynchronous systems was a purpose behind its design. While solving problems of a consensus algorithm called Byzantine Fault Tolerance (BFT) was a goal of pBFT. Distributed computing and blockchain are application areas of pBFT.
In BFT, a consensus can be reached in the situation where some nodes fail to give their responses while some nodes give incorrect information in their responses. Nodes in a distributed network can use BFT to reach the consensus. Safeguarding against the failure of a system is an objective of BFT. The collective decision making of correct nodes and faulty nodes can be implemented. The influence of the faulty nodes can be minimized. Byzantine Generals’ Problem has contributions in the development of BFT.
A computer scientist named Leslie Lamport along with other computing experts called Robert Shostak and Marshall Pease explained Byzantine Generals’ Problem appropriately in 1982.
You have to create a picture of the Byzantine army in your head in order to understand this problem.
*The Byzantine army is also known as the Eastern Roman army. The primary military body of the Byzantine armed forces was the Byzantine army. The Byzantine army had the experience of working with the Byzantine navy. While the Byzantine Empire is known as the Eastern Roman Empire or Byzantium. Byzantium is now recognized as Instanbul. A citizen of Byzantium is known as a Byzantine.
- The Byzantine army has multiple divisions
- Each division of the Byzantine army has its own general
- Each general will command its own division
- The multiple divisions stand in an outside place of an enemy city
- Generals will use messengers to communicate with each other
- They observe their enemies at first, then they will decide upon a common plan of action
- Some traitors can be present in any of the divisions by acting as loyal generals. They can create problems in reaching for a consensus
- The generals will decide a particular time of attacking the enemy city. A huge number of Byzantine soldiers is required for attacking simultaneously
- An algorithm can be used to guarantee
- All loyal generals who belong to the Byzantine army should decide upon a common plan of action
- They should not be influenced by some traitors for the adoption of a plan which is bad
- They should do work according to what is there on the algorithm
- A consensus should be reached despite traitors who do whatever they want to do
- The agreement of the loyal generals should be upon a plan which is reasonable
If good nodes reach a consensus, then BFT will be achieved. Nodes who work correctly are known as good nodes. A “default vote value” can be given to those messages which are missings. A particular node has to send a message within a fixed time. Otherwise, the message will be considered as faulty. If a majority of nodes gives correct information in their responses, then a ‘default response’ will be assigned.
Leslie Lamport demonstrated that, if 2m+1 correctly working processors are there, then a consensus will be reached despite a maximum number of faulty m processors. While an extremely large number of processors should be strictly honest. The extremely large should be over two-thirds.
A fail-stop failure and an arbitrary-node failure are two types of Byzantine failures.
In the fail-stop failure, a node will fail. Then, the node will not work further
In the arbitrary-node failure, an output can be either inaccurate or purposely misleading. Several devices of a system can get a different output.
Energy efficiency, transaction finality, and low reward variance are the benefits of pBFT.
No need for nodes to perform a complex mathematical equation to achieve a consensus. Therefore, a huge amount of energy will not be required. The combination of pBFT and PoW is used by Zilliqa. For every 100th block, this combination is used.
If nodes finalized and agreed upon transactions of a block, then there will be no need for multiple confirmations of the transactions. In PoW, every node verifies transactions individually in order to add the block to the existing blockchain. 10-60 minutes are hardly required for the confirmation of the transactions. The confirmation time of transactions depends upon a number of nodes.
Each node will respond to a client’s request by taking part. pBFT can be used to incentivize each node. Nodes who help in decision making are rewarded.
This article is for informational purposes only. The information is provided by Practical Byzantine Fault Tolerance (pBFT): Complete Guide For Beginners-1 and while we endeavor to keep the information up to date and correct, we make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability or availability with respect to the website or the information, products, services, or related graphics contained on the post for any purpose. It is not an offer or solicitation of an offer to buy or sell, or a recommendation, endorsement, or sponsorship of any products, services, or companies. The Blockchain Cafe does not provide investment, tax, legal, or accounting advice. Neither the company nor the author is responsible, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with the use of or reliance on any content, goods or services mentioned in this article.