03 — Auditing · Assurance guide

Differential and fuzz testing

Dynamic testing

In one paragraph

Differential and fuzz testing: Dynamic testing. Layer: Circuit / VM. Characteristic finds: Divergence from a reference implementation; witnesses a malicious prover could pass. Blind to: Anything the oracle also gets wrong; bug classes outside the mutation model. Coverage claim: Sampled only. Cost profile: Moderate setup, cheap to re-run. Choose it when: zkVMs, ISA and EVM emulation chips, standard cryptographic gadgets, and any circuit with an independent reference implementation. Also the right home for regression tests from prior findings.

Layer
Circuit / VM
Characteristic finds
Divergence from a reference implementation; witnesses a malicious prover could pass
Blind to
Anything the oracle also gets wrong; bug classes outside the mutation model
Coverage claim
Sampled only
Cost profile
Moderate setup, cheap to re-run
Assurance matrix · see the row in context

What it is

Executing the circuit against an independent oracle and searching for divergence, or mutating the prover to simulate a malicious one and checking the constraints reject it. For zkVMs, conformance suites are the natural oracle — the RISC-V architectural certification tests and the reference tests in Ethereum's execution specs provide an externally defined notion of correct. This is how a specification-conformance bug in a formally verified zkVM was found: by conformance tests, outside the verification effort's scope.

Strengths and tradeoffs

Strengths
  • Finds bugs manual review misses in large repetitive constraint sets
  • Every finding arrives with a reproducing input, so it becomes a regression test immediately
  • Runs continuously and cheaply once set up
  • Metamorphic and fault-injection oracles need no full formal specification
Tradeoffs
  • No completeness guarantee — absence of findings means nothing
  • Requires a trustworthy oracle, which novel application circuits often lack
  • Prover-side fuzzing needs fault injection into witness generation, which not all stacks expose
  • Coverage over constraint systems is hard to define and harder to measure
  • Proof generation per test case makes zkVM campaigns expensive

Choose it whenzkVMs, ISA and EVM emulation chips, standard cryptographic gadgets, and any circuit with an independent reference implementation. Also the right home for regression tests from prior findings.

Sources cited on this page · 1

  1. Arguzz — testing zkVMs for soundness and completeness bugs (USENIX Security '26)paper
Cite this page
MarketComp (2026). Differential and fuzz testing. The ZK Field Manual (Version 1.3). MarketComp. https://zkpick.com/audit/differential-and-fuzz-testing/
@misc{zkfieldmanual-differential-and-fuzz-testing,
  title        = {Differential and fuzz testing — The ZK Field Manual},
  author       = {MarketComp},
  year         = {2026},
  version      = {1.3},
  howpublished = {\url{https://zkpick.com/audit/differential-and-fuzz-testing/}},
  note         = {Accessed: YYYY-MM-DD}
}