byzantine fault tolerance and partial synchrony
play

Byzantine Fault Tolerance and Partial Synchrony Stefan Stattelmann - PowerPoint PPT Presentation

Introduction Consensus and Partial Synchrony Practical Byzantine Fault Tolerance Byzantine Fault Tolerance and Partial Synchrony Stefan Stattelmann Seminar Advanced Topics in Distributed Computing WS 2007/2008, MPI-SWS (Saarland University),


  1. Introduction Consensus and Partial Synchrony Practical Byzantine Fault Tolerance Byzantine Fault Tolerance and Partial Synchrony Stefan Stattelmann Seminar Advanced Topics in Distributed Computing WS 2007/2008, MPI-SWS (Saarland University), Petr Kuznetsov Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  2. Introduction Consensus and Partial Synchrony Practical Byzantine Fault Tolerance 1 Introduction Consensus and Synchrony Notation 2 Consensus and Partial Synchrony Basic Protocol Protocols for partial synchrony Results 3 Practical Byzantine Fault Tolerance BFT protocol View Changes and Recovery Results Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  3. Introduction Consensus and Synchrony Consensus and Partial Synchrony Notation Practical Byzantine Fault Tolerance Protocols to achieve agreement in synchronous distributed system are well-known Synchrony does not hold in practice Agreement in an asynchronous system is impossible Solution: Partial synchrony Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  4. Introduction Consensus and Synchrony Consensus and Partial Synchrony Notation Practical Byzantine Fault Tolerance Notation: N : total number of processors/servers participating in protocol f : maximum number of faulty participants N ≥ 3 f + 1 holds All protocols achieve achieve optimal resiliency: N = 3 f + 1 Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  5. Introduction Basic Protocol Consensus and Partial Synchrony Protocols for partial synchrony Practical Byzantine Fault Tolerance Results First Paper Cynthia Dwork, Nancy A. Lynch, Larry J. Stockmeyer: Consensus in the presence of partial synchrony. Content Agreement protocols for various fault types and different notions of synchrony Presentation only covers (authenticated) byzantine faults Reasons for partial synchrony Delay ∆ for message transmission Some processors are Φ times faster than others ∆ and Φ have to be bounded ∆ and Φ might not hold all the time exact value can be unknown Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  6. Introduction Basic Protocol Consensus and Partial Synchrony Protocols for partial synchrony Practical Byzantine Fault Tolerance Results Every processor p i stores some initial value v out of a value domain V PROPER ⊆ V , set of proper values locks on some values a message buffer Proper Values: if there is exactly one initial value, this is the only proper one otherwise every v ∈ V is proper A value v is called acceptable for p j if p j does not have a lock on v . Every processor signs its message with an unforgeable signature and attaches its PROPER set and its initial value. Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  7. Introduction Basic Protocol Consensus and Partial Synchrony Protocols for partial synchrony Practical Byzantine Fault Tolerance Results Message exchange in synchronous rounds, divided in three subrounds: send: every processor can send messages to any number of other processors receive: receive a subset of the messages sent in previous subround compute: state transition based on the received messages Assumption: There is some round GST (global stabilization time) such that all messages that are sent during or after GST arrive in the same round they were sent. Lost message are not considered as faulty behaviour. Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  8. Introduction Basic Protocol Consensus and Partial Synchrony Protocols for partial synchrony Practical Byzantine Fault Tolerance Results Protocol is divided into phases with two subphases trying: 3 rounds lock-release 1 round one phase takes exactly 4 rounds In phase k processor p i with i = k mod N is the processor to propose a value. Locks on values have an associated phase number. If p j has lock on value v for phase k ⇒ p j thinks p i might decide v . Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  9. Introduction Basic Protocol Consensus and Partial Synchrony Protocols for partial synchrony Practical Byzantine Fault Tolerance Results Round 1 Processors send a list of all values that are proper and acceptable. If a processor p j receives claims from t + 1 other processors that a value v is in their PROPER set, it adds v to PROPER . If p j receives intial values from more than 2 t + 1 processors among there are not t + 1 equal values, p j sets PROPER = V . Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  10. Introduction Basic Protocol Consensus and Partial Synchrony Protocols for partial synchrony Practical Byzantine Fault Tolerance Results Round 1 Processors send a list of all values that are proper and acceptable. If a processor p j receives claims from t + 1 other processors that a value v is in their PROPER set, it adds v to PROPER . If p j receives intial values from more than 2 t + 1 processors among there are not t + 1 equal values, p j sets PROPER = V . Round 2 Processor p i proposes a value v that is acceptable for N − f processors (proof of acceptability included) Processor receiving a valid proposal lock v , previous locks on v are released Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  11. Introduction Basic Protocol Consensus and Partial Synchrony Protocols for partial synchrony Practical Byzantine Fault Tolerance Results Round 2 Processor p i proposes a value v that is acceptable for N − f processors (proof of acceptability included) Processor receiving a valid proposal lock v , previous locks on v are released Round 3 Every processor that locked v sends an acknowledged message to p i p i decides v if it receives more than 2 f + 1 replies Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  12. Introduction Basic Protocol Consensus and Partial Synchrony Protocols for partial synchrony Practical Byzantine Fault Tolerance Results Round 2 Processor p i proposes a value v that is acceptable for N − f processors (proof of acceptability included) Processor receiving a valid proposal lock v , previous locks on v are released Round 3 Every processor that locked v sends an acknowledged message to p i p i decides v if it receives more than 2 f + 1 replies Round 4 Every processor multicasts on which values it has locks. A processors releases a lock if another processor has a lock on a different value. Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  13. Introduction Basic Protocol Consensus and Partial Synchrony Protocols for partial synchrony Practical Byzantine Fault Tolerance Results ∆ holds eventually: one round in synchronous algorithm is simulated by N + ∆ steps first N steps: send messages as previously last ∆ steps: receive messages each round gets a unique identifier, attached to every sent message (easy: processors share a common clock) messages from earlier rounds are ignored ⇒ as soon as ∆ holds, message are delivered in the same round ⇒ after agreement was reached, ∆ can stop holding Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  14. Introduction Basic Protocol Consensus and Partial Synchrony Protocols for partial synchrony Practical Byzantine Fault Tolerance Results ∆ holds, but is unknown: round r in synchronous algorithm is simulated by N + r steps first N steps: send messages as previously last r steps: receive messages each round gets a unique identifier, attached to every sent message (easy: processors share a common clock) messages from earlier rounds are ignored ⇒ as soon as ∆ > = r holds, messages are delivered in the same round Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  15. Introduction Basic Protocol Consensus and Partial Synchrony Protocols for partial synchrony Practical Byzantine Fault Tolerance Results Partially synchronous communication and processors: Processors have to agree on a (approximately) common notion of time Global clock simulated by private clocks Processors exchange with ticks and claims (with proofs) about ticks Private clocks are increased if there are enough valid claims to do so ⇒ creates a lot of overhead ( 2 3 of the rounds) Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  16. Introduction Basic Protocol Consensus and Partial Synchrony Protocols for partial synchrony Practical Byzantine Fault Tolerance Results Results: all protocols reach agreement in polynomial time all protocols have optimal resiliency ( N = 3 f + 1) But: practical application questionable specification of the protols could be more exact Consensus is possible in partially synchronous models! Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

  17. Introduction BFT protocol Consensus and Partial Synchrony View Changes and Recovery Practical Byzantine Fault Tolerance Results Second and Third paper Miguel Castro and Barbara Liskov: Proactive Recovery in a Byzantine-Fault-Tolerant System. Miguel Castro, Barbara Liskov: Practical Byzantine Fault Tolerance and Proactive Recovery. Content state machine replication algorithm for distributed services with complex operations basic version (BFT) for byzantine-fault-tolerant services extended version (BFT-PR) with automatic recovery use of symmetric cryptography for better performance optimizations for frequent recovery Stefan Stattelmann Byzantine Fault Tolerance and Partial Synchrony

Recommend


More recommend