本文讨论了以太坊账户抽象(AA)的长期目标,即使用智能合约钱包替代外部账户(EOA),并分析了 EIP-3074 提案的局限性及其对未来 AA 目标的影响。文章还提出了改进 EIP-3074 的建议,以确保其与未来 AA 的兼容性,并探讨了在实现 AA 后清理 EOA 的方法,着重强调了技术债务问题。
以太坊的一个长期目标是 账户抽象 (AA):让用户可以使用智能合约钱包来存储他们的资金,并且像使用 EOA 一样方便,这样我们就不再需要外部拥有的账户(EOA)。智能合约钱包具有以下优点:
EIP 3074 完成了 [4],但它没有完成 [1, 2, 3]。因此,EIP 3074 没有完成账户抽象(尽管作为对 [4] 的短期修复,它或类似的东西仍然非常有价值)。目前,我最喜欢的 AA 提案涉及在共识层之外通过备用 mempool 来实现它,以减少共识客户端开发人员的负担,他们已经需要在测试、合并、无状态性、优化等方面努力工作,尽管我们将来也可以决定其他方法。然而,如果推出了类似 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 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!