---
title: "Manual circuit and constraint review"
description: "Manual circuit and constraint review: Human review. Layer: Circuit. Characteristic finds: Underconstraint, missing range checks, composition errors, and…"
type: "option"
url: "https://zkpick.com/audit/manual-circuit-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/manual-circuit-review.json"
---

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

# Manual circuit and constraint review — *Human review*

> Manual circuit and constraint review: Human review. Layer: Circuit. Characteristic finds: Underconstraint, missing range checks, composition errors, and application-semantic bugs no tool models. Blind to: Large repetitive constraint sets where attention degrades; anything outside the read scope. Coverage claim: None — unmeasurable. Cost profile: High, reviewer-limited. Choose it when: Every engagement, as the backbone. Highest value on novel application logic, custom gadgets, and cross-component composition — anywhere a specification exists to check against.

Line-by-line review of the arithmetisation by reviewers fluent in the DSL and proof system: is every witness value constrained, are ranges enforced, are components composed with their preconditions satisfied, is every public input actually bound. In practice the reviewer builds a model of what the constraint system permits and then searches for a satisfying assignment the developer did not intend.

**Strengths**

- Covers arbitrary bug classes, including application-semantic ones no tool models
- Works on any DSL and arithmetisation, including new ones with no tooling
- Produces design feedback and explanations, not just alerts
- Can identify security properties the specification forgot to require

**Tradeoffs**

- Quality varies enormously with the individual reviewer's ZK experience
- Does not scale to large repetitive constraint sets such as zkVM chip tables
- Point-in-time: invalidated by any constraint change
- No coverage metric — you cannot measure what was not read
- Reviewer supply is scarce, and scarcer still for the less common DSLs

**Choose it when:** Every engagement, as the backbone. Highest value on novel application logic, custom gadgets, and cross-component composition — anywhere a specification exists to check against.

Maturity: Production standard · License: Service · Source: https://github.com/0xPARC/zk-bug-tracker

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

| Technique | Layer | Characteristic finds | Blind to | Coverage claim | Cost profile |
| --- | --- | --- | --- | --- | --- |
| Manual circuit review | Circuit | Underconstraint, missing range checks, composition errors, and application-semantic bugs no tool models | Large repetitive constraint sets where attention degrades; anything outside the read scope | None — unmeasurable | High, reviewer-limited |
