论文浅析:Efficient Zero-Knowledge Arguments forArithmetic Circuits in the Discrete Log Setting

Efficient Zero-Knowledge Arguments forArithmetic Circuits in the Discrete Log Setting

问题

1.non-uniform polynomial time adversary
2.Pedersen承诺为什么是完美隐藏的,应参考其他书目进一步确认(将离散对数假设再分析一下)。
3.perfect completeness的定义与soundness的定义有混淆感觉,再重新分析一下。
4.public coin不能理解。
5.Perfect special honest verifier zero-knowledge 对此概念的理解是否有偏差,得问老师。
6.Fiat-Shamir heuristic 转换思想以及在本文中的运用点分析。
7.对多项式承诺部分仍有疑问。
8.产生公共参数都用敌手来表达有不理解的地方。
9.statistically l-special sound:对此符号的理解还有待加强。
10.Perfect Special Honest Verifier Zero Knowledge:对该定义的理解问题。
11.uniformly random的理解还存在一定的问题。
12.l为什么是(m1+m2)n + 2还不能完全理解
13.三个技术优化部分有部分没看懂

摘要

Goal: build an efficient argument system for the satisfiability of an arithmetic circuit.
Communication: logarithmically in the size of the circuit.
Round complexity: logarithmic
The computation of the prover and verifier: linear in the size of the circuit.
Soundness of our argument: well-established discrete logarithm assumption in prime order groups.
Heart:two Pedersen multicommitments
Inner product argument requirement:logarithmic communication, logarithmic interaction and linear computation for both the prover and the verifier.
Trusted setup:without

对零知识及其完整性,完备性,零知识的简介

Zero-Knowledge Completeness Soundness Zero-Knowledge

贡献

Argument:has perfect completeness and perfect special honest verifier zero-knowledge(对此处后面还需进一步学习)
此处比较抽象,跟着后面的方案一起学习。

[1] Preliminaries

一:离散对数假设

名称定义
离散对数假设在这里插入图片描述
描述上述Pr代表的是在给定公开参数的情况下随机从有限循环群G中随机选取一个元素h,敌手在已知公开参数和h的情况下,能计算出幂a,使得g的a次方等于h,a就叫做底为g时h的离散对数。注意这里对有限循环群的生成做出了描述,给定了群元素的安全位数。
补充non-uniform polynomial time adversaries A 代表的是一族多项式,我认为是代表的是不同多项式时间的所有敌手(可能有误待改进)。另一种可能的关联是和约等于0相关联,以前见到过的写法是对于多项式时间的敌手A,是等于一个可忽略的概率值。
等价的离散对数假设在这里插入图片描述
描述敌手在已知公开参数以及{gi}的情况下,能计算出{ai}使得冒号后面的条件成立的概率为0。这个定义还没理解。

二:Pedersen承诺

此定义来自论文:Doubly-efficient zkSNARKs without trusted set up在这里插入图片描述
本文抽象描述在这里插入图片描述
Perfectly hiding在这里插入图片描述在这里插入图片描述
描述生成公开参数,敌手选择两个明文m0,m1,挑战者随机选取0(m0)或1(m1),并对其做出承诺得到c并发送给敌手,敌手由c猜测出到底是对哪个明文承诺的概率等于二分之一,即盲猜的概率。
备注完美隐藏与隐藏的区别是:完美隐藏是敌手A获胜的概率等于二分之一,而隐藏是等于二分之一加一个可忽略的值。
Binding在这里插入图片描述
描述在已知公开参数的情况下,敌手选择两组(m0,r0),(m1,r1)使得在m0不等于m1的情况下对这两组的承诺值相等,敌手成功的概率约等于0
备注注意是约等于,如果是完美binding的话应该是等于0,此处约等于0的含义是敌手成功的概率可忽略(不知道是不是很严谨的说法)

三:承诺同态

同态在这里插入图片描述
描述Perdersen承诺方案具有同态属性

作者称:Pedersen承诺方案是同态的并完美隐藏的同同态方案。完美隐藏是因为Pedersen承诺随机选取群元素。打破绑定属性意味着攻破离散对数假设 。

四:Zero-knowledge Arguments of Knowledge
在这里插入图片描述
上述是论文介绍部分对零知识证明的简单介绍,有什么难理解的地方请在评论区留言。
下面是2.3部分对零知识证明的论述。
在这里插入图片描述
上述描述中,transcript我认为是代表的交互过程中由P产生的一个中间元素,给V做验证用。

