11 Weeks of Online Classes

Zero Knowledge Bootcamp

Conquer the fearsome math and code ZK algorithms from scratch.
Next Cohort:
14th August 2025
9:00 AM EDT
Apply Now
“I expect ZK-SNARKs to be a significant revolution as they permeate the mainstream world over the next 10-20 years.”
Vitalik ButerinEthereum Co-Founder

Zero Knowledge proofs (ZK proofs) have two incredible properties:

  • They allow privacy preservation in ways that were previously impossible, and
  • They allow the computation to be verified faster than the original computation.
  • This allows for the Ethereum blockchain to scale up because validators don’t have to re-run all the transactions to ensure they are valid - they just need to check the proofs.

Unfortunately, like all new technologies, learning Zero Knowledge is not easy. But that’s what this Zero Knowledge course is for!

This course is not simply about writing applications in Zero Knowledge programming languages, but acquiring such a comprehensive understanding of the subject that you can write a Zero Knowledge proof algorithm from scratch.

Isn’t abstract algebra hard to learn?

We don’t think so. If you have a STEM major or taught yourself how to code, you’ll be able to learn the parts you need. Abstract algebra isn’t useful because of its complexity (it’s not complex), but because of its generalizability. We will only cover elementary abstract algebra, equivalent to two or three chapters in a lightweight textbook.

Don't ZK proofs require moon math?

No, only bilinear pairings can rightfully be considered moon math. The rest requires math every 1st year undergraduate STEM major knows (or can easily learn). But armed with abstract algebra, you’ll be able to literally abstract away the complexity and focus on the practical aspects.

Before You Start

Prerequisites

Python and numpy. Basic experience with Jupyter Notebooks is highly recommended.
You need to have taken a course on linear algebra before. It’s okay if you’ve forgotten it, we will give you some refresher materials, but to really appreciate abstract algebra, you need to have seen at least two fields of “traditional” algebra. We will also take it for granted that you know how matrix multiplication and the dot product works.
You should know what Z.K.-S.N.A.R.K. stands for and what each term means. We will not waste time explaining to you why ZK-SNARKs are important. Hopefully you know that already.
Being familiar with Solidity, Yul assembly, and ABI encoding will be helpful for completing the assignments. If you do not come from a smart contract programming background, we have a separate set of assignments for you to enforce the concepts as a replacement for the Solidity ones. The course is taught from the perspective of a Solidity developer, but blockchain developers from other chains like Solana can benefit too, even those from a non-web3 technical background such as machine learning engineers.

Structured For Success

ZK Bootcamp Curriculum

Last updated: April 2025
1.

Algebraic Structures

Sets, semigroups, monoids, groups, abelian groups, cyclic groups, rings, and fields.
2.

Homomorphisms and Modular Arithmetic

Galois fields, Galois field arithmetic, homomorphic encryption.
3.

Introduction to Elliptic Curves and ECDSA

Why elliptic curve addition is closed. Elliptic Curve Digital Signature Algorithm.
4.

BN128 Curve Arithmetic

Elliptic Curve addition, scalar multiplication, point negation.
5.

Bilinear Pairings

Optimal ate pairing, G1, G2, and G12, EIP-197, symmetric and asymmetric pairings, final exponentiate.
6.

Arithmetic Circuits

Witnesses, computation vs verification.
7.

Rank 1 Constraint Systems

Rank 1 Constraint Systems, ZK-NARKS (non-succinct ZK Proofs).
8.

Quadratic Arithmetic Programs

Schwartz-Zippel Lemma, Polynomial and Column Vector Rings, Lagrange Interpolation, target polynomial.
9.

Evaluating Polynomials at Elliptic Curve Points

Polynomials as inner products, evaluating polynomials without knowing x.
10.

Groth16 Part 1

Proof forgery, alpha, beta, trusted setup.
11.

Groth16 Part 2

Gamma, delta, salts, end-to-end Groth16.

Join Our ZK Bootcamp

