原文作者:ValeriaNikolaenko和SamRagsdale
原文编译:Amber,ForesightNews
可信设置仪式虽然一直向加密社区发起挑战,但这绝对也是最能让加密社区兴奋的环节。仪式的目标是生成可靠的加密密钥,用于保护加密钱包、区块链协议或零知识证明系统。这些程序是项目安全性的信任之根,因此确保分毫不差的操作和执行可信设置仪式至关重要。
目前区块链项目进行可信设置仪式的形式多种多样,包括但不限于blowtorches、radioactivedust以及airplanes等,而这几种形式都有一个共同点,也就是他们都依赖于一个中心化的协调器。本文将展示如何通过智能合约替换中心化协调器来让流程实现去中心化,与此同时我们还会开源一个库,允许任何人在以太坊上运行被加密从业者称为Kate-Zaverucha-Goldberg或「powers-of-tau」的仪式。
我们的去中心化方法有局限性,但它仍然有用。由于当前的链上数据限制,加密参数的大小必须保持不超过64KB。但是参与者的数量没有上限,任何人在任何时候都能提交贡献。这些短参数的应用包括小型零知识SNARK、数据可用性采样和Verkle树等。
可信设置仪式的历史和机制
在典型的可信设置仪式中,一组参与者将协作生成一组加密参数。每个参与方都使用本地生成的加密信息来生成有助于创建这些参数的数据。适当的设置可以确保加密信息不会泄露,加密信息仅能被按照协议指定使用,并且这些加密信息在仪式结束时会被完全销毁。只要仪式中至少有一方保证诚实并且销毁了加密信息,那么整个流程就可以被视作是安全的。
一些最突出的仪式是由Zcash推出的,这是一个以隐私为导向的区块链项目。这些仪式的参与者生成了公共参数,旨在允许Zcash用户构建和验证私人加密交易。六名参与者在2016年举办了第一届Zcash仪式Sprout。两年后,加密研究员ArielGabizon,现在是Aztec的首席科学家,在仪式的设计中发现了一个毁灭性的错误,这个错误是从一篇基础研究论文中继承下来的。该漏洞可能使攻击者能够在不被检测到的情况下创建无限的Zcash硬币。Zcash团队将这个漏洞保密了七个月,直到系统升级Sapling解决了这个问题。虽然基于安全漏洞的攻击不会影响用户交易的隐私,但无限伪造的前景破坏了Zcash的安全前提。(从理论上讲,不可能知道是否发生了攻击。)
可信设置的另一个值得注意的例子是永久的「tau-power-of-tau」仪式,该仪式主要为Semaphore设计,Semaphore是一种用于以太坊上匿名信令的隐私保护技术。该设置使用BN254椭圆曲线,到目前为止已有71名参与者。其他着名的项目后来使用这种设置在顶部运行自己的仪式,包括Tornado.Cash、Hermez网络和Loopring。Aztec在BLS12_381椭圆曲线上举行了类似的仪式,有176名参与者参加zkSync,这是一个「第二层」以太坊扩展解决方案,使用零知识汇总。Filecoin是一种分散的数据存储协议,分别在第一阶段和第二阶段与19名和33名参与者一起举行了仪式,分叉了原始存储库。Celo是一个1层区块链,也为他们的轻量级客户端Plumo举办了一个仪式。
永久仪式对参与者人数没有限制。换句话说,任何人都可以参与任何程度的安全,而不是信任其他人来运行受信任的设置仪式。一个值得信赖的参与者确保所有结果参数的安全性;链条与其最强的环节一样强大。顾名思义,永久仪式可以永久举行,就像原始的tau权力仪式的前提一样。也就是说,项目通常会决定仪式的具体开始和结束时间,这样他们就可以将生成的参数嵌入到协议中,而不必担心不断更新它们。
以太坊计划为即将到来的ProtoDankSharding和DankSharding升级运行一个较小的可信设置仪式。这两次升级将增加以太坊链提供给客户端进行存储的数据量。此数据的有效期为建议的30到60天。该仪式正在积极开发中,计划于明年初持续运作六周左右的时间。而它正在成为迄今为止最大的区块链可信设置仪式。
偏执是一种「美德」,尤其当涉及到可信的设置仪式时。如果机器的硬件或软件受到损害,则可能会破坏其生成的秘密的安全性。泄露秘密的偷偷摸摸的侧信道攻击也很难排除。例如,手机可以通过记录CPU振动的声波来监视计算机的操作。在实践中,由于很难消除所有可能的侧信道攻击-包括那些尚未发现或披露的攻击-甚至有人提议将机器飞到太空在那里举行仪式。
目前,严谨的仪式参与者的剧本通常如下。购买新机器。通过移除所有网卡来进行风险隔离。在法拉第笼中远程未公开的位置运行机器。为伪随机加密信息生成器设定大量熵和硬复制数据,如随机输入或视频文件的种子。最后,通过将一切燃烧成灰烬来销毁加密信息-以及任何关于加密信息的痕迹。
协调可信设置仪式
所有可信设置仪式都依赖于一个中心化的协调者。协调者是个人或私人服务器或其他实体,他们被委托注册和订购参与者,通过将信息从前一个参与者转发到下一个参与者来充当中继,并保留所有通信的集中日志以用于审计。协调员通常还负责永久向公众提供日志,不过必须要承认的是,这种中心化的系统很容易因为管理不善或者一些非人为因素导致信息丢失。
具有讽刺意味的是,当去中心化是加密精神的核心原则时,加密项目必须依赖于中心化的可信设置仪式。因此,我们决定证明直接在以太坊区块链上为永续的powers-of-tau举办一个小型仪式的可行性。该设置是完全去中心化的,无需许可的,抗审查的,并且只要任何一个参与者是诚实的,都是安全的。按照当前价格计算,参加仪式的费用仅为7至400美元,具体取决于所需结果参数的大小。
到目前为止,我们建议不要将代码用于实验目的以外的任何目的。如果发现代码有任何问题的人向我们报告,我们将不胜感激。我们很乐意收集有关我们方法的反馈和审核。
了解KZG或「powers-of-tau」仪式
让我们来探索一下最受欢迎的可信设置之一,它被称为KZG,或「powers-of-tau」仪式。感谢以太坊联合创始人VitalikButerin,他关于可信设置的博客文章为我们在本节中的想法提供了信息。该设置生成powers-of-tau的编码,之所以这样命名,是因为「tau」恰好是用于表示参与者生成的秘密的变量:
对于某些应用,设置的第一阶段之后是第二阶段,即多方计算仪式,为特定的SNARK电路生成参数。但是,我们的工作仅集中在第一阶段。第一阶段-生成tau的幂-已经可以用作通用SNARK以及其他加密应用程序的基础构建块。。通常,通用SNARK参数应该非常大,以便它们可以支持大而有用的电路。包含更多门的电路通常更有用,因为它们可以捕获大型计算;tau的幂数大致对应于电路中的栅极数。因此,典型的设置大小为|pp|=~40GB,能够支持~2的电路28Gas。鉴于以太坊目前的约束,将如此大的参数放在链上是不可行的,但是对于小型SNARK电路,Verkle树或DAS有用的较小的可信设置仪式可以在链上运行。
以太坊基金会计划为大小为200KB至1.5MB的powers-of-tau运行几个较小的仪式。虽然更大的仪式可能看起来更好,但考虑到更大的参数可以创建更有用的SNARK电路,实际上,更大的并不总是更好。某些应用程序特别需要一个较小的应用程序![原因非常技术性,但如果你很好奇,那是因为具有n次幂的设置1)仅允许KZG对≤n次多项式的承诺,这对于确保KZG承诺下的多项式可以从任何n次评估中重建至关重要。此属性支持数据可用性采样:每次成功获得多项式的随机评估时,它保证多项式可以用概率t/n完全重构。如果你想了解更多关于DAS的信息,请查看Buterin在以太坊研究论坛上的这篇文章。
我们设计了一个智能合约,可以部署在以太坊区块链上,以运行可信设置仪式。该合约将公共参数完全存储在链上,并通过用户的交易收集参与。
新参与者首先读取这些参数:
然后对随机密钥τ'进行采样并计算更新的参数:
并将它们发布在链上,并附上证明三件事:
离散对数的知识:参与者知道τ'。(证明对可信设置仪式的最新贡献建立在所有先前参与者的工作之上。
pp的格式良好1:这些元素确实编码增量幂。(验证了新参与者对仪式的贡献的良好形式。
更新未擦除:τ'≠0。(针对试图通过删除所有参与者过去的工作来破坏系统的攻击者的防御。
智能合约验证证明,如果它是正确的,它会更新它存储的公共参数。您可以在存储库中找到有关数学及其背后推理的更多详细信息。
计算Gas成本
在链上运行设置的主要挑战是使受信任的设置仪式尽可能高效。理想情况下,提交捐款的费用不超过50美元。。下面,我们提供有关设置中最昂贵部分的更多详细信息。较低的Gas成本将降低贡献成本,并允许构建更长的参数!
我们的设置适用于椭圆曲线BN254,它支持以太坊上的以下预编译合约:
ECADD允许添加两个椭圆曲线点,即计算1来自1和1:汽油费150
ECMULT允许椭圆曲线点乘以标量,即计算1从a和1:汽油费6,000
ECPAIR允许检查椭圆曲线对的乘积,即计算e*...*e=1,相当于检查α1*β1+...+αk*βk=0:Gas成本34,000*k+45,000
如果以太坊能够启用BLS12_381,我们的设置合同也可以很容易地用于其他曲线。
让我们估计将设置更新为
验证证明的Gas成本。如上所述,每个参与者都会更新设置并提交包含三个组件的证明。证明的组件1和3-「离散日志知识」和「更新是非擦除的」-验证起来非常便宜。挑战在于验证组件2,「pp的良好成形性」1「,在链上。它需要一个大的多标量乘法和两个配对:
其中ρ0,...,?n-1是伪随机采样标量。就预编译的智能合约而言,需要:
存储数据的Gas成本。每个参与者还将链上更新存储为调用数据,占n*64*68gas。(对于那些熟悉椭圆曲线密码学的人来说,需要注意一点:根据我们对n=256的测量,存储压缩点将使解压缩主导总体成本。
以此估算出的Gas成本如下:
当然我们也还在探索降低Gas成本的解决方案。
开源库:evm-powers-of-tau
我们已经在github.com/a16z/evm-powers-of-tau开源了基于EVM的powers-of-tau仪式。使用我们的策略进行仪式既简单又透明:
部署存储和验证协定
参与者从以前的事务调用数据中读取仪式参数
参与者在本地生成一个密钥,计算更新的参数
贡献者生成他们的证明:pi1,pi2
贡献者通过KZG.potUpdate将更新的参数提交给公共区块链上部署的智能合约
智能合约将验证更新的有效性,在提交格式错误的情况下恢复
多个贡献者可以永久执行步骤2-5,每个步骤都可以提高仪式的安全性
每当开发人员对提交的数量和质量有信心时,他们就可以在区块链中查询当前参数,并将这些值用作加密密钥。
我们的存储库使用arkworks-rs来计算步骤2和3,但用户可能想要编写自己的。更新提交的整个端到端流程可以在tests/integration_test.rs的集成测试中找到。
请注意,我们选择使用calldata在链上存储更新的powers-of-tau参数,因为它比存储便宜几个数量级。可以在src/query.rs中找到此数据的基于ethers-rs的查询。
最后,证明和详细的方程式可以在techreport/main.pdf的技术报告中找到。
未来工作计划
在将这种可信设置仪式用于生产环境之前,我们建议首先对数学证明和示例实现进行全面审核。
随着实施,更新仪式的交易成本随着设置大小而线性增长。对于大多数应用程序,我们希望设置n>=256,目前每次更新的费用为73美元。
我们也许能够通过有效更新计算的STARK证明和对更新值的向量承诺来实现亚线性验证成本增长。这种结构还将消除对以太坊L1BN254预编译的依赖性,从而可以使用更流行的BLS12-381曲线。
所有的仪式策略都是经过反复权衡和测试的。我们认为这种结构是可靠的,并且具有很好的可验证和抗审查性。但同样,在完成更多工作来验证我们方法的合理性之前,直接使用文中提到的这一方案仍然需要高度谨慎。
来源:金色财经
昨天以太坊从早间的1595附近开始回踩,晚盘最低跌至1560附近后开始反弹,今天凌晨从1610附近回踩1575,开始了新的一波拉升,刚刚最高涨至1675附近,现行情位于1660附近运行.
尽管加密货币市场最近陷入低谷,但VC仍在NFT和DeFi等领域支持着Web3创业者,投资者也在继续支持旨在改变金融和数字商务等行业的加密货币初创公司.
距离以太坊2.0合并不到15天,它仍然是今年迄今为止区块链生态系统中最受期待的事件。根据Santiment的数据,自8月中旬以来,“Merge”一词的搜索量有所增加.
曾经无与伦比的OpenSea的交易量在过去一年的8月创下月度新低。BAYC、CryptoPunks、Azuki等蓝筹流动性曾经是市场的中流砥柱,在经历了大规模的清算危机之后,一直在失地,日交易量.
独一无二,可创提供稀有价值不同于某些其他平台乱发、滥发数字作品的情形,可创平台提供的,绝对是稀有的、珍贵的、独具收藏价值的数字作品。可创的每件藏品只有一个.
AI作为一种通用技术,在各个领域赋予了我们生活极大的便利。进入元宇宙,数据的开放共享必成为一种趋势,在数据生产力的时代中,数据价值创造的效率提升将带来质的突破.