防弹算法有两个应用。
一种是防射程的
第1讲:理解零知识证明算法的防弹性——距离证明1
第二讲:理解零知识证明算法的防弹性——距离证明2
第三讲:理解零知识证明算法的防弹性——距离证明3
二是通用算术电路。本文将主要介绍防弹技术在后者中的应用。
算术电路
如果你了解zk-snark算法,你应该知道算术循环的概念。下图显示了ZK snark算法中算术循环的设计规则(以V神的X3+X+5=37为例)。
电路设计规则:
1它由乘法门和加法门组成。每个门有两个输入和一个输出;
2不要将乘法门与加法门连接的线标上,如图中的绿线,它只起连接作用;
3同一条线直接或间接连接多个乘法门,这只是一条有效线。为了便于理解,用紫色虚线表示连接关系;
4mulgate的值以红色字体显示
5黄线是有效的连接线
6橙色线表示mulgate的一阶约束
防弹算法的算术循环的设计规则是什么?让我们看看下面的图(仍然以神V的X3+X+5=37为例)。
电路设计规则:
1它由乘法门和加法门组成。每个门有两个输入和一个输出;
2无标记加法门
3乘法门没有用常量标记
4红色字体表示乘法门的索引
5黄色字体表示乘法门的输入和输出
6橙色线表示对应于乘法门的一阶约束
7蓝线表示相邻乘法门之间的一致性约束
因此,一个完整有效的算术电路应满足以下要求:
1对应于每个乘法门的约束保持不变
2建立了乘法门之间的一致性约束
ZK-snark算法电路通过r1cs满足上述两个条件。
1每个r1c表示乘法门的约束
2相邻乘法门的输出是下一个乘法门的输入,如图1中的y,sym,sym
防弹算术回路满足上述两个条件的方式有以下两种:
1对应于每个乘法门的约束保持不变
2上一个乘法门的输出等于下一个乘法门的输入。
这两种算法在证明算术电路有效性的思想上似乎是一致的,但由于两种电路的标号规则不同,产生了两种不同的约束结果。
zksnark算法以有效导线为基本元素,每条导线有三个属性:left input、right input和output
防弹算法基于有效的musate。每个musate有三个属性:左输入、右输入和输出
**,附上一份比较表
由此可见,对于对数算术回路的满足问题,不同的算法有不同的电路描述。ZK-snark算法由电路转换为QAP,最终的证据只有几十字节大小;
防弹算法由电路变换为内发生器。生成的证明的大小与算术电路的乘法门n的个数O(log(n*q))有关。电路越大,证据就越大。
附录
1防弹的https://ieeexplore.ieee.org/stamp/stamp.p?tp=A编号=8418611
2BCG+描述了算术电路的另一种描述形式;https://eprint.iacr.org/2017/1066.pdf
文章标题:Zkswap团队解释防弹:算术电路
文章链接:https://www.btchangqing.cn/187315.html
更新时间:2021年01月30日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。
有空一起交流一下比特币
好事~
不卖,多钱不卖
合规溢价权
这货要跌到明年了
都是瞎几把扯。。
昨晚卖了今天早上又长回来[灵光一闪]
大热币必死,这是规律
说的对,说得好!
不错啊! 一个字牛啊!