ZK10: How I learn ZK - Lauri Peltonen
28 Sept 2023 · 12:29
Lauri Peltonen shares how he taught himself the mathematics behind zero-knowledge proofs in this talk from Zero Knowledge Summit 10 in London. Starting from close to zero roughly six months earlier, he walks through the resources and study habits that helped him grasp ZK cryptography, offering newcomers a practical, personal roadmap for breaking into the field rather than a formal curriculum.
Speakers
Topics
Transcript
foreign [Music] it's my pleasure to introduce for the first talk Larry peltonin and he will tell us about how he is learning ZK and what he has been suffering through to to do so take it away yeah thanks so I will document my journey a little bit here about what I have what have been pain points and basically how I have been learning so we have a limited amount of time so let's just dig into it short intro I've been doing maybe some five years of
ethereum development then I found this thing called Stark net and I've found that there's this thing called zero knowledge and then I found that okay there's privacy and all that stuff so I got into ZK stuff maybe about a year ago nowadays I'm a freelancer doing trying to do ZK stuff with various amounts of success and then some evm development so my aim is to bridge the gap between the business people and the heavy core the researchers who do the hard work so I'm somewhere in the between so it's just kind of like Assad disclaimer we are all a bit different we learn differently
so whatever works for me how I learn it might not work for you at all so I will try to give a few different options like how you can how you can try to learn but basically you just have to figure out what works for you so I think for all the learning whatever you do you just need the right motivation like if you if you go home and your mom tells you to do something like special or maybe today your mom tells you to learn ZK maybe that's not the best motivation so figure out why you want to do this is what is the motivation what what drives you do you have like Ambitions or what kind of goals you have so maybe you are looking for a new job
in the ZK sector or you have some projects in your existing job maybe you have a two job three job maybe you don't know anything about ZK when you want to have some privacy there and you have okay this might be a cool thing let's let's add some ZK stuff here to add privacy or then you just you're just interested in you have want to use your free time for example you have some side projects I I have this great idea but I'm not going to get paid to do it so maybe you just do it as a side project or then you just I don't know a little bit weird and just do it for fun that's like good good weirdness but like it's not not many people do it just for fun
so I I kind of like to categorize these learnings into connect three different categories well if we start from the bottom there's the use cases like this is the stuff everyone basically learns the various things like you read like what is this CK and what can it be used for oh there's privacy and there's succiness and then I go so I didn't quite understand what Ezekiel oh Alibaba cave example our where's Waldo and this example you go through these all these phases and that's the refine that helps you understand like something about what is ZK and how it works now then if you want to go up kind of like a step deeper you might maybe you're a developer already you want to try to write some ZK stuff you go to go check what kind of languages there are
you maybe okay let's pick this language maybe like maybe I write something or maybe you research some languages maybe you want to write some programs some ZK program that's maybe this next step and that is still pretty easy but maybe what I'm focusing here here is the the hard part the red part the mathematics and the theory part uh that's the really hard part uh in my opinion most people don't really have to care about this part but for some if you come to these kind of conferences I think 80 of the talks are like new folding schemes or new research for lasso or something and it's really hardcore research and theoretical part but I think like 90 of people don't have to care about that stuff the point of
this kind of different program languages is that they abstract the olive all of it away so don't don't get scared if you just hear about this research research things here and if you get there to the top of the pyramid then like good for you so up something about the theory studies it's going to be hard if you want to go there it's going to be hard but we have all done it we have all started from zero so just try to learn something like whatever materials you read you read maybe some articles or what some video videos you will not understand most of it sometimes you will not understand anything but just try to pick some pieces and eventually the puzzle will kind of like come together it will take
time and I think there's a big gap like at the top we have the cryptography stuff like that's the stuff we are here like 80 of the lectures are about this stuff and but that's not what I think like most of you should learn so and then there's there's the use cases like the Alibaba cave and this kind of things but whenever you find some resources for learning ZK I think the most difficult part is figuring out like will this be the right level for me like sometimes you start reading an article oh this is very good I understand and then the next chapter goes into something like weird and you have no idea what they're saying so what what is missing is this like
middle layer like making ZK understandable for people so uh what I would suggest uh you can do it all alone it's totally fine but I would suggest you just do it with some other people maybe used to join a study group or go to some hackathons try to hack something and maybe you will meet some smart people or chat with people uh make some friends even and uh just if you own Twitter or whatever X just post your progress and someone will maybe comment oh this is good stuff but you could do it like this and then I learned something new today and it's it's like eventually it's also kind of much more fun to fun to rent
with someone to someone else like if you're just alone it's not so much fun to run to yourself and uh as with any learning just it's far it's fine to be stupid we all started from zero so just go ahead and ask the stupid questions I hope someone will answer with something reasonable sometimes not but I hope someone might this is from this is how we learn and once you understand something you could apply it maybe start writing a little bit of some code maybe you use some like ready framework which generates things for you maybe it generates proof for you already maybe generates a verifier code already and some parameter files and you will be
making mistakes and that's totally fine like a lot like I did like I was like okay there's a verifier parameters and I give them to approver and like I get lots of errors and I go oh that was a stupid mistake but that's that's how you learn so I think like it's a mixture like if you just do the theory part like you might get bored but some people don't but you might get bored if you just like learn and learn and learn so just go apply what you learned and okay this works like this and then you then you maybe go study a little bit more so just do it all together and I think it's a much more fruitful too do it at the same time so uh there's no one right to answer
what works for you or what works for me so if someone someone likes a video or someone likes article someone likes what are the chats so just try different things like maybe today I read this article and to do tomorrow I watch this video so just figure out what works for you maybe take a walk like you have been studying for four years four hours now go go outside and just refresh your mind and it does wonders usually and maybe write some code and see some results what what's happening so I think that the main main thing where to start is basically you have to start what about deciding what you want to learn do you do you just want to learn the use cases that's quite quite
straightforward and kind of easy do you want to do do the like development okay that's like still rather easy but if you want to go to the hardcore mathematics and the theoretical part that's going to be like challenging but at least you know it and everyone has gone through the same frustration so don't be too hard on yourself learn something a little bit every day and you'll get there eventually yeah that's my lightning talk and thank you very much and also perfectly on time so we do we do have time for questions uh does anybody have questions
about how to get into the CK everyone has learned everything already yes if I have already got some ideas of aziki project as they start to learn um to to do with this project then how to evaluate the idea that's um sometimes I I feel struggling in as the fine fine relevant resources I started papers maybe it's easy to find in the papers but
um it's hard to evaluate on why such papers or resources to really help to to our project to my own project so how to evaluate the resources how to how to seek and evaluate this is to support our learning yeah so uh I think you should start by like figuring out do you even need ZK there are quite many use cases where you actually don't even need any ZK stuff maybe you have some commentary real stream or something much easier so and if you like figure out that okay I need ZK then you I I would just go to someone who knows how things work and ask them
like is this reasonable to do it this way does it make sense you can you can figure out what is yourself but it's it takes a lot longer for you to kind of fight it all out so just ask someone who knows that's much easier sorry just one second oh I mean you mentioned that just to ask someone is the best option but uh or where to ask then in your group or in a chart or or somewhere else one others at least the organizers of this event they have the ZK hack Discord that's a pretty good
place to start at least you mean that there's a 3K hack Discord server Discord I got yeah and there's a telegram Channel and that's full of like theoretical stamina and you can answer in these places at least oh okay thanks a lot I will enjoy it so maybe you can also say like a word or two about what was some of the what were some of the most useful resources for you when you uh started learning about CK yeah I think there's no one right to research or one right answer I think the moon math manual is very good I think that's like 300 pages of like full stuff it starts from the very beginning basics and uh I think that's my main resource
mostly but it depends what you want to learn okay any further questions all right then let's thank Lori again thanks a lot thanks foreign