Next Cohort:
14th August 2025
9:00 AM EDT
Apply Now

Meet Your Mentor

Your Instructor

Jeffrey Scholz

Jeffrey Scholz, founder of RareSkills, was Yahoo’s youngest senior engineering manager, building its video machine learning team and earning two AI patents. His work at RareSkills has helped 100s of engineers land roles at top blockchain companies, and the author of the popular The RareSkills Book of ZK. He holds a Masters degree in computational theory from Columbia University.

Welcome Onboard

Onboarding Process

1

Apply To Enroll

5

Attend Class

2

Interview

3

Payment

4

Course Access

Flexible Plans

ZK Bootcamp Pricing

Next Cohort:
14th August 2025
14th August 2025

Standard

$2,300/upfront
$1,250 × 2/monthly
  • 11 × Weeks Lectures
  • Tailored Homework
  • Weekly Office Hours (Lifetime Access)
  • Access to the RareSkills Slack and Discord Community (Lifetime Access)
Apply Now

Premium

$3,400/upfront
$1,800 × 2/monthly
  • Everything in Starter Tier
  • 11 × Individual Code Review and Mentoring Sessions
Apply Now
Save 2% if you pay with USDC or USDT

Making Their Mark

Our Impressive Alumni

Highest earning security researcher in Cantina, with over $600,000 in earnings.
Zigtur
Joined zkSync, Shortly After Completing Our ZK Bootcamp.
Rahul Saxena
Landed a Job in Coinbase, shortly after completing our Course.
Darian Chan
Co-authored ERC-3643 & Worked as a tech lead at PolyTrade & Biconomy.
Adam Boudjemaa
DevRel at Chainlink
Andrej Rakic
Hired as a Zero-Knowledge Security Researcher at zkSecurity after completing the ZK bootcamp
Marco Besier
Achieved a Top 10 finish in the Reserve Protocol competition
agent3blood
Co-founded Kwenta, which was later acquired by Synthetix
etnom
Former Privacy Scaling Engineer at the Ethereum Foundation, now Lead Engineer at Cryptex Finance
crisgarner.eth
Serving as Blockchain Lead at the Fantom Foundation
Evgenii Danilenko

Everything You Need To Know

Frequently Asked Questions

Although mathematicians often use unnecessarily complex vocabulary to describe simple concepts, we opt to use their lingo because it will help you study the literature on your own later. You’ll get used to it pretty quickly.

Please read our article Elementary Set Theory and Abstract Algebra for Programmers and do the exercises in it.

No. If you are just looking to casually understand the subject, check out our blog topics tagged Zero Knowledge Proof. This course is intended for serious learners who are not satisfied with going halfway.

If you purchase the basic plan, you get access to weekly live lectures (11 total), study materials, and the RareSkills community. If you purchase the premium plan, you also get a weekly one-on-one meeting (11 in total) with one of the instructors to review your code and make sure you really understand the material. The hard commitments are 1 hour per week, plus an optional 30-minute meeting.

This will strongly depend on your background. If you’ve already taken an abstract algebra course, you might be able to do the course in as little as 6 hours a week. If you’re newer to the fields of math we’ve listed above, you should set aside 20 hours to be on the safe side, as it will take more time for the concepts to sink in and complete the homework satisfactorily.

This isn’t advisable because without a deeper understanding, you won’t be able to design applications, and you’ll have a harder time understanding vulnerabilities. Additionally, there seem to be far more jobs in the infrastructure layer than the application layer. That said, our Zero Knowledge puzzles (in Circom) and Noir puzzles are open-sourced. So check them out to start writing code right away.

Beginner is good enough. We use Python as it has some handy math libraries that we will explicitly teach. You are free to use another language, but you’ll need to find the equivalent libraries on your own. If you prefer to use math software like Matlab, you can do that also, but we won’t offer support for other languages. That said, you need to be proficient at coding in general. If you are completely new to Python, we will provide some pre-course study materials for you to go over.

100% online. Everything will be done through Google meets.

Apply Now