Skip to content
SNARKs at a Glance
step 1/5

Reading — step 1 of 5

Read

~2 min readFrom Sigma to SNARKs

SNARKs at a Glance

A SNARK (Succinct Non-interactive ARgument of Knowledge) is the gold standard for ZK at scale.

Key properties:

  • Succinct: proof is tiny (~200 bytes for Groth16) regardless of statement size.
  • Non-interactive: one message from prover to verifier.
  • Argument of Knowledge: prover knows the witness (computationally sound).
  • Zero-knowledge: doesn't reveal the witness.
  • Verifier fast: O(1) or O(log n) verification time.

Example: prove "I know inputs that make this 1-million-gate circuit output 1." Proof: 200 bytes. Verification: ~5ms.

Under the hood:

  • Statement encoded as an arithmetic circuit (constraints over a finite field).
  • Constraints converted to a polynomial (R1CS → QAP for Groth16; AIR for STARKs).
  • Polynomial commitment scheme (KZG, FRI) lets prover commit to massive polynomials with O(1) commitment size.
  • Verifier sends a few random challenges; prover opens commitments at those points.
  • If the polynomial identity holds at random points, it (probably) holds everywhere.

Variants:

  • Groth16: tiny proofs, fastest verifier; trusted setup PER CIRCUIT.
  • PLONK / Marlin: universal trusted setup (one ceremony, reusable); slightly bigger proofs.
  • STARKs: NO trusted setup, transparent; bigger proofs (~50KB).
  • zk-STARK + Recursion: Mina's "perpetual ZK proof" — entire blockchain history compressed to one tiny proof.

Trusted setup:

  • Some SNARKs require a structured reference string (SRS) — generated in a multi-party ceremony.
  • "Powers of tau" ceremonies (Zcash, EthSnarks) had hundreds of participants.
  • If ALL participants colluded, they could forge proofs. Only one needed honest → secure.
  • "Toxic waste" must be deleted after ceremony.

ZKAttacks:

  • "Frozen Heart": implementations of non-interactive ZK that omitted public inputs from the Fiat-Shamir transform.
  • Multiple Bulletproofs/PlonK variants had this in 2022 — 0-of-many-can-forge.

We won't fully implement a SNARK (months of math). We'll build sigma + Fiat-Shamir, glimpse the structure.

Discussion

Ask a question, share an insight, or help someone who’s stuck.

Sign in to post a comment or reply.

Loading…