Succinct argument

A succinct non-interactive argument of knowledge (SNARK) is a proof system in which a prover can convince a verifier that a statement is true using a single short message, where the proof is short relative to the witness size and verification is fast. The “knowledge” variant (SNARK) additionally requires that the prover must “know” a witness — formalized via an extractor. A STARK (Scalable Transparent ARgument of Knowledge) is a SNARK variant that requires no trusted setup and relies only on collision-resistant hash functions, making it post-quantum secure.

Syntax

A succinct argument system for a relation is a tuple of efficient algorithms :

  • takes a security parameter and a circuit (or a bound on circuit size for universal schemes) and produces a common reference string . For transparent systems, is public-coin (no trapdoor).
  • takes the CRS, instance , and witness with , and produces a proof .
  • verifies the proof.

Properties

Completeness

For all and all :

Knowledge soundness

There exists a polynomial-time extractor such that for all efficient : if outputs with , then outputs with , except with negligible probability. Knowledge soundness is strictly stronger than plain soundness (which only requires the prover cannot convince the verifier of a false statement).

Succinctness

The proof size and verifier runtime are — sublinear in the witness and circuit size.

Zero-knowledge (optional)

A zk-SNARK additionally satisfies zero-knowledge: there exists a simulator that produces proofs indistinguishable from real proofs without knowing the witness.

Security game

\begin{algorithm}
\algname{Game}
\caption{$\Game^{\mathrm{ks}}_{\calA,\calE}(\secpar)$}
\begin{algorithmic}
\State $\crs \gets \Setup(1^\secpar)$
\State $(x, \pi) \gets \calA(\crs)$
\State $w \gets \calE^{\calA}(\crs)$
\Comment{Extractor runs $\calA$ as a subroutine}
\If{$\Vrfy(\crs, x, \pi) = 1$ and $(x, w) \notin \calR$}
\Return $1$
\Comment{$\calA$ wins: valid proof but extractor failed}
\EndIf
\Return $0$
\end{algorithmic}
\end{algorithm}

A succinct argument is knowledge-sound if for all efficient there exists a polynomial-time extractor such that is negligible.

Variations

zk-SNARK

A SNARK with zero-knowledge. The verifier learns nothing about the witness beyond the validity of the statement. Groth16 is the canonical pairing-based zk-SNARK with constant proof size (3 group elements) and millisecond verification — Gro16.

STARK

A Scalable Transparent ARgument of Knowledge achieves succinctness without any trusted setup: the algorithm is public-coin (the CRS is just a random oracle / hash function). Security relies only on collision-resistant hash functions, so STARKs are post-quantum secure. Proof size is for a computation of size , larger than pairing-based SNARKs but still sublinear — BBHR18.

The core component of STARKs is the FRI (Fast Reed-Solomon IOP of Proximity) protocol, which is a transparent polynomial commitment scheme based on proximity testing to Reed-Solomon codes.

Universal/updatable SNARKs

Systems like Plonk and Marlin use a single universal trusted setup for all circuits up to size , rather than a per-circuit setup. Plonk uses PLONKish arithmetization and KZG polynomial commitmentsKZG10.

Recursive SNARKs

A SNARK that can verify its own proofs, enabling incremental verifiable computation (IVC) and proof aggregation. Used in zkRollups and zkVMs.

Other results

Participates in

Builds on Succinct argument

Produces Succinct argument

Barriers