+ All Categories
Home > Documents > The Byzantine Generals Problem

The Byzantine Generals Problem

Date post: 26-Jan-2016
Category:
Upload: kalyca
View: 31 times
Download: 1 times
Share this document with a friend
Description:
The Byzantine Generals Problem. Leslie Lamport Robert Shostak Marshall Pease. Part I - Infrastructure. Introduction – Why are we here and what do we want? Describing the Byzantine abstraction. Developing necessary conditions. Postulating the problem. Introduction (1). - PowerPoint PPT Presentation
Popular Tags:
49
The Byzantine Generals Problem Leslie Lamport Robert Shostak Marshall Pease
Transcript
Page 1: The Byzantine Generals Problem

The Byzantine Generals Problem

Leslie Lamport

Robert Shostak

Marshall Pease

Page 2: The Byzantine Generals Problem

Part I - Infrastructure

• Introduction – Why are we here and what do we want?

• Describing the Byzantine abstraction.

• Developing necessary conditions.

• Postulating the problem.

Page 3: The Byzantine Generals Problem

Introduction (1)

• Generally speaking, a component of a system can malfunction.

• Failed components may exhibit erratic behavior, including arbitrary, random or wrong output.

• Failed components may provide conflicting data to other components.

Page 4: The Byzantine Generals Problem

Introduction (2)

• If a system is to be reliable, it must ensure that it can cope with failed components.

• We’ll deal with the problem by means of the “Byzantine Generals” abstraction.

Page 5: The Byzantine Generals Problem

The Abstraction (1)

• Scenario: Imagine several divisions of the Byzantine army, camped outside an enemy city.

• Each division is commanded by a general.

• Division are separated geographically.

• Generals can communicate via messengers.

Page 6: The Byzantine Generals Problem

The Abstraction (2)

• Mode of Operation: Each general:– Input: General observe the city.– Calculation: General decide either of the two

options: “Attack” or “Retreat”.– Communication: General may communicate

his decision to other generals.– Output: General computes locally a plan of

action, according to his decision and data he received.

Page 7: The Byzantine Generals Problem

The Abstraction – Traitors (3)

• A general can be either “loyal” or “traitor”.

• A traitor may do whatever he pleases, including sending conflicting messages to different generals.

• Traitors can try to prevent the loyal generals from reaching an agreement.

Page 8: The Byzantine Generals Problem

Abstraction vs. Reality

• The army is the “system”.

• A general is a component of the system.

• A traitor is a failed component of the system.

Page 9: The Byzantine Generals Problem

Objective

• We demand these two conditions:

• Condition A: All loyal generals decide upon the same plan of action.

• Condition B: A small number of traitors cannot cause the loyal generals to adopt a bad plan.

• Note nothing is demanded from the traitors’ behavior.

Page 10: The Byzantine Generals Problem

Satisfying the Conditions (1)

• Denote by v(i) the value communicated by the ith general.

• In order to satisfy condition A (all loyal generals follow the same plan), this must hold:

• Condition 1: Every loyal general must obtain the same information v(1),…,v(n).

• Condition 1 implies a general cannot use v(i) sent from the ith general, as he may be a traitor.

Page 11: The Byzantine Generals Problem

Satisfying the Conditions (2)• In order for condition B (A small number of traitors

cannot cause the loyal generals to adopt a bad plan) to hold:

• We must not introduce the possibility that the generals use a different value of v(i) if the ith general is loyal.

• E.g., If all loyal generals sent “retreat”, loyal generals must not base their decision on “attack” values only.

• We postulate:• Condition 2: If the ith general is loyal, then the value that

he sends must be used by every loyal general as the value of v(i).

Page 12: The Byzantine Generals Problem

Condition 1 Revisited

• Condition 1: Every loyal general must obtain the same information v(1),…,v(n).

• We rewrite condition 1 as:

• For every i, whether the ith general is loyal or not:

• Condition 1’: Any two loyal generals use the same value of v(i).

Page 13: The Byzantine Generals Problem

Simplifying the Problem

• Now, conditions 1’ and 2 are both conditions on the single value sent by the ith general.

• Thus we restrict the consideration to the problem of how a single general sends his value to the others.

