Check out the prerequisite understanding questions here.

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." This is an "optional" track for those completely familiar with everything in Section 4.

Section 0: Introduction

Everyone should read this!

Readings

Understanding ZKPs Through Illustrated Examples

Zero Knowledge Proofs: An Illustrated Primer

The first (intro) section of What are zk-SNARKs? (short)

ZKPs for Engineers: Introduction

Privacy in Cryptocurrencies: An Overview - only briefly touches on ZKPs, but helpful context for why blockchains care about this kind of privacy tech

Quests

Section 1: ZK Applications in Blockchain

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