Skip to content

ACDE#232 回顾 #4

Description

@rayjun

ACDE 232 讨论了三件事:Glamsterdam 测试网进展、EIP-8037 的实现复杂度、Hegota 升级 Headliner 的最终抉择。三个议题各自独立,但放在一起看,以太坊的升级机制正在被自身的复杂度干扰。

以太坊的协议升级,本质上是一个多方博弈下的软件发版流程。五个执行层客户端(Geth、Erigon、Reth、Besu、Nethermind)需要对同一套规则变更达成完全一致。任何一个客户端实现出错,都可能导致升级的延迟或者主网处问题。

BAL DevNet 2:预取快还是不预取快

BAL(Block Access List,区块访问列表)是 Glamsterdam 升级的核心机制之一。它通过提前声明一笔交易会访问哪些状态,来实现并行执行优化。

DevNet 2 目前运行良好。除了 Erigon 还在修复同步问题,各客户端基本到齐,正常出块。基准测试则给出了一个值得注意的结果。

初步数据显示,不预取在平均情况下反而更快。这并不意味着预取没用——当前测试网的状态规模远小于主网。在主网 TB 级的状态树中,随机读取的延迟分布可能完全不同。开发者明确提到,还需要针对最坏情况做压力测试。

EIP-8037:四代 Gas 逻辑的叠加代价

BAL DevNet 3 原本应该已经启动,但被 EIP-8037 拖住了。大部分客户端还未准备好,测试团队的 Spencer 发布了执行规范测试 v5.4.0,各团队需要先通过这些测试。

EIP-8037 的目标是给状态创建单独定价。以太坊的状态膨胀是一个老问题,每创建一个新账户、每写入一个新存储槽,全网所有节点都要永久存储这笔数据。这个成本混在通用 Gas 里,定价偏低。8037 想修正这个失衡。但当前的核心问题是以太坊的 Gas 机制已经不是一套逻辑,而是四套逻辑的叠加。

Andrew(Erigon)指出,目前以太坊有四种不同的 Gas 计量变体:Blob Gas、状态/非状态 Gas、区块/用户退款(Refund)、常规 Gas。每种都有自己的退款规则和回滚(Revert)语义。如果继续在这个基础上堆砌孤立的 EIP(如 7928、8037、7778),代码逻辑会越来越难以维护。他呼吁建立统一的三维 Gas 模型(计算、状态、Blob)。

Geth 团队的 Felix 也认为处理状态 Gas 的退款和回滚极易产生 Bug。

务实派也有充分的理由。以太坊基金会的 Maria Silva 认为 Gas 机制长期确实需要像 EIP-7999 那样将资源彻底分离,但 EIP-8037 是控制状态膨胀的当务之急。Marius (Geth)和 Dragan(Reth)提出,如果将状态 Gas 逻辑与旧的退款机制解绑,实现复杂度会大幅降低。

测试层面还有一个额外的挑战。Mario 和 Spencer 指出,EIP-8037 打破了以太坊过去 10 年积累的静态测试。现有的 YAML 测试架构无法表达新的 Gas 逻辑,团队正被迫将所有测试迁移到 Python。

最终的处理方式:DevNet 3 将采用硬编码的状态字节成本来推进初步测试,先不触碰退款逻辑的复杂性。下周三单独召开 Repricing Breakout Call 来集中处理这些问题。

ePBS DevNet 0

ePBS(Enshrined Proposer-Builder Separation)DevNet 0 上周三已启动。Lighthouse、Lodestar、Prysm 运行正常,Teku 和 Nimbus 正在同步。存款和取款功能可用,验证者退出(Exits)和构建者(Builder)相关流程暂不可用。目前只有 Geth 一个执行层客户端参与了这个测试网。

Hegota Headliner:Frame Tx 的两周窗口期

Hegota 升级的执行层 Headliner 目前还没有确定。 SSZ 编码(EIP-7807)和 Lucid(加密内存池)被正式排除出 Headliner 候选。它们的价值没有被否认,但共识是目前不够成熟,更适合作为后续分叉(如 I-Star)的提案。

剩下两个选项:Frame Transactions(EIP-8141) 或 不设 Headliner。

Frame Tx 引入一种新的交易格式,允许交易在帧(Frame)中携带任意验证逻辑,不再局限于 ECDSA 签名。这为原生账户抽象(Account Abstraction)、后量子(Post-Quantum)密码学迁移、以及交易断言(Transaction Assertions)提供了基础。

Dragan(Reth)和 Lukasz(Nethermind)指出两个问题。第一,交易池验证规则不明确,Frame Tx 允许任意验证逻辑,但节点需要在交易进入交易池时就做初步校验。如果验证规则不够严格,攻击者可以构造大量看似合法但实际无效的交易来淹没节点,这是一个 DoS 攻击面。第二,新交易格式会给开发者工具链(如 viem)带来沉重的适配负担。

Matt、Felix 和 Vitalik 从不同角度陈述了 Frame Tx 的价值。Nico 指出 DAO 等链上组织的密码学迁移周期需要数年,后量子基础设施必须尽早开始铺设。Vitalik 强调 Frame Tx 与共识层 FOCIL(Forced Inclusion List)的协同效应,FOCIL 提供交易的强包含保证,Frame Tx 扩展交易类型,两者结合使智能合约钱包和隐私协议可以摆脱对第三方中继(Relayers)的依赖。Fredrik 补充了安全层面的收益:交易断言可以让用户在交易级别声明约束条件,违反则自动失败,能减少钓鱼和授权攻击导致的资产被盗。

会议没有进行表决。Frame Tx 的支持者获得了两周窗口期,他们需要拿出一套清晰、最小化、不会导致 DoS 的交易池验证规则原型,并召开技术研讨会。两周后,如果仍无法说服多数客户端,Hegota 将不设 Headliner。

后续

两周后的 ACDE 会议上。Frame Tx 的支持者如果拿出了可行的交易池方案,Hegota 将拥有 headerline;如果没有,以太坊将完成一次没有 Headliner 的升级。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions