以太坊向POS的过渡——合并——已近在眼前:开发网正在建立,规范正在敲定,社区宣传也已紧锣密鼓展开。合并的目的是最小化对以太坊的终端用户、智能合约和DApp的运作方式产生影响,也就是说,有一些小变化值得强调。在我们深入了解它们之前,这里有几个链接,以提供关于整个合并架构的背景。
路线图的演变?
合并后的客户架构
这篇文章的其余部分将假设读者对上述内容很熟悉。对于那些想更深入了解的人来说,可在此查阅TheMerge的全部规格。
执行层?
共识层?
API引擎???
区块结构
合并后,POW区块将不再存在于网络中,以前POW链的内容会成为信标链上创建的区块的一部分。那么你可以认为Beacon链成为了以太坊POS链的共识层,取代了之前的工作证明共识层。信标链区块将包含ExecutionPayloads,它是合并后当前工作证明链上的区块等价物。
下面的图片显示了这种关系。
对于终端用户和程序开发人员来说,这些ExecutionPayloads是与以太坊交互的地方。这一层的交易仍将由执行层客户端处理。幸运的是,由于执行层的稳定性,合并只带来了最小的破坏性。
采矿和Ommer区块场
合并后,以前包含在工作证明区块头中的几个字段变得不能使用,因为它们与POS无关。为了尽量减少对工具和基础设施的干扰,这些字段被设置为0,或其数据结构的等价物,而不是完全从数据结构中删除。关于区块字段的修改详细内容可以参考EIP-3675。
由于POS并不像POW那样自然产生omers,每个区块中的这些列表将是空的,这个列表的哈希值将成为一个空列表的RLP编码哈希值。同样地,由于难度和nonce是POW的特征,考虑到它们的字节大小值,它们都将被设置为0。
mixHash,另一个与采矿有关的字段,不会被设置为0,而是包含信标链的RANDAO值。
关于这方面的更多详细内容请看下面章节内容。
BLOCKHASH和DIFFICULTY操作码变化
合并后,BLOCKHASH操作码仍可使用,但鉴于它不再能被通过工作证明哈希计算过程来锻造,该操作码提供的伪随机性将大大减弱。
与此相关,DIFFICULTY操作码将被升级并更名为RANDOM。合并后,它将返回由信标链提供的随机性信标的输出。因此,这个操作码将成为比BLOCKHASH更强大的供应给程序开发人员使用的随机性来源。
RANDOM暴露的值将被存储在ExecutionPayload中,其中mixHash是一个与工作证明计算相关的值。payload的mixHash字段也将被重新命名为random。
下面是一个关于DIFFICULTY和RANDOM操作码在合并前和合并后如何工作的说明。
合并前,我们看到0x44操作码返回块头中的difficulty字段。合并后,该操作码更名为RANDOM,指向之前包含mixHash的块头字段,现在存储来自信标链状态的random值。
在EIP-4399中正式确定的这一变化,也为链上应用提供了一种评估合并是否已经发生的方法。
来自EIP:
此外,本EIP提出的变化允许智能合约确定是否已经升级到PoS。这可以通过分析DIFFICULTY操作码的返回值来完成,大于2**64的值表明交易正在PoS块中执行。
区块时间
合并将影响以太坊的平均区块时间。目前在POW下,平均每13秒就有一个区块进入,在POS下,每12秒就有一个区块进入,除非是由于验证者离线或没有及时提交区块而错过了一个时间段。在实践中,这种情况只在<1%的时段发生过。
这意味着网络上的平均区块时间将减少1秒,那些有计算一个特定的平均区块时间需求的智能合约将需要考虑这一点。
安全头块和最终确定块
在POW下,总是有可能出现重排的情况,应用程序通常会等待几个区块在一个新的头块上被开采出来,然后再将其视为不太可能从公认链中删除,或"确认"。在合并之后,我们反而有了finalized的和safehead的概念。这些区块甚至可以比"确认"的POW区块更可靠地使用,但需要转变观念以正确使用。
一个最终确定的区块是被大于2/3的验证者接受为公认的区块,要创建一个冲突的区块,攻击者必须烧掉至少1/3的总权益。在写这篇文章的时候,这代表了以太坊上超过100亿美元。
安全头块是指在正常的网络条件下,我们期望被包含在公认链中的块。假设网络延迟小于4秒,大多数验证者是诚实的,并且没有对分叉选择规则的攻击,安全头将永远不会成为孤儿。
这里有一份详细介绍在各种情况下如何计算安全头的报告。此外,在即将发表的论文中安全头块的假设和保证正在被正式定义和分析。
合并后,执行层API在询问最新区块时,将默认返回安全头。在正常的网络条件下,安全头和链的实际顶端将是相等的。安全头将比当前POW(工作证明)的最新区块更不可能被重新挂起。为了暴露POS链的实际顶端,一个不安全的标志将被添加到JSONRPC中。
最终确定区块(finalized)也将通过JSONRPC,通过一个新的最终确定的标志被公开。然后,这些可以作为工作证明确认的一个更有力的替代品。
下表对此进行了总结。
接下来
我们希望这篇文章能帮助程序开发者为备受期待的向POS阶段的过渡做好准备。
在接下来的几周里,一个长期存在的测试网将被提供给更广泛的社区进行测试,还有一个即将举行的关于基础设施、工具和应用程序开发人员提问的合并社区电话会议,并听取关于合并的最新技术更新。
原文标题:《HowTheMergeImpactsEthereum’sApplicationLayer》
原文作者:以太坊开发者、以太坊基金会社区经理TimBeiko
原文编译:RexHuang7
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。