If one deals more closely with the mode of operation and the use of cryptocurrencies, in particular bitcoin, then sooner or later one inevitably encounters the concept of the “Byzantine General Problem”. However, what Bitcoin has to do with generals from ancient Byzantium, what the generals’ problem looks like and why Bitcoin (and some other blockchains) solves this problem, we would like to explain in more detail below.

The problem

The problem of the Byzantine generals, of course, is not based on a true story, but is much more a thought experiment used by mathematicians and computer scientists to clarify the underlying facts.

The starting point of the problem is that a group of Byzantine generals are planning to assault several cities on a city surrounded by the generals and their troops.
However, the generals must somehow ensure that all their troops attack at the same time, otherwise the plan would fail and the city can not be conquered. However, since there was no email, text messaging or instant messaging services in ancient Byzantium, the generals’ communications with each other must take place via mounted messengers. Unfortunately, there may be traitors among the generals, which is why it must be ensured that these traitors can not thwart the plan, for example, by reporting false messages to the messenger and, in reality, withdrawing instead of attacking. There are different variants of the problem itself, such as whether it is attacked or not, when it is attacked, how many generals are involved and how many of them are malignant. The Byzantine general problem is, in other words, about trust and consensus building.

Excursus: For 2 generals or more than 1/3 malicious generals there is mathematically (still) no solution to the problem.

What does Bitcoin have to do with it?

The problem of the generals can also be transferred to the problems that digital money brings, or would bring, if there were no central control party. How can one be sure that a participant in a (money) network does not send more money than he actually owns and sends the same digital banknote several times. This is called “double-spending” and is one of several known scam scenarios of a cryptocurrency. The explanation of why the Bitcoin or much more “proof of work” is a solution to the Byzantine general problem Satoshi Nakamoto delivered even in 2008, in an email in which he based on the statement of a certain James A. Donald answered.

Donald stated then:

It is not enough that everyone knows the message “X”. Everyone must also know that everyone knows “X” and that everyone knows that everyone knows that everyone knows “X” – which is the problem of Byzantine generals as the classic hard problem of distributive computing. – James A. Donald

Satoshi then gave a detailed answer in which he also included the problem of the Byzantine generals and rewrote it in a somewhat modernized way:

The proof-of-work chain is the solution to the problem of Byzantine generals. I try to rephrase it a bit for this context.

A number of Byzantine generals each have a computer and want to attack the king’s Wi-Fi by bruteforcing their password, which they know is a certain number of characters long.
Once they get their network to produce a passphrase package, they have only a limited amount of time to crack the password and delete all the logfiles, otherwise they would be detected and get into trouble. They only have enough CPU power to crack the password fast enough if a majority of them attack at the same time.

They are not particularly interested in when the attack takes place, just that they all agree. It was decided that anyone who wants can announce a time and the time that was first heard becomes the official attack time. The problem now is that the network does not transmit information immediately, and when two generals announce different times at almost the same time, one will hear these and the others first. To solve this problem they use a proof-of-work chain.

Once each general gets the attack he first heard, he has his computer solve an extremely difficult proof-of-work problem that involves attacking in a hash.
The proof-of-work is so difficult that it takes about 10 minutes to solve it if everyone works together. Once one of the generals finds a solution, it radiates it across the network, and everyone changes the proof-of-work to include the hash of the resolved proof-of-work. If someone has previously worked with another attack point, he will change it because the proof-of-work chain is longer.

After two hours, an attack time should have been hashed by a string of 12 proof-of-works. By verifying the difficulty of the proof-of-work chain, every general can see how much parallel CPU power was used per hour for them and whether the majority of computers were used for that. You must have seen it all, as the proof-of-work is the proof that they worked on it. If the CPU power used for the proof-of-work chain is sufficient to crack the password, they can safely attack at the agreed time.

The proof-of-work chain is the way to solve all the problems of synchronization, distributive databases, and global visual issues that you’ve been talking about. – Satoshi Nakamoto

image by shutterstock