Beruflich Dokumente
Kultur Dokumente
Seminar Report By: Bibaswann Bandyopadhyay CSE, 7th Semester Roll No. 20081017 University Institute of Technology
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.
Faults
` `
Three categories
` ` `
Fail-stop: produces correct output or none Fail-stop: can always detect that component has stopped No collusion across components
2)
3)
Motivation
` `
Have multiple (potentially faulty) components compute same function Perform majority vote on outputs to get right result
C1 C2 C3
majority(v1,v2,v3)
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.
Option 2: Loyal L2
commander
By IC1: L1 and L2 must obey same order --> L1 must retreat Problem: L1 cant distinguish between 2 scenarios
OM(0)
`
Commander sends his value to every lieutenant 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)
OM(m), m>0
` `
OM(1):
OM(1):
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.
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
Thank you