pith. sign in

arxiv: 2504.11961 · v3 · pith:SAARC6N4new · submitted 2025-04-16 · 💻 cs.CR

zkFuzz: Foundation and Framework for Effective Fuzzing of Zero-Knowledge Circuits

classification 💻 cs.CR
keywords zkfuzzbugscircuitcircuitspriorprogramtccttools
0
0 comments X
read the original abstract

Zero-knowledge (ZK) circuits enable privacy-preserving computations and are central to many cryptographic protocols. Systems like Circom simplify ZK development by combining witness computation and circuit constraints in one program. However, even small errors can compromise security of ZK programs -- under-constrained circuits may accept invalid witnesses, while over-constrained ones may reject valid ones. Static analyzers are often imprecise with high false positives, and formal tools struggle with real-world circuit scale. Additionally, existing tools overlook several critical behaviors, such as intermediate computations and program aborts, and thus miss many vulnerabilities. Our theoretical contribution is the Trace-Constraint Consistency Test (TCCT), a foundational, language-independent formulation of ZK circuit bugs. TCCT provides a unified semantics that subsumes prior definitions and captures both under- and over-constrained vulnerabilities, exposing the full space of ZK bugs that elude prior tools. Our systems contribution is zkFuzz, a novel program mutation-based fuzzing framework for detecting TCCT violations. zkFuzz systematically mutates the computational logic of Zk programs guided by a novel fitness function, and injects carefully crafted inputs using tailored heuristics to expose bugs. We evaluated zkFuzz on 452 real-world ZK circuits written in Circom, a leading programming system for ZK development. zkFuzz successfully identified 85 bugs, including 59 zero-days-39 of which were confirmed by developers and \nfixed fixed, including bugs undetectable by prior works due to their fundamentally limited formulations, earning thousands of bug bounties. Our preliminary research on Noir, another emerging DSL for ZK circuit, also demonstrates the feasibility of zkFuzz to support multiple DSLs.

This paper has not been read by Pith yet.

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.

Forward citations

Cited by 2 Pith papers

Reviewed papers in the Pith corpus that reference this work. Sorted by Pith novelty score.

  1. Automating Bitvector and Finite Field Equivalence Proofs in Lean

    cs.LO 2026-05 unverdicted novelty 7.0

    A new Lean tactic automates bitvector-finite field equivalence proofs and solves 19% more ZKP arithmetization benchmarks than state-of-the-art SMT solvers.

  2. zkCraft: Prompt-Guided LLM as a Zero-Shot Mutation Pattern Oracle for TCCT-Powered ZK Fuzzing

    cs.CR 2026-01 unverdicted novelty 5.0

    zkCraft combines LLM-guided mutations with R1CS-aware localization and Violation IOP proofs to detect under- and over-constrained faults in zero-knowledge circuits while reducing solver queries.