Arguzz: Testing zkVMs for Soundness and Completeness Bugs

📅 2025-09-13
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
zkVMs are widely deployed in decentralized applications and rollups; however, flaws in their constraint systems or execution logic can compromise soundness (accepting invalid executions) or completeness (rejecting valid ones), undermining system security. To address this, we propose the first automated verification methodology integrating mutation testing and fault injection: it synthesizes semantically equivalent Rust program pairs, injects adversarial perturbations into zkVM constraint systems, and leverages an enhanced metamorphic testing framework to generate verifiable test cases that simulate anomalous proof-generation behavior at runtime. Applied to six mainstream zkVMs—including RISC Zero and SP1—our approach uncovered 11 critical vulnerabilities; one in RISC Zero was awarded a $50,000 bug bounty. This work significantly strengthens both the formal assurance and practical security of zkVMs.

Technology Category

Application Category

📝 Abstract
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.
Problem

Research questions and friction points this paper is trying to address.

Testing zkVMs for soundness and completeness bugs
Automated detection of constraint system vulnerabilities
Identifying flaws in cryptographic proof generation
Innovation

Methods, ideas, or system contributions that make the work stand out.

Metamorphic testing with fault injection
Generates semantically equivalent program pairs
Injects faults to uncover weak constraints
🔎 Similar Papers
No similar papers found.