Zero Knowledge Bootcamp
In this bootcamp you will understand zero knowledge proofs so well that you can implement the Groth16 and Pinocchio algorithms without AI assistance.
Overview
Learn to code ZK-SNARKs without AI in 100 days
In this bootcamp you will understand zero knowledge proofs so well that you can implement the Groth16 and Pinocchio algorithms without AI assistance.
Additionally, you will gain the ability to explain cutting-edge algorithms to your peers, as explaining ZK concepts yourself is part of the course.
The entire study plan can be completed in less than 100 days.
This bootcamp is not for everyone: you must have a programming background, be comfortable with algebra, and have had some previous exposure to linear algebra (it’s okay if you forgot some of it).
If these prerequisites are missing, then it is impossible to teach zero knowledge proofs without misleadingly oversimplifying them.
How we do it
Zero knowledge has been a famously hard subject for programmers to learn. However, RareSkills has cracked the pedagogical puzzle.
The two biggest factors in rapid skill acquisition in difficult subjects are:
Accountability to achievable targets
Effective study
1. Accountability to achievable targets
Accountability
Committing to doing something for 30 minutes for 100 days is achievable for most busy professionals.
But achievable does not mean easy. Greater priorities like work and family leave little energy for study time.
Chances are, you have 30 minutes in your day to study.
However, you probably do not have the energy to study for 30 minutes a day after working 8 hours.
The RareSkills solution is tried and true: social structure around regular activity creates energy for that activity.
Class meets once a week, and each student’s progress is shared among the cohort. This creates light but productive pressure to stay caught up. The instructor monitors student activity and privately nudges the student away from cramming or skipping days.
Energy is a scarce resource — and this bootcamp will give you the energy to follow through on the 30 minute per day, 100 day study plan for zero knowledge proofs.
Achievable effort targets
Accountability is useless if the targeted activity is not realistically achievable. For example, you cannot be held accountable to complete a marathon tomorrow if you haven’t trained for it.
To this end, we heavily optimize for making 30 minutes of daily study achievable and productive.
This bootcamp consists of slightly over 270 “miniature challenges” that you complete on your own time. The lessons generally take less than 10 minutes to complete, so even busy professionals can find time to study.
We even mobile-optimized the platform so most of the lessons that don’t require coding can be done during awkward breaks in the day.
Here is a snippet of a study plan created for a student — there is no guesswork of what lesson will be done and when.
By eliminating the distraction of “what and how much should I study today” we help the student conserve valuable energy for actual study.
2. Effective study
Before we describe our study methodology, let’s see what other engineers have said about it:
“Legitimately 10x better than anything I’ve ever used” - Jayesh
“compelled to write back about how awesome the app is” - Krishang
“euphoric” - Eze


