0xPARC maintains a list of learning resources here:
They come with the following caveat:
ZK stuff is still quite immature/low-level right now, so a solid grasp on ~intro number theory is a prereq for making meaningful progress on many/most potential zk projects
Via @matheus23
I’m interested to hear what people have to say about this! I haven’t had the chance to try it out myself, but I’ve heard people liked using circom: GitHub - iden3/circom: zkSnark circuit compiler
Video
An Evolution of Models for Zero-Knowledge Proofs with Sarah Meiklejohn
Papers
some of these may be useful to split out into their own pages
Libraries/Tools
- circom: https://docs.circom.io/
- snarkyjs: https://docs.minaprotocol.com/en/zkapps/snarkyjs-reference
- lurk: GitHub - lurk-lab/lurk-rs: Lurk is a Turing-complete programming language for recursive zk-SNARKs. It is a statically scoped dialect of Lisp, influenced by Scheme and Common Lisp.
- risc0: https://www.risczero.com/
SNARK Systems
- Lots of PLONK (https://eprint.iacr.org/2019/953.pdf) based:
- Groth16: On the Size of Pairing-based Non-interactive Arguments (Is it PLONK-based?)
- Microsoft’s Nova: GitHub - microsoft/Nova: Nova: High-speed recursive arguments from folding schemes
Applications
- Guess the cat: https://guess-the-cat.netlify.app/
- Dark Forest (“zero knowledge game” → “zkga.me”) https://zkga.me/