- To sign up for the course, please fill in this form.
- Add to your calendar
- For general course content related questions, please join our discord.
- Check Spam / Promotions to ensure MOOC emails are not missed.
Instructors
![]() |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|
Dan Boneh | Shafi Goldwasser | Dawn Song | Justin Thaler | Yupeng Zhang |
Stanford | UC Berkeley | UC Berkeley | Georgetown University | Texas A&M University |
Course Staff
- TAs: Deevashwer Rathee (Head TA)
- Readers: Elden Ren, Vikhyath Mondreti
Syllabus (subject to change)
Date | Topic |
---|---|
01/17 | Introduction and History of ZKP |
Lecture
| Quiz
| Slides
Readings
|
01/24 | Overview of Modern SNARK Constructions
| Lecture
| Playlist
| Quiz
| Slides
Readings |
01/31 | Libraries and Compilers to build ZKP
| Lecture
| Playlist
| Quiz
| Slides
Resources |
2. Efficient Constructions of ZKP | |
2.1. Polynomial IOPs | |
02/07 | Interactive Proofs (IP) |
02/14 | Plonk Interactive Oracle Proofs (IOP) |
2.2. Polynomial Commitments | |
02/21 | Discrete-log-based Polynomial Commitments |
02/28 | ZKP based on Error-Correcting Codes |
03/07 | Transparent ZKP |
2.3. Linear PCP | |
03/14 | Linear Probabilistically Checkable Proofs (PCP) |
2.4. Recursive SNARKs | |
03/21 | Recursive SNARKs, Aggregation and Accumulation |
Spring Break (03/27 - 03/31) | |
3. Applications of ZKP | |
04/04 | Overview of Applications of ZKP |
04/11 | Improving Blockchain Scalability: zkRollup and zkEVM |
04/18 | Privacy-preserving Blockchains |
4. Advanced Topics in ZKP | |
04/25 | Theoretical Foundations & Recent Theoretical Advancements |
05/02 | Hardware Acceleration of ZKP |
05/09 | Formal Verification of ZKP (Optional Lecture) |
Course Work
- Weekly Quizzes
- Programming Lab
- Homework
Quizzes
All quizzes are released in parallel with (or shortly after) the corresponding lecture and will be due midnight the following Tuesday. Please remember to complete the quiz each week. Although it’s graded on completion, we encourage you to do your best. The questions are all multiple-choice.
Course Completion NFTs
We will distribute NFTs for completion of the course. Below are the rules for different tiers (subject to change):
Honorary Tier: Instructors, guest speakers, TAs, and the most supportive students who help others on Discord will be rewarded with special NFTs.
Legendary Tier: Students must:
- Complete at least 12 quizzes on time (before the following lecture date as specified on the website); and
- Receive a final grade of at least 24 out of 30 marks:
- (10 marks) Finish the HW by [due date].
- (20 marks) Finish the Lab by [due date].
Ninja Tier: Students must:
- Complete at least 10 quizzes on time (before May 10th 2023 PST); and
- Receive a final grade of at least 15 out of 40 marks:
- (10 marks) Finish the HW by [due date].
- (20 marks) Finish the Lab by [due date].
- (10 marks) Post an article online about a relevant topic covered in this course or your experience of the course, and tweet about the article.
- for example a blog post on:
- Summarizing information from certain lectures
- Specific zk-proof protocols
- Applications of zk-proofs such as privacy or blockchain scaling.
- The article’s marking criteria can be found below:
- Understanding (3 marks): displays breadth/depth of understanding of the topic.
- Importance (2 marks): content conveys an important aspect of zk-proofs.
- Clarity (3 marks): explains complex concepts simply, clearly, and accurately.
- References (2 marks): cites the relevant lecture and reference material such as research papers properly.
- for example a blog post on:
Trailblazer Tier:
- Students must complete at least 10 quizzes before May 15th 2023 PST; and
- Post two articles (examples and marking criteria same as above), tweet about them, and get at least 15 out of 20 total points before May 15th 2023 PST.
Course Description
This class aims to bring together students and experts in academia and industry to explore Zero-Knowledge Proofs (ZKP). ZKP is a classical cryptographic primitive that ensures the validity of data and computations without sacrificing their confidentiality. It was proposed in the seminal paper by Goldwasser-Micali-Rackoff in 1985. Long considered wildly impractical, ZKPs have seen enormous efficiency improvements over the last decade. This has unlocked entirely new paradigms in the design of distributed and trustless systems, making ZKP one of the most important technologies to the future of blockchains. ZKPs are already being used to build privacy-preserving cryptocurrencies and to improve scalability via zkRollups and zkEVMs, and they stand poised to transform society’s mechanisms for establishing trust and privacy in the coming years and decades.
Our goal is to provide a platform for students to learn the cutting-edge technology of ZKP. Through the exposure to research in academia, and technology in industry, the students will be able to quickly gain the knowledge of ZKP and to develop ZKP systems for various applications.
This course covers fundamental techniques to build ZKP protocols, tools to implement ZKP for different computations, and different applications of ZKP in blockchain and other areas. Topics in the course include:
- An introduction on the history of ZKP. We will cover the theoretical foundations and early constructions of ZKP, as well as the recent theoretical advancements in this research area.
- We will cover the design of several current efficient ZKP systems. We will discuss the key ideas in the constructions of these ZKP schemes. ZKP schemes can be based on various different cryptographic techniques and the course will elaborate on their advantages and disadvantages in terms of efficiency, trust model and assumptions.
- To help students with developing ZKP systems and applications, we will provide tutorials on the front-end compilers to write ZKP statements. Students can write the computations using such higher-level programming languages, and compile them to low-level representations and run the ZKP protocols using these tools.
- Finally, we will cover applications of ZKP, including (1) privacy-preserving cryptocurrencies and computations such as Zcash and Zexe; (2) zkRollup and zkEVM that improve the scalability of blockchain; (3) zkBridge to build a secure foundation for multi-chain interoperability; (4) other applications in machine learning, program analysis, and network traffic analysis.
Assignment Timeline
Assignment | Released | Deadline |
---|---|---|
Lab | 02/28 | 03/13 |
HW | 04/04 | 04/17 |
Class Start Date
January 17, 2023