What is the Byzantine generals problem?

Byzantine generals problem

By Anycoin Direct

The Byzantine generals problem is a solution to erroneous or malicious nodes that pass wrong information. This allows the blockchain to continue running correctly despite the errors. Today, let's take a brief trip to antiquity. The Byzantine Empire was part of the Roman Empire, after it was split into two parts. Byzantium (later Constantinople and Istanbul) was the capital.

Key indicators

✔️ Byzantine fault tolerance is used in blockchain technology to ensure that all nodes/miners come to the same agreement on which blocks are added to the chain.

✔️ 51% of miners must agree on a block for it to be added.

✔️ The system does not require trust between miners and is therefore called "trustless"

✔️ Bitcoin has been running successfully for more than 10 years thanks to Byzantine fault tolerance.

Byzantine generals problem?

So Byzantine generals are generals of the Byzantine Empire.

What was the classic problem? Suppose you siege a large city. There are a number of army units led by a general. At some point, all the generals must take the same action, for example, attack or retreat. If they do not do the same, defeat awaits them.

How should one go about this? First, let's uncover the Byzantine fault. There are messengers riding around between armies who inform the generals what the other generals have decided. If a majority chooses a particular strategy, all generals must abide by it.

A Byzantine fault is when a treacherous general decides to communicate one decision (attack) to one group of generals and another (retreat) to the rest.

Byzantine fault tolerance works so that non-loyal generals cannot "flatten the system" unless they have the majority. Suppose you have 9 generals, of which 5 are loyal and 4 are not loyal, then the majority decides the strategy. Since most generals are generally loyal, this system will almost always work.

Byzantine fault tolerance in blockchain

Okay, but what does that have to do with blockchain? Byzantine fault tolerance is about consensus, or agreement, on a blockchain.

Transactions are made all the time and new blocks are added to a blockchain. Computers have to keep track of this blockchain. These are miners or validators. So how do these computers know which blocks are the right ones? After all, there may be validators who want to add a block that is incorrect or fraudulent.

They do this by reaching agreement or consensus on which block is correct. In most proof-of-work consensus protocols, 51% of the miners must agree that a block is correct. The moment they do, the block is added to the blockchain and recorded unchangeable.

So it is quite possible that there are quite a few bad or false validators among them and yet the system still works well. Byzantine fault tolerance works so well that Bitcoin has been running well on it for more than a decade. Every year it also gets harder and more expensive to attack the network because the blockchain is bigger and the price is more expensive. If you then want to get 51% of the computing power together it involves such large sums of money that it costs you more than it brings in. That's why you never hear about an attack on the big networks anymore.

The beauty of this system is that the nodes or miners do not even have to trust each other, it is trustless. All that is critical is for a majority to agree, and that is all automatic without any input from anyone except impersonal computers.

This error tolerance is enormously important to keep the system running without having to change everything all the time as creator or programmer. So we can safely conclude that Satoshi Nakamoto, the creator of Bitcoin, did a very smart thing.

Test your knowledge

Question: 1/5What proportion of generals must be loyal to make Byzantine fault tolerance work?