DecorationDecoration
11 weeks of live online classes

Zero Knowledge Bootcamp

Conquer the fearsome math and code ZK algorithms from scratch
Next Cohort : 31st October 2024 10:00AM 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 Buterin
Ethereum’s inventor

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.

We will cover applied Zero Knowledge programming, of course, but the real value of this course is deeply understanding the foundations that have stumped learners for years.

Next Cohort : 31st October 2024 10:00AM EDT

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.

Apply now

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.

Apply now

Prerequisites

You should be familiar with the following before starting

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.

Zero Knowlegde Proof Curriculum

Last Updated : May 2024

11 Weeks
Week 1
Algebraic Structures

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

Week 2
Homomorphisms and Modular Arithmetic

Galois fields, Galois field arithmetic, homomorphic encryption.

Week 3
Introduction to Elliptic Curves and ECDSA

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

Week 4
BN128 Curve Arithmetic

Elliptic Curve addition, scalar multiplication, point negation.

Week 5
Bilinear Pairings

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

Week 6
Arithmetic Circuits

Witnesses, computation vs verification.

Week 7
Rank 1 Constraint Systems

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

Week 8
Quadratic Arithmetic Programs

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

Week 9
Evaluating Polynomials at Elliptic Curve Points

Polynomials as inner products, evaluating polynomials without knowing x.

Week 10
Groth16 Part 1

Proof forgery, alpha, beta, trusted setup.

Week 11
Groth16 Part 2

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

Weekly Live Classes

Our instructors are industry experts with extensive experience in smart contract development and auditing. They are dedicated to helping you succeed through one-on-one mentorship, code reviews, and weekly live office hours. And benefits from their extensive experience and passion for teaching while engaging in interactive, real-time sessions.

Jeffrey Scholz

Jeffrey Scholz

Jeffrey is the instructor of the only two expert-level Ethereum development courses on Udemy, both of which are bestsellers. His blog on Ethereum development has significantly influenced major projects in the web3 space.

Success Stories from Our Alumni

Our students, from Web3 technical founders to lead solidity developers, have seen tremendous success after completing our bootcamps. With over 8 figures of funding collectively raised by our alumni for their technical Web3 startups, their achievements stand testament to the quality of our programs.

Vectorized.eth
"If you have ever felt FOMO from all the zk moon math talk, just take RareSkills zk bootcamp."
If you have ever felt FOMO from all the zk moon math talk, just take RareSkills zk bootcamp. Yes, they have published superb free public reading materials, but you will learn much better with live, well-paced customized lessons, and the 1:1 homework feedback. Even if you do not have concrete plans to use zk in your professional work, the zk bootcamp will help you achieve a much deeper understanding and appreciation of the EVM ecosystem in general. Take the dive.

Vectorized.eth

Protocol Lead | Author of Solady | Maintainer of ERC721a
Rahul Saxena
"Don't think, join immediately."
This ZK Bootcamp has been the best introduction to ZK I've found so far. It has given me the exact blend of theory and practical experience that I was looking for. The assignments were well thought out and helped cement the core concepts of every class. Overall I'd highly recommend this course to anyone who has been trying to get into ZK and has been getting bamboozled by its apparent complexity.The community was very good. I think it was very competitive, and it kept me on my toes and pushed me to complete the course to a satisfiable level. There were many days where I felt like lagging a little, but I did not give up because my classmates were doing well and I wanted to be amongst them. Secondly, I think the biggest push, or the biggest thing that helped cement the concepts in my mind, or the assignments and the one to one chats I got to have with Jeffrey, I think that was the best part, because that added an extra layer of accountability. Plus, it also ensured me and put me at ease that the things that I was understanding were actually correct, and I was not mistaking something with the guest. So overall, it was a really nice experience. The community was helpful. Jeffrey was always available to answer your questions, and he clearly admitted that you do not need to know a lot of things to know ZK, and he kept us on a very specific path to break into ZK. And for that path, I think he was the best instructor that I could have asked for. Thanks.So personally speaking, I was able to join zkSync right out of the bootcamp. zkSync is one of the leading ZK roll ups, the leading L2 scaling solution for Ethereum. And although technically I was not hired for my ZK skills, but the knowledge that I had had a very great impact on the hiring decision. I have a background in smart contract security, so they hired me for that as well, as I did have a very clear understanding of whatever I knew in ZK, so it helped my case and they hired me in this company. Now, I have been learning a lot about the industry level ZK and the background that I've had in the boot camp has helped me grasp the concepts very well. And I would also say that it has helped me gain recognition as someone who knows a bit of ZK. And it has helped me get into communities with other ZK enthusiasts, people who are working on really cool ZK stuff, and I get to interact with them, I hang out with them and bounce ideas off of each other. And lastly, I would say that if you are someone who is looking to get into ZK, for whatever reason, the best thing is that the entire course of the bootcamp has been open sourced and available to the public. You can simply just go and read it. But if you value the instructor's time, if you value Jeffrey's time, then I’d say take the course. No doubts. It's the best thing that you can do right now. Thank you.

Rahul Saxena

Protocol Security Engineer
Bernhard Mueller
" I highly recommend the bootcamp for anyone who wants to get started with zk proofs."
Zero knowledge proofs are hands down the most difficult topic to master in web3. The RareSkills zk bootcamp is a 9 weeks hands-on program that covers everything. Basic Math concepts to implementation details of real-world zk protocols. Thanks to tons of practical exercises, Jeffrey’s easily understandable explanations and his one-on-one support, I developed a fundamental understanding of the topic and was able to implement Groth16 from scratch at the end of the course.

