What Is the Byzantine Generals Problem?
Table of Contents
- The Byzantine Generals Problem describes the difficulty decentralized systems have in agreeing on a single truth.
- The Byzantine Generals Problem plagued money for millennia, until the invention of Bitcoin.
- Bitcoin uses a Proof-of-Work mechanism and a blockchain to solve the Byzantine Generals Problem.
- Bitcoin’s ruleset is objective, so there is no disagreement about which blocks or transactions are valid, allowing all members to agree on a single truth.
The Byzantine Generals Problem
The Byzantine Generals Problem is a game theory problem, which describes the difficulty decentralized parties have in arriving at consensus without relying on a trusted central party. In a network where no member can verify the identity of other members, how can members collectively agree on a certain truth?
The game theory analogy behind the Byzantine Generals Problem is that several generals are besieging Byzantium. They have surrounded the city, but they must collectively decide when to attack. If all generals attack at the same time, they will win, but if they attack at different times, they will lose. The generals have no secure communication channels with one another because any messages they send or receive may have been intercepted or deceptively sent by Byzantium’s defenders. How can the generals organize to attack at the same time?
Centralized and Decentralized Systems
Only decentralized systems face the Byzantine Generals problem, as they have no reliable source of information and no way of verifying the information they receive from other members of the network. In centralized systems, an authority is trusted to publish true information and prevent false or fraudulent information from being spread throughout the network.
For example, in the traditional financial system, banks are trusted to show clients their balances and transaction histories in an honest manner. If a bank did attempt to lie or defraud their customers, a central bank or government is trusted to rectify the breach of trust.
Centralized systems do not solve the Byzantine Generals problem, which requires that truth be established trustlessly. Rather, they sacrifice trustlessness for efficiency and choose not to face the problem at all. However, centralized systems are vulnerable to corruption by the central authority.
Money and the Byzantine Generals Problem
Money is a prime example of the Byzantine Generals Problem. How should a society establish a money that all members of a society can trust and agree upon? For much of history, societies have selected precious metals or other rare goods, such as shells or glass beads, as money. In some ways, gold solved the Byzantine Generals Problem: it was trusted and recognized across decentralized systems, such as international trade. However, its weight and purity remained unreliable, and still does to this day. The failure of gold to completely solve the Byzantine Generals Problem resulted in trusted central parties, usually governments, taking over the establishment and issuance of money. Governments monopolized mints in order to inspire trust in the weight and purity of the money. Centralized systems obviously did not solve the Byzantine Generals Problem. Governments, the trusted central authorities for money, constantly violated that trust by seizing, debasing, or changing the money.
In order for a money to solve the Byzantine Generals Problem, it would have to be verifiable, counterfeit-resistant, and trustless. It was not until the invention of Bitcoin that this feat was achieved.
How Bitcoin Solves the Byzantine Generals Problem
Bitcoin was the first realized solution to the Byzantine Generals Problem with respect to money. Many proposals and projects preceding Bitcoin had attempted to create money separate from the government, but all had failed in one way or another.
Blockchain Solves the Double Spend Problem
As a monetary system, Bitcoin needed a way to manage ownership and prevent double spends. To achieve this in a trustless manner, Bitcoin uses a blockchain, a public, distributed ledger which stores a history of all transactions. In the Byzantine Generals analogy, the truth that all parties must agree to is the blockchain.
If all members of the Bitcoin network, called nodes, could agree on which transactions occurred and in what order, they could verify ownership of bitcoin and establish a functioning, trustless money without a centralized authority
Proof-of-Work Solves the Byzantine Generals Problem
Bitcoin managed to solve the Byzantine Generals Problem by using a Proof-of-Work mechanism in order to establish a clear, objective ruleset for the blockchain. In order to add information, called blocks, to the blockchain, a member of the network must publish proof that they invested considerable work into creating the block. This work imposes large costs on the creator, and thus incentivizes them to publish honest information.
Because the rules are objective, there can be no disagreement or meddling with the information on the Bitcoin network. The ruleset governing which transactions are valid and which are invalid is also objective, as is the system for determining who can mint new bitcoin. Additionally, once a block has been added to the blockchain, it is extremely difficult to remove, making Bitcoin’s past immutable.
Thus, at all times, members of the Bitcoin network can agree on the state of the blockchain and all transactions therein. Each node verifies for itself whether blocks are valid based on the Proof-of-Work requirement and whether transactions are valid based on other requirements.
If any member of the network attempts to broadcast false information, all nodes on the network will immediately recognize it as objectively invalid and ignore it. Because each node can verify all information on the Bitcoin network itself, there is no need to trust other members of the network, making Bitcoin a trustless system.