# Various ZKP curated resources
## Resources for starting with (Zero-knowledge) Argument Systems
### A. [Lecture series (MOOC)](https://zk-learning.org) on zero-knowledge proofs/arguments systems
* This is the most broad, in-depth and accessible lecture series on historical and modern zero-knowledge systems. Recommended are at least the first 5 lectures (leading up to and including [PLONK](https://eprint.iacr.org/2019/953)) and also lecture 9 ([Groth16](https://eprint.iacr.org/2016/260.pdf)). Some of the most active cryptographers and presenters/teachers in the field hold the series. Each lecture is recorded, has slides, reading material, quizzes and corrections, plus overall, the MOOC includes a discord channel with sub-channels related each lecture and further topics. Very suitable to pair up with colleagues and follow the lectures, compare notes and discuss replies to quizzes.
### B. [Moonmath manual](https://leastauthority.com/community-matters/moonmath-manual/)
* This is an introductory manual targeted at developers and those that are getting started with zero-knowledge systems (especially efficient arguments systems) but also may not yet posses the mathematical background to delve into this field. The book covers many (maybe all ?) topics building up to an explanation of [Groth16](https://eprint.iacr.org/2016/260.pdf) and is designed around simple, clear and by-example descriptions of every topic covered. It's a great companion for some of the lectures covered in the MOOC above, especially for those that need reminders or intros on various arithmetics or algebra/group theory topics.
### C. PLONK by hand series:
* [part 1](https://research.metastate.dev/plonk-by-hand-part-1/);
* [part 2](https://research.metastate.dev/plonk-by-hand-part-2-the-proof/);
* [part 3](https://research.metastate.dev/plonk-by-hand-part-3-verification/)
As the name says, this is a very well written series that goes through each step of the algorithm and describes each computation on a concrete instantiation of PLONK. Not sufficient for those seeking (mathematical) intuition but a great resources for those that love going through code line by line and printing the results.
### D. Introductory blogposts by Vitalik Buterin
* [QAPs=Quadratic Arithmetic Programs](https://medium.com/@VitalikButerin/quadratic-arithmetic-programs-from-zero-to-hero-f6d558cea649)
* [Elliptic Curve Pairings](https://medium.com/@VitalikButerin/exploring-elliptic-curve-pairings-c73c1864e627)
* [Pinocchio, a historical SNARK](https://medium.com/@VitalikButerin/zk-snarks-under-the-hood-b33151a013f6): These three blogposts should be read together and in the order provided. They offer a good introductory level material on "historical" SNARKs, prior to more modern/recent/efficient Groth16, Sonic, PLONK, Marlin, [Halo](https://eprint.iacr.org/2019/1021), [Halo2](https://zcash.github.io/halo2/), etc.
* [PLONK, a modern SNARK](https://vitalik.ca/general/2019/09/22/plonk.html): A standalone blogpost. Many links to necessary fundamental concepts or comparison with older or concurrent related work provided within.
### E. 7-part explainer on historical SNARKs used by Zcash
* [Zcash blogpost series on SNARKs](https://electriccoin.co/blog/snark-explain/): This is about one of the first SNARKs used on a blockchain; currently this is superseded by more efficient SNARKs. Nevertheless, it is well explained series that shades some light into the intricacies of designing circuits and using SNARKs before [Groth16](https://eprint.iacr.org/2016/260.pdf), [GM17](https://eprint.iacr.org/2017/540), [Sonic](https://eprint.iacr.org/2019/099), [PLONK](https://eprint.iacr.org/2019/953), [Marlin](https://eprint.iacr.org/2019/1047), etc.
### F. [Why and How zk-SNARK Works: Definitive Explanation by Maksym Petkus](https://arxiv.org/pdf/1906.07221.pdf)
* This reference is aimed at complete beginners and no previous knowledge of ZK proof systems or advanced math is assumed. It is especially valuable for its detailed visual explanations of the polynomial computations that are an essential part of all modern ZK proof systems.After introducing all maths and ZK preliminaries starting from first principles, the author slowly throws in all the ingredients that make up a zkSNARK. In the final part of the exposition he puts them together to design a custom zkSNARK protocol. Even though not explicitly mentioned, this is based on older SNARKs, such a [Pinocchio](https://eprint.iacr.org/2013/279.pdf), predating Sonic, Plonk or Marlin.
## Books or manuals
* [Handbook of applied cryptography](https://cacr.uwaterloo.ca/hac/)
* [A graduate course in applied cryptography](http://toc.cryptobook.us/)
* [Proofs, Arguments, and Zero-Knowledge](https://people.cs.georgetown.edu/jthaler/ProofsArgsAndZK.html)
* [Cryptography made simple](https://github.com/isislovecruft/library--/blob/master/cryptography%20%26%20mathematics/Cryptography%20Made%20Simple%20(2016)%20-%20Smart.pdf)
* [Moonmath manual](https://leastauthority.com/community-matters/moonmath-manual/)
## Academic papers
Free archive here https://eprint.iacr.org/
## Presentations or summer schools or courses
https://zk-learning.org/
[ZK Study Club (organised by Anna Rose)](https://www.youtube.com/playlist?list=PLj80z0cJm8QHm_9BdZ1BqcGbgE-BEn-3Y)
[All ZK Summit talks on youtube](https://www.youtube.com/playlist?list=PLj80z0cJm8QFnY6VLVa84nr-21DNvjWH7)
https://cyber.biu.ac.il/event/the-9th-biu-winter-school-on-cryptography/
https://cyber.biu.ac.il/event/the-12th-biu-winter-school-on-cryptography/
https://docs.zkproof.org/presentations
https://docs.zkproof.org/standards/proposals
https://docs.zkproof.org/
https://cs251.stanford.edu/syllabus.html
## Relevant blogposts or series of blogposts
* Plonk by Hand: [part 1](https://research.metastate.dev/plonk-by-hand-part-1/); [part 2](https://research.metastate.dev/plonk-by-hand-part-2-the-proof/); [part 3](https://research.metastate.dev/plonk-by-hand-part-3-verification/)
* https://geometry.xyz/notebook
* https://ethresear.ch/
* https://zkproof.org/blog/
* https://alinush.github.io/
* https://decentralizedthoughts.github.io/about-alin/
* https://github.com/fluidex/awesome-plonk
* https://zkp.science/
* https://github.com/matter-labs/awesome-zero-knowledge-proofs
## Relevant conferences
* https://zkproof.org/
* https://cbr.stanford.edu/sbc23/
* https://aftconf.github.io/aft23/index.html
* https://www.zksummit.com/
* https://fc23.ifca.ai/
## Newsletters
* https://zkmesh.substack.com/
* https://zknewsletter.substack.com/
## Other topics
* [Discord link to ZK Study weekly group by Justin Thaler](https://discord.com/channels/740913612368904192/871667802270994432 )