Part 2. Math (to get to PLONK)
Well done for making it this far and for deciding to join us on this more mathematical exploration of zkSNARKs.
We are going to review the mathematical objects and relationships required to understand a popular proof system called PLONK.
The thinking here is that by going over one proof system at a high level, you will get to both see a proof system used across the industry, and also put yourself in a position to more easily understand any other proof system you come across such as Halo2, Groth16, or STARKs. This is because zkSNARKs are modular; you can more or less swap their components out and get a different proof system with different tradeoffs.
A bird's eye view of what we need to do is:
Introduce the objects we will be manipulating.
Explore some theories about how we can manipulate these objects
Build systems of how to manipulate these objects that do useful things for us.
For example, by discovering materials like metals and rubber, learning how to manipulate them, and then putting them together, we create cars. We will do something similar with mathematics, but instead of getting out cars or physical items, we will get out a computational tool that allows you to prove to me that you did some calculation correctly.
The next few sections will cover the mathematical objects and relationships below:
Fundamental Objects: Modular Arithmetic, Groups, and Fields
Schwartz-Zippel Lemma and Polynomials
Elliptic Curves and the Discrete Logarithm Problem (DLOG)
Polynomial Commitment Schemes (PCS)
Last updated