The Byzantine Generals Problem
The Byzantine Generals Problem
Introduction
General 7
General 1
General 2
Dallas
General 6 General 3
General 5
General 4
We need to Guarantee: A: All loyal generals decide upon the same plan of action B: A small number of traitors cannot cause the loyal generals to adopt a bad plan.
A: All loyal generals decide upon the same plan of action B: A small number of traitors cannot cause the loyal generals to adopt a bad plan. Let v(i) be information communicated by ith general. Each general uses some method to combine values v(1),v(2)v(n) into single plan of action. Example: if decision is to be made to attack or retreat, v(i) can be General is opinion and final decision can be based on majority. For condition A, following must be true:
1. Every loyal general must obtain the same information v(1)..v(n) 2. If the ith general is loyal then value he sends must be used by every loyal general as value of v(i).
With only 3 generals no solution can work in the presence of a single traitor.
Let Majority be a function such that if a majority of values vi equal v then majority of (v1, v2 vn-1) equals v. Two choices for this function:
1. Majority of value among vi if it exists else RETREAT. 2. Median of vi assuming they come from ordered set.
Lieutenant is a traitor
Commander is traitor.
Lemma1
Theorem1
Algorithm assumes a function choice which is applied to a set of orders to obtain a single one. x:i -> value x signed by general I v:j:i -> value v signed by j and then v:j signed by i. Assume General 0 is the commander. Each lieutenant i maintains a set Vi containing the properly signed orders he has received so far.
Algorithm
Example
Reliable Systems
Only two ways to implement reliable computer systems: 1. Use reliable components 2. Use redundant components to perform a majority vote. The majority vote is based on the assumption that all non faulty processors will produce same output. But this is true only if they all use same input. This input comes from a single component and a malfunctioning component can give different values to different components.
Problems with implementing assumptions A1-A4 A1:Every message sent by non faulty processor is delivered correctly, but communication lines can fail. A2: Processor can determine originator of any message that it received. A3: Absence of a message can be detected. Solved using timeouts:
1. There is a fixed maximum time needed for generation and transmission of a message. 2. The sender and receiver have clocks that are synchronized to some fixed maximum error.
-> maximum message generation and transmission delay. -> maximum difference between non faulty processor clocks. Any message generated at time T should arrive at T+ + on the receivers clock or we can say it was not sent.
A4 : Processors sign the messages in a way the nonfaulty processors signature cannot forge it. Random Malfunction. Malicious Intelligence.