以太坊基金会撰文: 2.0合并后应用层5大改变;重组攻击需销毁总质押1/3ETH

以太坊 2.0 与 1.0 预计将在明年第 2 季迎来合并,这意味著届时以太坊将正式从 PoW 过渡至 PoS。以太坊核心开发者 Tim Beiko 近日撰文,详述合并后对以太坊应用层的影响,并指出在合併后若要进行重组攻击,需销毁总质押 1/3 的以太币,目前相当于超过 100 亿美元。

以太坊 2.0 与 1.0 预计将在明年第 2 季迎来合併。以太坊基金会生态建设协调人埃普斯(Trenton Van Epps) 上月 17 日表示,以太坊将在 3 到 6 个月内结束工作量证明(PoW)共识机制,呼吁以太坊矿工们为此做好准备。

以太坊核心开发者 Tim Beiko 11 月 29 日在以太坊基金会官方部落格撰文,解释合併后对以太坊应用层的影响,指出合併被设计为仅对以太坊终端用户、智能合约、Dapps 的运作方式产生最小影响,但还是有一些小的变化值得强调。

在文章中, Tim Beiko 总结出五个合併后值得注意的变化,包括区块结构、挖矿与叔块(Ommer Block)场、BLOCKHASH 与 DIFFICULTY 操作码改变、区块时间、安全头块与最终块等方面。


以下由动区编辑编译原文,整理如下:

区块结构

Tim Beiko 指出,在合併后,POW 区块将不再存在于网路中,以前 POW 链的内容,将成为信标链(Beacon Chain)上所创建区块的组成部分,这可以理解为信标链将成为新的以太坊 POS 共识层,取代了先前的 POW 共识层。

Tim Beiko 表示,信标链区块将包含 ExecutionPayloads,它是合併后当前 POW 链上的区块等价物,下图显示了这层关係。

upload_94508c1f09ade25c58b5d2c2cb24c27d.png

对于终端用户和应用开发者而言,这些 ExecutionPayloads 是与以太坊交互的地方,在这一层的交易,仍将由执行层客户端(Besu, Erigon, Geth, Nethermind 等)处理;幸运的是,由于执行层的稳定性,合併只会带来最小的破坏性变更。

挖矿和叔块场

Tim Beiko 指出,在合併后,先前包含在 POW 区块头的几个字段将无法使用,因为它们与 POS 不相关,为了尽量减少对工具和基础设施的影响,这些字段都会设为 0,而不会完全从数据结构中删除,区块字段的完整变更可以在 EIP-3675 中找到。

image2.png

Tim Beiko 指出,由于 POS 不会像 POW 那样自然产生 ommers (叔块),因此在每个区块裡的 ommers 列表将是空的,而它的哈希值将会变成一个空列表的 RLP 编码哈希值;此外,由于 difficulty 和 nonce 都是 POW 的特点,这些字段都会被设为 0,同时遵守它们以字节大小为单位。

BLOCKHASH 与 DIFFICULTY 操作码改变

Tim Beiko 指出,在合併后,BLOCKHASH 操作码仍可使用,但由于它不再能被透过 POW 哈希计算的过程来产生,所以此操作码提供的伪随机性将大大减弱。

Tim Beiko 进一步表示,与此相关的是, DIFFICULTY 操作码 (0x44) 将会更新、并重新命名为 RANDOM。合併后,它将会返回由信标链提供的随机性输出,这个操作码会因此成为应用开发者可以使用的随机性来源,它比 BLOCKHASH 更强,儘管仍有偏差。

另外,RANDOM 暴露的值将储存在 ExecutionPayload ,这也是 mixHash (一个与 POW 证明计算相关的值)储存的地方。数据的 mixHash 字段也将被重命名为 random。

Tim Beiko 以下图说明 DIFFICULTY 跟 RANDOM 操作码在合併前、合併后的运作方式:

upload_81cabda944c7d4a190a0d37d051e4679.png

区块时间

Tim Beiko 指出,合併将影响以太坊平均出块时间。目前在 PoW 机制下,平均出块时间大概是 13 秒,实际出块时间仍有显著差异,而在 POS 机制下,出块时间将精确到每 12 秒就会出一个区块,除非是验证者离线、或没有即时提交区块,因而错过了一个时间段,实际上,目前这种情况只在 <1% 时间段中发生过。

Tim Beiko 总结道,这意味著网路的平均出块时间将减少 1 秒,那些有在计算中假设一个特定平均出块时间的智能合约,将需要考虑这一点。

安全头块与最终块

Tim Beiko 指出,在 PoW 下,总是会有出现重组的可能性,应用程式通常会等待几个区块在一个新的区块头被挖出,因为这样一来,这些区块不太可能从权威链(canonical chain)中被移除,或者等区块被“确认”。

而在合併后,有了“最终块”(finalized block)和“安全头块”(safe head block)的概念,这些区块比 PoW 下的“被确认”区块更可靠,但理解上有区别,需要转变观念才能正确使用。

Tim Beiko 指出,“最终块”意味著它被大于 2/3 的验证者接受为权威链的一部分,因此,若有攻击者想创建一个衝突区块,它必须烧毁至少总质押金额的 1/3 以太币,以目前来说,相当于约 250 万颗以太币,价值超过 100 亿美元。

“安全头块”则是指正常的网路条件下,预期会被包含在权威链上的区块,假如网路延迟少于 4 秒,大多数验证者是诚实的、且没有对分叉选择规则攻击,安全头块将永远不会成为孤块。

Tim Beiko 分享了一份报告,详细介绍在各种情况下如何计算安全头块,并表示在即将发表的论文中,安全头块的假设和保证将被正式定义和分析。

Tim Beiko 表示,合併后,执行层的 API(例如 JSON RPC) 将在询问 latest 区块时默认返回安全头块,在正常网路条件下,安全头块和链的实际顶端将是相等的(安全头块只落后几秒钟),因此,安全头块被重组比现在 POW 的 latest 区块被重组的可能性还要低。

Tim Beiko 补充道,如果要公开 POS 链的真正链头,将会有一个 unsafe 的标记添加到 JSON RPC 中;最终块的区块也将通过 JSON RPC 公开,会出现一个新的 finalized 的标记,这些都可以作为比 POW 中的确认更强的替代品。

Tim Beiko 以下图对这些内容进行总结:

圖片-4-1.jpg

结论:下一步

Tim Beiko 最后表示,希望这篇文章能够帮助应用开发者做好准备,迎接众所期待的 POS 过渡,在接下来数週,存在已久的测试网将被提供给更广大的社群进行测试,还有一个可向基础设施、工具和应用程式开发人员提问、并了解最新合併技术进度的合併社群线上会议即将到来。

以太坊基金会撰文: 2.0合并后应用层5大改变;重组攻击需销毁总质押1/3ETH

扫一扫手机访问

以太坊基金会撰文: 2.0合并后应用层5大改变;重组攻击需销毁总质押1/3ETH

发表评论