Byzantine General Problem

·       Due to the decentralized nature of the blockchain,

o   it becomes difficult to reach conclusions regarding certain activities on the network.

 

·       For the computation of any data that the blockchain is processing,

o   there needs to be a common conclusion regarding the state of data among all participants.

 

·       This conclusion, known as consensus,

o   is one of the most important parts of the blockchain architecture.

 

·       However, due to its inherent distributed nature,

o   Participants on the blockchain will be functioning according to what incentivizes them.

 

·       The decisions they take –

o   will also be based on the various kinds of information that they have on hand.

 

·       To ensure the frictionless functioning of the blockchain in a network,

 

o   where there are multiple distinct actors, consensus needs to be reached consistently.

 

This is done by solving a long-standing problem known as the Byzantine Generals Problem.


 

What Is The Byzantine Generals Problem?

·       The Byzantine Generals Problem is a term used in computing to denote a situation:

o   wherein certain components of a system may fail if participants don’t agree on a ‘joint strategy’ to deal with the problem.

·       The problem assumes that some of the participants are corrupt, spreading misinformation or unreliable in some way.

The problem can also be described as such.

·       If there survives a city

o   which can only be taken over only by the concerted attack of multiple armies,

o   then the armies are required to collaborate and attack the city.

·       However, in a situation where there are an odd number of armies, common consensus must be reached

o   among all the participants in order to successfully mount the attack.

·       However, certain generals of some armies choose to disagree on attacking the city,

o   leading to a critical system failure.

The required task is not undertaken due to disagreement by unreliable actors.

·       This failure is known as a Byzantine Fault,

o   and represents a situation in computing where it is unclear whether a component in a network is working properly or not.

·       This is generally extended to blockchains as each node is considered a ‘general’ who contributes to the consensus of a network.

Solutions To Achieving Byzantine Fault Tolerance (BFT)

·       There are multiple solutions that were proposed before the implementation of a true Byzantine Fault-tolerant consensus mechanism in the form of Bitcoin’s Proof-of-Work algorithm.

·       One of the first BFT systems is only possible if the number of malicious actors is not more than 1/3rd of the total number of actors on the network.

·       Another BFT system also adds unforgettable message signatures to ensure that messaging is verified. This can be conducted through public-private key encryption.

This led to the creation of many BFT algorithms such as the Practical BFT (pBFT) algorithm proposed by Miguel Castro and Barbara Liskov in 1999. The pBFT algorithm created multiple other BFT algorithms that improved on it in many ways.