Coding groth16 from scratch to deepen my understanding of zkps after having read Rareskills's ZKP book.
Heres what I've read so far from the book:
- Chapter 1: P vs NP and its application to Zero Knowledge Proofs
- Chapter 2: Arithmetic Circuits
- Chapter 3: Finite Fields and Modular Arithmetic
- Chapter 4: Set Theory
- Chapter 5: Abstract Algebra
- Chapter 6: Group Theory
- Chapter 7: Homomorphisms
- Chapter 8: Elliptic Curve Addition
- Chapter 9: Elliptic Curves over Finite Fields
- Chapter 1: Bilinear Pairings
- Chapter 2: Rank 1 Constraint Systems
- Chapter 3: A Zero Knowledge Proof with an R1CS
- Chapter 4: Lagrange Interpolation with Python
- Chapter 5: The Schwartz-Zippel Lemma
- Chapter 6: Quadratic Arithmetic Programs
- Chapter 7: R1CS to QAP in Python
- Chapter 8: Trusted Setup
- Chapter 9: Evaluating a QAP on a Trusted Setup
- Chapter 10: Groth16 Explained