Bernhard Mueller

Smart Contract Auditor
Evgenii Danilenko
"It's like well structured it covers all necessary topics."
Not my first attempt to dig into ZK thing but with RareSkills. It was my first successful attempt. The rest of the things like old materials that they have on YouTube have marks and signs. Of course they didn't provide me more programmers experience, I'd say. So it was more like math related rather than programming related. In RareSkills. It's both sides. You have no math to the programming, which is great, because I am a programmer, I'm a software engineer for many years. Definitely can recommend to do all homework as fast as you can. Otherwise it's way too hard to catch up with the course. Although it's like well structured it covers all necessary topics. So for me it was great. asd

Evgenii Danilenko

Core Developer
Josh Quintel
"I joined the RareSkills Zero Knowledge Bootcamp to delve deeper into cryptography, specifically to use zero-knowledge proofs to verify computation."
Overall, my experience with RareSkills was really great. I thought the material was paced very well. I really enjoyed that we had the pre-course material to ensure everyone was on the same page when they started. I found Jeff to be a knowledgeable teacher and always willing to answer students' questions, including my own. I also really liked the opportunities to help each other out via the Slack channel. The entire Slack experience was really nice as well.So, yeah, I would definitely recommend it to anyone. Honestly, it exceeded my expectations. I felt there would be a lot less live content and opportunity for interactive learning than there was, so I was pleasantly surprised by that.RareSkills Bootcamp impacted my career in two main ways. First and foremost, during my day job, it makes me a lot more confident in discussing these types of topics. There are a number of ZKP use cases, especially in Layer 2 networks in Ethereum. So, working in web3 infrastructure, it’s definitely valuable in every regard.And then, the second piece of that is that it’s helped me explore other cryptography topics, get deeper on zero-knowledge proofs, and even things outside of that, by enhancing my ability to read academic papers and things like that. This hopefully will eventually culminate in me founding my own company, as this was actually partly another impetus for me joining this, as I’m looking at applications of cryptography to certain other industries.To someone considering joining it, I would say just go for it. Zero-knowledge proofs are such a nascent thing that it’s going to be really hard to cobble together your own learnings from blog posts and things like that. I mean, even the excellent ones provided in RareSkills' ZKP book, it’s going to be really helpful for you to have Jeff walk you through it, to be able to talk to your classmates. It just helps it stick and it really helps give you the confidence in your experience, whereas doing it yourself maybe you have some doubts, no one else has looked at your work, that type of thing. It’s definitely a good way to learn with confidence.

Josh Quintel

Lead Product Manager, Infura MetaRPC
Sam Polgar
"Rareskills Bootcamp taught me the skills to implement a crypto research paper in Python. For me, that was the most exciting part and the real nugget that I came away with. "
Hey, I’m Sam. I just finished the RareSkills ZK Bootcamp, and it's not only about a Groth16 proof system from start to finish, but it really taught me the skills and a bit of experience to implement a crypto research paper in Python. For me, that was the most exciting part, and the real nugget that I came away with. The cohorts as well, such a high caliber, the people, their experience, and just the motivation behind everyone in the course, brings me up higher and I think everyone else up as well. It’s very exciting, and I can’t recommend it enough. Thanks!

Sam Polgar

Cryptography Researcher & Engineer
Eduardo Westphal da Cunha
"If you want to have a good understanding about the theory of ZK proofs, that's the right course for you!"
Hi, my name is Eduardo. I'm a Smart Contract Engineer at Lumx. I joined the ZK bootcamp, because I wanted to understand what ZK is and develop a ZK proof from scratch, so that I would be able to come up with new solutions and products to the companyThe ZK bootcamp was really good! Jeffrey has deep knowledge about the field, the classes were very interactive. The content was deep, but without getting to much on stuff that wouldn't be useful to implement a proof. The homeworks were challenging! My colleagues and the community are very active. It was really good to have entered in this cohort.It helped me understand where I can apply ZK, the feasability and how to do it. If you want to have a good understanding about the theory of ZK proofs, that's the right course for for you!

Eduardo Westphal da Cunha

Sr. Smart Contract Developer

On Boarding Process

Submit an Application
Submit an Application
Submit an Application
Decision
Submit an Application
Payment
Submit an Application
Access to Calendar events, Slack & Course Material
Submit an Application
Day 1 of class

Pricing

Decoration Decoration
Course Fee $2,300
Pay Monthly: $1,250 per month × 2
  • 11 x Weeks Lectures
  • Tailored Homework
  • Access to the RareSkills Slack and Discord Community (Lifetime access)
Course Fee $3,400
Pay Monthly: $1,800 per month x 2
  • Everything in Starter Tier
  • 11 x Individual Code Review and Mentoring Sessions

Save 2% if you pay with USDC or USDT

FAQs

Your topics section has a lot of scary math terminology, are you sure this doesn’t require moon math?

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.

I want to get started right now. What should I do?

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

Is this course self-paced?

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.

What is the course structure?

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.

How many hours per week?

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.

I don’t care how zero knowledge works, I just want to use it

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.

How good do I need to be at Python?

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.

Is this in person or online?

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