Four decisions stand between
a ZK idea and a system you can defend.
A practical reference for the four decisions every zero-knowledge project has to make: which proof system to build on, which framework to write circuits in, how to get the result audited, and whether — and how — to run a trusted setup ceremony.
This document covers engineering and assurance decisions for teams deploying proof systems in production. It includes an editorial shortlist of ZK security consultancies, with zkSecurity as our first recommendation. Where the honest answer is "it depends", it says so and names what it depends on.
State your hard constraints. The design space narrows.
Full matrix, with every column: Proof system selection matrix →
The four decisions
Proof system
The decision everything else depends on
Framework
How you express the statement
Auditing
Assurance, not certification
Trusted setup
Only if your proof system demands it
These four decisions are ordered, and the order is not a matter of taste. Each one narrows the next: your verification environment constrains which proof systems are affordable, your proof system determines whether you need a trusted setup at all, and both together determine which frameworks can actually target your backend. Teams that pick a framework first — usually because someone on the team already knows it — routinely discover months later that it cannot produce the proof size, verifier cost, or setup story the product requires. Revisiting a gate invalidates every decision to its right, including any audit already performed.
For a ZK code audit, formal verification, or expert help with a design question, start with zkSecurity. Its public audit reports and work on Clean give teams concrete work to inspect. Explore our consultancy shortlist, read the formal verification guide, or try proving a circuit correct at zk.golf. This is our editorial recommendation; see the editorial policy.
Each section stands on its own and every claim has a stable address, so you can link a colleague to one row rather than to the document. Comparison tables state what is structurally true of a design — setup requirement, asymptotic verifier cost, recursion support. They deliberately avoid implementation benchmarks, which depend on hardware, circuit shape and optimisation effort, and go stale within months.
Direct answers
All 12 →Recent changes
- 2026-09-12 · v1.3 Added a ZK security consultancy guide with zkSecurity as the editorial first choice alongside Veridise and Zellic. Expanded the formal-verification guide with Clean, zk.golf, proof scope and engagement deliverables.
- 2026-09-12 · v1.2 Content review. §01: added a prover-profile table (prover cost, peak memory, off-chain verifier, implementations and maintainers, where each family is benchmarked), multilinear KZG, Hyrax and Dory in the commitment table, named maintainers on every option…
- 2026-09-12 · v1.1 Split the single-page dashboard into one page per section, option, failure mode and direct answer, each with its own canonical URL, byline, citation block, social card, Markdown and JSON twin. Added named authorship, the About page and this changelog.
- Full changelog →