The Byzantine Generals Problem is a game theory that discusses the difficulty decentralized parties face in coming to consensus. Blockchain technology solves this problem.
The story goes that several generals are trying to besiege the city of Byzantine. The city is surrounded by troops and each battalion is headed by a general. To successfully besiege the city, the troops must attack in a coordinated manner. Failing to do so will result in a failure to capture the city, as well as a loss of troops.
However, the generals cannot use smoke or fire to communicate, lest they alert Byzantine of their impending attack. They can use messengers but these messengers risk getting captured or killed. There may also be spies feeding each general contradictory and misleading messages, and the generals have no way of verifying these messages.
So how can the generals coordinate an effective attack to ensure victory?
The problem with decentralization
The Byzantine Generals Problem only occurs in a decentralized system because there is no reliable source of information, which means there is no way to verify if the information received from other members is factual or reliable.
In a centralized system, a centralized authority ensures that the information distributed is factual, which prevents fraud and the dissemination of false information throughout the network. Trustless-ness is sacrificed for efficiency and thus, users in a centralized system need not face the Byzantine Generals Problem. But a centralized system is also vulnerable to corruption by its governing body.
Solving the Byzantine Generals Problem
On the blockchain, instead of generals, we have computers or nodes. These nodes must all come to a consensus on the current state of the system, which means many of the participants or nodes must agree on and execute the same actions to avoid failures.
This is where the Byzantine Fault Tolerance System comes in. The Byzantine Fault Tolerance System is designed to withstand the types of faults that can arise from the Byzantine Generals Problem, like malicious nodes sending invalid transactions, or double spending.
The Byzantine Fault Tolerance System ensures that a blockchain can continue operating even if some nodes act maliciously or fail to communicate. Some of the consensus algorithms that blockchain uses to secure its network include proof-of-stake, proof-of-work and delegated proof-of-stake.
Though these systems are not 100% fault-proof, they are always improving and innovating to ensure the security of the blockchain network.