How to use these notes: These notes are meant to go along with slides and recordings. If you're following along with either the slides or the course recordings, and want to dig deeper into some topic mentioned, look for the appropriate header below for additional links or context.
For an overview of high-level topics and trends in modern ZK, and why the technology is important we highly recommend this hour-long panel. This panel is aimed at an audience with technical literacy but no ZK-specific background.
You can find all of this information on the course homepage.
You can find all of the information in these slides on the course homepage.
We expect to move pretty fast, and we assume a solid mathematical foundation. This foundation is mostly necessary for fully understanding everything going on, building a project, etc.
Lectures 5 through 9 (covering the construction of ZK proving stacks) in particular will absolutely require a level of comfort with the mathematical prereqs listed in the course description. Without the appropriate level of background, this course will be difficult to follow.
There are a few different levels of participation.
For students who are just "looking around":
For students who are interested in seriously diving into ZK:
Notably, the first week serves as an "introduction" to the content, from which you can decide whether or not you want to join on as a full participant in the course, follow along with the material more passively, or drop the program altogether.
The full Discord will be opened at the end of the first week.
For a more formal reference on the properties of ZKPs, see here.
I highly recommend Vitalik Buterin's explainer on zkSNARK app design patterns here. In this section, we've given a very rapid fly-by overview of the first four-ish sections of this blog post.
This will be covererd in more detail later, but there are plenty of great resources to understand how zkSNARKs work, their academic lineage, etc.
If you're interested in infrastructure or developer tools, zkREPL is a really cool example of a useful ZK dev tool.
Read more about it here, or watch Kevin Kwok's talk here.
See the exercises for more info!
We also recommend Dan Boneh's CS 251 lectures (Lectures 14 and 15) on zkSNARKs.
Previous versions of this course (versions with a more applied focus) are also hosted at learn.0xparc.org.