03 — Auditing · Assurance guide

Verifier and integration review

Human review

In one paragraph

Verifier and integration review: Human review. Layer: Verifier / on-chain. Characteristic finds: Public-input aliasing and encoding mismatch, replay, verifying-key drift, missing point checks. Blind to: Circuit-internal soundness. Coverage claim: None — but the code is small. Cost profile: Low; conventional review skills. Choose it when: Every deployment. Assign one party explicit ownership of the circuit-to-verifier boundary, and require them to check the deployed verifying key against a reproducible build of the audited circuit.

Layer
Verifier / on-chain
Characteristic finds
Public-input aliasing and encoding mismatch, replay, verifying-key drift, missing point checks
Blind to
Circuit-internal soundness
Coverage claim
None — but the code is small
Cost profile
Low; conventional review skills
Assurance matrix · see the row in context

What it is

Review of everything between a valid proof and a state change: the verifier contract or host routine, public input encoding and ordering, field-range validation, verifying-key provenance and immutability, nullifier storage and replay logic, upgrade authority, and the binding between the deployed key and the audited circuit. This is where circuit-correct systems still fail.

Strengths and tradeoffs

Strengths
  • Covers a bug class that circuit tooling structurally cannot see
  • Relatively cheap and fast — the code is small and conventional
  • Reuses well-developed smart-contract audit practice and tooling
  • Directly addresses the highest-frequency deployment failures
Tradeoffs
  • Often split across two engagements with the seam owned by nobody — and the seam is where encoding mismatches live
  • Generated verifier code is assumed correct because a tool produced it — yet generated verifiers have shipped without a field-modulus check on public signals, the input-aliasing bug
  • Cannot be done meaningfully without the circuit's public-input specification

Choose it whenEvery deployment. Assign one party explicit ownership of the circuit-to-verifier boundary, and require them to check the deployed verifying key against a reproducible build of the audited circuit.

Sources cited on this page · 1

  1. snarkjs #358 — public signals not checked against the field modulus (input aliasing)issue
Cite this page
MarketComp (2026). Verifier and integration review. The ZK Field Manual (Version 1.3). MarketComp. https://zkpick.com/audit/verifier-review/
@misc{zkfieldmanual-verifier-and-integration-review,
  title        = {Verifier and integration review — The ZK Field Manual},
  author       = {MarketComp},
  year         = {2026},
  version      = {1.3},
  howpublished = {\url{https://zkpick.com/audit/verifier-review/}},
  note         = {Accessed: YYYY-MM-DD}
}