The Byzantine Generals Problem
Explore the Byzantine Generals Problem to understand consensus challenges in distributed systems when some nodes behave maliciously. This lesson reveals why achieving agreement is difficult when traitors exist, outlines the required number of nodes to tolerate such faults, and examines real-world approaches to overcoming Byzantine failures, helping you grasp fundamental consensus limitations and solutions.
We'll cover the following...
At this point, we know that if a network can lose messages, the consensus is not guaranteed; or if a network can arbitrarily delay messages or nodes have arbitrarily long pauses, then a single crash failure can hinder achieving consensus. In this lesson, we’ll see a scenario where we assume that the network is non-faulty, but nodes can have serious (and hard to detect) Byzantine failures. We want to see if consensus is possible when Byzantine failures are possible in a non-faulty network.
Problem setup
The Byzantine general’s problem has multiple generals (three shown in the picture below) who want to generate consensus about attacking a city. The ...