The Byzantine Generals Problem
February 10, 2021
Jeremiah Hendren
The Byzantine Generals Problem
Lamport, Leslie, Robert Shostak, and Marshall Pease ACM Transactions on Programming Languages and Systems (TOPLAS) 4, no. 3 (1982): 382–401https://doi.org/10.1145/3335772.3335936
A reliable computer system must be able to cope with the failure of one or more of its components. A failed component may exhibit a type of behavior that is often overlooked—namely, sending conflicting information to different parts of the system. The problem of coping with this type of failure is expressed abstractly as the Byzantine Generals Problem. [...]
We imagine that several divisions of the Byzantine army are camped outside an enemy city, each division commanded by its own general. The generals can communicate with one another only by messenger. After observing the enemy, they must decide upon a common plan of action. However, some of the generals may be traitors, trying to prevent the loyal generals from reaching agreement.
Leslie Lamport et al.