Top Banner
The Byzantine Generals Problem Leslie Lamport Robert Shostak Marshall Pease
49

The Byzantine Generals Problem

Jan 26, 2016

Download

Documents

kalyca

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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.