Sui基金会举办了仪式并于9月底成功启动zkLogin

感谢100多名参与者为CRS仪式的成功做出贡献,zklogin已上线欢迎体验。

Sui基金会举办了仪式并于9月底成功启动zkLogin

日前,Sui基金会成功举办了zkLogin仪式,这是Sui主网发布新的身份验证功能的重要步骤。zkLogin允许用户使用OAuth从其Web2凭据(如Google或Twitch)生成钱包地址。为了保护OAuth工件的隐私,通过零知识的持有证明验证用户已被授权,而不揭示工件本身。

zkLogin采用Groth16 zkSNARK构造来实例化零知识证明,为了实现更高的效率,Groth16需要一个由受信任方设置的计算特定公共参考字符串(Common Reference String,CRS)。由于zkLogin要确保高价值交易的安全保管和关键智能合约的完整性,系统的安全性不能依赖于单一实体的诚实。相反,为了给zkLogin电路生成CRS,Sui必须运行一个协议,该协议的安全性基于大量参与方中一小部分的诚实。zkLogin仪式就是这些参与方创建所需CRS的过程。

这个仪式是什么?

Sui zkLogin仪式实质上是由多样化的参与者执行的加密多方计算(Multi-Party Computation,MPC),旨在生成这个CRS,遵循Bowe、Gabizon和Miers描述的MPC协议MMORPG。该协议大致分为2个阶段。第一阶段的结果是椭圆曲线元素g指数中秘密量τ的一系列幂次,即 g、gτ、gτ2、......、gτn的形式。由于这个阶段与电路无关,我们采用了现有社区贡献的永久τ的幂次的结果。我们的仪式是zkLogin电路特定的第二阶段。

MMORPG协议允许无限数量的参与方依次参与,无需任何先前的同步或排序。每个参与方需要下载前一个参与方的输出,生成自己的随机数,然后将其叠加在接收到的结果上,生成自己的贡献,然后传递给下一个参与方。该协议保证了安全性,只要至少有一个参与方忠实地遵循协议,生成强随机数并可靠地丢弃它。

仪式是如何进行的?

我们邀请了100多位具有不同背景和从属关系的人参加,包括Sui验证节点、密码学家、Web3专家、世界知名学者和商界领袖。仪式原计划于9月12日至15日举行(后来延长至9月18日)。参与者可以在任何时间加入,没有固定的时段或预约。

由于MPC是按顺序执行的,每位贡献者必须等待前一位贡献者完成,以便接收前一位贡献,按照MPC的步骤进行操作,并生成自己的贡献。由于这种结构,参与者需要排队等待,而那些比他们早加入的人已经完成了。每位验证参与者都收到一个唯一的激活码。激活码是一个签名密钥对的私钥,具有双重作用:它允许协调服务器将参与者的电子邮件与贡献关联起来,并使用相应的公钥验证贡献。

参与者有两种贡献方式:通过浏览器或Docker。浏览器选项对用户更加友好,因为整个过程的所有部分都在浏览器中进行。Docker选项需要进行Docker设置,但更加透明。Dockerfile和贡献者源代码都是开源的,整个过程是可验证的。浏览器选项使用了snarkjs,而Docker选项使用了Kobi的实现。这提供了软件的多样性,以便贡献者可以选择他们最信任的方法。此外,参与者可以通过输入随机文本或进行随机光标移动来生成熵。

zkLogin电路和仪式客户端代码已经开源,并且链接已经提供给参与者在仪式之前审查。此外,开发者文档和电路审计报告已经发布供审查。第1阶段采用了挑战#0081(来自80个社区贡献),这是与电路perpetual powers of tau的一部分。在去除偏差后,应用了Drand随机信标在epoch#3298000时的输出。对于第2阶段,仪式有111份贡献,其中82份来自浏览器,29份来自Docker。最后,应用了Drand随机信标在epoch#3320606时的输出来去除贡献中的偏差。所有中间文件可以按照第1阶段说明(点击此处)和第2阶段的说明(点击此处)进行复现。

接下来呢?

最终的CRS以及每位参与者贡献的记录都可以在 公共存储库中找到。贡献者收到了他们正在处理的上一份贡献的哈希值以及他们贡献完成后的结果哈希值,这些信息在屏幕上显示并通过电子邮件发送。他们可以将这些哈希值与在仪式网站上公开可用的记录进行比对。此外,任何人都可以检查这些哈希值是否计算正确,每个贡献是否正确地合并到最终参数中。

参与者被要求选择是否希望他们的姓名和从属关系被公开。对于匿名参与者,Sui基金会将知道参与者的电子邮件,但不会进行任何公开披露。同意公开姓名的参与者在Github上列出。

开发者可以使用Sui文档测试配备有仪式CRS的zkLogin。

感谢参与者!

这个仪式是zkLogin发布的一个良好的开端。虽然不是一帆风顺,特别是早期的高峰导致了长时间的等待,但所学到的经验将对未来的仪式有很大帮助。

Sui社区对那些等待数小时、尝试多次、贡献了宝贵时间留下自己印记的人心怀感激之情。尤其令人兴奋的是看到许多参与者通过博客推文分享他们的经验!

感谢所有让这个仪式取得成功的人。现在,让我们开始构建吧