本文讨论了以太坊账户抽象(AA)的长期目标,以及EIP-3074提案对实现AA的影响。文章指出EIP-3074虽然在短期内可以提高用户体验,但与AA的长期目标不兼容,并且引入了技术债务。作者提出了改进EIP-3074的建议,以确保其与未来的AA目标保持前向兼容性,并最终移除EOA账户。
以太坊的一个长期目标是 账户抽象 (AA):使用户能够使用智能合约钱包来存储资金,并获得与 EOA 相同的便利性,从而我们不再需要外部拥有的账户 (EOA)。智能合约钱包具有以下优点:
EIP 3074 实现了 [4],但它没有实现 [1, 2, 3]。因此,EIP 3074 没有实现账户抽象(尽管作为对 [4] 的短期修复,它或类似的东西仍然非常有价值)。目前,我最喜欢的 AA 提案涉及在共识层之外通过备用内存池来实现它,以减少共识客户端开发人员的负担,他们已经需要在测试、合并、无状态性、优化等方面努力工作,尽管我们将来也可以决定其他方法。然而,如果推出类似 EIP 3074 的东西,如果它与未来的 AA 目标向前兼容,那就太好了。
如果 AA 推出,最终我们希望删除 EOA 作为一个类别,以降低客户端的复杂性。这可以通过进行硬分叉来实现,该硬分叉就地编辑所有现有的和新的 EOA,用具有相同功能的智能合约钱包替换它们(但也具有升级功能,因此用户可以在保持相同地址的同时将其帐户升级到不同的方案)。
目前,这样做没有任何障碍;唯一的问题是需要一个不规则的预编译,可以在通过哈希其公钥派生的地址上创建基于 EOA 的钱包。但是 EIP 3074 的 AUTH
+ AUTHCALL
机制增加了这种复杂性。
AUTH
+ AUTHCALL
是一个从另一个地址发起调用的操作码。因此,在 EOA 之后的世界中,它可以被替换为调用钱包合约,要求钱包合约执行所需的操作。但是,存在一个问题:授权与调用本身是断开连接的。因此,智能合约钱包必须具有额外的功能,“授权代理”功能,允许特定地址在没有签名的情况下调用它,并立即转发这些调用。那么 AUTH
将成为调用此授权代理机制的调用,即使这样也无法复制完全相同的功能,因为指定的 AUTH
是调用范围的,并且可以存储代理的任何 EVM 内部存储都是持久的。
总而言之,一个后 EIP-3074 的后 AA 世界似乎会带来大量的技术债务。
AUTH
和 AUTHCALL
作为预编译而不是操作码。这样,它们以后可以用代码片段替换,从而避免 EVM 操作码技术债务。AUTH
机制,并直接从 EOA 发起一系列调用。这简化了逻辑,因为这样的 AUTHORIZED_MULTI_CALL
EIP 在后 AA 世界中可以被替换为对钱包合约的一系列调用。AUTH
和 AUTHCALL
操作码/预编译指定预定的固定生命周期(例如 2 年),明确地向钱包开发人员表明这些是临时措施,并且在某些时候应用程序将需要切换到不同的系统。
- 原文链接: ethereum-magicians.org/t...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!