FLP is not a conjecture â it is a proven impossibility, as absolute as the undecidability of the halting problem.
The model. The theorem assumes a fully asynchronous network: messages are eventually delivered but with no bound on delay. Processes execute steps at unbounded speeds. Failures are crash-stop (a process either works or stops forever; it cannot send wrong values).
The key concept: bivalency. A configuration is bivalent if, depending on future scheduling, the system might still decide either 0 or 1. A configuration is univalent if the outcome is already determined regardless of future steps. The proof shows:
- Every consensus algorithm must start in a bivalent initial configuration (for some choice of input bits there exist two runs, one ending in 0 and one in 1, so the initial state has not yet committed).
- From any bivalent configuration, the adversary can always find a single step â deliver one message, or withhold it by pretending the recipient crashed â that leads to another bivalent configuration.
Putting these two facts together: the adversary can keep the system bivalent forever, preventing any decision. The algorithm never terminates â or, if it terminates anyway, it risks deciding the wrong value in some execution.
What it rules out. In the async model with even one crash, no algorithm can simultaneously guarantee:
- Safety: all processes that decide choose the same value.
- Liveness: all correct processes eventually decide.
You must give up one. Real systems navigate this via timeouts (partial synchrony), randomization (Ben-Or, Bracha â randomized algorithms can achieve consensus with probability 1 but not deterministically), or by weakening the model (Paxos, Raft assume partial synchrony, not full asynchrony).
Status: proven impossible (Fischer, Lynch, Paterson, 1985; JACM best-paper award). The result is tight: add any synchrony assumption or allow randomization and consensus becomes solvable.
Comments
Loading comments...