This resource collection contains several subtopics; some will be more interesting to math/theory-oriented readers (i.e. sections 4 and 5), while others will be more interesting to engineers and builders (i.e. sections 1 and 2).

Each subtopic has a reading list (note that we don't expect you to read everything in any given reading list!) and one or more "quests" to help solidify your understanding.

Section 1 focuses on real production use cases of ZK, including mixers/games/rollup on Ethereum, and ZCash / privacy coins.

Section 2 focuses on resources for building decentralized applications with zkSNARKs.

Section 3 covers trusted setup, a process needed to generate the public parameters of a zkSNARK securely. We include some resources on the underlying mathematics and some resources on actually participating in an MPC.

Section 4 covers the mathematics behind zero knowledge cryptography, which has been studied for a few decades. A basic number theory background will be helpful for understanding this section.

Section 5 touches on the mathematics behind zkSNARKs, a powerful new zero-knowledge gadget first invented in 2012. zkSNARKs first became viable in production in blockchain systems in the last few years; they are something of a "cryptographic nuke." Before approaching this track, you should feel comfortable with everything in Section 4.

Section 0: Introduction

Everyone looking to understand zero-knowledge cryptography should read this!



Section 1: ZK Applications in Blockchain

This is probably the friendliest section for engineering-minded readers.