Arguzz: Testing zkVMs for Soundness and Completeness Bugs
By: Christoph Hochrainer, Valentin Wüstholz, Maria Christakis
Potential Business Impact:
Finds hidden mistakes in computer code for blockchains.
Zero-knowledge virtual machines (zkVMs) are increasingly deployed in decentralized applications and blockchain rollups since they enable verifiable off-chain computation. These VMs execute general-purpose programs, frequently written in Rust, and produce succinct cryptographic proofs. However, zkVMs are complex, and bugs in their constraint systems or execution logic can cause critical soundness (accepting invalid executions) or completeness (rejecting valid ones) issues. We present Arguzz, the first automated tool for testing zkVMs for soundness and completeness bugs. To detect such bugs, Arguzz combines a novel variant of metamorphic testing with fault injection. In particular, it generates semantically equivalent program pairs, merges them into a single Rust program with a known output, and runs it inside a zkVM. By injecting faults into the VM, Arguzz mimics malicious or buggy provers to uncover overly weak constraints. We used Arguzz to test six real-world zkVMs (RISC Zero, Nexus, Jolt, SP1, OpenVM, and Pico) and found eleven bugs in three of them. One RISC Zero bug resulted in a $50,000 bounty, despite prior audits, demonstrating the critical need for systematic testing of zkVMs.
Similar Papers
Evaluating Compiler Optimization Impacts on zkVM Performance
Performance
Makes computer proofs run much faster.
zkFuzz: Foundation and Framework for Effective Fuzzing of Zero-Knowledge Circuits
Cryptography and Security
Finds hidden mistakes in secret computer codes.
Constraint-Level Design of zkEVMs: Architectures, Trade-offs, and Evolution
Cryptography and Security
Makes blockchain faster and cheaper to use.