ZKP学习笔记
ZK-Learning MOOC课程笔记
Lecture 5: The Plonk SNARK (Dan Boneh)
5.2 Proving properties of committed polynomials
-
overview
-
Polynomial equality testing with KZG
- KZG: determined commitment (if the function is equal, then the commitment is equal too)
-
If the c o m f = c o m g com_f = com_g comf=comg, the verifier can tell if f = g f=g f=g on its own???
-
but
- The verifier does not have the commitment of g 1 g 2 g 3 g_1g_2g_3 g1g2g3
-
- KZG: determined commitment (if the function is equal, then the commitment is equal too)
-
Important proof gadgets for univariates
- The size k is much smaller than d
-
The vanishing polynomial
- Outside the Ω \Omega Ω, the polynomial could evaluate an arbitrary value
- Verifiers can evaluate the vanishing polynomial very fast.
-
ZeroTest
- F is zero on Ω \Omega Ω: All the elements of Ω \Omega Ω are the root of the polynomial.
- Verifier time: O(log k) and two poly queries (but can be done in one batch)
- Prover time: dominated by the time to compute q(X) and then commit to q(X)
-
Product check
- Polynomial t: auxiliary polynomial
- Polynomial t: auxiliary polynomial
- Use the ZeroTest
- Proof size: two commits, five evals (can be batched).
- Verifier time: O(logk)
- Prover time:O(klogk)
-
For rational functions
-
Permutation check
- f ^ \hat{f} f^ and g ^ \hat{g} g^ is identical
- Embellished permutation check
- The two vectors are permutations to each other
- They also satisfy a prediscribed pumutation
- Summary of proof gadgets
5.3 The PLONK IOP for general circuits
-
PLONK widely used in practice
-
PLONK: a poly-IOP for a general circuit
- Encoding the trace as a polynomial
- Encoding the trace as a polynomial
-
Step 2: proving validity of T
- (4): the output of the last gate is what the verifier is expecting
- Proving (1): T encodes the correct inputs
- Proving (2): every gate is evaluated correctly
- S(X) is a selector
- Pre-processing: create the commitment of S(X), it is independent to any input.
- Proving (3): the wiring is correct
- The W is independent of the inputs
- Prescribed pumutation check
- The complete Plonk Poly-IOP (and SNARK)
- Many extensions
-
The SNARK can easily be made into a zk-SNARK
-
Main challenge: reduce prover time
-
A generalization: plonkish arithmetization
-
Plonk for circuits with gates other than + and × on rows (custom gates)
-
More columns on the table
-
-