本文讨论了以太坊中账户抽象(AA)的长期目标,以及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
是调用范围的,并且可以存储代理的任何 in-EVM 存储都是持久的。
总而言之,后 EIP-3074 时代的后 AA 世界似乎会带来大量的技术债务。
AUTH
和 AUTHCALL
成为预编译而不是操作码。这样,它们以后可以被替换为代码片段,从而避免 EVM 操作码的技术债务。AUTH
机制,而是直接从 EOA 进行一系列调用。这简化了逻辑,因为这样的 AUTHORIZED_MULTI_CALL
EIP 在后 AA 时代可以简单地被替换为对钱包合约的一系列调用。AUTH
和 AUTHCALL
操作码/预编译指定一个预定的固定生命周期(例如 2 年),明确地向钱包开发者发出信号,表明这些是临时措施,并且在某个时候应用程序将需要切换到不同的系统。
- 原文链接: ethereum-magicians.org/t...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!