ZKP7.2 Polynomial Commitments Based on Error-correcting Code

ZKP学习笔记

ZK-Learning MOOC课程笔记

Lecture 7: Polynomial Commitments Based on Error-correcting Codes (Yupeng Zhang)

7.2 Polyneomial commitment based on error-correcting codes

  • Recall: polynomial commitment

    • Four algorithms
      • Keygen, Commit, Eval, Verify
        在这里插入图片描述
  • Polynomial coefficients in a matrix
    在这里插入图片描述

    • The coefficients of the polynomial is a matrix

    • If the number of degrees of the polynomial is not the power of an integer, you can pad it.
      在这里插入图片描述

    • Argument for Vec-Mat product

      • Polynomial commitment with d \sqrt{d} d proof size
  • Encoding the polynomial

    • Design a scheme to test the Vec-Mat product without sending the matrix directly to the verifier
      在这里插入图片描述

      • Encode each row of the matrix to a linear code
  • Committing the polynomial: Merkle Hash Tree

    • Commit to each column of the encoded matrix using Merkle tree (each column is a leaf, verifier can choose a column to ask prover to open)
  • Step 1: Proximity test
    在这里插入图片描述

    • Ligero [AHIV’2017] and [BCGGHJ’2017]
      • [BCGGHJ’2017] : Ideal linear commitment model. Linear-time encodable code → first SNARK with linear prover time
    • One optimization
      • Prover decodes the proof to a message (size k), and sends k to the verifier
        • Decrease the size of proof from n to k
        • The Verifier does not take the first step of check
  • Step 2: Consistency check

    • The vector u is not random chosen, so the Proximity test is necessary.
      在这里插入图片描述
  • Summary: Poly-commit based on linear code

    • Keygen: sample a hash function
    • Commit: encode the coefficient matrix of f row-wise with a linear code, compute the Merkle tree commitment
    • Eval and Verify:
      • Proximity test: random linear combination of all rows, check its consistency with t random columns
      • Consistency test: u × F = m u \times F = m u×F=m, encode m and check its consistency with t random columns
      • f(u) = m × u ′ m \times u' m×u
  • Properties of the polynomial commitment

    • Keygen: O(1), transparent setup!
    • Commit:
      • Encoding: O(d logd) field multiplications using RS code, O(d) using linear-time encodable code
      • Merkle tree: O(d) hashes, O(1) commitment size
    • Eval: O(d) field multiplications (non-interactive via Fiat Shamir)
    • Proof size: O( d \sqrt{d} d )
    • Verifier time: O( d \sqrt{d} d )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值