路印协议 zkSNARK 可信设置的多方计算仪式

Loopring 开启了 zkSNARK 可信设置的多⽅计算仪式,可信设置分为两个阶段,路印开启的是第⼆个阶段的可信设置。

背景介绍

Loopring 使⽤的 libsnark 中零知识证明的算法是 Groth16,Groth16 分为证明和验证两步 :
证明者需要计算以下三个多项式 :

路印协议 zkSNARK 可信设置的多方计算仪式

验证者需要验证以下等式相等 :

路印协议 zkSNARK 可信设置的多方计算仪式

这其中需要⼀些公共参数,也称为有毒废料:

路印协议 zkSNARK 可信设置的多方计算仪式

但是这些参数是要丢弃的,否则就可以伪造证明,协议的安全性就没法保证了。

如果项⽬方自己⽣成这些参数然后宣称丢弃了这些参数,很难说服他⼈真的丢弃了,可信设置就是多个参与⽅⼀起设置这些公共参数,只要任意⼀⽅丢弃了参数,整个协议就安全了。

可信设置的两个阶段

可信设置有两个阶段,第一阶段是永续 Tau(τ) 计算,这⼀阶段的计算结果可被多个使⽤零知识证明的项目共享,路印也参与了这个阶段的计算并丢弃了有毒废料。

第⼆阶段是在第一阶段的基础上,生成电路相关的参数。

第一阶段

第⼀阶段计算的参数如下 :

路印协议 zkSNARK 可信设置的多方计算仪式

第二阶段

第⼆阶段是⽣成与电路相关的参数 :

路印协议 zkSNARK 可信设置的多方计算仪式

路印协议 zkSNARK 可信设置的多方计算仪式

路印协议 zkSNARK 可信设置的多方计算仪式

可信设置如何做到可信

⽐如公共参数中有椭圆曲线 G1 上的点α,假设初始⽣成点为 G ,现在有两个参与者 Alice 和 Bob 以及协调者 :

Alice 选择⼀个随机数α1 并且计算 ο1=α1*G,

Bob 选择⼀个随机数α2 并且计算 ο2=α2ο1= (α1α2)G,

协调者根据 Beacon 选择一个随机值α3,计算 α=α3ο2= (α1α2α3)G.

根据椭圆曲线的性质,知道最终的点α和初始生成点 G,是无法得到α1α2α3,只要任何⼀个参与者丢掉了自己的随机值αi,这样最终的α任何人都不知道怎么产生的,协议就安全了。

每个阶段的最后都需要引入 Beacon 选择随机值,因为有可能有的参与者会精心选择一个随机值控制中间的计算结果,加入 Beacon 可以解决这种问题。
Beacon 一般选择还未到来的比特币区块的 hash,Loopring 在开启第二阶段之前就已经公布了将要使用比特币高度 602168 的 hash 作为 Beacon,选取第一阶段的第 11 个结果使用 Beacon 计算第一阶段的参数。


访问下方链接关注更多内容

推特:https://twitter.com/loopringorg
微博:https://weibo.com/loopringfoundation

Reddit:https://www.reddit.com/r/loopringorg

中文电报:https://t.me/loopringfans

>>> 【买币首选】DragonEx龙网交易所,买比特币和以太坊等币简单快捷,现在注册交易手续费终身4折,每天现金分红 + 30%年化理财收益,注册并中级认证即可获得抽DT奖励(100%中奖),1小时内极速出入资金。

...

...

>>【8年老牌】现在注册Gateio比特儿交易所,即可享受一年内交易手续费9折优惠+糖果空投。

...

...

相关推荐

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址