ZKP5.2 PLONK IOP

ZKP学习笔记

ZK-Learning MOOC课程笔记

Lecture 5: The Plonk SNARK (Dan Boneh)

5.2 Proving properties of committed polynomials

  • overview
    ZKP5.2 PLONK IOP_第1张图片

  • 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
        ZKP5.2 PLONK IOP_第2张图片

        • The verifier does not have the commitment of g 1 g 2 g 3 g_1g_2g_3 g1g2g3
  • Important proof gadgets for univariates
    ZKP5.2 PLONK IOP_第3张图片

    • The size k is much smaller than d
  • The vanishing polynomial
    ZKP5.2 PLONK IOP_第4张图片

    • Outside the Ω \Omega Ω, the polynomial could evaluate an arbitrary value
    • Verifiers can evaluate the vanishing polynomial very fast.
  • ZeroTest
    ZKP5.2 PLONK IOP_第5张图片

    • 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
    ZKP5.2 PLONK IOP_第6张图片

    • Polynomial t: auxiliary polynomial
      ZKP5.2 PLONK IOP_第7张图片

ZKP5.2 PLONK IOP_第8张图片

- Use the ZeroTest
- Proof size: two commits, five evals (can be batched). 
- Verifier time: O(logk) 
- Prover time:O(klogk)
  • For rational functions
    ZKP5.2 PLONK IOP_第9张图片

  • Permutation check
    ZKP5.2 PLONK IOP_第10张图片

ZKP5.2 PLONK IOP_第11张图片

  • 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
      ZKP5.2 PLONK IOP_第12张图片

ZKP5.2 PLONK IOP_第13张图片

ZKP5.2 PLONK IOP_第14张图片

ZKP5.2 PLONK IOP_第15张图片

ZKP5.2 PLONK IOP_第16张图片

  • Summary of proof gadgets
    ZKP5.2 PLONK IOP_第17张图片

5.3 The PLONK IOP for general circuits

  • PLONK widely used in practice
    ZKP5.2 PLONK IOP_第18张图片

  • PLONK: a poly-IOP for a general circuit
    ZKP5.2 PLONK IOP_第19张图片

    • Encoding the trace as a polynomial
      ZKP5.2 PLONK IOP_第20张图片

ZKP5.2 PLONK IOP_第21张图片

ZKP5.2 PLONK IOP_第22张图片

  • Step 2: proving validity of T
    ZKP5.2 PLONK IOP_第23张图片

    • (4): the output of the last gate is what the verifier is expecting
    • Proving (1): T encodes the correct inputs
      ZKP5.2 PLONK IOP_第24张图片

ZKP5.2 PLONK IOP_第25张图片

- Proving (2): every gate is evaluated correctly

ZKP5.2 PLONK IOP_第26张图片

  - S(X) is a selector
  - Pre-processing: create the commitment of S(X), it is independent to any input.

ZKP5.2 PLONK IOP_第27张图片

ZKP5.2 PLONK IOP_第28张图片

- Proving (3): the wiring is correct

ZKP5.2 PLONK IOP_第29张图片

  - The W is independent of the inputs
  - Prescribed pumutation check
  • The complete Plonk Poly-IOP (and SNARK)
    ZKP5.2 PLONK IOP_第30张图片

ZKP5.2 PLONK IOP_第31张图片

  • Many extensions
    • The SNARK can easily be made into a zk-SNARK

    • Main challenge: reduce prover time
      ZKP5.2 PLONK IOP_第32张图片

    • A generalization: plonkish arithmetization

      • Plonk for circuits with gates other than + and × on rows (custom gates)
        ZKP5.2 PLONK IOP_第33张图片

      • More columns on the table

你可能感兴趣的:(零知识证明,零知识证明,笔记)