A problem that refuses to go away can become your problem, too.
The digital world we are in today relies heavily on communication and the exchange of information. The faster, the better? Maybe. After the pandemic hit, the Internet became all the more the main means upon which we relay messages from one point to the other in real-time. But information of all sorts also floods the virtual space that it can be easy to get lost and confused as to what is real, authentic, and true information. If that is the case in the current modernities, what more in ages past?
The Byzantine Generals’ Problem in 600 AD prevails to this day
Here is a scenario to better understand the Byzantine Generals’ Problem
Two large allied Byzantine armies are set to attack an enemy city. But these two armies are separated and are located on opposite sides of the city. To be able to overcome the enemy city, the two armies must attack in coordination. In other words, they need to attack at exactly the same date and time. The enemy city cannot be taken lightly. It can repulse one army attack from either side, but it cannot strongly defend itself against two coordinated attacks.
The Byzantine generals of both armies must find a way to agree when would be the exact moment they would launch the coordinated attack. So, to communicate a battle plan, a spy messenger is sent back and forth from one army to the other but without any recourse other than to pass through the enemy city.
The message can go like this:
“This is Byzantine General of Army 1. We are going to attack on Monday at 6 in the morning. Can we count on you to attack with us?”
The spy messenger runs through the enemy city to deliver the message to the Byzantine General of Army 2.
The Army 2 Byzantine General responds.
“We cannot afford Monday. We just came from a long march. We need to rest. How about Wednesday? Can we count on you if we attack on Wednesday at 6 AM?”
The Spy messenger then goes back and again, passes through the enemy city to deliver the message to Army 1 Byzantine General. The spy messenger goes back and forth until an agreement is reached.
But here is the catch:
The spy messenger is always at risk of getting caught or killed while passing through the enemy city and be replaced by an impostor spy messenger. Worse, the spy messenger can turn traitor. If this happens, the battle plan is sabotaged, the message is compromised, and the armies will be deceived to attack at different times and would so taste a resounding loss.
That is the Byzantine Generals’ Problem:
There is no way to check or prove if the message is real, authentic, and true. How much more if one of the Byzantine Generals becomes a traitor?
The dilemma can get more complicated when more generals are involved.
To solve the problem, generals must be loyal to the core to carry out plans
The more spy messengers sent, the greater the chances of getting the message across to the generals. The more generals who are loyal, the better for the plan to be carried out. And if the majority of the generals were able to receive the message, the better for the plan to be carried out with a better outcome, regardless of any attack or even a retreat.
This is called consensus
The Byzantine Generals’ Problem is an analogy illustrating the need to implement a consensus for the distributed ledger technology (DLT) to work. In today’s distributed blockchain network, the generals are the participating nodes or computers that are equal in hierarchy. They all need to agree to the battle plan or set of rules. For a transaction to be included in the block, it needs the approval and verification of all participating nodes, beating impostors and traitors, and neutralizing corruptive nodes to the sides. This is not an easy thing to do since it requires heavy computing work, hashing, and constant communication between thousands of nodes, not just two or three generals.
Thus, a particular type of consensus mechanism must be put in place to achieve this, thereby allowing thousands of nodes to work in unison to secure and update the ledger.
Enter the Byzantine Fault Tolerance
The Byzantine Fault Tolerance is the characteristic of a system that can resist a set of failures derivative of the Byzantine Generals’ Problem. It means that the system is able to continue operating by tolerating the faults or malicious actions of some nodes. There are multiple ways in which to build a BFT system on a blockchain so much so that there are varieties of consensus algorithms that can be applied to achieve consensus. The most common are Proof of Work and Proof of Stake. The majority of nodes within the network must agree to follow and execute the same course of action in order to prevent total failure. Therefore, to achieve consensus, there must at least be two-thirds of the total participants who follow the rules. If the majority turns against the rules, the network becomes vulnerable to a 51% attack.
It is vital for any network to apply and sustain a robust consensus algorithm to support efficient communication within the network. Though faults and limitations continue to exist, efforts to innovate in solving the Byzantine Generals’ Problem are clearly visible in various Byzantine Fault Tolerance approaches.