bitget

Bitget交易所

Bitget交易所是全球前4大交易所之一、新用户注册可得100BGB,价值130U.打新活动多、领空投到手

点击注册 进入官网

为何以太坊下次升级中纳入 EIP-3074?账户抽象方案 ERC-4337 还不够吗?

adminadmin Bitget公告 2024-04-12 4647 48

经过 3 年多的沉淀和改进,在以太坊第 183 次 ACDE 会议中,EIP-3074得到了以太坊社区的广泛支持,正式被纳入下一次以太坊硬分叉。EIP-3074 由以太坊研究员Sam Wilson、Go Ethereum 开发者Matt Garnett等人提出,其核心在于让任何一个外部拥有账户(EOA)都能像智能合约钱包一样运作,无需部署额外的合约,无需手动迁移。如 Paradigm CTOGeorgios Konstantopoulos所说「钱包用户体验将提升 10 倍」。那么 EIP-3074 是怎么做到这一点的?与 ERC-4337 的区别是什么?

为何以太坊下次升级中纳入 EIP-3074?账户抽象方案 ERC-4337 还不够吗?

EIP-3074 是对于 EVM 的升级

外部拥有账户(EOA)由用户直接控制和管理等以太坊上的一种账户类型,就是我们常用的助记词钱包创建的账户,比如 MetaMask。EIP-3074 引入了两个新的以太坊虚拟机指令:AUTH 和 AUTHCALL,使 EOA 连接起一个智能合约,并将交易的控制权交给智能合约。

  • AUTH 指令:用于验证一个 ECDSA 签名,并基于签名结果设置一个上下文变量「authorized」。如果签名有效,并且签名者地址匹配给定的授权地址,则将「authorized」设置为授权地址。这样,AUTH 指令允许一个智能合约代表一个 EOA 执行操作,从而实现了授权控制的委托。

  • AUTHCALL 指令:类似于现有的 CALL 指令,用于执行一个外部调用。不同之处在于,AUTHCALL 会使用之前通过 AUTH 指令设置的授权地址作为调用者地址。也就意味着 AUTHCALL 会使用授权的 EOA 作为发送方,而不是合约本身。

整体流程是:用户签署授权消息,Invoker 合约接收并验证,Invoker 合约使用 AUTH 和 AUTHCALL 指令以 EOA 的身份发送交易,代表用户执行交易,而无需直接使用用户的私钥,然后返回结果给用户。

与 ERC-4337 的区别

ERC-4337 是协议层面的,不需要更改共识层,主要目标是实现账户抽象(Account Abstraction),允许智能合约直接拥有资金,并具有类似于以太坊账户的功能。也就是让智能合约账户具有 EOA 主动发起交易的特性。

而 EIP-3074 需要通过以太坊硬分叉来实施,主要目标是赋予 EOA 类似智能合约的功能,将 EOA 的控制委托给智能合约,使得智能合约可以代表用户进行交易,并支持批量交易、赞助交易(即由第三方支付燃气费用以执行交易)等功能。虽然它使得 EOA 具备了智能合约钱包的功能,但账户仍然是 EOA。如果密钥被盗,意味着完全丢失。(除非设置一个特殊的合约专门用于账户恢复)

为什么重要?

在多链的时代,为每条链都支持 ERC-4337 需要大量的开发工作。而像EIP-7377提出的迁移交易,让 EOA 用户将其账户迁移到智能合约,是需要用户手动发送一笔迁移交易。相比之下,EIP-3074 让 EOA 具备智能合约的功能,可以在直接在所有链上使用,并且不需要用户手动去迁移。

相较于其他提案,EIP-3074 的优势在于简洁高效,不需要额外的流程,即可让用户享受到智能合约的功能。之前以太坊社区会担心 EIP-3074 的技术安全问题,经过改进和测试之后,社区广泛支持将 EIP-3074 加入到下一次以太坊升级中,这将对以太坊生态系统中的多个领域产生影响。

比如,在 DeFi 领域,EIP-3074 的批量交易功能将大大提升流动性提供者和交易者的效率,降低参与成本。此外,通过授权用户账户执行交易,DeFi 应用可以作为赞助者的角色,为用户支付 Gas 费用,从而降低用户使用 DeFi 产品的门槛,促进 DeFi 的大规模应用。

在全链游戏领域,通过 EIP-3074,用户可以通过授权方式将账户操作的权限授予第三方(Invoker),从而避免了每次交易都需要用户自己进行链上确认和支付 Gas 费用的问题。游戏开发者或其他第三方可以代替用户执行交易,用户只需要一次性授权即可,简化了交易流程,提升了游戏的流畅性。

潜在风险

在以太坊交易中,节点验证人需要确切地知道交易的细节,以便正确地处理它们。这样才能保证网络的安全和稳定性。在 EIP-3074 中,允许智能合约代表 EOA 执行交易,当涉及到赞助交易时,与其他合约或账户进行交互可能会改变交易执行前和执行后的账户状态,使节点验证人难以准确预测交易的影响,从而产生网络不一致的安全风险。

此外,虽然用户可以通过签名来授权第三方操作账户,但这也意味着第三方(Invoker)可以在一定程度上操作用户的账户,这可能导致潜在的安全问题。如果第三方的权限被滥用或遭受黑客攻击,用户的资金和个人信息可能会受到威胁。

喜欢0评论已闭