Zero Knowledge Book by RareSkills
About the book
This book is not an assortment of ZK topics. It is an opinionated subset about what you need to know to actually code a practical zero knowledge prover and verifier (ZK-SNARK) from scratch.
There is a different between having conceptual understanding of something and having a concrete understanding. Most reasonably smart people get a conceptual understanding of something after reading a tutorial, but they are still a long way off from doing something useful with that knowledge.
For a mathematician, a concrete understanding happens when they write a proof. For a programmer, a concrete understanding happens when they write functioning code.
The RareSkills Book of Zero Knowledge is heavily geared towards the programmer seeking to obtain a concrete understanding. Our book is full of code snippets and demonstrates the use of actual cryptography libraries. We make use of math notation, but we write it in such a way that translating it to source code is only a small leap.
Groth16 is the algorithm used by tornado cash (and many others) for implementing zero knowledge proofs on-chain. We believe it is an optimal starting point for your learning journey, and our book is the most direct route to fully understanding the algorithm.