The Byzantine Generals Problem Leslie Lamport, Robert Shostak and Marshall Pease Presenter: Phyo Thiha Date: 4/1/2008
Introduction Why this problem? Computer Systems Reliability Security
Initial Conditions 1.ALL loyal lieutenants obey the same order. 2.IF commanding general is loyal EVERY loyal lieutenant obeys the order he sends.
Impossibility Results Valid for oral messages NO solution for generals < 3m+1 Commander Lieutenant 1 Lieutenant 2 attack C L2: retreat attack Fig. 1. Lieutenant as traitor
Commander Lieutenant 1 Lieutenant 2 attack C L2: retreat retreat Fig. 2. Commander as traitor
Assumptions A1. Every message is delivered correctly A2. Receiver knows the sender A3. Failure can be detected
Majority Rule 1.Choose the majority value, if exists Else Retreat 2. IF from an ordered set, choose the Median
Algorithm OM(0) 1)C : sends value to all L i 2)L i : IF receives, use value received ELSE Retreat OM(m), m > 0 1)C : sends value to all L i 2)L i : IF receives, use v i ELSE Retreat Enter OM(m - 1) as commander for (n - 2) L’s 3)FOR each i, and each j i L j : IF receives, use v j ELSE Retreat L i : use majority (v 1, …., v n-1 )
Demo: OM(1), L3 as traitor C L1L2L3 a a a aaa a ? ? L2L3L1L3L1L2 OM(1) OM(0) L 1 said C said ‘a’ C said ‘a’ L 3 said C said ‘?’ Result : Majority (a, a, ?) = a
Demo: OM(1), ‘C’ as traitor C L1L2L3 a r a aar r a a L2L3L1L3L1L2 OM(1) OM(0) L 1 said C said ‘a’ C said ‘r’ L 3 said C said ‘a’ L 2 Result : Majority (a, r, a) = a; L1 C said ‘a’ L2 said C said ‘r’ L 3 said C said ‘a’ L 1 : Majority (a, r, a) = a
Image Credit: THANK YOU! ??Questions??