How to Learn Zero-Knowledge Proofs

Mastering Zero-Knowledge Proofs Tips and Tricks for Effective Learning

I’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?

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.

Sharing ZK work on Twitter

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.

I’m open about ZK

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.

Cast ZK Magic

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.

ZK rocket science

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!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Market

Robinhood Exceeds Expectations with Record Revenue and Profit in Q4 2023

Robinhood Markets Inc, a highly acclaimed online trading platform headquartered in the United States, achieved a nota...

Market

Chinese Investors Flock to Hong Kong Exchanges for Crypto Exposure

Amidst the challenges of the crypto ban, Chinese investors are actively seeking ways to invest in Bitcoin and other c...

Blockchain

Reviving FTX SEC Gives Green Light for a Compliance-Focused Comeback

Possible Approval for FTX Revival from US SEC Depends on Adherence to Regulatory Guidelines by New Leadership.

Market

Osaka Digital Exchange: Transforming Japan’s Financial Landscape, One Token at a Time

Fashionistas, get ready for a game-changing development in Japan's financial world! ODX is launching the first-ever s...

NFT

Animoca Brands: When Education Meets NFTs

Season 2 of Animoca Brands' Publisher NFTs has exceeded expectations and completely sold out.

Blockchain

Is XRP’s Luck About to Change? The Golden Cross Predicts an Epic Breakout

XRP, a popular cryptocurrency, has been relatively stagnant recently but there may be a positive shift ahead as it fo...