I’m not here to tell you about ZK[5] Here’s how it works. I’m not here to tell you what you should study.
It’s more about how I felt when I was digging the (huge) ZK rabbit hole. How I learned ZK, what works for me and what might work for you.
Remember, there’s no right way: everyone has their own way to learn.
Are you serious about learning ZK?
First, you may need to reconsider your life choices. Wouldn’t it be easier to learn how to cook eventually? Or learn to make a Rubik’s cube? I mean, are you sure you want to torture yourself with ZK?
If you want an easier life, click on the “X” next to this browser tab and you’ll be back to living comfortably with cute puppies and exciting crossword puzzles. Otherwise, please note that you can continue with peace of mind.
Start with magic
ZK is hard. I mean, it’s hard in almost every aspect.
While it’s hard to understand how it works, the basic idea is pretty straightforward. You have to prove that you have certain data without revealing any data. It sounds like magic, and that’s where magic basically begins. And magic is hard.
Power
In my opinion, motivation is at the heart of all learning. Are you motivated enough to learn ZK? or do you learn just because your mom told you to?
I sometimes wonder what my life would be like if I had been motivated while studying in regular school. I spent 10 years “learning” French, but I didn’t have any motivation, so I learned very little. Imagine if you spent 10 years learning something with great motivation – you might already be on the moon.
So, find out what makes your heart flutter. What appeals to you, do you have a clear goal, or what motivates you to learn?
What materials to choose
There are a lot of ZK materials now. I’ll list some suitable material at the end of this post, but my purpose is not to tell you what to read.
I think the main problem with most of the sources is that they’re either aimed at hardcore cryptographers or there’s too much content. It’s hard to understand what to focus on.
Imagine a 5-minute video introducing 20 new concepts. This means you’ll pause the video every 15 seconds, go online to search for (or use AI) more in-depth material, and then return to the original video. It’s effective, but it’s very frustrating. This will make you feel like you’re not a good fit to study ZK at all. **
It’s easier to learn ZK this way: there are a lot of concepts that you won’t understand. You will have to learn many of these concepts, but you shouldn’t try to learn them all at once. The trick is to learn a piece of the puzzle every time: it might just be a new term you heard, or maybe just some new resource you found.
Don’t study alone
It’s okay to be introverted, but if you can get feedback from others, everything will be much easier.
One of the most effective things for me is participating in various ZK study groups. They can put peer pressure on you and make you really want to keep up with others and learn at the same pace. It’s also an incentive to see others struggling with the same issues. This makes you realize that you may not be a loser.
You also don’t need any established or conventional study groups. Just find someone who is interested in learning ZK and exchange ideas together.
You can start by joining a variety of ZK-related chat groups, forums, or other communities. Read what others have to say, reach out to them, and get moving.
Share
Be open about your progress and share your gains. You’ll learn more from the reviews you (hopefully) receive.
Share ZK work on Twitter
As an added bonus, you can also connect with other people who share the same passion.
(Don’t be afraid) Ask stupid questions
We all started from scratch.
I opened my heart to ZK
A colleague once told me that he was tired of answering stupid questions from junior developers. Now, imagine you’re a beginner ZK learner and you’ve got a stupid question. You can figure it out on your own, or you can show yourself as a beginner and ask the problem openly.
I know people have mixed reactions to this kind of question, but in my opinion, it’s good that someone asks this kind of question. In my opinion, this shows that the person really wants to learn, and that integrating others in the learning process will lead to faster results. Yes, sometimes it’s humiliating to ask stupid questions, but it’s also a reward. Asking stupid questions openly will give others the same courage.
I mean, what’s the worst that can happen?
Use of force
Depending on what you want to do with ZK, you might be able to start writing a project on day one. There are a variety of ZK domain-specific languages (DSLs) that can abstract away almost all ZK pain points: even if you have no knowledge of ZK, you can start writing ZK programs. All the magic happens in the background.
Cast ZK magic
I think it’s helpful to actually see what happens when you write a ZK program. You run some cryptic command to generate a proof, and suddenly a file appears containing the actual proof string. You run another mysterious command, and maybe a smart contract will be generated that will be used to verify your proof. The next command will use the proof you generated to verify the execution of the program. Pretty cool, right?
Don’t be too yourself
Overall, don’t be too yourself. Learning ZK is hard. At first, you may not be able to understand many concepts.
Be persistent and keep learning, and one day, some problems will be solved.
Try to cut to the topic from different angles. Find some YouTube videos, read articles, ask stupid questions, make some mistakes. I can’t learn a lot just by rereading an article, but it really works for me to tackle the same puzzle from different angles.
ZK Rocket Science
Remember: learning is not rocket science. Only textbooks are.
About the study material
I try not to recommend too many materials because everyone’s learning method is different. But here are a few:
Least Authority’s Moonmath Handbook[6] Used to learn Snarks, start with the basics
Learn Stark, refer to StarkWare’s Stark 101 series[7] .
Write some ZK code and see what actually happens: Noir from Aztec[8] 。
View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
How to learn zero-knowledge proofs
I’m not here to tell you about ZK[5] Here’s how it works. I’m not here to tell you what you should study.
It’s more about how I felt when I was digging the (huge) ZK rabbit hole. How I learned ZK, what works for me and what might work for you.
Remember, there’s no right way: everyone has their own way to learn.
Are you serious about learning ZK?
First, you may need to reconsider your life choices. Wouldn’t it be easier to learn how to cook eventually? Or learn to make a Rubik’s cube? I mean, are you sure you want to torture yourself with ZK?
If you want an easier life, click on the “X” next to this browser tab and you’ll be back to living comfortably with cute puppies and exciting crossword puzzles. Otherwise, please note that you can continue with peace of mind.
Start with magic
ZK is hard. I mean, it’s hard in almost every aspect.
While it’s hard to understand how it works, the basic idea is pretty straightforward. You have to prove that you have certain data without revealing any data. It sounds like magic, and that’s where magic basically begins. And magic is hard.
Power
In my opinion, motivation is at the heart of all learning. Are you motivated enough to learn ZK? or do you learn just because your mom told you to?
I sometimes wonder what my life would be like if I had been motivated while studying in regular school. I spent 10 years “learning” French, but I didn’t have any motivation, so I learned very little. Imagine if you spent 10 years learning something with great motivation – you might already be on the moon.
So, find out what makes your heart flutter. What appeals to you, do you have a clear goal, or what motivates you to learn?
What materials to choose
There are a lot of ZK materials now. I’ll list some suitable material at the end of this post, but my purpose is not to tell you what to read.
I think the main problem with most of the sources is that they’re either aimed at hardcore cryptographers or there’s too much content. It’s hard to understand what to focus on.
Imagine a 5-minute video introducing 20 new concepts. This means you’ll pause the video every 15 seconds, go online to search for (or use AI) more in-depth material, and then return to the original video. It’s effective, but it’s very frustrating. This will make you feel like you’re not a good fit to study ZK at all. **
It’s easier to learn ZK this way: there are a lot of concepts that you won’t understand. You will have to learn many of these concepts, but you shouldn’t try to learn them all at once. The trick is to learn a piece of the puzzle every time: it might just be a new term you heard, or maybe just some new resource you found.
Don’t study alone
It’s okay to be introverted, but if you can get feedback from others, everything will be much easier.
One of the most effective things for me is participating in various ZK study groups. They can put peer pressure on you and make you really want to keep up with others and learn at the same pace. It’s also an incentive to see others struggling with the same issues. This makes you realize that you may not be a loser.
You also don’t need any established or conventional study groups. Just find someone who is interested in learning ZK and exchange ideas together.
You can start by joining a variety of ZK-related chat groups, forums, or other communities. Read what others have to say, reach out to them, and get moving.
Share
Be open about your progress and share your gains. You’ll learn more from the reviews you (hopefully) receive.
Share ZK work on Twitter
As an added bonus, you can also connect with other people who share the same passion.
(Don’t be afraid) Ask stupid questions
We all started from scratch.
I opened my heart to ZK
A colleague once told me that he was tired of answering stupid questions from junior developers. Now, imagine you’re a beginner ZK learner and you’ve got a stupid question. You can figure it out on your own, or you can show yourself as a beginner and ask the problem openly.
I know people have mixed reactions to this kind of question, but in my opinion, it’s good that someone asks this kind of question. In my opinion, this shows that the person really wants to learn, and that integrating others in the learning process will lead to faster results. Yes, sometimes it’s humiliating to ask stupid questions, but it’s also a reward. Asking stupid questions openly will give others the same courage.
I mean, what’s the worst that can happen?
Use of force
Depending on what you want to do with ZK, you might be able to start writing a project on day one. There are a variety of ZK domain-specific languages (DSLs) that can abstract away almost all ZK pain points: even if you have no knowledge of ZK, you can start writing ZK programs. All the magic happens in the background.
Cast ZK magic
I think it’s helpful to actually see what happens when you write a ZK program. You run some cryptic command to generate a proof, and suddenly a file appears containing the actual proof string. You run another mysterious command, and maybe a smart contract will be generated that will be used to verify your proof. The next command will use the proof you generated to verify the execution of the program. Pretty cool, right?
Don’t be too yourself
Overall, don’t be too yourself. Learning ZK is hard. At first, you may not be able to understand many concepts.
Be persistent and keep learning, and one day, some problems will be solved.
Try to cut to the topic from different angles. Find some YouTube videos, read articles, ask stupid questions, make some mistakes. I can’t learn a lot just by rereading an article, but it really works for me to tackle the same puzzle from different angles.
ZK Rocket Science
Remember: learning is not rocket science. Only textbooks are.
About the study material
I try not to recommend too many materials because everyone’s learning method is different. But here are a few: