failed component --> conflicting information
several divisions of an army ( e.g. a coalition of forces ) are camped outside an enemy city
Generals can communicate with one another by oral messengers only
decide upon a plan of action
some generals may be traitors, trying to prevent loyal
generals from reaching agreement
Impossibility Results
Consider n = 3, one is a traitor


Lamport-Shostak-Pease Algorithm
Solution exists only if
Also known as Oral Messenge Algorithm OM(m) m ≥ 0
Solution for n ≥ 3m + 1 m traitors
majority ( 1, 1, 0 ) = 1
| majority ( v1, ..., vi, .. vn-1 ) | = vi ( majority value ) |
| = RETREAT if no such value exists |
Algorithm OM(0) ( i.e. m = 0 )
Algorithm OM(m), , m > 0
Nonfaulty Commander
Figure
General 1: majority ( v, v, y ) = v
General 2: majority ( v, v, x ) = v
Commander, General 1, General 2 all agree on same value
Faulty Commander
Figure
Examples
faulty source processor


faulty processor


( n - 2 ) rounds,
message complexity: O( nm )
Dolev et al.'s algorithm
message complexity ~ polynomial time
but requires sm + 3 rounds
All are related
Consensus can be solved using consistency.
They can be derived from Byzantine agreement problem.
We have considered the case n = 3m + 1 and found the solution.
When n > 3m + 1, we designate 3m + 1 processors as active processors and the rest passive processors
The active processors first make an agreement then send results to passive processors
The passive processors can use majority rule to find the value
authenticated
Generals: unforgeable signed messages
any m, need m + 2 generals