Computational cryptography › Public-key encryption and key exchange › Classical number theory › Pairing groups: BLS12-381, BN254
ZK PROOFPrimitiveGGMAGMFS

Pairing-based zkSNARKs

In plain words

A tiny proof that a computation was done correctly, which anyone can check in milliseconds, even without seeing the inputs.

The idea: First the computation is rewritten as a set of polynomial equations that hold only if every step was done right. The prover commits to those polynomials, and the verifier checks them at a random secret point hidden in curve points from the setup. Two different polynomials almost never agree at a random point, so passing the check there convinces the verifier that the equations hold everywhere, and a pairing makes the check take milliseconds. Extra randomness mixed in hides the inputs.

Why it matters: Powers private payments and the "zk" rollups that scale blockchains.

The details

On the map: Groth16, PLONK (FS: PLONK only)

Succinct non-interactive arguments of knowledge: a tiny proof (Groth16: three curve points, 128 bytes on BN254 compressed or 256 uncompressed)[1] that a computation was done correctly, checkable in milliseconds and able to hide secret inputs (zero knowledge).

Groth16 needs a trusted setup per circuit. PLONK needs one universal setup (KZG)[2]. PLONK is made non-interactive with Fiat-Shamir[3] (the FS tag). Groth16 is non-interactive by design. Security proofs use the generic or algebraic group model, and Gentry and Wichs (2011)[4] showed that no such succinct argument can be proven secure from standard falsifiable assumptions by black-box reductions, so some idealized model is unavoidable.

Where you meet it: Zcash[5], zk-rollups, private identity and voting systems.

Rests on

If any of these breaks, this breaks too.

If it falls

If this breaks, these break with it.

Nothing on the map depends on it: it is an end point, something people use directly.

About the tags

GGM
Its security proof only covers attackers who use the group as a black box (the generic group model), an idealization.
AGM
Its security proof assumes attackers only produce group elements by combining ones they were given (the algebraic group model), an idealization.
FS
Made non-interactive with the Fiat-Shamir transform, so it falls if Fiat-Shamir fails for it. Fiat-Shamir is proven only for an idealized hash, see its box.

References

  1. Jens Groth. On the Size of Pairing-Based Non-interactive Arguments. Advances in Cryptology – EUROCRYPT 2016. doi:10.1007/978-3-662-49896-5_11
  2. Ariel Gabizon, Zachary J. Williamson and Oana Ciobotaru. PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge. IACR Cryptology ePrint Archive, Paper 2019/953. eprint.iacr.org/2019/953
  3. Amos Fiat and Adi Shamir. How To Prove Yourself: Practical Solutions to Identification and Signature Problems. Advances in Cryptology — CRYPTO’ 86, 1986. doi:10.1007/3-540-47721-7_12
  4. Craig Gentry and Daniel Wichs. Separating succinct non-interactive arguments from all falsifiable assumptions. Proceedings of the forty-third annual ACM symposium on Theory of computing, 2011. doi:10.1145/1993636.1993651
  5. Daira-Emma Hopwood, Sean Bowe, Taylor Hornby and Nathan Wilcox. Zcash Protocol Specification. Electric Coin Company, 2016. zips.z.cash/protocol/protocol.pdf