在以太坊迈向以太坊2.0(The Merge)的漫长旅程中,各种以太坊改进提案如同繁星般不断涌现,它们共同构成了网络升级的蓝图,EIP-2613 和 EIP-2614 这两个提案编号,因其数字上的连续性,常常让社区成员感到困惑,它们是否是同一个提案的不同阶段?还是功能相似的“孪生兄弟”?
它们并非“孪生兄弟”,更像是“远房表亲”,虽然都致力于优化以太坊的账户模型,但它们的目标、范围和实现方式有着天壤之别。EIP-2613 是一个宏伟但被搁置的账户模型改革方案,而 EIP-2614 则是一个务实且已成功实施的、针对账户抽象的特定功能增强。
下面,我们来详细拆解这两者的区别。
EIP-2613:一场被遗忘的“账户革命”
核心定位: 全新的账户模型提案(The Ultimate Account Abstraction EIP)。
EIP-2613 最早由以太坊核心开发者 Nick Johnson 提出,它的目标非常宏大——从根本上重新设计以太坊的账户模型,以实现终极的“账户抽象”(Account Abstraction, EIP-4337),在以太坊的当前模型中,账户分为两类:
- 外部账户: 由公钥和私钥控制,也就是我们日常使用的钱包账户。
- 合约账户: 由代码控制。
这两者是分离的,导致了很多不便,而 EIP-2613 的愿景是打破这种界限,让所有账户都变成“合约账户”,但拥有类似外部账户的便捷体验。
主要特点与目标:
- 统一账户模型: 消除外部账户和合约账户的区别,每个地址都是一个智能合约,但可以像 EOA 一样被私钥控制。
- 内置支付分离: 这是其最核心的创新,用户可以设置一个“支付者”(Payer)账户,用于支付交易费用,这意味着你可以用一个钱包(支付者)为另一个账户(操作者)的 Gas 埋单,实现社交恢复、多签、批量交易等复杂功能,而无需复杂的智能合约交互。
- 强大的可扩展性: 通过这种设计,EIP-2613 希望将账户抽象的所有可能性内置到协议层面,为开发者提供更强大、更灵活的工具来构建下一代 DApp。
为什么它没有被采用?
尽管 EIP-2613 的设计非常优雅,但它面临着几个致命的问题:
- 协议层面改动过大: 它需要对以太坊虚拟机进行根本性修改,升级难度和风险极高。
- 向后兼容性挑战: 完全颠覆现有的账户模型,可能会破坏大量现有的智能合约和工具。
- 时机不成熟: 在 EIP-4337(账户抽象的 L2 方案)逐渐成熟并被社区广泛接受后,开发者们认为,通过 Layer 2 来实现账户抽象是一条更安全、更灵活、更易于迭代的道路,与其在 Layer 1 上进行一场“革命”,不如在 Layer 2 上进行“演化”。
EIP-2613 最终被搁置,成为了一个充满远见但未能落地的“思想实验”。
EIP-2614:一次务实的“功能增强”
核心定位: 对现有 EIP-4337 账户抽象规则的特定修正。
与 EIP-2613 的宏大叙事不同,EIP-2614 是一个非常具体、务实的“补丁”或“修正案”,它是在 EIP-4337 的框架内,解决一个具体的技术漏洞。
要理解 EIP-2614,我们首先要了解 EIP-4337 的一个关键概念:initcode。
initcode的作用: 当你部署一个新的智能合约账户时,你发送的不是合约的最终代码,而是一段临时的“初始化代码”(initcode),以太坊网络会执行这段initcode,它负责生成最终的合约代码,并将其部署到指定地址。- 潜在问题: 在 EIP-4337 的早期版本中,
initcode的执行是不消耗 Gas 的,这带来了一个巨大的安全风险:恶意攻击者可以构造一个无限循环的initcode,虽然部署最终会失败,但会阻塞整个区块的执行,导致网络拥堵。
EIP-2614 的解决方案:
EIP-2614 的目标非常明确:为 initcode 的执行定价。
它提出,initcode 在执行时也应该消耗 Gas,并且其 Gas 费用由用户在发起账户创建交易时预付,这样,任何试图通过恶意 initcode 进行攻击的行为,都将因为 Gas 耗尽而失败,从而有效防止了这种拒绝服务攻击。
主要特点与目标:
- 安全加固: 通过为
initcode执行定价,堵上了 EIP-4337 的一个关键安全漏洞。 - 协议修正: 它是对 EIP-4337 规范的一个补充和修正,而不是一个全新的独立提案。
- 已成功实施: EIP-2614 已经成功被包含在上海升级中,并已在主网上线,为账户抽象的生态安全做出了重要贡献。
核心区别总结
| 特性 | EIP-2613 | EIP-2614 |
|---|---|---|
| 提案性质 | 全新的、颠覆性的账户模型改革 | 对现有 EIP-4337 的安全修正 |
| 目标范围 | 宏大,旨在统一所有账户,实现终极账户抽象 | 务实,仅解决 initcode 执行的安全漏洞 |
| 实现方式 | 需要在 Layer 1 协议层面进行根本性修改 | 在 Layer 1 协议层面增加一个 Gas 计费规则 |
| 当前状态 | 已搁置,作为思想实验存在 | 已实施,作为上海升级的一部分成功上线 |
| 对用户影响 | 如果实施,将彻底改变用户与以太坊交互的方式 | 对普通用户无感,但对账户![]() |
| 关系 | 是账户抽象的“终极理想” | 是实现账户抽象道路上的“安全基石” |
EIP-2613 和 EIP-2614 的区别,就像是“设计一张全新的万能银行卡”与“为现有的 ATM 机增加一个防诈骗模块”的区别。
- EIP-2613 是那张“万能银行卡”的设计蓝图,它功能强大,但改动太大,难以立刻实现。
- EIP-2614 则是那个“防诈骗模块”,它针对一个具体问题,提供了一个简单、有效的解决方案,并已成功部署,保障了系统的稳定运行。
以太坊的发展正是在这样“远大理想”和“务实修补”的交织中不断前进的,理解了这两者的区别,我们就能更清晰地看到以太坊社区在技术演进中的审慎与智慧。
