Your SlideShare is downloading. ×

7th Seminar Report

261

Published on

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

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

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
261
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Synchronous Mortal Byzantine A Fault Tolerant Mechanism For Distributed SystemsSeminar Report By:Bibaswann BandyopadhyayCSE, 7th SemesterRoll No. 20081017University Institute of Technology
  • 2. 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.
  • 3. 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
  • 4. What is a Byzantine Failure? Three primary differences from Fail-Stop Failure 1) 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
  • 5. 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 C2 majority(v1,v2,v3) C3 f faulty, f+1 good components ==> 2f+1 total
  • 6. Key StepA commanding general must send an order to his n-1 lieutenantgenerals such thatIC1. All loyal lieutenants obey the same order.IC2. If the commanding general is loyal, then every loyallieutenant obeys the order he sends.
  • 7. Option 1: Loyal Commander commander attack attack L1 L2 retreatWhat must L1 do?By IC2: L1 must obey commander and attack
  • 8. Option 2: Loyal L2 commander retreat attack L1 L2 retreat What must L1 do?By IC1: L1 and L2 must obey same order --> L1 must retreatProblem: L1 can’t distinguish between 2 scenarios
  • 9. 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)
  • 10. Example: Bad Lieutenant  Scenario: m=1, n=4, traitor = L3 A C AOM(1): A L1 L2 L3 COM(0):??? A L2 L3 L1 R A RDecision?? L1 = m (A, A, R); L2 = m (A, A, R); Both attack!
  • 11. Example: Bad Commander  Scenario: m=1, n=4, traitor = C A C AOM(1): R L1 L2 L3 AOM(0):??? A R L1 L2 L3 A R ADecision?? L1=m(A, R, A); L2=m(A, R, A); L3=m(A,R,A); Attack!
  • 12. 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.
  • 13. Three phase protocol(contd.)
  • 14. 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
  • 15. Thank you

×