以太坊向股份证明(合并)的过渡即将到来:即将站立,规格正在完成,社区外展开始了认真。合并旨在对以太坊为最终用户,智能合约和DAPP的操作方式产生最小的影响。也就是说,有一些小变化值得突出显示。在我们深入研究之前,以下几个链接可以提供有关整体合并体系结构的背景:
本文的其余部分将假定读者熟悉上述内容。对于那些想要更深入研究的人,可以在此处提供合并的完整规格:
块结构
合并后,网络上将不再存在工作块证明。取而代之的是,以前的工作证明块的内容成为信标链上创建的块的组成部分。然后,您可以将信标链视为以太坊共识层的新证明,取代了以前的工作证明层。信标连锁块将包含 ExecutionPayloads,这是当前工作链证明的合并后的块。下图显示了这种关系:
对于最终用户和应用程序开发人员,这些 ExecutionPayloads 是与以太坊的互动发生的地方。该层上的交易仍将通过执行层客户端(Besu,Erigon,Geth,Nethermind等)处理。幸运的是,由于执行层的稳定性,合并仅引入最小的破裂变化。
采矿和户外区域
合并后,以前在工作块标题中包含的几个字段与股份证明无关,因此未使用。为了最大程度地减少对工具和基础架构的破坏,这些字段设置为0或它们的数据结构的等效性,而不是完全从数据结构中删除。可以在 EIP-3675。
场地 | 恒定值 | 评论 |
---|---|---|
进步 | [] | RLP([])= 0xc0 |
Housershash | 0x1DCC4DE8DEC75D7AAB85B567B6CCD41AD312451B948A7413F0A142FD40D49347 | = keccak256(rlp(RLP)([])) |
困难 | 0 | |
nonce | 0x0000000000000000 |
因为股份证明并不自然地产生诸如工作证明的ummers(又名叔叔街区),所以每个块中的列表(进步)将是空的,并且此列表的哈希(Housershash)将成为一个空列表的RLP编码的哈希。同样,因为 困难 和 nonce 是工作证明的功能,将设置为 0,同时尊重其字节大小的值。
叔叔,另一个与采矿相关的领域不会设置为0,而是包含信标连锁店的Randao值。以下更多内容。
大块 和 困难 OPCODES会发生变化
合并后, 大块 OpCode仍然可以使用,但是鉴于它将不再通过工作证明,因此该操作码提供的伪随身杂音将弱得多。
相关, 困难 opcode(0x44)将被更新并重命名为 Prevrandao。合并后,它将返回信标链提供的随机信标的输出。因此 大块。
暴露的价值 Prevrandao 将存储在 ExecutionPayload 在哪里 叔叔,存储了与工作证明计算相关的值。有效载荷的 叔叔 字段也将重命名 Prevrandao。
这是一个说明 困难 和 Prevrandao opcodes在合并前和合并后工作:
预合并,我们看到 0x44 OpCode返回 困难 块标题中的字段。合并后的OpCode,重命名为 Prevrandao,指向以前包含的标题字段 叔叔 现在存储 Prevrandao 从信标链状态获得价值。
这种变化,正式化 EIP-4399,还为链上的应用程序提供了一种评估合并是否发生的方法。来自EIP:
此外,该EIP提出的更改允许智能合约确定是否已经发生了对POS的升级。这可以通过分析返回值来完成 困难 OPCODE。一个大于 2 ** 64 表示交易正在POS块中执行。
块时间
合并将影响以太坊的平均阻滞时间。目前,在工作证明中,块平均每13秒出现一次,实际块时间有相当多的差异。在股份证明的情况下,块恰好每12秒都出现,除非错过插槽,否则要么是因为验证器是离线的,要么是因为它们没有时间提交块。实际上,这目前发生在
这意味着在网络上平均障碍量减少了约1秒。假设其计算中特定平均块时间的智能合约将需要考虑到这一点。
最终确定的块和安全的头
在工作证明下,总是有重新的潜力。应用程序通常会等待几个块在新的头顶上开采,然后再将其视为不太可能从规范链中删除或“已确认”。合并后,我们有了 最终确定 块和 安全的头 暴露在执行层上。这些块可以比“确认”的工作块证明更可靠地使用,但需要改变理解才能正确使用。
最终确定的块是被验证者> 2/3所接受的。为了创建一个冲突的障碍,攻击者将不得不燃烧至少1/3的总固定以太。尽管股份可能会有所不同,但总会预计这种攻击将使攻击者损失数百万的ETH。
一个 安全的头 块是 有理由 通过信标链,这意味着> 2/3的验证者已经证明了它。在正常的网络条件下,我们希望它将其包含在规范链中,并最终最终确定。为了使该块不成为规范链的一部分,大多数验证者都需要核对网络,否则网络必须在块传播中经历极端的延迟水平。合并后,执行层API(例如JSON RPC)将公开 安全的头 使用 安全的 标签。
最终确定的块也将通过JSON RPC通过新的 最终确定 旗帜。然后,这些可以作为工作证明确认证明的更强大的替代品。下表总结了以下内容:
块类型 | 共识机制 | JSON RPC | reorg的条件 |
---|---|---|---|
头 | 工作证明 | 最新的 | 可以预见,必须谨慎使用。 |
安全的头 | 股份证明 | 安全的 | 可能,需要大型网络延迟或在网络上攻击。 |
确认的 | 工作证明 | N/A。 | 不太可能需要大多数哈希底层才能开采竞争性深度>#的确认链。 |
最终确定 | 股份证明 | 最终确定 | 极不可能,要求> 2/3的验证者才能最终确定竞争链,要求至少削减1/3。 |
注意:JSON RPC规范仍在主动开发中。命名更改仍然应该是预期的。
下一步
我们希望这篇文章可以帮助应用程序开发人员为备受期待的股权过渡做准备。在接下来的几周中,更广泛的社区将提供长寿测试网的测试。还有一个即将到来的 合并社区电话 用于基础架构,工具和应用程序开发人员提出问题并聆听有关合并的最新技术更新。在那里见👋🏻
感谢Mikhail Kalinin,Danny Ryan和Matt Garnett回顾了这篇文章的草稿。