Zero Knowledge Proofs for Dummies
2 min readSep 18, 2021
This is a collection of useful tutorials and blog post for learning and getting started with zero knowledge proofs and zk-snarks. It’s mostly written so that I have a good reference point when dwelling deeper into the depths of zero knowledge profs.
I will add to these lists as I learn more. Hopefully it is useful for someone else.
Abbreviations:
- zk-snarks — Zero-Knowledge Succinct Non-Interactive Argument of Knowledge
- Arithmetic circuit — standard model for computing polynomials. Maybe not surprising since the final zk-proof is a polynomial.
- rc1s — Rank 1 constraint system. Typically described by the vectors A,B,C which define the computation of our arithmetic circuit.
- QAP — Quadratic Arithmetic Program, zk-snarks can be applied on these programs but creating them from a general computational problem is non trivial.
- witness — A solution to the equation S.A⋅S.B⋅S−C⋅S=[0] is a witness. This is then used to create a proof.
Reading list:
- Vitalik Buterin’s introduction to SNARKs, part 1, 2, and 3; and STARKs, part 1, 2, and 3.
- Interactive deepdive of rc1s https://asecuritysite.com/encryption/go_r1cs
- https://blog.ethereum.org/2016/12/05/zksnarks-in-a-nutshell/
- https://blog.zkga.me/df-init-circuit
- https://blog.zkga.me/intro-to-zksnarks
- https://zkp.science
Videos:
Zero knowledge proofs in the wild:
Tools:
Other links of interest:
- TariLabs — no idea what they are but they had a lot of good information.