作者:Christine Kim ,Galaxy Digital 研究团队副总裁 翻译:善欧巴,金色财经
2024 年 2 月 28 日,以太坊开发者通过 Zoom 召开第 182 次全核心开发者 (ACDE) 电话会议。 ACDE 电话会议是每两周举行一次的会议系列,供开发人员讨论和协调以太坊执行层 (EL) 的更改。 本周的会议由以太坊基金会 (EF) 研究员 Danny Ryan 主持。 开发人员讨论了 Dencun 升级的测试更新以及 Pectra 的几个候选 EIP。 讨论最激烈的、拟议纳入 Pectra 的 EIP 与账户抽象化相关的代码更改有关。 账户抽象化 (AA) 旨在为外部拥有账户 (EOA) 引入更高程度的可编程性,EOA 是以太坊上由用户控制的账户,而不是智能合约代码。
Dencun 更新
以太坊基金会开发运维 (DevOps) 工程师 Barnabas Busa 分享了 Dencun 升级最终测试的最新情况。 以太坊基金会于 2 月 27 日星期二宣布,升级现已正式计划于 2024 年 3 月 13 日在以太坊主网上激活。 正如上周的 ACD 电话会议所讨论的那样,开发人员正在主网影子分叉上测试客户端软件的最终版本,影子分叉是一种测试网络,它镜像了以太坊主网的区块链状态和活动。 Busa 表示,开发人员已经在主网影子分叉上进行了不同类型的“垃圾邮件测试”。 节点在这些测试中表现得非常稳定,网络参与率一直保持在接近 100%。 虽然没有出现问题,但 Busa 指出,垃圾邮件测试确实在计算机资源方面 (特别是内存和 CPU 占用率) 严重影响了节点。
Busa 然后提醒与会者,Goerli 测试网络 (testnet) 将很快被弃用。 任何使用测试网络的人都应该在 4 月 17 日之前将其操作转移到其他以太坊测试网络。 Busa 说他已经注意到 Goerli 上的一些大型验证器节点运营商已经退役了他们的机器。 这导致了 Goerli 在 2 月 28 日的网络最终确定出现延迟,但 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,这是一项代码更改,开发人员正在为 Pectra 之后的升级做准备。 Geth 开发者 Gary Rong 解释了 EIP 7610 如何在未来对 Verkle 升级不构成任何问题。 Hedera Hashgraph 工程师和 Besu 客户端维护者 Danno Ferrin 对 EIP 7610 可能如何影响 Verkle 提出了一些未解决的担忧,他表示他将在以太坊改进提案 7610 的“以太坊魔术师”讨论板上分享这些担忧。
开发人员讨论的第二个追溯性 EIP 是 EIP 7523,它将正式禁止空账户出现在以太坊和以太坊测试网络的状态中。 Ryan 表示,他将仔细检查谁正在进行分析,以确保实施该规则后任何以太坊网络(主网或测试网)上的账户都不会受到影响,并将在下一次 ACDE 电话会议上再次讨论这个问题。
用于 Pectra 的账户抽象化 EIP
接下来,开发人员讨论了包含在 Pectra 中的潜在账户抽象化 EIP。 2 月 28 日,一部分开发人员参加了专门的 AA 会议,讨论了该计划的宏观目标以及可以在短期和长期内实施以实现这些目标的各种 EIP。 以太坊联合创始人 Vitalik Buterin 在谈到 AA 的目标时表示,“因此,长期的 [目标是] 这个基本愿望,即最终我们必须拥有一些类型的账户系统,该系统一方面允许密钥轮换和 [另一方面] 密钥弃用,以使我们能够抵抗量子计算。 三、允许批量处理……[并且] 允许 sponsor 交易和其他一些较小的功能,其中当然,前两个目标显然无法通过 EOA 实现,因此提出了一个相当清晰的案例,将生态系统转移到一个超越以太坊账户为中心的的地方,但是然后讨论转向了实现这些目标的实际手段是什么,以及一些不太明确的具体细节,以及短期路线图实际上是什么,它可以为人们在短期内想要的带来收益,但同时又与那些长期的 [目标] 兼容。”
短期内,开发人员正在评估三个主要的 AA EIP,分别是 EIP 3074、5806 和 7377。 对于 EIP 3074 和 5806 之间的优缺点,参与电话会议的开发人员意见分歧。 争论的焦点之一在于 EIP 3074 在多大程度上要求用户对交易进行双重签名并依赖去中心化方式发起交易的协议外 AA 标准 ERC 4337,以及其他关于 EIP 3074 与 5806 相比的相对复杂性和安全性方面的辩论。 开发人员普遍认为 EIP 7377 是争议最少的 AA EIP,因为它在用例方面与其他两个 AA EIP 正交。 EIP 7377旨在帮助用户轻松地将他们的资产从以太坊账户迁移到新的智能合约钱包,而其他两个 EIP 则主要侧重于创建新的 AA 功能,这些功能支持批量交易授权和 gas 费用赞助。
开发人员没有就这三个 EIP 达成共识,并同意在未来几周内继续讨论它们。
Pectra 的其他 EIP 提案
除了账户抽象化 EIP 之外,开发人员还简要讨论了几个其他拟议纳入 Pectra 升级的 EIP:
EIP 7623:增加 calldata gas 费用:该提案建议提高以太坊上主要用于数据可用性的常规交易成本。通过调整以太坊上的 calldata 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 opcode) 相同的代码编号,因此需要由其作者纠正。
EIP 7609:降低临时存储定价:该提案建议降低智能合约常见用例(例如维护可重入日志)的临时存储操作码价格。 Van der Wijden 和 Ryan 都同意在 Dencun 升级上线后先收集有关临时存储操作码如何使用的数据,然后重新讨论其定价。
EIP 7639:停止提供权益证明之前的历史数据:该提案为执行层 (EL) 客户端制定了一个时间表,以便它们停止提供合并升级之前的历史数据。 此代码更改的动机是为了减少以太坊节点需要永久存储的数据量。 该提案还承诺节点以标准化方式构建合并之前历史数据并从外部源检索它们。 Teku 开发者 Mikhail Kalinin 指出,该 EIP 依赖于另一个 EIP (EIP 6110),后者在先前的一次 ACD 电话会议上被批准纳入 Pectra 升级。 开发人员同意在未来几周内更详细地审查 EIP 7639。
引擎 API 和 JSON RPC 更改
除了上述议题,以太坊核心开发者还就引擎 API 和 JSON RPC 变更进行了讨论。
Teku 开发者 Mikhail Kalinin 提出了一些与确认规则实施相关的问题,该规则是一种 CL 机制,可以在大约 12 秒(一个插槽)的时间内确认某个区块在特定假设下是否会留在规范链并最终确定。 这是一个强大的功能,因为许多建立在以太坊上的应用程序可以利用早期区块确认的信息来进行操作。 但是,要公开有关早期区块确认的数据,需要对以太坊引擎 API 和 JSON RPC 进行一些更改。 由于通话时间有限,Ryan 建议在下周或下下周的 ACD 电话会议上更详细地讨论这些更改。
轻客户端分 breakout room 会议
Ryan 提醒开发人员,下周三 (3 月 6 日) 将有一场专门的会议来讨论 Pectra 升级的轻客户端路线图。 有关轻客户端讨论的背景信息,请参阅前一次会议记录。
新的以太坊客户端版本提案
最后,van der Wijden 提出了一项建议,即构建一个新的以太坊客户端版本,以在初始同步过程中为节点节省 550GB 的带宽。 Van der Wijden 表示他正在为新版本准备正式的 EIP,但其规范的草稿可以在此处找到。 Ryan 鼓励开发人员查看草稿并在 Discord 上提出任何问题。