Going through PLONK I realized the many different paths you might take to learn, as I go through my intro to PLONK I've created this repo to curate some of the best resources I've found going 0-1 on PLONK, ending with implementating part of a PLONK proving system in Python. Out of the resources I've come across these are the highest quality and hopefully this can help guide your own learning path.
Reminder - ChatGPT/Claude are your friends
- Vitalik's Understanding PLONK
- This is a great introductory reference and visuals which are helpful to run through the circuits.
- David Wong's - PLONK Series
- Great whiteboard-style walkthrough 12 part series of PLONK seperated by key sections. A nice way to break down the subtopics.
- Zac Williamson walkthrough
- Co-author of PLONK introduces and walks through it. This was a good overview and slightly more technical without going in full in depth to the implementation
- PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge
- PLONK by hand
- Go through each part working through the math with pen(cil) & paper. A bit more technical and a bit more time consuming than the others, I suggest going through each of the lines even if it means copying the math. Try to work through it yourself and questions will emerge which help you to connect the dots.
- PlonKathon - Educational Python Implementation
- Great educational resource to apply the theory, putting it into practice with implementing part of the PLONK proof system in Python.
- Ronkathon - Rust Implementation of Cryptographic Primitives
Caveat: I did not finish the path fully, going through this made me appreciate proving abstractions even more like zkVM/zkEVMs :)
Overall I would recommend bouncing between both theory & practical, working in pure abstract can be difficult to understand or makes it harder to ask deeper questions.
- Theory - Intro Vitalik's Understanding PLONK
- Theory - Original Research Paper PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge
- Apply - Hands on Keyboard Plonkathon or Ronkathon
- Theory - Reference David Wong's - PLONK Series
- Good reference for different components
If you're looking to dive deeper, there's a perfect Github full with even more resources for you to explore: Awesome PLONK