15
Synchronous Mortal Byzantine A Fault Tolerant Mechanism For Distributed Systems Seminar Report By: Bibaswann Bandyopadhyay CSE, 7 th Semester Roll No. 20081017 University Institute of Technology

7th Seminar Report

Embed Size (px)

DESCRIPTION

This was my B.E 7th Semester seminar report on byzantine fault

Citation preview

Page 1: 7th Seminar Report

Synchronous Mortal Byzantine

A Fault Tolerant Mechanism For Distributed Systems

Seminar Report By:

Bibaswann Bandyopadhyay

CSE, 7th Semester

Roll No. 20081017

University Institute of Technology

Page 2: 7th Seminar Report

Introduction Several divisions of the Byzantine army are

camped outside an enemy city, each division commanded by its own general. However, some of the generals may be traitors.

Since the Byzantine Empire ceased to exists, we observe that Byzantines were mortal, their traitors doubly so. In what follows, we treat them as such.

Page 3: 7th Seminar Report

Faults Deviation from expected behavior

Variety of factors hardware software operator Network

Three categories transient faults intermittent faults permanent faults

Any fault may be fail-silent (fail-stop) Byzantine

Page 4: 7th Seminar Report

What is a Byzantine Failure? Three primary differences from Fail-Stop

Failure1) Component can produce arbitrary output

• Fail-stop: produces correct output or none

2) Cannot always detect output is faulty• Fail-stop: can always detect that component has

stopped

3) Components may work together maliciously• No collusion across components

Page 5: 7th Seminar Report

Motivation

Build reliable systems in the presence of faulty components

Common approach: Have multiple (potentially faulty) components compute

same function Perform majority vote on outputs to get “right” result

C1

C2C3

majority(v1,v2,v3)

f faulty, f+1 good components ==> 2f+1 total

Page 6: 7th Seminar Report

Key Step

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 7: 7th Seminar Report

Option 1: Loyal Commander

commander

attack

retreatL1 L2

attack

What must L1 do?

By IC2: L1 must obey commander and attack

Page 8: 7th Seminar Report

Option 2: Loyal L2

commander

attack

retreatL1 L2

retreat

What must L1 do?

By IC1: L1 and L2 must obey same order --> L1 must retreat

Problem: L1 can’t distinguish between 2 scenarios

Page 9: 7th Seminar Report

Oral Message Algorithm

OM(0) Commander sends his value to every lieutenant

OM(m), m>0 Commander sends his value to every lieutenant For each i, let vi be value Lieutenant i receives

from commander; act as commander for OM(m-1) and send vi to n-2 other lieutenants

For each i and each j i, let vj be value Lieutenant i received from Lieutenant j. Lieutenant i computes majority(v1,...,vn-1)

Page 10: 7th Seminar Report

Example: Bad Lieutenant Scenario: m=1, n=4, traitor = L3

C

L1 L3L2

AA

AOM(1):

OM(0):???

C

L1 L3L2A

AR

R

Decision?? L1 = m (A, A, R); L2 = m (A, A, R); Both attack!

Page 11: 7th Seminar Report

Example: Bad Commander Scenario: m=1, n=4, traitor = C

C

L1 L3L2

AR

AOM(1):

OM(0):???

L1 L3L2A

RA

A

Decision?? L1=m(A, R, A); L2=m(A, R, A); L3=m(A,R,A); Attack!

R

A

Page 12: 7th Seminar Report

Three Phase Protocol state of each replica is stored in a message log. Primary p receives a client request m , it starts a

three-phase protocol. Three phases are: pre-prepare, prepare,

commit. Pre-prepare and prepare phases is used to totally

order requests. In pre-prepare phase

Primary assigns sequence number n to request. Multicast pre-prepare msg. to all backups and appends

the msg. to its log.

Page 13: 7th Seminar Report

Three phase protocol(contd.)

Page 14: 7th Seminar Report

Conclusion The algorithm works correctly in asynchronous system like

the internet.

Previous algorithms are too slow to be used in practical (proportional to the number of faulty nodes vs. number of phases)

One reason why Byzantine fault tolerant algorithms is important in future is that they allow the system to work correctly even when there are software errors. not all, software errors that occur in all replicas It can mask errors that occur independently at different replicas Non-deterministic software errors Persistent errors

Page 15: 7th Seminar Report

Thank you