该文章翻译由路印协议CTO郭雄辉翻译自 Koh Wei Jie的英文博客。
This article was translated by Steve Guo, Loopring’s CTO, from Koh Wei Jie’s original blog post in English.
以太坊社区积极的回应了我们之前发布的关于Semaphore技术介绍的博客文章 — Semaphore是一个以太坊上的隐私解决方案。本文所描述的则是后续的更重要的一环:启动多方参与的零知识证明的可信配置,我们称之为“Perpetual Powers of Tau”,即永续Tau(τ)计算。
为什么要做这件事情?
任何基于zkSNARKS电路的产品在发布之前都必须先做一次可信配置(Trusted Setup),这个初始配置的过程是为了生成以后要用到的证明钥匙和验证钥匙。然而,这个过程会产生出一些使用完后必须被丢弃掉的随机数据,如果有人能拿到这些随机数据的话,他/她就可以很容易的不经过电路运算就能构造出任意的零知识证明证据,进而导致整个系统变得不安全。我们可以通过让多个参与者依次轮流执行一段基于密码学而特殊设计的计算代码,就可以很好的解决可信配置中的数据问题。
只要至少一个参与者能确保其如实的丢弃掉其用到的随机数据,那么通过这套多方计算系统最终得到的计算结果就是可信的。众所周知,ZCash项目在2017年就执行过类似的可信配置过程,大家如果对其为什么这么做完之后就能解决信任问题感兴趣的话,可以参考这篇文章来获取详细信息。
“永续Tau(τ)计算””是一轮一轮来处理的,一轮只会有一个参与者。一轮计算的结果会被添加进一个公开的账本记录中去,这样可以让所有人都能去验证。只要其中至少一个参与者如实的丢弃掉其用到的随机数据,那么最终计算出的数据就是能被安全使用的。当越来越多的参与者加入进来的时候,想攻击这套系统使得数据不安全就会变得越来越难。尤其是当有大量的参与者加入进来时,他们从利己角度出发,就一定会愿意诚实的丢弃掉其用到的随机数据。举个例子,对于想拥有ZCash币的人就一定会有动力诚实地参与初始配置过程,从而确保未来自己的ZCash币是安全的。
值得注意的是,任何一个基于zkSNARKS的项目都必须要有两个阶段来生成一些参数,“永续Tau(τ)计算”只覆盖了第一个阶段,第二个阶段则是和项目中用的电路息息相关,这个就要靠项目方自己来完成了。毋庸置疑,整个过程是需要一些时间并且需要很多人的协调合作,其流程可能也会显得很乏味。但是由于密码学兼容性问题,以太坊上不能直接使用ZCash配置过程所产生出来的参数,因此,我们在以太坊社区生态中必须要发起一次全新的配置过程。
解决方案
解决方案就是得为以太坊社区生态发起一次全新的配置过程,从而减轻一些使用zkSNARKS技术的项目方的负担,比如一些链下扩容项目( iden3 rollup, Matter Network),去中心化交易协议(Loopring)和混币方案(Tornado Cash)。而且,这次活动会是永不停止的 — 换句话说,就是不限制参与者人数,也不限定结束时间。任何项目都可以在这个活动的任意时间内获取其第一阶段的配置参数,在此基础上再开始其第二阶段的配置。

我们已经开启了本次活动,并且需要大家的积极参与。
每个参与者都会先收到一份“挑战”文件,接着要本着认真负责诚实的原则生成一份“回复”文件。只要任何一个参与者能确保其如实的丢弃掉其用到的随机数据,整个活动过程就是可信安全的。
在一台运算速度较快的机器上,执行一轮计算会大约需要下载97G和上传49G的数据,耗时大概24小时。咋看起来,这套方案的数据量和时间都有些大,但是,我们的目标是支持尽可能多的zkSNARKS电路,包括那些具有大量门限制的电路。这中间尤其是roll_up电路可能会要超过两亿六千万个门限制。为了支持这些电路,我们就必须要计算2的28次方个Tau(τ),而这很显然会是一个很消耗计算资源的过程。
我本人会作为协调者,和 Kobi Gurkan, Barry WhiteHat一起来管理整个活动流程,包括确定参与者的顺序,记录每一个参与贡献的人。尽管协调者在整个过程中有一定的影响力,但我们可以不必完全依赖他们,任何人都可以验证公开的账本,这个账本就是所有的“挑战”文件,“回复”文件和每个参与者的电子签名。协调者在社区的监督下可以审查把关参与者,我们建立了一个公开的邮件列表,每个感兴趣的人都可以按自己的计划参与进来。
我们在这个github仓库中放了认证和参与过程的详细步骤。感兴趣的社区小伙伴们随时欢迎加入我们的邮件列表并参与其中。我们怀着激动的心情发起本次“永续Tau(τ)计算活动”,并满怀期待感兴趣的社区小伙伴们随时欢迎加入我们的邮件列表并参与其中,提前感谢你们的热情参与!
译者注:可信配置对任何基于zkSNARKS的项目来说,都是很重要的一环,所以我们在此呼吁尽量多的小伙伴们能一起加入进来,参与这个“永续Tau(τ)计算活动”,从而为以太坊社区的繁荣贡献一份力量,我们路印协议也会参与其中,并且郑重承诺一定会诚实计算,过程中的任何随机数据都不会被保存,一定会被丢弃。