• This single general becomes a commanding general, and the others become his lieutenants.

Page 14: The Byzantine Generals Problem

Byzantine Generals Problem

• A commanding general must send an order to his n-1 lieutenant generals such that:

• IC1: All loyal lieutenants obey the same order.

• IC2: If the commanding general is loyal, then every loyal lieutenant obeys the order he sends.

Page 15: The Byzantine Generals Problem

Byzantine Generals Problem - Notes

• IC1 and IC2 are called the interactive consistency conditions.

• If the commander is loyal, IC1 follows from IC2.

• If the Byzantine Generals problem is solved, the original problem is solved by having every general act as a commander, and the others as lieutenants.

Page 16: The Byzantine Generals Problem

Part II – Impossibility Result

• Degenerate case: Direct proof that there’s no solution if there are 2 loyal generals and 1 treacherous.

• General case: Proof by reduction to the degenerate case: No solution unless more than 2/3 are loyal.

Page 17: The Byzantine Generals Problem

Model

• Currently we assume that the messages are “oral”.– Sender can transmit any data.

• We assume (for now) a general can send a message to another general directly. That is, a message need not be relayed by any general in order to reach its destination.

Page 18: The Byzantine Generals Problem

Degenerate Case

• Assume: There are 3 generals – A commander and 2 lieutenants.

• Scenario A: Assume the commander and lieutenant 1 are loyal, but lieutenant 2 is a traitor.

• Commander orders both lieutenants to attack.

• Lieutenant 2 lies to lieutenant 1.• IC2 -> lieutenant 1 must attack.

Page 19: The Byzantine Generals Problem

Scenario A

Commander

Lieutenant 2Lieutenant 1

AttackAttack

Commander ordered “Retreat”Commander and me

are loyal. I have to attack.

Page 20: The Byzantine Generals Problem

• Scenario B: Assume the commander is a traitor and both lieutenants are loyal.

• Commander orders lieutenant 1 to attack, but orders lieutenant 2 to retreat.

• Lieutenant 2 reports lieutenant 1 that the commander’s order is “Retreat”.

• Lieutenant 1 cannot distinguish between scenarios A and B.

• Thus, it must act as it acted in situation A and attack.

• Therefore: Commander order lieutenant 1 to attack -> lieutenant 1 attacks.

Page 21: The Byzantine Generals Problem

• Scenario B

Commander

Lieutenant 2Lieutenant 1

RetreatAttack

Commander ordered “Retreat”As far as I’m concerned, I’m

in scenario A. So I must attack.

Page 22: The Byzantine Generals Problem

• Symmetrically: Commander order lieutenant 2 to retreat -> lieutenant 2 retreats.

• If so: In situation B, lieutenant 1 attacks and lieutenant 2 retreats, thereby violating IC1.

• QED degenerate case.

Page 23: The Byzantine Generals Problem

General Case

• Assume there are m traitors.

• No solution is possible if there are fewer than 3m+1 generals.

• Proof by reduction: Assume, for contradiction, a solution to the general problem where there are less than 3m+1 generals. Show that the degenerate case is solvable.

Page 24: The Byzantine Generals Problem

Albanian Generals

• Assume there exists an Albanian Generals algorithm, solving the Byzantine Generals problem where n<3m+1 and number of traitors is m.

• We build the Byzantine Generals algorithm for the degenerate case:

• Intuition: Each Byzantine general simulate approximately 1/3 of the Albanian generals.

Page 25: The Byzantine Generals Problem

• n/3 Albanian lieutenants act like Byzantine lieutenant 1 acts.

• n/3 of the Albanian lieutenants act like Byzantine lieutenant 2 acts.

• n/3 -1 Albanian lieutenants and the Albanian commander acts like the Byzantine commander acts.

Page 26: The Byzantine Generals Problem

Byzantine Lieutenant 1

Albanian Lieutenant 2

Albanian Lieutenant 3

Byzantine Commander

Albanian Commander

Albanian Lieutenant 1

Byzantine Lieutenant 2

Albanian Lieutenant 4

Albanian Lieutenant 5

AttackAttack

Attack

Attack

Attack

Attack

Attack

Page 27: The Byzantine Generals Problem

