7 Weeks of Online Classes
Circom Bootcamp
- Learn how to create a ZKVM (Zero Knowledge Virtual Machine) from scratch
- Learn how to create a zero knowledge proof of the preimage of a cryptographic hash function
- Learn the common design patterns for ZK
Before You Start
Prerequisites
This course is targeted to senior engineers (3+ years of professional programming experience). We assume familiarity with the following topics:
Structured For Success
Circom Bootcamp Curriculum
- Introduction to Circom syntax part 1
- Circom syntax part 2
- Num2Bits and Bits2Num
- 32-bit emulation in ZK
- Hacking underconstrained circuits
- Compute then constrain
- Conditional operators and linear search
- Sequential computations in ZK
- ZK Sort algorithm
- Emulating a stack
- Building a ZK VM
- Building a ZK hash function
- ZK-friendly hashes
- Permutation Argument and Nullifiers
Meet Your Mentor
Your Instructor
Welcome Onboard
Onboarding Process
1
Apply To Enroll
2
Student Interview
3
Payment
4
Course Access
5
Attend Class
What To Expect
Course Structure
Please budget 5 hours of study per week for the course.
Flexible Plans
Circom Bootcamp Pricing
Standard
- 7 × Weeks Lectures
- Tailored Homework
- Weekly Office Hours (Lifetime Access)
- Access to the RareSkills Slack and Discord Community (Lifetime Access)
Premium
- Everything in Starter Tier
- 7 × Individual Code Review and Mentoring Sessions
Everything You Need To Know
Frequently Asked Questions
What is the course structure?
Each week there will be 2 classes of one hour each and a homework assignment. There is an additional office hour so you can ask question in person, and a Slack group for asynchronous help.
How many hours per week?
Please budget 5 hours per week to complete the assignments.
What is the difference between this course and the ZK Bootcamp?
The ZK Bootcamp focuses on foundational math. This course focuses on how to create ZK applications. These bootcamps can be taken in either order.
What will I learn in this course?
Writing verifiable computation using ZK is all about modeling a real problem using constraints, which specifically is a system of equations consisting of addition, multiplication, and equality.
How can you create something as complex as a hash function or a virtual machine when you can only use addition, multiplication, and equality?
You do it by learning the "design patterns" for simpler operations and then composing them into more complex applications. That is what you will learn in this course.