A problem that refuses to go away can also become your problem.
The digital world we are in today is heavily dependent on communication and information exchange. The faster the better? May be. After the pandemic, the internet became even more the main means by which we relay messages from one point to another in real time. However, information of all kinds also floods virtual space, so it can be easy to get lost and confused about what real, authentic and true information is. If this is the case in modern times, what more in the past?
The problem of the Byzantine generals in AD 600 is prevalent to this day
Here is a scenario to better understand the problem of the Byzantine generals
Two large allied Byzantine armies are to attack an enemy city. But these two armies are separate and are on opposite sides of the city. In order to overcome the enemy city, the two armies must attack in a coordinated manner. In other words, they must attack at exactly the same time. The enemy city cannot be taken lightly. It can repel an army attack from both sides, but cannot defend itself strongly against two coordinated attacks.
The Byzantine generals of both armies must find a way to agree on exactly when the time they would launch the coordinated attack. To communicate a battle plan, an espionage message is sent back and forth from one army to another, but with no other option than to get through the enemy city.
The message can be:
“This is the Byzantine General of Army 1. We will attack on Monday at 6am. Can we count on you to attack with us? “
The espionage messenger runs through the enemy city to deliver the message to the Byzantine general of Army 2.
The Byzantine General of Army 2 replies.
“We can’t afford Monday. We just got back from a long hike. We need to rest. How about wednesday Can we count on you if we attack at 6 a.m. on Wednesday? “
The spy delivery then goes back and goes through the enemy city again to deliver the message to the Byzantine general of the 1st Army. The espionage bid goes back and forth until an agreement is reached.
But here’s the catch:
The espionage command is always exposed to the risk of being caught or killed on its way through the hostile city and being replaced by an espionage command of the fraudster. Worse still, the espionage command can turn into a traitor. In this case, the battle plan will be sabotaged, the message compromised, and the armies fooled into attacking at different times, costing a resounding loss.
This is the problem of the Byzantine generals:
There is no way to check or prove that 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 remain true to the core in order to carry out plans
The more espionage bids that are sent, the greater the chances of getting the message across to the generals. The more generals are loyal, the better the plan can be carried out. And if the majority of the generals were able to receive the message, it is better to carry out the plan with a better result, regardless of attacks or even retreats.
This is called consensus
The Byzantine Generals problem is an analogy that illustrates the need to implement consensus in order for Distributed Ledger Technology (DLT) to work. In today’s distributed blockchain network, the generals are the participating nodes or computers whose hierarchy is the same. They all have to agree to the battle plan or the rules. In order for a transaction to be included in the block, all participating nodes must be approved and checked, fraudsters and traitors defeated and corrupt nodes neutralized sideways. This is not easy as it involves a lot of computation, hashing, and constant communication between thousands of nodes, not just two or three generals.
Hence, some kind of consensus mechanism needs to be put in place to achieve this, which allows thousands of nodes to work together to secure and update the ledger.
Enter the Byzantine fault tolerance
Byzantine fault tolerance is the characteristic of a system that can withstand a range of faults arising from the problem of the Byzantine generals. This means that the system can keep working by tolerating the errors or malicious actions of some nodes. There are several ways to build a BFT system on top of a blockchain so much that there are different consensus algorithms that can be applied to achieve consensus. The most common are proof of work and proof of stake. The majority of the nodes within the network must agree to follow and perform the same procedure to prevent total failure. In order to reach consensus, at least two-thirds of all participants must follow the rules. If the majority oppose the rules, the network is vulnerable to a 51% attack.
It is important for any network to apply and maintain a robust consensus algorithm to support efficient communication within the network. Although errors and limitations persist, the drive to innovate in solving the Byzantine generals problem is clearly evident in various approaches to Byzantine fault tolerance.