2024 年 2 月 28 日,以太坊开发人员齐聚 Zoom 参加了 All Core Developers Execution (ACDE) call #182 会议。ACDE 电话会议是一个每两周举行一次的系列会议,由以太坊基金会研究员 Danny Ryan 主持,开发人员在会上讨论和协调对以太坊执行层(EL)的更改。本周,开发者讨论了 Dencun 升级的测试更新以及 Pectra 的几个候选 EIP。在 Pectra 中,最具争议的 EIP 讨论涉及与账户抽象相关的代码更改。账户抽象(AA)旨在为以太坊上由用户控制的外部拥有账户(EOA)引入更高级别的可编程性,而不是智能合约代码。
Dencun 新进展
以太坊基金会开发运营工程师 Barnabas Busa 分享了 Dencun 升级的最新测试进展。以太坊基金会于 2024 年 2 月 27 日星期二宣布,该升级现已正式计划于 2024 年 3 月 13 日在以太坊主网上激活。根据上周ACD 电话会议的讨论,开发者们正在对客户端软件的最终版本进行测试,这些测试是在主网的阴影分叉上进行的,这是一种模仿以太坊主网区块链状态和活动的测试网络。Busa 表示,开发者们已经在主网的阴影分叉上进行了不同类型的「垃圾邮件测试」。节点在这些测试中表现出极高的韧性,并且网络参与率保持稳定,接近 100% 的参与率。尽管没有出现问题,但 Busa 指出,垃圾邮件测试在计算资源方面对节点造成了很大的压力,尤其是 RAM 和 CPU 的开销。
Busa 随后在电话会议上提醒所有人,Goerli 测试网络(测试网)即将被弃用。任何使用该测试网络的人都应在 4 月 17 日之前将其操作转移到另一个以太坊测试网络上。Busa 表示,他已经注意到一些在 Goerli 上的大型验证节点运营商已经退役了他们的机器。这导致了 2 月 28 日 Goerli 网络最终性的延迟,但 Goerli 网络似乎已经恢复。Ryan 指出,Goerli 上的网络参与率已经相当低,大约在 70%左右。「说实话,我并不指望参与率能持续到 4 月 17 日,」Busa 说。「尽管如此,这仍然是一件可以观察的趣事。」
Busa 询问他的团队应该何时关闭 Devnet 12,这是一个专门为客户端团队于去年 11 月启动的测试网络,用于测试其 Dencun 升级实现。如果有任何需要在 Dencun 上线后进行测试的最后一分钟的客户端发布,开发者们同意在 Dencun 升级在以太坊主网上线后不久关闭 Devnet 12。
Pectra 升级的追溯性 EIP
随后,开发者们讨论了 Pectra 升级的两个追溯性以太坊改进提案(EIP)。追溯性 EIP 是指对以太坊协议进行的代码更改,主要是为了对已经存在但需要进一步澄清以解决特定边缘情况的约束进行追溯性补充。第一个追溯性 EIP 是 EIP 7610,它扩展了一项规则,限制智能合约的创建只能在具有预先存在存储的地址上进行。关于这一代码更改的更多背景,请参阅先前通话记录。
关于 EIP 7610 的一个关注点是该代码更改是否会对 Verkle 产生影响,Verkle 是开发者们在 Pectra 升级之后为升级准备的一个代码更改。Geth 开发者 Gary Rong 解释了 EIP 7610 在未来不会对 Verkle 升级造成任何问题。Hedera Hashgraph 工程师兼 Besu 客户端维护者 Danno Ferrin 表达了一些关于 EIP 7610 可能对 Verkle 产生影响的突出担忧,并表示他将在EIP 7610 以太坊魔术师线程中书面分享这些担忧。
开发者们讨论的第二个追溯性 EIP 是 EIP 7523,它将正式化规则,禁止空账户出现在以太坊及其测试网络的状态中。Ryan 表示他将再次核实分析人员,以确保如果实施了这一规则,不会影响任何以太坊网络(主网或测试网)上的账户,并在下一次 ACDE 电话会议上重新提出这个讨论。
Pectra 的账户抽象 EIP
接下来,开发者们讨论了可能包含在 Pectra 升级中的账户抽象 EIP。2 月 28 日,一部分开发者聚集在一起,专门就AA 进行了一次会议,他们讨论了该倡议的广泛目标以及可以在短期和长期内实施的各种 EIP。谈到 AA 的目标,以太坊联合创始人 Vitalik Buterin 表示:「所以长期目标是这样的,我们最终必须有一种账户系统,它允许密钥轮换和密钥废弃,以允许我们的量子抗性。同时,还允许批处理、赞助交易等其他较小的功能。当然,前两个目标明显无法通过 EOAS 满足,这清楚地表明了将生态系统转移到超越 EOA 中心化的位置,但这也引发了一个讨论,即如何实现这一目标,有些具体细节还没有解决,以及实际上是什么短期路线图可以实现人们短期内想要的目标,但又与更长期目标相兼容。
短期内,开发者正在评估三个主要的 AA EIP,分别是 EIP 3074、5806 和 7377。电话会议上的开发者在 EIP 3074 和 5806 之间的优劣势上存在分歧。混淆的主要原因在于 EIP 3074 是否需要用户双重签署交易,以及是否依赖于协议外的 AA 标准 ERC 4337 以分散方式赞助交易,以及与 EIP 5806 相比,EIP 3074 的相对复杂性和安全性等其他辩论。开发者们普遍认为 EIP 7377 是最不具争议的 AA EIP,因为它在用例上与其他两个 AA EIP 是正交的。EIP 7377 旨在帮助用户轻松将他们在 EOA 中的资产迁移到一个新的智能合约钱包,而其他两个 EIP 主要关注于创建新的 AA 功能,以支持批量交易授权和气体赞助。
开发者们对这三个 EIP 尚未达成共识,并同意在接下来的几周内继续讨论。
其他 Pectra 的 EIP
开发者们简要讨论了 Pectra 的其他几个候选 EIP,包括:
· EIP 7623,增加通话数据成本:该提案建议提高以太坊上主要使用区块链进行数据可用性的常规交易的成本。通过调整以太坊上通话数据的 gas 成本,该 EIP 减少了能够合理容纳在一个区块中的调用数据交易的数量,从而降低了区块的最大大小。区块大小的减小可以允许更多的 blob 交易。Danny·Ryan 建议电话会议上的开发者们在接下来的几周里审查这个 EIP。
· EIP 2537,用于 BLS12-381 曲线运算的预编译:这个提案将新的加密签名方案引入到以太坊中,已经获得了包含在 Pectra 升级中的批准。提案的一位作者 Antonio Sanso 提出了一个关于其实施的问题。Danny·Ryan 建议将问题书面记录下来,并将其传给开发者进行电话会议之外的进一步讨论。
· EIP 5920,PAY 操作码:该提案新增了一项操作,允许用户向一个地址发送 ETH,而不会触发该地址的任何函数。Geth 开发者 Marius van der Wijden 表示,通过与其他团队进一步讨论该 EIP,发现该提案的测试比预期的更加复杂。Van der Wijden 还指出,该提案规定不够清晰。Ferrin 补充说,PAY 操作码目前被规定使用与另一个操作码 AUTH 相同的代码编号,因此需要由其作者进行修正。
· EIP 7609,减少临时存储定价:该提案建议降低智能合约常见用例中的临时存储操作码的价格,例如维护递归日志。Van der Wijden 和 Ryan 赞成在 Dencun 升级生效后首先收集有关临时存储操作码的使用数据,然后再重新讨论其定价。
· EIP 7639,停止提供 PoS 之前的历史记录:该提案制定了一个时间表,让 EL 客户端停止提供合并升级之前的历史数据。这个代码更改的动机是减少以太坊节点需要永久存储的数据量。该提案还承诺了一种标准化的方式,让节点对合并之前的历史数据进行结构化,并从外部源检索它。Teku 开发者 Mikhail Kalinin 指出,这个 EIP 依赖于另一个 EIP,即EIP 6110,该提案已经在之前的ACD 电话会议上获得批准,将被包含在 Pectra 升级中。开发者们同意在接下来的几周内更详细地审查 EIP 7639。
引擎 API 和 JSON RPC 更改
Kalinin 提出了几个与确认规则实施相关的问题,这是一个在一个插槽期间,大约 12 秒的时间内确认的 CL 机制,用于确定在某些假设条件下,一个区块是否会保留在规范链中并最终确定。这是一个强大的功能,因为许多构建在以太坊上的应用程序可以利用早期区块确认的信息来进行操作。然而,为了公开有关早期区块确认的数据,需要对以太坊引擎 API 和 JSON RPC 进行一些更改。由于电话会议时间不足,Ryan 建议在下周的 ACD 电话会议上或之后的一周再详细讨论这些更改。
轻客户分组讨论室
Ryan 提醒开发者,下周三,3 月 6 日,将举行一次专门的会议,讨论 Pectra 升级的轻客户端路线图。有关轻客户端讨论的背景,请参阅之前的通话记录。
最后,van der Wijden 提出了建立一个新的以太坊客户端版本的提案,以在初始同步过程中节省节点 550GB 的带宽。Van der Wijden 表示,他正在为新版本准备一个正式的 EIP,但可以在此处找到他的规格草案。Ryan 鼓励开发者审查草案,并在 Discord 上提出任何问题。