How to Learn Zero-Knowledge Proofs
Mastering Zero-Knowledge Proofs Tips and Tricks for Effective LearningI’m not here to tell you how ZK[5] works. I’m also not here to tell you what you should learn.
This is more about my feelings when I was digging (big) ZK rabbit holes. How I learned ZK, which methods worked for me, and which methods might work for you.
Remember, there is no right method: everyone has their own way of learning.
Are you serious about learning ZK?
First, you might need to reconsider your life choices. Isn’t it easier to eventually learn how to cook? Or maybe solve a Rubik’s Cube? I mean, are you sure you want to torture yourself with ZK?
- Antpool’s Oopsie-Daisy: A Bitcoin Fee Refund Extravaganza!
- DraftKings Validator Woes on the Polygon Blockchain: When Gambling Meets Blockchain Governance
- Amazon Titan Image Generator: Unleashing AI Brilliance with a Dash of Humor!
If you want an easier life, click the “X” next to this browser tab and go back to your comfortable life, taking care of cute dogs and playing thrilling word puzzle games. Otherwise, be warned, carry on.
Starting with magic
ZK is hard. I mean, almost every aspect of it is hard.
Although it’s hard to understand how it works, the basic idea is very simple. You have to prove that you possess certain data without revealing any of it. It sounds like magic, and magic is essentially where it starts. And magic is hard.
Motivation
In my opinion, motivation is at the core of all learning. Do you have enough motivation to learn ZK? Or are you just learning because your mom told you to?
Sometimes I wonder what my life would have been like if I had motivation while studying in formal schools. It took me 10 years to “learn” French, but with little motivation, I learned very little. Imagine if someone spent 10 years with great motivation learning something – you might have already landed on the moon.
So, figure out what gets you excited. What makes your heart race? Do you have clear goals or what drives you to learn?
Choosing the right materials
There are many ZK materials available now. I will list some suitable materials at the end of this post, but my intention is not to tell you what to read.
I find that the main problem with most resources is that they are either aimed at die-hard cryptographers or they have too much content. It’s hard to understand what to focus on.
Imagine a 5-minute video that introduces 20 new concepts. This means you will pause the video every 15 seconds and search the internet (or use AI) for more in-depth resources, and then go back to the original video. It can be effective, but it’s also very demoralizing. This will make you feel like you’re just not cut out to learn ZK.
Learning ZK would be easier this way: there are many concepts 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 part of the big puzzle each time: it might be just a new term you heard or some new resources you found.
Don’t Study Alone
It’s okay to be introverted, but everything becomes much easier when you get feedback from others.
For me, one of the most effective things is to join various ZK study groups. They bring you peer pressure, making you really want to keep up with others and learn at the same pace. Seeing others struggle with the same problems is also motivating. It makes you realize that you might not be a failure after all.
You don’t need any established or conventional study groups either. Just find people who are interested in learning ZK and start exchanging ideas together.
You can start by joining various chat groups, forums, or other communities related to ZK. Read what others have to say, reach out to them, and then take action.
Share
Share your progress! Share your achievements. You will learn more from the (hopefully) constructive comments you receive.
As an added bonus, you can also connect with other like-minded individuals.
(Don’t Be Afraid to) Ask Stupid Questions
We all start from zero.
A colleague once told me that he was tired of answering stupid questions from junior developers. Now, imagine you are a junior ZK learner and you come across a stupid question. You can try to figure it out yourself, or you can openly ask the question, stating that you are a beginner.
I know people react differently to these types of questions, but in my opinion, it’s a good thing when someone asks a stupid question. It shows that the person is really eager to learn and integrating with others in the learning process can yield faster results. Yes, sometimes asking stupid questions can be embarrassing, but it’s also a form of growth. Asking stupid questions openly can also give others the same courage.
What I mean is, what’s the worst that could happen?
Use Your Powers
Depending on your purpose of using ZK, you might be able to start working on a project from day one of learning. There are various ZK domain-specific languages (DSLs) that can abstract almost all ZK complexities. Even if you have zero knowledge of ZK, you can start writing ZK programs. All the magic happens behind the scenes.
I find it helpful to see what happens when you actually write ZK programs. You run some mysterious commands to generate proofs, and suddenly a file containing actual proof strings appears. You run another mysterious command, maybe to generate a smart contract for verifying your proof. The next command will use the proof you generated to validate the program’s execution. Pretty cool, huh?
Don’t be too hard on yourself
Overall, don’t be too hard on yourself. Learning ZK is difficult. At the beginning, you may not understand many concepts.
Persevere, keep learning, and one day, some difficult problems will become easier.
Try approaching the subject from different angles. Watch some YouTube videos, read articles, ask silly questions, make mistakes. I can’t learn a lot just by rereading an article, but tackling the same problem from different angles has been effective for me.
Remember: learning is not rocket science. Only rocket science is rocket science.
About learning materials
I try not to recommend too many resources because everyone’s learning methods are different. But here are a few:
-
Least Authority’s Moonmath Handbook [6] for learning Snarks, starting from the basics
-
For learning Stark, refer to StarkWare’s Stark 101 series [7].
-
Write some ZK code and see what happens in practice: Noir from Aztec [8].
We will continue to update Blocking; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Pyth Network Will it Plummet to Zero? PYTH Price Drops 11% Amidst $4.5 Million Fundraising Round
- Hong Kong Securities Association Contemplates an ‘ICO’ Revolution in the Making!
- Adoption of Crypto from a Global Perspective Exploring Financial Freedom in Turbulent Economies
- Court Approves Sale of FTX’s Trust Assets: A Crypto Resurrection Story
- Canadians Give Cold Shoulder to Central Bank Digital Currency
- As XCEPT Token Rockets Up 8,700% on Uniswap, Another Crypto Coin Cashes in a Whopping $2 Million!
- Canadians Give Cold Shoulder to Central Bank Digital Currency (CBDC)