LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > 观点|道之力:我是如何不再担心并爱上可信设置的

观点|道之力:我是如何不再担心并爱上可信设置的

2021-05-30 EthFans 来源:区块链网络

转载自:公众号XPTY

翻译自:https://medium.com/zeroknowledge/the-power-of-tau-or-how-i-learned-to-stop-worrying-and-love-the-setup-535a05bec15d

翻译:Kurt Pan

自从在Zerocoin和Zerocash中首次实现以来,零知识证明(ZKP)在加密货币领域中就有着特别重要的历史。早期的实现是以广义的隐私为目标,ZKP现在才刚开始被用于许多除了仅仅做混淆以外更强大的功能。例如,zkRollups在以太坊上实现了更大的交易吞吐量,并且诸如Halo之类的递归证明构造正用于创建压缩的区块链;诸如“必要工作量证明”(https://eprint.iacr.org/2020/190.pdf) 之类的提案利用zkSNARK的功能在网络的共识层提供安全性;借助诸如Zexe之类的结构,ZKP使进行链外计算甚至是全新的编程模型变成了可能。

「零知识证明」通常被作为一个整体引用,但请务必记住,有许多不同类型的ZKP。严格来说,ZKP方案是一种提供“零知识”性质的方案,在该方案中,证明的验证者没有得到任何关于要证明的陈述是如何被证明的知识。ZKP可以是交互式的,其中验证者可以直接与证明者进行交互;也可以是非交互式的,证明者可以独立生成证明。有几类满足该条件的非交互式ZKP,包括:

非交互式零知识论证(NIZK)简洁非交互零知识论证(SNARG)简洁非交互零知识知识论证(SNARK或zkSNARK)

由于zkSNARK的简洁性和效率,它与加密货币最相关。第一个用于生产环境的SNARK是基于最初在Zcash中使用的Pinocchio。后来,Zcash和其他几个项目采用了Jens Groth在其2016年论文「Groth16」 中描述的zkSNARK。

尽管zkSNARK颇受欢迎,但它有两个主要缺点。

首先,非通用的zkSNARK(例如Groth16)特定于给定的NP关系。换句话说,证明是特定于固定程序的,从而限制了该方案的灵活性。其次,生成和验证任何zkSNARK证明都需要事先生成一个公共参考字符串(CRS)。可以认为此过程是创建只有系统“知道”的秘密,任何了解如何生成CRS的人都可以伪造证明,因此破坏了可靠性。

关于通用SNARK(例如Marlin,PLONK等)的学术研究已在很大程度上解决了第一个问题,但是即使这些方案仍然需要CRS。确实是具有不需要CRS的零知识证明构造,如STARKs(可扩展透明知识论证)和Bulletproofs。但是,尽管它们都有很好的应用,但从证明大小和验证速度的角度看,zkSNARK(尤其是非通用的SNARK,例如Groth16)是无法被超越的。zkSNARK的验证是常数时间的,这对加密货币特别有用。这意味着,无论要证明的语句大小如何,验证者检查证明所必须完成的工作量都保持不变。

因此,zkSNARK仍然是许多面向隐私的区块链应用的首选工具。但是,这些系统的安全性很大程度上归结为CRS生成的安全性。因此,在所谓的“设置仪式(setup ceremonies)”中安全地生成CRS的方法将继续具有重要意义。当然,以受信任的集中式方式生成这些参数是可能的,但与去中心化的目标不兼容。到目前为止,zkSNARK设置仪式中使用的首选技术是多方计算(MPC)。

MPC方案试图确保没有任何一方能够生成或能够获取关于CRS的底层数学结构的知识。其通过要求生成过程在尽可能多的独立参与者之间共享来实现这一点,只有少数人(甚至是一个人)需要诚实行事,以确保设置安全。2015年,Eli Ben-Sasson,Alessandro Chiesa,Matthew Green,Eran Tromer和Madars Virza提出了一种改进的MPC结构,即使除了一个参与者之外的所有参与者都已腐化,它也都可以生成安全参数。Zcash使用此方案为ZCash的第一个版本“ Sprout”生成CRS。尽管有新颖性,但参加仪式却很繁琐,并且仅限于可以信任地正确执行仪式的专家。此外,由于参与程度有限,人们普遍认为所需的信任度仍然过高,并且与zkSNARK旨在确保安全的去中心化系统的理想相矛盾。

从那时起,设置仪式的目标一直是最大化可以参加该方案的诚实且独立的参与者的数量。因为如果有很多独立的参与者,那么从直觉上讲,所有人都不诚实的可能性将降低到可以忽略的程度。因此,技术创新的目标是扩大这些仪式的能力,以支持尽可能多的参与者。

上述较早方案的一个问题是必须预先知道参与者的数量。Sean Bowe,Ariel Gabizon和Ian Miers在2017年的MMORPG论文中描述了Groth16设置的MPC仪式的一个变体,包括两个阶段。现在我们将第一个阶段称为“Powers of Tau”,它是所有给定大小以下的电路的通用设置。第二阶段将Powers of Tau阶段的输出转换为特定于关系的CRS。在该方案中,协调器用于管理参与者之间的消息。这扩展了处理流程,从理论上使其能够支持数百乃至数千名参与者。尽管存在协调器,但MPC的输出仍可以被独立验证,从而保持了安全性。自从论文最初发表以来,Powers of Tau仪式已成为行业标准。诸如Filecoin,Ethereum(Semaphore)和Zcash(“Sapling”)都使用它来为其系统生成CRS。图1(下图)直观地描绘了Powers of Tau仪式。


尽管它相对流行,但是MMORPG的缺点是设置仍然是一个串行过程。更具体地说,MPC仪式的单个参与者一次只能参加一个。因为CRS与电路的大小成线性关系,所以单个的贡献(contribution)可能会花费很长时间,因此,设置仪式不太可能吸引参与者。最近,以太坊基金会的Justin Drake提出了一种称为“乐观流水线”(optimistic pipelining)的方案。关键的洞察是,贡献可以被同时应用于CRS的不同部分,从而使参与者能够并行为MMORPG仪式贡献。因此,参与者可以同时为给定的一轮做出贡献,而不必等待轮到自己。我们将使用此方法的设置描述为“乐观设置”(optimistic setups)。Celo最近的设置仪式Plumo:https://celo.org/plumo 使用了该方案,Aleo即将使用的设置仪式也使用了该方案。

除了纯粹的去中心化和安全担忧外,团队越来越多地将这些仪式本身视为自己的产品。例如,Tornado.cash :https://ceremony.tornado.cash/ 运行了一个设置仪式,使用户能够直接从Web浏览器中进行贡献,从而达到了创纪录的1114名参与者。Tornado设置的成功表明,与之前的仪式被认为是必要的罪恶相比,现代设置仪式将用户体验放在首位和居中地位,不仅鼓励了更多的贡献,而且本身可以视作产品。

这些仪式的操作变得更加简化。原始的MMORPG方案使用中央“协调器”来管理参与者之间的消息,并对通信脚本进行装配聚合。从历史上看,此角色是手动执行的。但最近,各团队纷纷对自动化这个过程进行投入(见Celo的Plumo仪式和ESPERO: https://www.youtube.com/watch?v=LKbDNc-LrA4 。这不仅从人力资源的角度来看使得强度降低,而且由于减少了出错的可能性,也使仪式更加安全。有关乐观设置工作模式的说明,请参见图2(下图)。


尽管许多人争辩说生成CRS的要求是zkSNARK的关键缺陷,目前却还不能忽视其比其他ZKP方案更好的效率优势。这就是为什么它们仍然是行业标准,也是为什么如此众多的团队和研究人员将这些仪式发展和改进到今天的原因。由于提高了协议效率,改善了用户体验,并实现了任务(例如协调器)的自动化,现在比以往任何时候都更容易参加设置仪式,最近的仪式中的参与者人数也反映了这一点。最初的Zcash仪式只有六名参与者,而现代的仪式却能提供多很多倍的支持。而且,由于确保CRS的安全只要求一个诚实的参与者,因此更多的参与者通常等于更高的安全性,因为每一个加入的独立参与者都使得完全的共谋变得更不可想象。

的确,即使通过仪式生成了CRS,安全性的声明也不能数学化。但是,许多密码系统都基于有些抽象的假设。例如,我们有信心认为SHA-256是抗碰撞哈希函数,因为还没有人找到碰撞,而不是因为任何数学证明(事实上数学可以让我们证明相反的结论:碰撞一定存在)。但是SHA256之所以被广泛使用,是因为发生碰撞的几率是如此之低,以至于没必要考虑。

同样,很难(读作:不可能)试图确定参加设置仪式的每个参与者诚实运行的平均概率,从而以数学方式证明生成的系统是安全的。但是,随着参与者数量的增加,即使与广泛使用的密码方案以及与关于参与者的极为悲观的假设相比,这些几率也趋于逐渐减小。实际上,参与者的数量类似于安全参数,其在密码学理论中用作可调整参数,为不同的值提供不同的“安全级别”。

使设置仪式更加高效的创新反映出ZKP研究的惊人步伐。方案变得越来越有效,使应用变得实用,并鼓励进一步的创新和发展。这导致了类似摩尔定律的ZKP改进曲线。现在甚至有所谓的“透明” zkSNARK(例如Fractal:https://eprint.iacr.org/2019/1076.pdf 和SuperSonic:https://eprint.iacr.org/2019/1229 ),消除了对可信设置的要求。尽管有这些创新,但是诸如Groth16之类的现有zkSNARK的高效率意味着它们可能会在未来几年继续应用。设置仪式可以为协作社区以及正在实现这些的项目提供机会。因此它们代表了一个值得拥抱的机会,而不是一个需要克服的必要罪恶。

Part1参考

ZeroCash- https://ieeexplore.ieee.org/document/6956581Groth16- https://eprint.iacr.org/2016/260.pdfZcash设置仪式- https://electriccoin.co/blog/the-design-of-the-ceremony/Zcash设置(Radiolab) - https://www.wnycstudios.org/podcasts/radiolab/articles/ceremony针对CRS的原始MPC提案-http://www.ieee-security.org/TC/SP2015/papers-archived/6949a287.pdfMPC的第二项提案- https://eprint.iacr.org/2017/602.pdfMMORPG-https://eprint.iacr.org/2017/1050.pdf乐观流水线- https://ethresear.ch/t/accelerating-powers-of-tau-ceremonies-with-optimistic-pipelining/6870

—-

编译者/作者:EthFans

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...