Vitalik 为什么着急提出账户抽象新方案 EIP-7702?
EIP-7702是一个为EOA临时赋予智能合约功能的方案,可以将EOA转换为智能合约钱包来执行智能合约代码。与EIP-3074相比,它更灵活和兼容,同时为未来所有账户都使用智能合约钱包做准备。这种设计保证了长期的有效性和实用性。
![0xNatalie](/wp-content/themes/zhtcw/assets/images/logo-icon.png)
原文作者:@0xnatalie
原文来源: Substack
这是一个介于 ERC-4337 和 EIP-3074 之间的方案。
ERC-4337 是账户抽象的应用层标准,EIP-3074 是直接修改 EVM 的协议层标准,而 EIP-7702 有点介于两者之间,为 EOA 临时赋予了智能合约。
EIP-3074 已于今年 4 月被纳入以太坊的下一次硬分叉计划中,该提案通过允许外部拥有账户(EOA)将交易权限委托给智能合约,旨在为用户带来更便捷的体验。然而,这一功能也引起了社区的担忧,许多成员担心若签名被误用,会使整个账户资金面临风险,为钓鱼攻击者提供机会。为了进一步增强安全性,Vitalik Buterin 最近提出了 EIP-7702 作为 EIP-3074 的替代方案,引起了社区的广泛讨论。
EIP-7702 引入了一种新的交易类型来提升账户抽象功能。这种新交易类型允许外部拥有账户(EOA)在交易过程中临时采用智能合约的特性,然后在交易结束后恢复其原始状态。那么同样都是账户抽象提案,ERC-4337、EIP-3074 和 EIP-7702 的差别在哪里?
ERC-4337:应用层的账户抽象标准
ERC-4337:使用 Alt Mempool 进行账户抽象。ERC-4337 由 Vitalik 提出,是应用层标准,主要目标是让智能合约账户具有 EOA 主动发起交易的特性。它通过引入一个名为 EntryPoint 的智能合约,使得智能合约可以表现得像是用户的账户,也就意味着用户操作类似账户的智能合约来管理他们的资产和交易。这样便可以实现复杂逻辑,如多签名、自动执行交易等。
主要特点:
- 无需硬分叉:ERC-4337 不需要通过硬分叉来实现,不需要对以太坊的协议进行任何修改。
- 兼容性:这种方法与现有的 EOA 系统兼容,使得过渡更为平滑。
- 目标:实现账户抽象,使智能合约可以作为账户来处理和验证交易。
- 本质:让智能合约账户具有 EOA 主动发起交易的特性。
EIP-3074:授权和代理执行
EIP-3074:AUTH 和 AUTHCALL 操作码。EIP-3074 由以太坊研究员 SamWilsn、Go Ethereum 开发者 Matt Garnett 等人提出,且 Vitalik 未参与此提案的起草,这是一种允许 EOA 将其权限委托给智能合约的方法,引入了两个新的操作码:AUTH 和 AUTHCALL,使得智能合约可以代表 EOA 执行操作,比如批量处理交易、赞助 gas 费用。这对于以太坊的虚拟机是一个较大的变动。
关于【Vitalik 为什么着急提出账户抽象新方案 EIP-7702?】的延伸阅读
以太坊核心开发者最新会议摘要:同意移除EIP 3074,包含EIP 7702
以太坊开发者讨论了新增执行API功能、Geth的最低优先小费要求、Pectra开发网络和分叉范围等议题。他们同意从Pectra Devnet 0中移除EIP 3074,并在下一个测试网Pectra Devnet 1中包含EIP 7702。开发者们还讨论了Pectra升级的时间表和范围,建议将其分成两个分叉。最后,开发者们将继续在GitHub上讨论并尝试解决这些问题。
如何看待Vitalik力挺的EIP-7702:会牺牲EIP-3074 invoker市场的无限潜能吗?
EIP-7702是以太坊新提案,结合了EIP-3074和ERC-4337的优点,旨在提升用户交易体验。然而,它也限制了EIP-3074的潜力。市场已选择ERC-4337作为发展重点,但EIP-3074仍有发展空间。@bentobatch和@dappOS_com也在探索交易层和Intent基础设施的落地。EIP-7702作为过渡方案,延续了EIP-3074的优点,但一次性权限赋予限制了其潜能。短期来看,使用EIP-7702是最优解。
主要特点:
- 委托机制:EOA 可以通过 AUTH 操作码授权一个智能合约,然后通过 AUTHCALL 让这个智能合约代表它执行操作。
- 安全隐患:委托机制可能导致安全问题,因为如果授权给恶意合约,可能会导致资金被盗。
- 目标:通过允许 EOA 将其权限临时授权给智能合约,来增强 EOA 的功能性。
- 本质:升级 EVM,增加两个操作码。
EIP-7702:临时智能合约化的 EOA
EIP-7702:为一笔交易设置 EOA 帐户代码。Vitalik 作为第一作者,于 5 月 7 日刚发布了此提案。作为 EIP-3074 的替代方案,EIP-7702 引入一种允许 EOA 在交易过程中临时采用智能合约功能的机制。通过这种方法,EOA 可以在单一交易执行期间将 EOA 转换成智能合约钱包,而在交易结束后恢复到普通状态。并且因为 EIP-7702 已经提供了临时改变 EOA 代码的框架,所以在 EIP-7702 的基础上实施 EIP-5003(允许 EOA 永久转变为智能合约账户)变得相对简单,通过设置不在交易结束后清除代码,可以实现 EOA 到智能合约的永久转变。
主要特点:
- 临时转换:在交易过程中,EOA 的智能合约代码临时被赋予执行特定操作的能力。
- 高度兼容性:EIP-7702 与 ERC-4337 的智能合约钱包代码高度兼容,可以直接利用已经为 ERC-4337 编写和部署的智能合约代码,使得现有的账户抽象化工作可以被重用,避免分裂现有的账户体系。
- 无需引入新的操作码:与 EIP-3074 相比,EIP-7702 虽然也是协议层标准,但它在交易中临时应用智能合约代码,不需要永久改变以太坊虚拟机。
- 目标:结合 EIP-3074 和 ERC-4337 的特点,提供一种更加灵活和兼容的账户抽象方案。
- 本质:临时应用智能合约代码。
EIP-7702 提供了一种避免引入新操作码而实现类似 EIP-3074 功能的方法,同时更好地为账户抽象终局的实现做准备。账户抽象终局(endgame of account abstraction)是指一个预见的未来状态,在这个状态中,以太坊上的所有账户都使用智能合约钱包来管理资产和交易,而不再依赖传统的 EOA。这种普遍的账户使用智能合约钱包的情景,被称为账户抽象的「终局」。EIP-7702 不仅解决了当前的问题,还通过与未来可能的账户模型的兼容性设计,确保了长期的有效性和实用性。
免责声明:本文仅代表作者个人观点,不代表链观CHAINLOOK立场,不承担法律责任。文章及观点也不构成投资意见。请用户理性看待市场风险,以及遵守所在国家和地区的相关法律法规。
图文来源:0xNatalie,如有侵权请联系删除。转载或引用请注明文章出处!