Written by Pablo Gómez
Founder & CEO at Metlabs · Reviewed on October 11, 2026
SNARK stands for Succinct Non-interactive ARgument of Knowledge. Succinct because proof size and verification time are constant or polylogarithmic in the computation being proved. Non-interactive because a single proof is sent, often via the Fiat-Shamir heuristic. Argument because soundness is computational, valid against adversaries with bounded computing power. Of Knowledge because the prover genuinely holds the witness. When it also hides that witness, the zk prefix is added, for zero-knowledge. The computation compiles into a circuit (R1CS or PLONKish gates), is turned into polynomials and anchored with a polynomial commitment scheme.
Many SNARKs require a trusted setup, a ceremony generating parameters from a secret that must be destroyed. Groth16 (2016) yields the most compact proof, on the order of 128 bytes, but needs a per-circuit setup. PLONK (2019, Aztec) introduced the universal, updatable setup, reusable for any circuit in exchange for somewhat larger proofs. By contrast, a STARK is transparent, with no ceremony, and because it relies only on hashes it is appealing post-quantum, whereas pairing-based SNARKs are not.
The SNARK underpins ZK rollups: thousands of transactions run off-chain and a single validity proof is posted to Ethereum, which the verifier contract checks without re-executing. This scales while inheriting base-layer security, with cheap on-chain gas. Zcash pioneered zk-SNARKs over Groth16 for shielded transactions; Scroll and zkSync Era are examples of validity-proof rollups; Aztec originated PLONK. A precise note: Starknet uses STARKs, not SNARKs, though it often wraps the STARK in a SNARK to cheapen final verification.
Also known as
- Succinct Non-interactive Argument of Knowledge





