Randomized Testing of Byzantine Fault Tolerant Algorithms
summary
ByzzFuzz is a randomized tester that injects bounded faults (F faulty processes, D network perturbation rounds, C mutation rounds) and applies small-scope message mutations (structure-preserving tweaks like incrementing a round number or replaying a past hash) to live implementations. It runs hundreds of randomized executions per configuration, finds implementation bugs in PBFT, a potential liveness issue in Tendermint, and two theoretical plus one previously unknown Ripple/XRP Ledger fault that developers confirm and fix; baseline fuzzers miss many of these.
AI-written summary · about
chapters (10)
- 0:00Randomized testing of BFT algorithms
- 3:54Verifying BFT implementations
- 5:45BISA's randomized testing method
- 7:10Executing consensus protocols
- 8:35BISA detects Ripple bug
- 11:22BISA results in blockchain systems
- 13:31Conclusion and future directions
- 14:33Q&A: Participant count
- 16:19Q&A: Adapting to other blockchains
- 17:21Q&A: Expanding mutations
related talks
36mFlexible Byzantine Fault Tolerance
17mThe Bedrock of Byzantine Fault Tolerance: A Unified Platform for BFT Protocols...
19mCAFault: Enhance Fault Injection Technique in Practical Distributed Systems via...
15mAlea-BFT: Practical Asynchronous Byzantine Fault Tolerance
14mModel-guided Fuzzing of Distributed Systems
13mUpFuzz: Detecting Data Format Incompatibility Bugs during Distributed Storage System...
42mJepsen 9: A Fsyncing Feeling
17mOne-Size-Fits-None: Understanding and Enhancing Slow-Fault Tolerance in Modern...
