ZKP7.2 Polynomial Commitments Based on Error-correcting Code

2023-10-31 05:04

本文主要是介绍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 )

这篇关于ZKP7.2 Polynomial Commitments Based on Error-correcting Code的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/313009

相关文章

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

Debugging Lua Project created in Cocos Code IDE creates “Waiting for debugger to connect” in Win-7

转自 I Installed Cocos Code IDE and created a new Lua Project. When Debugging the Project(F11) the game window pops up and gives me the message waiting for debugger to connect and then freezes. Also a

编译linux内核出现 arm-eabi-gcc: error: : No such file or directory

external/e2fsprogs/lib/ext2fs/tdb.c:673:29: warning: comparison between : In function 'max2165_set_params': -。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。 。。。。。。。。 host asm: libdvm <= dalvik/vm/mterp/out/Inte

LLVM入门2:如何基于自己的代码生成IR-LLVM IR code generation实例介绍

概述 本节将通过一个简单的例子来介绍如何生成llvm IR,以Kaleidoscope IR中的例子为例,我们基于LLVM接口构建一个简单的编译器,实现简单的语句解析并转化为LLVM IR,生成对应的LLVM IR部分,代码如下,文件名为toy.cpp,先给出代码,后面会详细介绍每一步分代码: #include "llvm/ADT/APFloat.h"#include "llvm/ADT/S

收藏:解决 pip install 出现 error: subprocess-exited-with-error 错误的方法

在使用 pip 安装 Python 包时,有时候会遇到 error: subprocess-exited-with-error 错误。这种错误通常是由于 setuptools 版本问题引起的。本文将介绍如何解决这一问题 当你使用 pip install 安装某个 Python 包时,如果 setuptools 版本过高或过低,可能会导致安装过程出错,并出现类似以下错误信息:error: subpr

Nn criterions don’t compute the gradient w.r.t. targets error「pytorch」 (debug笔记)

Nn criterions don’t compute the gradient w.r.t. targets error「pytorch」 ##一、 缘由及解决方法 把这个pytorch-ddpg|github搬到jupyter notebook上运行时,出现错误Nn criterions don’t compute the gradient w.r.t. targets error。注:我用

VS Code 调试go程序的相关配置说明

用 VS code 调试Go程序需要在.vscode/launch.json文件中增加如下配置:  // launch.json{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information,

src/pyaudio/device_api.c:9:10: fatal error: portaudio.h: 没有那个文件或目录

(venv) shgbitai@shgbitai-C9X299-PGF:~/pythonworkspace/ai-accompany$ pip install pyaudio sounddeviceCollecting pyaudioDownloading PyAudio-0.2.14.tar.gz (47 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ERROR 2003 (HY000): Can't connect to MySQL server on (10061)

在linux系统上装了一个mysql-5.5,启动后本机都是可以访问的,操作都正常,同时建了一个%的用户(支持远程访问), root@debian:/# mysql -u loongson -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id

pip install pyaudio sounddevice error: externally-managed-environment

shgbitai@shgbitai-C9X299-PGF:~/pythonworkspace/ai-accompany$ pip install pyaudio sounddeviceerror: externally-managed-environment× This environment is externally managed╰─> To install Python package