The Byzantine Generals' Problem

In a distributed system, faults are categorized into the following two types:

  • Fail-stop faults: These are benign faults that cause nodes to stop participating in the consensus protocol due to hardware or software crashes. The nodes will stop responding when the fail-stop fault occurs.
  • Byzantine faults: These are faults that cause nodes to behave erratically. Leslie Lampert also identified and characterized this category of fault as the Byzantine Generals' Problem.

The Byzantine Generals' Problem is conceptualized on the basis of a situation where a group of generals, each commanding a part of the Byzantine army, have surrounded an enemy fort. To successfully attack and take over the fort, all the generals have to agree on a common battle plan and generals can communicate through messengers (horse riders or runners) only. But, there is a possibility that these messengers might get captured by the enemy and the message might never reach the other generals. Moreover, the difficulty in reaching an agreement is that one or more generals might be traitors and might possibly be interested in sabotaging the whole battle plan. Being traitors, they might send false messages, distort messages, or not send any message at all. But all loyal generals will act accordingly to the plan. In short, a small number of traitors should not cause the loyal generals to adopt a bad or a wrong plan. With this example, we can see that the Byzantine Generals' Problem is a typical challenge for a distributed and decentralized system.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.226.251.206