• There’s only 1 Byzantine traitor, and he’s simulating at most m Albanian generals, so there are no more than m Albanian traitors.

• Therefore, conditions IC1 and IC2 hold for the Albanian generals.

• IC1 -> All Albanian generals simulated by a loyal Byzantine general obey the same order. This is the order the (loyal) Byzantine general follows.

• This implies IC1 holds also for the Byzantine generals.

Page 28: The Byzantine Generals Problem

Byzantine IC2

• IC2 holds for the Albanian generals. Thus the n/3 Albanian lieutenants simulated by the loyal lieutenant follow the commander’s order (if the commander is loyal).

• Therefore, IC2 also holds for the Byzantine generals.

• QED

Page 29: The Byzantine Generals Problem

Part III – Solution with Oral Messages

• We first solve the problem with “oral messages”.• We make certain assumptions on the general’s

message system:• A1. Every message that is sent is delivered

correctly.• A2. The receiver of a message knows who sent

it.• A3. The absence of a message can be detected.• We also require, currently, a full communication

graph.

Page 30: The Byzantine Generals Problem

Messaging System - Implications

• A1 (all messages are delivered correctly) and A2 (sender is known to receiver) prevent a traitor from interfering with communications.

• A3 (detectable absence of messages) prevents a traitor from sabotaging by not sending a message. Default value for unsent messages is “retreat”.

Page 31: The Byzantine Generals Problem

OM(m) – Oral Messages Alg

• OM(m) is used by the commander in order to send his command to n-1 lieutenants.

• We use the majority function.

• The algorithm is defined recursively.

Page 32: The Byzantine Generals Problem

Base - OM(0)

• The commander sends his value to every lieutenant.

• Each lieutenant uses the value he receives from the commander, or uses the RETREAT default value if he receives no value.

Page 33: The Byzantine Generals Problem

Recursion - OM(m), m>0

• The commander sends his value to every lieutenant.

• Lieutenant i denotes the value it received from the commander by vi.

• Every lieutenant acts as a commander, sending the value he received to n-2 other lieutenants using OM(m-1).

• For each i, and each j≠i, lieutenant i obeys majority( ), where vj is the value received from lieutenant j.

1 1( ,..., )nv v

Page 34: The Byzantine Generals Problem

Lieutenant 1 Commander

Lieutenant 3

Lieutenant 6

Lieutenant 4

Lieutenant 5

Lieutenant 2

v

v v

vv

v

v

v

v

v

vv

v

x

x

Kick off – commander sends his value v to all lieutenants. This is the first step of OM(2)

Now, loyal lieutenant 2 uses OM(1) in order to convince othersThat the value he received from the commander is v.

When lieutenants 1 and 3 get lieutenant 2’s value,they use OM(0) in order to send this value to allother lieutenants. Here we see only thevalues lieutenant 6 receives. Note theTraitors send wrong values. Nowlieutenant 6 can use v lieutenant 2 value:majority(v,v,v,x,x)=v

Page 35: The Byzantine Generals Problem

Lemma

• For any m and k, algorithm OM(m) satisfies IC2 if there are more than 2k+m generals and at most k traitors.

• Recall IC2 assumes commander is loyal.• Proof by induction:• Base: m=0. By A1 (sent messages are

received correctly), all the loyal lieutenants receive the same value the commander sent. QED base.

Page 36: The Byzantine Generals Problem

Lemma – Closure (1)

• Assume lemma’s true for m-1, m>0.

• According to the algorithm: Loyal commander sends value v to n-1 lieutenants. Then each lieutenant sends his value to other lieutenants.

• By hypothesis: n>2k+m, implying n-1>2k+m-1. Using induction hypothesis we get that every loyal lieutenant receives v as the value of other loyal lieutenants.

Page 37: The Byzantine Generals Problem

Lemma – Closure (2)

• There are at most k traitors and n-1>2k + (m-1)≥2k, a majority of the n-1 lieutenants are loyal.

• Thus, each loyal lieutenant has v as the majority of the n-1 values.

• QED lemma.

Page 38: The Byzantine Generals Problem

Correctness of OM(m)