We cracked the code on how to use modern AI as an effective 1-1 tutor in a frontier subject
Imagine a senior cryptographer — who was also a good tutor — met with you every day for 30 minutes for 100 days.
Your chances of learning how to code a ZK-SNARK from scratch would be very high.
The principles of effective tutoring are well known, but hard to implement. Here are some examples:
Challenge the student at the optimal level of difficulty
Know when to drill and when to test for conceptual understanding
Balance reviewing previous material with teaching new material
Test the student’s knowledge in a way that encourages “enriched memorization” but discourages “rote memorization”
Use creative visuals and interactive animations to help the student create compact mental models
Ask the student to make connections between concepts they learn
Guide the student through “constrained exploration” — let them rediscover major theorems and algorithms on their own, but with heavy scaffolding, guardrails, and concrete examples
Require the student to think out loud so that incorrect thought processes can be fixed early
Organically evoke “burning questions” in the student’s mind before introducing concepts that address them — instead of introducing topics because a syllabus requires it
Never teach facts you won’t use later, i.e. “dangling knowledge.” Everything taught must be used later.
Effective tutoring is an optimization problem with numerous conflicting goals that require careful balancing.
At RareSkills, we know how effective tutoring works, and we know how to operationalize it with AI.
We use a combination of expert-crafted rules and an AI harness that accomplishes all of the above principles (and more) with a near-zero hallucination rate. In only 0.03% of interactions has the AI produced a demonstrably wrong answer or not followed instructions.
What is it like to interact with our AI tutor?
Our platform asks a corpus of human-created questions to progress through premade lessons.
Here is an example interaction where a student is learning how to create proofs for a Quadratic Arithmetic Program (QAP):
The AI asks a wide variety of questions depending on the student’s needs. Here are some “types” of the questions students get asked:
Carry out the computation with concrete numbers and show your work
Produce an example of an abstract concept
Recite the concrete steps of an algorithm
Explain why this attack on a cryptography algorithm is not feasible
What would happen if we changed X — would the algorithm still work? Why or why not?
The app uses several teaching strategies, but the way it teaches new concepts tends to follow the pattern shown below:
For example, we never ask a student to prove a theorem immediately after encountering it. However, we do at some point guide the student through a proof if understanding the proof will make learning later subjects easier.
Every question is given a blank box response to avoid biasing the student with multiple choices or other unrealistic contextual clues. Below is an example interaction where the student must work through concrete numbers that illustrate a concept.
Once the student has accumulated enough new information, the questions can be very open-ended — for example “tell me what you learned.”
Spaced repetition
It is extremely uncommon to learn a subject the first time we encounter it.
In fact, it is a feature that our brain throws away most of the information we encounter for the first time, otherwise our brains would be full of junk.
Memory takes effort, and the human brain naturally conserves energy.
To make memory happen, the brain needs a signal that the energy cost of not memorizing a concept exceeds the cost of memorizing the concept.
Thus, for concepts that are beneficial to memorize, we “raise the energy cost” of not memorizing the topics, but not to the point where the learning experience becomes unnecessarily unpleasant.
After you learn a topic, the app predicts the probability that you still remember the topic as time progresses. Right after you learn a new topic, especially through active questioning, there is a near 100% chance you remember it an hour later. However, this probability decays with time.
Once the probability drops to 90%, the app triggers a review of the subject. If you answer correctly, the “forgetting curve” is predicted to fall at a slower rate. The time you review the topic again is a function of whether you got the review correct.
The phenomenon is plotted below. As time passes, the probability of remembering something drops. But when a review happens, the probability of remembering jumps back to 100%.
By spending less time “relearning” topics you forgot, you can spend less time learning overall.
This learning intervention is called spaced repetition.
What engineering leaders say about the RareSkills ZK bootcamp
ZK Bootcamp syllabus
We cover the topics listed below. This should not be thought of as an exact sequence because topics are spread out and revisited throughout the course. Each of these topics was chosen because they:
are direct prerequisites to understanding ZK-SNARKs
serve as “real-world motivating intermediate goals” on the way to learning ZK-SNARKs
provide the vocabulary to succinctly describe recurring concepts
Here are the topics:
Modeling computation with constraints, Rank 1 Constraint Systems, Quadratic Arithmetic Programs
Modular arithmetic
Elementary Abstract Algebra (subgroups, homomorphisms, finite fields)
Elliptic curves over real numbers, rational numbers, and finite fields
Pairings and cryptography algorithms that use pairings
Polynomials in finite fields, Lagrange interpolation, Schwartz-Zippel lemma
Trusted setups, proofs that polynomials vanish over a domain
Pinocchio (Parno, Gentry, Howell and Raykova 2013)
Groth16 (Jens Groth 2016)
This bootcamp is not a complete course on abstract algebra, number theory, and cryptography. We only teach the parts that are directly relevant to implementing ZK-SNARKs.
Want to learn more?
Put your email here and we'll send you some more materials and answer any questions you have.
Your Instructor

João Paulo Morais
João Paulo Morais, a PhD in physics with 30+ academic publications, began programming in Pascal and Clipper. In 2021, he pivoted to Web3, blockchain, and cryptography, focusing on Ethereum and zero-knowledge proofs. He teaches a Solidity course on Udemy (in Portuguese) and has authored advanced articles on Solidity for RareSkills.
ZK Bootcamp Pricing
$2,600
/ Upfront$1,000 × 3
/ Monthly- Learn to Code ZK-SNARKs from scratch. 30 minutes per day for 100 days
- Weekly group calls
- Human instructor help as needed
- Lifetime membership in a community of industry leaders
Frequently Asked Questions
Job Opportunities
Growth Lead
We're seeking a growth lead to scale HyperLink's adoption, TVL, and partner ecosystem.

Quantitative Researcher
We are looking for an exceptional quant to work on data science and machine learning problems in the blockchain space.

Head of DeFi
Monad Foundation, a core contributor to the Monad protocol, is looking for a Head of DeFi to lead the strategy, relationships, and hands-on execution that grows DeFi across the Monad network.

