---
title: "Verifier and integration review"
description: "Verifier and integration review: Human review. Layer: Verifier / on-chain. Characteristic finds: Public-input aliasing and encoding mismatch, replay…"
type: "option"
url: "https://zkpick.com/audit/verifier-review/"
section: "03 Auditing a ZK protocol"
authors:
  - "MarketComp"
publisher: "MarketComp"
version: "1.3"
updated: "2026-09-12"
license: "CC-BY-4.0"
json: "https://zkpick.com/data/audit/verifier-review.json"
---

*By MarketComp. Updated 2026-09-12. Version 1.3. CC BY 4.0.*

# Verifier and integration review — *Human review*

> 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.

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**

- 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 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.

Maturity: Production standard · License: Service · Source: https://github.com/iden3/snarkjs/issues/358

**In the what each assurance technique can and cannot find** (https://zkpick.com/audit/#audit-matrix-verifier-and-integration-review)

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