• Theorem: For any m, OM(m) satisfies conditions IC1 and IC2 if there are more than 3m generals and at most m traitors.

• Proof by induction on m:

• Base m=0 is trivial – there are no traitors.

• Closure: Assume theorem holds for m-1.

Page 39: The Byzantine Generals Problem

Correctness of OM(m) – Closure(1)

• First assume commander is loyal. By taking k=m, the lemma assures us that IC2 holds. If the commander is loyal, IC1 follows from IC2. QED for this case.

• We need to prove that if the commander is a traitor, IC1 holds.

Page 40: The Byzantine Generals Problem

Correctness of OM(m) – Closure(2)

• There are at most m traitors, and the commander is one of them.

• There are more than 3m generals, implying there are more than 3m-1 lieutenants, and 3m-1>3(m-1), i.e. number of traitors is less than a third of the number of lieutenants. .

• Thus, the induction hypothesis holds for OM(m-1) (which the lieutenants use).

Page 41: The Byzantine Generals Problem

Correctness of OM(m) – Closure(3)

• By correctness of OM(m-1), each lieutenant i receives from lieutenant j the value lieutenant j received from the commander.

• Therefore, all loyal lieutenants receive the same vector of values.

• Therefore, they all obey the same value.

• IC1 holds. QED.

Page 42: The Byzantine Generals Problem

Part IV – Solution with Signed Messages

• The traitor’s ability to lie makes the Byzantine Generals problem difficult.

• We restrict this ability by introducing signed messages, which can’t be forged.

• We add the assumption:• A4. (a) A loyal general’s signature can’t be forged, and

any alteration of the content of his signed

message can be detected.

(b) Anyone can verify the authenticity of a general’s signature.

Page 43: The Byzantine Generals Problem

Notes on A4

• Considering public key encryption and/or the possibility of pre-shared secretes between the generals, A4 is plausible.

• Note that traitors can forge each others signatures. This enables traitors to band against the loyal generals.

• Assuming A4, problem can be solved for and number of traitors.

Page 44: The Byzantine Generals Problem

SM Algorithm (informal)

• The commander sends his order signed.• Each message a lieutenant receives is signed by

him and forwarded to all other lieutenants who hadn’t signed the message yet.

• A lieutenant collects all values he receives from authentic messages in a set named V.

• In the end, a lieutenant obeys the order CHOICE(V), where CHOICE is some pre-defined deterministic function.

Page 45: The Byzantine Generals Problem

SM Correctness – Informal (1)

• For IC2, assume commander is loyal.

• Since no one can forge the commander’s signature, any authentic message can only contain the commander’s order.

• Thus, for every loyal lieutenant, V contains only one value. QED if commander is loyal.

Page 46: The Byzantine Generals Problem

SM Correctness – Informal (2)

• Assume commander is a traitor.• We prove that all loyal lieutenants obtain

the same V.• If lieutenant i collected the order v (recall

this implies the order was properly authenticated), then he sends this order to all other lieutenants.

• Thus any other loyal lieutenant will also collect the order v. QED SM correctness.

Page 47: The Byzantine Generals Problem

Part V - A Note on Reliable Systems - Pros

• Using the aforementioned algorithms, one can implement a reliable system.

• Reliability is obtained on the software level, and can cope with any hardware malfunctioning.

• Such a system uses redundancy of extra-computations in order to avoid a single malfunctioning module crashing the entire system.

Page 48: The Byzantine Generals Problem

A Note on Reliable Systems - Cons

• Then again, one need to make sure all of the assumptions hold…

• A1 – Messages are delivered correctly: Communication failures can always occur.

• A2 – The receiver of a message knows who sent it: Requires communication will carried on hard-wired lines. Unnecessary is A4 is assumed.

• A3 – The absence of a message can be detected: Requires synchronization.

• A4 – As stated before, quite reasonable.

Page 49: The Byzantine Generals Problem

In Conclusion

• We’ve found a necessary and sufficient condition on the number of traitors in order for the problem to be solvable.

• We’ve solved the problem for the cases it’s solvable.

• Achieving reliability in the face of arbitrary malfunctioning is a difficult problem.

• It seems any solution is inherently costly:– Long message paths.– Many messages.– Much transferred information.


Recommended