MODULE THREE

# Building a SNARK (Part II):

In the third module of our introductory series, we construct a polynomial IOP by displaying algebraic ideas, such as Plonk. This is the third of **three** modules by Dan Boneh – Professor of Computer Science and Electrical Engineering at Stanford University.

**What you’ll learn:**

- Simple zero test for a committed polynomial
- Simple quality test for two committed polynomials
- Converting execution for circuit to computation trace
- Encoding computation trace as polynomial
- Four things the polynomial needs to commit to the verifier:
- P encodes correct inputs
- Every gate is evaluated correctly
- The wiring is implemented correctly
- The output of last gate is 0

Reading list consists of material from Module One and Module Two plus the following papers:

**Recursive SNARKs:**

- Nova: aggregating multiple SNARK proofs into one.
- Halo2: proving large statements using an accumulation scheme.
- Recursive zk-SNARKs from any additive polynomial commitment scheme: paper.

**Specific proofs:**

- Plookup: efficient table lookup — proving that the range of one committed polynomial is contained in the range of another. See also an efficient variant of Plonk for a circuit with table lookup gates.
- Caulk: a fast
*batch*table lookup proof.

ZK Whiteboard Sessions is an educational series on all things zero knowledge. Produced by ZK Hack and powered by Polygon – we’ll be releasing a new module every week!

Get notified on latest module upload by signing up below.

You're in. We'll let you know when the next module is live!