Further reading

Every link below was checked to make sure it resolves and actually matches its description before going on this page.

Where the term “SNARK” comes from

Nir Bitansky, Ran Canetti, Alessandro Chiesa, and Eran Tromer, “From Extractable Collision Resistance to Succinct Non-Interactive Arguments of Knowledge, and Back Again” (ITCS 2012, pp. 326–349). The paper that names and formally defines a SNARK.

Groth16

Jens Groth, “On the Size of Pairing-based Non-interactive Arguments” (EUROCRYPT 2016, LNCS 9666, pp. 305–326). The 3-group-element construction mentioned on the homepage and used in Zcash — see Applications.

PLONK

Ariel Gabizon, Zachary J. Williamson, Oana Ciobotaru, “PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge” (IACR ePrint 2019/953). The universal-and-updatable-setup construction — see Glossary for how its trusted setup compares to Groth16’s.

How an arbitrary computation becomes something a SNARK can prove

Vitalik Buterin, “Quadratic Arithmetic Programs: from Zero to Hero” (December 2016). A widely-used, worked example — proving knowledge of a solution to a cubic equation — walking through arithmetization, the first of the two conceptual steps sketched on how it works. The natural next read after this site.


Also see History for the earlier zero-knowledge and Fiat–Shamir work this all builds on, and Glossary for short definitions of the recurring terms.