名称定义
Perfect completeness在这里插入图片描述
描述敌手能产生一个关系对(u,w),其中(u,w)要么不属于关系R,即不能通过交互;要么就属于关系R,也就是PV交互通过,上述概率为1。也就是不存在(u,w)不属于关系并且能通过交互;也不存在(u,w)属于关系但不能通过交互
Statistical witness-extended emulation在这里插入图片描述
描述注意此处的s不是witness,而是敌手A产生的一个P的状态,文章中称包括随机数。这意味着不论何时P在随机数s下产生一个说服V的论证,随机预言机可以提取出一个witness
Argument of knowledge在这里插入图片描述
描述什么时候pair(P,V)会被称作知识论证呢?通过完美完整性,我们知道对于(u,w),要么不属于关系R,要么属于关系R并通过V的验证,即如果P知道(u,w)属于R,必能通过V的验证,不属于R,必不能通过验证。Statistical witness-extended emulation告诉我们如果P能产生tr通过V的验证,那么必存在w,使得(u,w)属于R
补充上述表明P如果通过了V验证,其必然有witness;如果P有w,也必然通过V验证;如果P没有w,必然通不过V验证。

五:Public coin

名称定义
Public coin在这里插入图片描述
描述我也不理解此处的描述,以后解决。

六:Perfect special honest verifier zero-knowledge

名称定义
Perfect special honest verifier zero-knowledge在这里插入图片描述在这里插入图片描述
描述即即使是由敌手选择statements和witness,对于合法的statements和witness,由诚实者和模拟器产生的tr对敌手来说是不可区分的。

七:Full zero-knowledge
在这里插入图片描述
上述表明在现实应用中,特定的诚实验证者零知识是不充分的,作者表明可以很容易将SHVZK论证转化为全零知识论证安全。

八:Fiat-Shamir heuristic
在这里插入图片描述
上述表明可以用Fiat-Shamir heuristic 将交互式零知识论证转化为非交互式零知识论证并能提高效率。

九:A general forking lemma 以及Forking Lemma比较复杂,还看不懂,以后再论。

[3]多项式承诺 Commitments to Polynomials

前提知识点:

Laurent polynomials:

在这里插入图片描述

引用自Laurent polynomials

核心思路

注:该小节将被第五小节的5.1,5.2应用。
对多项式做出承诺的一个办法是对其系数做出承诺,运用同态属性来验证多项式t(X)在某点的取值。假设有d个系数,那么需要d个承诺,现在可将其减少至 O ( d ) O(\sqrt{d}) O(d )

Main idea:
在这里插入图片描述
将多项式的系数写为矩阵的形式,此处m*n=d+1。 t(x)就被写成了上述的形式
在这里插入图片描述
上述是多项式写成矩阵乘法的形式
在这里插入图片描述
对行进行承诺,注意在已知x后对承诺的写法,将x放到幂上是因为承诺是用的Pedersen承诺。承诺完成后会将t(x)注意此处乘积的结果是n维行向量,并不是承诺值,后面可用此值与承诺的值通过特定的运算进行比较以确定系数没有被更改,最后计算v的值。
在这里插入图片描述在这里插入图片描述
泄漏的问题:P给V的t拔的值是n维行向量,也就是n个值,对于每一列的一个值,按理来说只能得到一个多项式,无法确定系数,所以我也不知道为什么会泄漏,待以后讨论。
Extension to Laurent polynomials
在这里插入图片描述
将其写成Laurent polynomial的形式,系数分成两部分,X的次数为正的部分和X的次数为负的部分,可验证t(X)的写法正确。将系数写成矩阵的形式,注意矩阵的行数为m1+m2。这里也是对行进行承诺。注意也加入了u值起到隐藏的作用。右下角0为t0的系数即,t0=0。
在这里插入图片描述
这里是将Laurent Polynomial写成矩阵乘法的形式
在这里插入图片描述
上述对前面表述的对多项式承诺做出了一个具体的描述。现在对其进行分析,由于承诺是对行进行承诺,因此减少了承诺数,上文所说的 O d O\sqrt{d} Od 其实本质上是d/m,其中m为行数。那么P有没有可能在做出承诺后改变承诺的值呢?如果在一行中交换元素顺序,将使等式不成立,因为这样会改变相应的gi的幂值。列中交换顺序也不行,因为这会改变xi对应的值。

下面对其进行安全性分析。

Security Properties
在这里插入图片描述在这里插入图片描述
这个定义是在PolyCommit,PolyEval阶段是诚实的话,即P是诚实的,那么验证者也要是个诚实的验证者,这对于现实问题来说是个问题。
在这里插入图片描述
完整性:简单的说就是正确则以1-可忽视的概率通过,完美完整性:是正确则以概率1通过。其中pc是多项式承诺,st是秘密信息,pe是在P已知x后计算出的t拔和τ拔,v是由t拔和X(x)计算得出。
在这里插入图片描述
意思是如果存在一个敌手,对同一个多项式取值l次后可以提取出承诺的多项式或者攻破底层承诺方案的绑定属性,那么说这个方案是统计l特殊完备性。应是在l以下就不存在该敌手。
在这里插入图片描述在这里插入图片描述
上述的含义是在方案中产生的pc,pe通过的概率与模拟器产生的pc,pe通过的概率相同。即敌手不能区分该方案是真实方案还是模拟方案

