Randomized Testing of Byzantine Fault Tolerant Algorithms
Levin N. Winter, Florena Buse, Daan de Graaf, Klaus von Gleissenthall, Burcu Kulahcioglu Ozkan
摘要
Byzantine fault-tolerant algorithms promise agreement on a correct value, even if a subset of processes can deviate from the algorithm arbitrarily. While these algorithms provide strong guarantees in theory, in practice, protocol bugs and implementation mistakes may still cause them to go wrong. This paper introduces ByzzFuzz, a simple yet effective method for automatically finding errors in implementations of Byzantine fault-tolerant algorithms through randomized testing. ByzzFuzz detects fault-tolerance bugs by injecting randomly generated network and process faults into their executions. To navigate the space of possible process faults, ByzzFuzz introduces small-scope message mutations which mutate the contents of the protocol messages by applying small changes to the original message either in value (e.g., by incrementing the round number) or in time (e.g., by repeating a proposal value from a previous message). We find that small-scope mutations, combined with insights from the testing and fuzzing literature, are effective at uncovering protocol logic and implementation bugs in real-world fault-tolerant systems.
We implemented ByzzFuzz and applied it to test the production implementations of two popular blockchain systems, Tendermint and Ripple, and an implementation of the seminal PBFT protocol. ByzzFuzz detected several bugs in the implementation of PBFT, a potential liveness violation in Tendermint, and materialized two theoretically described vulnerabilities in Ripple's XRP Ledger Consensus Algorithm. Moreover, we discovered a previously unknown fault-tolerance bug in the production implementation of Ripple, which is confirmed by the developers and fixed.
CCS Concepts: • Software and its engineering → Software testing and debugging; • Computing methodologies → Distributed algorithms.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper9
- Phoenix: Detect and Locate Resilience Issues in Blockchain via Context-Sensitive ChaosFuchen Ma, Yuanliang Chen, Yuanhang Zhou, Jingxuan Sun 等CCS 2023 · 被引用 10 次
- Model Checking Distributed Protocols in MustConstantin Enea, Dimitra Giannakopoulou, Michalis Kokologiannakis, Rupak MajumdarOOPSLA 2024 · 被引用 5 次
- Model-Guided Fuzzing of Distributed SystemsEge Berkay Gulcan, Burcu Kulahcioglu Ozkan, Rupak Majumdar, Srinidhi NagendraOOPSLA 2025 · 被引用 3 次
- OpDiffer: LLM-Assisted Opcode-Level Differential Testing of Ethereum Virtual MachineJie Ma, Ningyu He, Jinwen Xi, Mingzhe Xing 等ISSTA 2025 · 被引用 2 次
- Reward Augmentation in Reinforcement Learning for Testing Distributed SystemsAndrea Borgarelli, Constantin Enea, Rupak Majumdar, Srinidhi NagendraOOPSLA 2024 · 被引用 1 次
它引用的顶会 Paper7
- Fuzzing JavaScript Engines with Aspect-preserving MutationSoyeon Park, Wen Xu, Insu Yun, Daehee Jang 等S&P 2020 · 被引用 126 次
- Elle: Inferring Isolation Anomalies from Experimental ObservationsPeter Alvaro, Kyle KingsburyVLDB 2021 · 被引用 88 次
- Automatic Reliability Testing For Cluster Management ControllersXudong Sun, Wenqing Luo, Jiawei Tyler Gu, Aishwarya Ganesan 等OSDI 2022 · 被引用 44 次
- BigFuzz: Efficient Fuzz Testing for Data Analytics Using Framework AbstractionQian Zhang, Jiyuan Wang, Muhammad Ali Gulzar, Rohan Padhye 等ASE 2020 · 被引用 27 次
- CoFI: Consistency-Guided Fault Injection for Cloud SystemsHaicheng Chen, Wensheng Dou, Dong Wang, Feng QinASE 2020 · 被引用 25 次
相关 Paper
- Fork State-Aware Differential Fuzzing for Blockchain Consensus ImplementationsWonhoi Kim, Hocheol Nam, Muoi Tran, Amin Jalilov 等ICSE 2025 · 被引用 1 次
- Recover from Excessive Faults in Partially-Synchronous BFT SMRTiantian Gong, Gustavo Franco Camilo, Kartik Nayak, Andrew Lewis-Pye 等USENIX Security 2025
- LOKI: State-Aware Fuzzing Framework for the Implementation of Blockchain Consensus ProtocolsFuchen Ma, Yuanliang Chen, Meng Ren, Yuanhang Zhou 等NDSS 2023
- Testing consensus implementations using communication closureCezara Dragoi, Constantin Enea, Burcu Kulahcioglu Ozkan, Rupak Majumdar 等OOPSLA 2020 · 被引用 13 次
- Finding Consensus Bugs in Ethereum via Multi-transaction Differential FuzzingYoungseok Yang, Taesoo Kim, Byung-Gon ChunOSDI 2021 · 被引用 57 次
