Generals surrounding a city must vote on whether to attack or retreat. They can only communicate using notes delivered by messengers. Notes, messengers and generals may be lost or corrupted. This is the Byzantine generals problem! It is relevant for many types of networks as I will show.

Applications

Consider a swarm of bees needing to determine the best location for a new hive. Scouts find good options and report back. The best choice is decided and acted upon by the entire swarm. Note scouts may be killed and information communicated incorrectly. This is analogous to the Byzantine generals problem!

The Byzantine generals problem also applies to many technical systems managing several components such as automobiles, airplanes, rockets and blockchains. Messages may be lost or corrupted. Hardware may fail or even be hacked. These systems must operate correctly in spite of these dangers.

Solutions

No complete solution to the Byzantine generals problem is possible. There does however exist partial solutions, many of which rely on massive redundancy. For example, proof of work blockchain systems must quickly copy all new blocks to all nodes. Likewise, Airbus A380 airplanes must require over 13,000 pounds of wiring! All this excess is necessary to protect against several failure modes.

Feedback

Feel free to leave any comments or questions below. You can also contact me by email at cs@etcplanet.org or by clicking any of these icons:

Acknowledgements

I would like to thank IOHK (Input Output Hong Kong) for funding this effort.

License

This work is licensed under the Creative Commons Attribution ShareAlike 4.0 International License.