一文详解以太坊 KZG 仪式以及它的重大意义
saintz
发表于 2023-1-20 16:40:28
133
0
0
然而,Proto-danksharding 需要一个新的密码学方案:KZG 承诺。该仪式有时称为“可信设置”,它将生成承诺工作所需的结构化引用字符串(SRS)。只要仪式中的一名参与者成功地隐藏了他们的秘密,SRS 就是安全的。
这是一个多方参与的仪式:每个贡献者创建一个秘密,并运行一次计算,将其与之前的贡献混合在一起。然后,输出被公开并传递给下一个贡献者。为了防止有人试图破坏仪式,参与者需要一个以太坊地址或 GitHub 账户,并有一定的交易历史记录才能参加。该仪式的最终输出将包含在未来的升级中,以帮助扩展以太坊网络。
FAQ1、什么是 EIP-4844(又名 Proto-Danksharding),它与扩容以太坊有何关系?
以太坊社区正在通过二层网络 (L2) 扩展到全球可访问性。L2 增加了用户可用的总区块空间,同时仍保持以太坊一层网络 (L1) 提供的安全性。
L2 网络需要在以太坊上发布大量数据,而 L1 网络目前为此收取很高的费用。为了解决这个问题,以太坊将创建一个新的数据层,通常称为分片(sharding)。这为 L2 用户提供了所谓的“数据可用性”(DA)保证。L1 只在有限的时间内保存数据,这意味着我们可以在不牺牲较小 L1 节点运营商的去中心化的情况下扩展区块链。
目前这方面的领先设计被称为 Danksharding。这项功能的推出将分几个步骤进行,而第一步是 EIP-4844,也被称为 Proto-Danksharding。
2、什么是召唤仪式?
仪式使用秘密输入来产生输出,这种方式使逆向工程和发现最初的秘密变得不可能。
以下是它们如何工作的的简要总结:
参与者 1 选择一个随机数(例如 5),然后对其进行计算。该计算的输出被传递给参与者2,在那里他们用自己的秘密输入(例如3)重复步骤1,并将其与第一个参与者的输出(例如 5x3=15)混合。
重复这个过程,直到有足够数量的参与者,此时序列中的最后一个输出就成为最终输出。
仪式也被称为“可信设置”,最著名的是 Zcash 用来引导他们的隐私功能。然而,它也可以用于添加可扩展性机制,就像以太坊正在做的那样。
Carl Beekhuizen 有关于这个仪式的 Devcon 演讲,其简单而深入地解释了这个仪式是如何以及为什么起作用的。或者,你可以探索仪式规范来真正深入了解细节,并可能编写自己的实现。
3、为什么 (Proto)-Danksharding 需要一个仪式?
(Proto)-Danksharding 需要一个能够快速证明和验证底层数据的承诺方案,同时承诺大小较小。而最符合数据可用性抽样(DAS)标准的多项式承诺方案是 KZG 承诺(KZG commitments)。
KZG 方案通过以秘密值(特别是椭圆曲线点)对其进行评估来提交多项式。这个仪式的目的,在于以一种没有人知道这个秘密是什么的方式来构建这个秘密值,并且以一种很多人确信即使在很多年之后也没有人知道的方式来实现。
4、我如何为仪式做贡献?
就在这个网站上,你可以使用自己的以太坊地址或 Github 帐户登录参与。
如果你想要此界面的替代方案,可以使用其他几个 CLI 和网页(链接 + IPFS)。在这个公共贡献期之后,我们将接受来自定制实现或独特随机生成的特殊贡献。这两项都有资金支持,更多信息将在未来几周内分享。
5、KZG 代表什么?
KZG 来自 Kate, Zaverucha 和 Goldberg。他们是论文“常数大小多项式及其应用”中的作者,这篇论文概述了 EIP-4844 计划使用的底层密码学机制。
要深入研究 KZG 承诺的密码学,Dankrad Feist 的博客文章是一个很好的起点。
6、在这个仪式上要做什么?
该界面将引导你完成以下步骤:
1、你提供来自三个不同来源的随机输入。
2、使用以太坊钱包或 Github 账户登录以防止垃圾信息。
3、询问 Sequencer(排序器)你是否可以参加。轮到你的时候,排序器会给你发送“Powers of Tau”数据。
4、你的计算机会将你的随机性混合到 Powers of Tau 中,完成后,将其发送回 Sequencer(排序器)。
5、排序器将验证你的计算机是否正确执行了所有操作,并将 Powers of Tau 传递给下一个参与者。
仪式结束后,你应返回以核实你的贡献是否确实包含在最终报告单中。
7、Powers of Tau 是什么?
“Powers of Tau”这个名称来自关于可信设置和 SRS 的密码学文献。
“Tau”来自希腊字母 τ,是本文档中提到的“秘密”的简写。
“Powers" 是指我们不仅需要秘密,还需要秘密的连续幂(乘方)。(即
)
值得注意的是,Powers of Tau 不是原始数字,而是被编码为“加密”的椭圆曲线点,因此隐藏了它们。
8、什么是 Sequencer(排序器),它有什么作用?
Sequencer (排序器)是由以太坊基金会托管的服务器,用于协调贡献。它跟踪谁在尝试贡献,为他们提供下载所需的数据,并在将数据发送给下一个参与者之前验证每个贡献。
你不必相信排序器会产生有偏差或无效的最终输出。报告单提供了所有随机性贡献的可验证记录,你可以自己验证。
9、不能使用另一种没有“可信设置”的承诺方案吗?
使用 KZG 以外的任何东西(例如 IPA 或 SHA256)会使分片路线图变得更加困难。从 Vitalik 的 Proto-Danksharding 常见问题解答中,你可以了解更多信息。
10、需要出什么差错才能破坏仪式的安全性?
这个仪式有一个“1-of-N”的信任假设,这意味着整个仪式中需要有一个参与者没有泄露秘密输入,那么一切都是安全的。
这意味着每个参与者都必须分解他们用于贡献的软件,让软件为他们提供秘密,然后与每个其他参与者合谋重建最终的秘密。
更现实的故障模式是一个常见的错误,它会泄露随机性。为了解决这个问题,这个站点已经经过了审计,并且有构建在完全不同的软件堆栈上的贡献软件的替代实现。
这就是为什么会有成千上万的参与者在不同的操作系统上使用不同的软件,来帮助防止人员和硬件/软件中的单点故障。
11、在这种情况下可能会发生什么攻击?
如果以某种方式从 Powers of Tau 中提取秘密,攻击者将能够对 EIP-4844 中的数据做出任意声明。这将有效地破坏依赖于 EIP-4844 blob 数据的所有服务和应用。
12、参与贡献需要多长时间?
这取决于在同一时间有多少人试图参与,你可能要等待一段时间。一旦轮到你,在标准笔记本电脑和互联网连接的情况下,完成贡献应该只需要不到 3 分钟的时间。
13、为什么我需要登录以太坊或 GitHub?
为了减少针对仪式的女巫攻击,排序器需要验证你是一个(有点)独特的人,否则一个人可能会提交许多不同的贡献,从而阻止其他人做出贡献。
1、使用以太坊钱包登录-这是首选的选择,因为它是所有以太坊社区成员都应该已经拥有的东西,并且它允许签名,以便以后验证贡献。每个账户必须发送至少 3 笔交易,以防止参与者为这个仪式创建新的账户。
2、用 GitHub 登录——这个选项是为那些距离社区较远,但仍想参与的人提供的替代选择。
14、我如何知道我的贡献被纳入了?
当这个仪式结束时,你应该查看一下仪式的记录(将在本网站上托管,并在互联网上广泛传播)。这份记录将包含所有必要的数据,以核实谁参加了。
如果你使用以太坊钱包地址登录,那么你将通过来自钱包帐户的签名消息获得你参与的密码学证明。
15、我如何验证最终的仪式输出?
仪式结束后,社区验证仪式是否正确运行是很重要的,这包括两个部分:
1、通过检查记录中出现的身份,来验证你或足够多你信任的人是否真的参加了仪式。
2、验证记录是正确构建的,包括所有 witness(正确贡献的证明)以及 Powers of Tau。
在贡献结束时下载你的收据,以检查它是否由 sequencer(排序器)地址签名。你可以查看这些说明。
16、为什么我不能在移动设备上参与贡献?
虽然一些移动设备的处理能力足以参与这个仪式,但很多移动浏览器不能很好地处理 WASM,在计算完成之前锁定屏幕或降频 CPU,而且通常设备之间存在很大差异,这很难解释。
成为第一个吐槽的人