下面给出了一个理论定义以及其证明,咱们来看一下。

在这里插入图片描述
上面说该多项式承诺协议,也就是咱们上面看到的协议有完美的完整性,完美特定诚实的验证者零知识以及(m1+m2)n+1特定完备性,下面咱们看一下证明部分
在这里插入图片描述
Perfect Completeness说的比较简单,即验证者可以正确获取t(X)在x处的取值。对于Perfect special honest verifier zero-knowledge,作者在已知v,x的情况下完美的模拟了原方案,值得注意的是模拟方案中系数值的分布与承诺的分布与真实方案是均匀随机的,及其分布相同且都为随机取值。
在这里插入图片描述在这里插入图片描述
当经历过l次询问后,可以通过pe或者v得到关于系数的一系列等式从而求出系数的值或者找到一个break。但是l为什么是(m1+m2)n + 2还不能完全理解。(m1+m2)n 是系数的个数,按照我的思路应该是m1+m2+1
在这里插入图片描述

多项式承诺这一小节就到此结束了,接下来是第四小节。

[4]内积取值的递归论证:Recursive Argument for Inner Product Evaluation

Main Idea
在这里插入图片描述
在这里插入图片描述
Ak代表的是对角线元素的乘积
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里做一个综述:上述这一章节主要说明了可以将n个元素逐轮减少,最终只剩下m1个元素。但是这需要多次的交互过程,这里面包含很多的通讯开销,后面还要进一步探讨其作用。其次可以看到P需要给V发送witness,这是非零知识的,且第一轮就需要发送所有的witness,那就算最后减小了开销,那交互的开销综合还是比非改变之前的开销大。也许我的认知有错屋,需要结合后文进一步探讨其作用
安全性分析
在这里插入图片描述在这里插入图片描述
完美完整性,即正确一定可通过,其可以被直接验证;关于witness-extended emulation
在这里插入图片描述

接下来我门看第五小节: Logarithmic Communication Argument for Arithmetic
Circuit Satisfiability

在这里插入图片描述在这里插入图片描述
这段讲的是作者将用离散对数假设来构建对于算数电路满足性的零知识论证,其有平方根复杂度,并且包含一个大的内积,可用上述讲的内积优化来改善交流复杂度。可以观察到,此方案必是交互的,而非非交互的。在更高的层面,作者用乘法门和Hadamard matrix来表示电路中的乘法,用加法门来做等值的限制。
在这里插入图片描述
接下来将Hadamard matrix 和线性限制装到一个简单的多项式等式中,并用第三节的方法来进行验证。
在这里插入图片描述
三个优化:不对加法门做承诺,此处后面再详细分析。第二个还没有理解,看看后面的部分再进行分析。运用section3中的方法来降低多项式承诺交流复杂度
在这里插入图片描述
此处后续再进心讨论
Reduction of Circuit Satisfiability to a Hadamard Matrix Product andLinear Constraints.
在这里插入图片描述
此处对乘法门和起限制作用的加法门做了描述,此处可以把w看作一个n*m的矩阵,一共有Q个矩阵。Appendix A将会在后面进一步阐述,作为补充。下面是将其变为多项式的形式。
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
上面将乘法门和加法门嵌入到多项式的系数中;在嵌入乘法门时,Y是从m+1次到mn+m次的系数;在嵌入加法门时,使用的是(M=mn+m) +1 次到 M+Q次。用证明多项式等式成立来证明乘法门和加法门成立。
接下来看一下正式的描述。

Formal Description
在这里插入图片描述
上述难以理解的点就在于r(X),s(X),r’(X),t(X) 读者可以用最后的t(X)算一下,但是只算X^0的部分,可以观察到齐系数为由加法门和乘法门生成的多项式,这里用L表示,所以t0=0就意味着L成立。
在这里插入图片描述
现在做一个思路的整理,先将电路的可满足性转换到乘法门和加法门形式的表达,再进一步将其嵌入到多项式中,再将多项式嵌入到t(X)的常数项中,要验证多项式成立就需要验证t(X)的常数项为0,再用section3中的方法对多项式进行承诺,再检查承诺是否相等,最后输出非零项的0。那么我就有一些疑问,上述的整体怎么验证了电路的满足性?V怎么知道v的值是否正确,也就是V怎么提前知道正确的t(X)在某点的取值,也就是v正确,多项式正确,多项式正确,那么电路满足。
此文章分析还缺少最后的安全性分析解读与效率

收获

1.对多项式进行承诺的优化技术。
2.对内积的规模优化技术,但是存有疑惑,就是要经过多轮交互,不知道效率是否真的优化。
3.验证电路的可满足性最终可转化到验证多项式的正确性的技术。于Groth16的思路转换思路不同,没有用到插值的方法,而是将乘法门和加法门其嵌入到多项式的系数中。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值