This is a backfill note from 2025-06-19.
Perhaps the most powerful cryptographic technology to come out of the last decade is general-purpose succinct zero knowledge proofs, usually called zk-SNARKs
I’m starting to learn about zkSNARKs, and while there’s a lot I don’t know, I feel I have a basic map of where things fall in the landscape. So I thought I’d write it down for myself and others. This is not meant to be a self-contained primer, but rather to point to what needs to be studied.
There are some nice popular-level illustrations of zero-knowledge proofs. In order of the amount of math / reasoning required:
To implement these sorts of protocols in code, one needs a commitment scheme, for instance Pedersen commitment.
All of the above zero-knowledge proof protocols are interactive. For practical applications, we would prefer non-interactive proofs. Skipping over a lot of research, this train of thought leads to zkSNARKs. zkSNARK stands for “zero-knowledge Succinct Non-interactive ARgument of Knowledge”. This review will have more about the history of developments that led to zkSNARKs.
For a first exposure to zkSNARKs, I used this Christian Reitwiessner talk; Vitalik Buterin’s introduction also looks great. This all takes some time to digest and flesh out.
Then the next level to take is, Vitalik Buterin and this Halo forums post both divide up current zkSNARK implementations into 3 streams:
So one can go and learn each of these areas, or just one depending on interest. Each of these has its advantages and disadvantages, and each is being actively pushed forward.
Here are some nice zkSNARK learning resources.