0% found this document useful (0 votes)
102 views

The Byzantine Generals Problem

The document discusses the Byzantine Generals Problem, which aims to guarantee reliable decision making in a distributed system even if some components are unreliable or malicious. It presents a solution using digital signatures to authenticate messages and describes challenges in implementing the assumptions of the solution in a real system.

Uploaded by

Ravi Nankani
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
102 views

The Byzantine Generals Problem

The document discusses the Byzantine Generals Problem, which aims to guarantee reliable decision making in a distributed system even if some components are unreliable or malicious. It presents a solution using digital signatures to authenticate messages and describes challenges in implementing the assumptions of the solution in a real system.

Uploaded by

Ravi Nankani
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 22

The Byzantine Generals Problem

Leslie Lamport, Robert Shostak, Marshall Pease Presented by Ravi Nankani

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).

1` : Any two loyal generals use the same value of v(i)

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.

With only 3 generals no solution can work in the presence of a single traitor.

Solution with Oral Messages


Assumptions: A1: Every message that is sent is delivered correctly. A2: The receiver of the message knows who sent it. A3: The absence of a message can be detected. A traitor commander may not decide to send any order. Since lieutenants must obey some order , we let RETREAT be the default order.

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

Solution with Signed Messages


Traitors ability to lie that makes the Byzantine Generals problem difficult. A4: (a) A loyal generals signature cannot be forged, and any alteration of the contents of his signed message can be detected. (b) Anyone can verify the authenticity of a generals signature. We make no assumptions about a traitor generals signature, we allow it to be forged by another traitor, thereby permitting collusion among traitors.

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

Missing communication paths

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.

You might also like