EIP-7702是一个为EOA临时赋予智能合约功能的方案,可以将EOA转换为智能合约钱包来执行智能合约代码。与EIP-3074相比,它更灵活和兼容,同时为未来所有账户都使用智能合约钱包做准备。这种设计保证了长期的有效性和实用性。
原文作者:@0xnatalie
原文来源: Substack
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:使用 Alt Mempool 进行账户抽象。ERC-4337 由 Vitalik 提出,是应用层标准,主要目标是让智能合约账户具有 EOA 主动发起交易的特性。它通过引入一个名为 EntryPoint 的智能合约,使得智能合约可以表现得像是用户的账户,也就意味着用户操作类似账户的智能合约来管理他们的资产和交易。这样便可以实现复杂逻辑,如多签名、自动执行交易等。
主要特点:
EIP-3074:AUTH 和 AUTHCALL 操作码。EIP-3074 由以太坊研究员 SamWilsn、Go Ethereum 开发者 Matt Garnett 等人提出,且 Vitalik 未参与此提案的起草,这是一种允许 EOA 将其权限委托给智能合约的方法,引入了两个新的操作码:AUTH 和 AUTHCALL,使得智能合约可以代表 EOA 执行操作,比如批量处理交易、赞助 gas 费用。这对于以太坊的虚拟机是一个较大的变动。
主要特点:
EIP-7702:为一笔交易设置 EOA 帐户代码。Vitalik 作为第一作者,于 5 月 7 日刚发布了此提案。作为 EIP-3074 的替代方案,EIP-7702 引入一种允许 EOA 在交易过程中临时采用智能合约功能的机制。通过这种方法,EOA 可以在单一交易执行期间将 EOA 转换成智能合约钱包,而在交易结束后恢复到普通状态。并且因为 EIP-7702 已经提供了临时改变 EOA 代码的框架,所以在 EIP-7702 的基础上实施 EIP-5003(允许 EOA 永久转变为智能合约账户)变得相对简单,通过设置不在交易结束后清除代码,可以实现 EOA 到智能合约的永久转变。
主要特点:
EIP-7702 提供了一种避免引入新操作码而实现类似 EIP-3074 功能的方法,同时更好地为账户抽象终局的实现做准备。账户抽象终局(endgame of account abstraction)是指一个预见的未来状态,在这个状态中,以太坊上的所有账户都使用智能合约钱包来管理资产和交易,而不再依赖传统的 EOA。这种普遍的账户使用智能合约钱包的情景,被称为账户抽象的「终局」。EIP-7702 不仅解决了当前的问题,还通过与未来可能的账户模型的兼容性设计,确保了长期的有效性和实用性。