BitCoin and the Byzantine General’s Problem (Holy Grail)
It’s the problem that most people in crypto who have a tad more knowledge than the average observer like to quote but few actually understand what it means. That is because it is a metaphor which contains meaning on multiple levels, and just like Indiana Jones in the Temple of Doom, the answer, if you are true of heart you will find right in front of your face, but if you are not worthy, will never be able to understand.
When most people talk about the Byzantine General’s Problem, it is framed within the context of the problem faced by the the surrounding 10 vassal states of a central Byzantine empire, who were being oppressed, and wanted to overthrow the much larger Byzantium in the center. The army of Byzantium was large enough to repel any attack, as long as it was mounted with the support of less than half of the surrounding kingdoms armies. So if 5 out of the 10 vassal states army generals coordinated to attack Byzantium on the same day, they would lose, but if 6+ kingdoms coordinated, then they would be victorious and be able to divide up the central empire among the victors. The risk each general faces is that, if you attack and lose, then the emperor will execute you and then divide up your lands and grant them to the other generals who did not support your attack. So while a general attacking will gain much if he could mount a successful rebellion against the emperor, he stands to also gain if the rebellion fails to garner a majority of the generals support, and thus the revolting defeated generals lands will be bequeathed to them.
This is a classic computer science problem. It is also a game theory problem. What most people don’t know is that it is also a political governance problem.
Bitcoin solved all three problems.
I shall introduce each problem category in turn.
How to send a reliable message to many generals at once, that can not be corrupted?
Clearly, if all the generals could somehow coordinate their attack strategy such that they all attacked with their full armies on the same day, then they would all be victorious, and the oppressive regime of Byzantium would be overthrown.
The issue is that generals communicated by messengers on horseback. Even if they each sent out messages to each other which would look something like “Hi, this is General Klang of the Klingon kingdom, I propose we attack next month on the 15th”. The problem is that he would have to wait until he got responses from all the generals, and see how many agreed and how many disagreed. If more than 5 agreed, he should clearly attack on the 15th. But do you see the problem here? It is one faced by all decentralized systems. One of a needed delegated coordinator. Why? Because without a designated coordinator, EVERY general will be sending messages to all others at the same time. And while our General Klang proposed 15th of the next month to all, before he got the responses from the others, he also got conflicting proposals from the other generals. For example, General Koo of the Glam Klan, who was a bit more prepared proposed next month on the 1st. While General Tso of Chikan, was really anxious, and proposed next week Monday. Our friend General Klang can’t possibly answer consistently to everyone while being consistent to his own initial proposal, because the messages are all coming and going out of order.
What we need is a time stamping service. Then at least we can tell everyone to include messages that they also received when they sent the message, who suggested which day according to them, and eventually, because we have a reliable time stamps on the messages, we can eventually converge to a consensus on the day to plan the attack. Hurray!
Alas, no.
The problem with the situation so far, is that in addition to the proper sequencing of messages (the computer science problem) we have the Game theoretic problem. Namely, that generals may lie. They may lie about the day of attack proposed, they may lie about the time a message was received, they may lie about which proposals that they had agreed to or disagreed with. And why not? They have incentive to lie. If 5 generals with their armies (or less) try to attack, they will fail, and Byzantium will reward the generals that did not participate in the attack. And even if they all managed to agree on a day to attack, come that day, they may decide not to show up due to bribes.
What you need is a way to commit each general to their proposed attack day. Which means that once an agreed day between 6 or more generals has been reached, that the armies will be forced to attack on that day, and no amount of bribery or treachery will change that decision. And we can achieve this by making the writing of messages costly in time and energy, in a way that is impossible to cheat.
What we need is something that would make messages costly in a consistent way.
In our scenario, imagine if each general had a magic well in their kingdom, and at the bottom of the well, was a bottle of magic ink, which can be used to write messages to each other (and a message written without this magic ink would not be legible to any general). Each general would need to draw 1000 buckets of water from a magic well to drain it, in order to retrieve the ink at the bottom in order to write messages to his neighbors. Once he has written 10 letters, the ink runs out, and if he wishes to write more messages, he must once again go back to the well (which has re-filled with water, and new ink bottle — it’s magic!) empty the well of 1000 buckets of water again.
As long as the time it takes to drain the well is sufficiently long compared to the amount of time it takes a horse messenger to get the message across to the other generals, this system ensures that the general cannot afford to write false messages to the others, and if he did, he would have to drain the well and get more magic ink again to change his mind, and by that time, the other generals who didn’t lie will have already come to an agreement on the day of the attack.
This last part is what Craig Wright (as Satoshi Nakamoto) solved. Unfortunately for the generals, magic wells didn’t exist. But in present day computers, we can effectively do this. Satoshi took something that was invented back in 1993, called “Proof of Work”(PoW) by Cynthia Dwork & Moni Naor (not Adam Back!) and applied it to Bitcoin. PoW meant that you can make your computer do a provable amount of work (draws from a electronic well) before you can send a message. If a message arrived without proof of sufficient work, you disregard the message. Voila!
Solving this need for commitment meant that Craig solved the famous double-spending problem in electronic cash systems in the past. Double-spending is just spending the same coin twice. Sending a coin to A, then sending the same coin to B. Previous to BitCoin, if you wanted to prevent double-spending of coins, you needed a central coordinator with a ledger of who owns what. If you are an astute reader, you will realize that this is exactly the same problem when the generals would say “15th of the month” to one general, but “1st of the month” to another. It solves the problem of , in a decentralized way, by making lying costly.
Hurray for Satoshi! He solved the computer science problem and the game theory problem at the same time!
But what of the third problem, the one of political governance?
How does Bitcoin solve that? Well, like Indiana Jones, with the holy grail right in front of him, the unassuming carpenter’s cup… the answer is crystal clear to those who have a pure heart and wisdom.
I shall give you a hint, and you can see whether or not you are worthy to understand the truth.
Going back to the scenarios with our Generals in circa 1200 Byzantium, IF they had a way, by which the surrounding vassal kingdoms could reliably coordinate an attack onto Byzantium, in a fool-proof way, each and every time, then wouldn’t that be a very strong incentive for the Emperor not to mistreat his subjects? Or his generals? And if the Empire ever got bigger than 5 of the vassal states put together, there would be an incentive for the 5 biggest generals to coordinate an attack, take over Byzantine, and divide up the land between the rest. This would mean that the size of Byzantium would tend to never grow bigger (or more wealthy) than 50% of the rest of the kingdoms put together.
Think for a moment.
Whoa.
Did we just solve the problem of responsible democratic capitalism that self regulates?
We didn’t.
But Craig Wright might have.
(edit: upon permission, edited to name Craig Wright explicitly)
Originally published at https://www.wallstreettechnologist.com on May 23, 2019.