Bulleproofs算法有两个方面的应用。
一个是Rangeproof:
第一讲:?理解零知识证明算法之Bulletproofs--RangeProof1
第二讲:?理解零知识证明算法之Bulletproofs--RangeProof2
第三讲:?理解零知识证明算法之Bulletproofs--RangeProof3
另一个是generalarithmeticcircuits,本编文章就来主要分享Bulletproofs在后者上的应用。
ArithmeticCircuits
USDC发送地址数量在过去一小时达到3个月高点:金色财经报道,Glassnode数据显示,USDC发送地址数量在过去一小时(7日均值)刚刚达到 2,156.935 个,达到3个月高点。[2023/3/12 12:58:55]
了解ZK-SNARK算法应该都知道算术环路的概念,下面一张图展示了zk-snark算法中,算术环路的设计规则。
Circuit设计规则:
1.由乘法门和加法门组成,每个门固定两个输入一个输出;
2.不标记通过加法门连接乘法门的线,如图中绿线,仅起到连接作用;
3.同一条线直接或间接连接多个乘法门,仅表示为一条有效的线,为了方便理解,用紫色虚线表示其连接关系;
美国财长耶伦:加密货币市场的动荡强调了采取行动的重要性:12月17日消息,美国财长耶伦发言表示,世界正面临严重的经济挑战,今年加密货币市场遭受了巨大的打击,加密货币和传统金融联系增加构成一种风险,执行现有的针对加密货币的规则很重要,加密货币市场的动荡强调了采取行动的重要性。[2022/12/17 21:49:35]
4.MulGate处的取值为图中红色字体所示
5.黄色线条为有效连接线
6.橙色线条表示MulGate对应的一阶约束
那Bulletproofs算法的算术环路的设计规则是什么样的呢?我们看看下图。
波卡DeFi平台Equilibrium集成Acala:金色财经报道,波卡DeFi平台Equilibrium宣布集成Acala,本次合作集成支持 Acala 原生 Token aUSD 在 Kusama 上的 Genshiro 与波卡上的 Equilibrium 生态系统中的完成借贷、质押和跨链收益服务,aUSD 的集成将使 Equilibrium 的原生资产能够与 aUSD 进行交换,由于 Equilibrium 正在运行 Curve 官方 AMM 举措 ,用于降低稳定资产的滑点 Swap,生态系统用户将能够在 Equilibrium 上来回将 aUSD 换成 USDT 等主要稳定资产。[2022/6/17 4:35:06]
Circuit设计规则:
1.由乘法门和加法门组成,每个门固定两个输入一个输出;
2.不标记加法门
3.不标记有常量的乘法门
4.红色字体表示乘法门的索引
5.黄色字体表示乘法门的输入和输出
6.橙色线条表示乘法门对应的一阶约束
7.蓝色线条表示相邻乘法门间的一致性约束
因此,一个完整有效的算数电路应该满足:
1.每个乘法门对应的的约束成立
2.乘法门之间的一致性约束成立
Zk-snark的算术电路通过R1CS满足了上述两个条件。
1.每个R1CS表示一个乘法门的约束
2.相邻乘法门的输出是下一个乘法门的输入,如图中的y,sym_1,sym_2
Bulletproofs的算术环路以通过以下两种方式满足上述两个条件:
1.每个乘法门对应的约束成立
2.上个乘法门的输出等于下个乘法门的输入。
看起来两个算法的证明一个算术电路有效的思想是一样,但是由于两个电路的标注规则不同,就产生两个不同的约束结果。
Zk-snark算法以validwires为基本要素,每个wire有左输入,右输入,和输出三个属性
Bulletproofs算法以validMulgate为基本要素,每个Mulgate有左输入,右输入和输出三个属性
最后,附上一张对比图:
总结以上可以看出,对数算术环路的满足性问题,不同的算法具有不同的电路描述方式。Zk-snark算法由Circuits转化到QAP,最终生成的证据仅仅再几十个字节大小;
Bulletproofs的算法由Circuits转化到innerproductor,生成的证明的大小和算术电路的乘法门的个数n有关O(log(n*Q),电路越大,证据越大。
附录
1.Bulletproofs论文:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8418611
2.BCG+讲述了算术电路的另外一种描述形式?https://eprint.iacr.org/2017/1066.pdf
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。