Towards Fuzzing Zero-Knowledge Proof Circuits (Short Paper)
By: Stefanos Chaliasos, Imam Al-Fath, Alastair Donaldson
Potential Business Impact:
Finds hidden mistakes in secret computer codes.
Zero-knowledge proofs (ZKPs) have evolved from a theoretical cryptographic concept into a powerful tool for implementing privacy-preserving and verifiable applications without requiring trust assumptions. Despite significant progress in the field, implementing and using ZKPs via \emph{ZKP circuits} remains challenging, leading to numerous bugs that affect ZKP circuits in practice, and \emph{fuzzing} remains largely unexplored as a method to detect bugs in ZKP circuits. We discuss the unique challenges of applying fuzzing to ZKP circuits, examine the oracle problem and its potential solutions, and propose techniques for input generation and test harness construction. We demonstrate that fuzzing can be effective in this domain by implementing a fuzzer for \texttt{zk-regex}, a cornerstone library in modern ZKP applications. In our case study, we discovered \textit{$10$} new bugs that have been confirmed by the developers.
Similar Papers
zkFuzz: Foundation and Framework for Effective Fuzzing of Zero-Knowledge Circuits
Cryptography and Security
Finds hidden mistakes in secret computer codes.
zkVC: Fast Zero-Knowledge Proof for Private and Verifiable Computing
Cryptography and Security
Proves computer math is correct, super fast.
Evaluating Compiler Optimization Impacts on zkVM Performance
Performance
Makes computer proofs run much faster.