Distributed Systems Making Byzantine Fault-Tolerant Systems Tolerate Byzantine Faults Hubert Jaworski
Byzantine system Copies of critical components Concurent replicas Response agreement Omission failure proof Robustness
Byzantine failure Incorrectly working components State corruption Inconsistent responses
Byzantine fault tolerance replication systems: PBFT Q/U HQ Zyzzyva Aardvark
Basic concept Accepting requests by primary Broadcasting requests to replicas Processing request by replicas Replica-to-replica communication Replying to client Reaching consensus
PBFT Practical Byzantine Fault Tolerance Optimized gracious execution path Message authentication codes 3-round quorum-based Consensus over 3f+1 replicas
Connection concept example
PBFT communication patern
Q/U Conflict-free Quorum-based BFT Protocol Query/Update Single-round quorum-based Requires 5f + 1 replicas Carefully optimized Requires a significantly lower number of messages No primary replica
HQ Two-round quorum protocol Requires 3f + 1 replicas Quorum of 2f + 1 Better at resolving concurrency conflicts No primary replica
Zyzzyva Speculative Byzantine Fault Tolerance 3f+1 total replicas, 2f+1 replicas with state MAC authentication Agreement, view change, checkpoint protocols
Aardvark Robust BFT Requires 3f+1 replicas Gracious and uncivil executions Traded some performace for robustness Client-side signature generation hybrid MAC-signature construct separate network interface controllers Regular view changes
Aardvark Blacklisting Caching responses Round-robin client-based request scheduler
Efficiency
Verifying client request
Message from replica
Faulty client
Faulty replica
Faulty primary
The End Thank you for your time
Recommend
More recommend