the byzantine generals problem
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 PresentationTRANSCRIPT
![Page 1: The Byzantine Generals Problem](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/1.jpg)
The Byzantine Generals Problem
Leslie Lamport
Robert Shostak
Marshall Pease
![Page 2: The Byzantine Generals Problem](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/20.jpg)
• 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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/21.jpg)
• 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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/22.jpg)
• 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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/25.jpg)
• 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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/27.jpg)
• 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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/32.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/33.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/34.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/35.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/36.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/37.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/38.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/39.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/40.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/41.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/42.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/43.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/44.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/45.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/46.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/47.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/48.jpg)
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](https://reader036.vdocuments.us/reader036/viewer/2022070417/56815400550346895dc1faac/html5/thumbnails/49.jpg)
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.