DEV Community

Cover image for Byzantine Generals Problem
Ali Ogun
Ali Ogun

Posted on • Originally published at Medium

Byzantine Generals Problem

Byzantine Generals Problem

A Byzantine fault is a state of a computer system, particularly distributed computing systems, where components may fail and there is imperfect information on whether a component has failed. It is also known as a Byzantine generals problem, interactive consistency, source congruency, error avalanche, Byzantine agreement problem, and Byzantine failure. The phrase gets its name from an allegory known as the “Byzantine generals problem”, which was created to explain a scenario in which the system’s participants must agree on a coordinated approach to prevent catastrophic system failure, yet some of these individuals are unreliable.

A server, for example, may inconsistently appear to failure-detection systems as both malfunctioning and working while exhibiting various symptoms to various observers in a Byzantine fault. It is challenging for the other components to declare it failed and block it from the network since they first need to agree on which component actually failed. A fault-tolerant computer system’s resistance to such circumstances is known as byzantine fault tolerance (BFT).

Consider a group of generals attacking a fort as an example of the flaw in its most basic form. The generals must determine whether to advance or retire as a group; some may favour advance while others favour retreat. The most crucial factor is that all generals come to an agreement on a strategy since a few generals’ haphazard attack would result in a rout and would be worse than either a coordinated attack or a coordinated retreat.

The issue is made more difficult by the existence of treacherous generals who might not only vote for a poor strategy, but also do so selectively. For instance, the ninth general may send a vote of attack to the remaining generals and a vote of retreat to the four generals who support attacking while the remaining four generals support retreating. While the remainder will attack (which might not go well for the attackers), those who obtained a vote to retreat from the ninth general will retreat. The generals’ physical separation from one another and requirement to convey their votes via messengers who might not deliver them or might fabricate votes adds to the difficulty of the situation.

Some Solutions

In 1982, Lamport, Shostak, and Pease described a number of pioneering solutions. They started off by noticing that the Generals’ Problem may be reduced to solving a “Commander and Lieutenants” problem, in which all faithful Lieutenants must act together and that their actions must match what the Commander ordered, assuming the Commander is loyal:

  • One method takes into account circumstances in which signals may be faked, but they would still be Byzantine-fault tolerant so long as there were less than one-third of the generals who were disloyal. It basically comes down to showing that the one Commander and two Lieutenants problem cannot be handled if the Commander is a traitor. Dealing with one-third or more traitors is impossible. To illustrate this, imagine that we have a traitorous Commander A and two Lieutenants, B and C. When A orders B to attack and C to retreat, and B and C communicate with one another by forwardeding A’s message, neither B nor C can determine who the traitor is because it may not necessarily be A — the other Lieutenant may have forged the message claiming to be from A. It can be shown that if n is the number of generals in total, and t is the number of traitors in that n, then there are solutions to the problem only when n > 3*t* and the communication is synchronous (bounded delay)

  • Unforgeable message signatures are required for the second solution. Digital signatures (in contemporary computer systems, this may be accomplished in practise via public-key cryptography) can offer Byzantine fault tolerance in the presence of an arbitrary number of betraying generals for security-critical systems.

You may hear the term “Byzantine Generals Problem” also in Blockchains. Blockchain is a public, distributed ledger that contains the records of all transactions. If all users of the Bitcoin network, known as nodes, could agree on which transactions occurred and in what order, they could verify the ownership and create a functioning, trustless money system without the need for a centralized authority. Due to its decentralized nature, blockchain relies heavily on a consensus technique to validate transactions. It is a peer-to-peer network that offers its users transparency as well as trust. Its distributed ledger is what sets it apart from other systems. Blockchain technology can be applied to any system that requires proper verification.[*]

In terms of distrbiuted systems; a source processor is assumed to broadcast its initial value to another processor in the system in accordance with the Byzantine agreement problem notion. To select a source processor, sequential ordering is used and a source processor is chosen at random.

All non-faulty processors must agree on the same value in order to obtain the byzantine agreement procedure. The source processor might not always be defective. Then, other processors do not use its starting value.

The goal of the Byzantine problem is to develop defences against failures in which system components fail in unpredictable ways, such as by processing requests erroneously, corrupting their local information, or generating inconsistent or wrong outputs. The Byzantine failure simulates real-world conditions in which computer and network hardware failures, network congestion, disconnection, and malicious attacks can cause computers and networks to behave in unexpected ways.

In an article published by MICHAEL J. FISCHER, NANCY A. LYNCH, and MICHAEL S. PATERSON; they have shown that a natural and important problem of fault-tolerant cooperative computing cannot be solved in a totally asynchronous model of computation. These results do not show that such problems cannot be “solved” in practice; rather, they point up the need for more refined models of distributed computing that better reflect realistic assumptions about processor and communication tim- ings, and for less stringent requirements on the solution to such problems.

To sum up, we find ourselves at the nexus of creativity and history as we reach the end of our adventure through the complex world of the Byzantine Generals Problem. This age-old puzzle, which was inspired by the generals of the Byzantine Empire, has survived the test of time and now paves the way for contemporary technologies.

The underlying ideas of blockchain technology and distributed systems are intimately resonant with the nature of the challenge, which is attaining consensus and order in the face of deceit and ambiguity. Just as it previously directed commanders seeking victory behind the walls of Byzantium, The Byzantine Generals Problem acts as a beacon, directing us through the maze-like intricacies of networked communication.

The Byzantine Generals Problem is an enduring challenge in the blockchain realm, necessitating creative solutions to guarantee that ledgers are immutable, trust is upheld, and digital transactions are secure. This emphasises the importance of the Byzantine Fault Tolerance (BFT) algorithms, consensus mechanisms, and cryptographic protocols that now underpin the decentralised currency and smart contract foundations.

The Byzantine Generals Problem is a signal for distributed systems engineers and architects to take up arms. It serves as a reminder that reaching consensus in a networked environment where components may malfunction or act maliciously is a riddle requiring creative solutions. It encourages us to create systems that, like those ancient generals, can cooperate and have faith in the face of uncertainty.

As we leave the Byzantine Generals to their ancient strategies, we step into the future, armed with the wisdom they imparted. Their challenge has evolved, but the quest for consensus and order endures. It’s a reminder that in the ever-expanding landscape of technology, the lessons of the past continue to shape the possibilities of tomorrow. So, with Byzantium as our guide, let us continue forging ahead, navigating the Byzantine labyrinth of the digital age, and seeking innovation amidst the echoes of history.

Top comments (0)