作者:LUKAS SCHOR & SAFE
翻译:白话区块链
本文要点:
以太坊核心开发者已经达成一致,计划将EIP-3074纳入即将到来的硬分叉升级Prague/Electra(预计在2024年第四季度/2025年初)。EIP-3074允许外部拥有的账户(EOA)将其交易能力委托给智能合约,增强了交易赞助和批量处理等功能。虽然EIP-3074作为一种短期修复措施,旨在改善EOA的用户体验,但大多数以太坊社区仍然一致认为,最终目标是将所有用户迁移到智能账户。EIP-3074对智能账户带来了一些改进,并成为实现完全AA(账户抽象,也称为智能合约账户)的一个步骤,但它绝对需要EIP-5003的全面支持。如果没有EIP-5003,我们将进一步确立EOA的地位。
1、什么是EIP-3074?
EIP-3074修改了以太坊协议,允许外部拥有的账户(EOA)将其交易能力委托给智能合约(称为“调用者”),从而实现以下额外功能:
赞助交易:dapp或其他参与方可以赞助交易的燃料费用。
批量交易:这允许在同一笔交易中执行两个或多个合约调用。例如,用户可以在单个交易中调用approve和transferFrom。
访问委托:用户可以将对其EOA的控制委托给可能具有不同安全属性的其他密钥。例如,用户可以向其账户添加一个每日额度的手机热钱包密钥。
这些功能目前只能在智能账户上使用,这意味着应用程序必须为EOA和智能账户构建两种不同的用户体验。
2、智能合约账户(AA)的机会
EIP-3074主要赋予了EOAs更多权力,但它也为智能账户带来了一些新的有益副作用:
更容易的迁移:借助赋予EOAs更多权力,用户可以更轻松地迁移到智能账户。迄今为止,用户转换为智能账户的一个重要挑战是迁移现有资产的工作量和燃料成本。EIP-3074允许在单个批量和赞助交易中更平滑地进行迁移。
统一的用户体验和开发体验:dapp可以构建更好的用户体验,而无需排除EOAs。这大大增加了利用赞助交易和交易批处理的动力,以及围绕它们的标准。dapp通常需要调整为更灵活的账户逻辑,这将使智能账户功能(如会话密钥或多签)更好地适应整体开发框架。
混合账户:EOAs可以将智能账户设置为调用者。例如,这将使智能账户能够控制EOA,而EOA的私钥仍然保持优势,并可以禁用安全的控制。这可能导致有趣的新型混合托管用例,或者允许EOA用户在迁移资产之前“测试”智能账户。
3、EIP-5003:弥合与智能账户之间的差距
尽管EIP-3074允许将对EOA的控制委托给智能账户,但原始私钥仍然可以对EOA上的任何操作进行授权。这导致EIP-3074无法引入任何(安全)功能,例如:
多签名:多重签名钱包或链上多因素认证仍需要智能账户,因为EIP-3074的EOA始终由原始私钥控制。
恢复:虽然某些恢复方案可能是可行的,但使用EIP-3074无法恢复(更改)控制EOA的主要私钥,因此许多恢复方案需要完整的智能账户。
量子抗性:最终,我们无论如何都需要将用户迁移到智能账户,以实现量子抗性,无论是自然迁移还是通过紧急硬分叉。
其他功能:拒绝列表、共同签名者/保护者、根据用例要求不同签名方案的回退处理程序。
有一种可行的迁移路径被讨论,可以弥合这一差距,并允许将现有EOA完全迁移到智能账户中:EIP-5003。此升级扩展了EIP-3074,允许在EOA地址部署智能合约代码的同时,撤销原始私钥的访问权限。这样可以将EOA完全转换为智能账户,同时保留公共地址、不可转让的Token和声誉,并在未来的账户抽象路线图中通常保证向前兼容性。
然而,对于这种升级路径的可行性存在一些关切,特别是与以下边际情况相关的问题:即假定已撤销的私钥仍然可以授权对账户的操作:
跨链:撤销的EOA密钥在其他网络上仍然有效,包括未来可能出现的网络。这可能允许任何人通过访问原始私钥,在不同的网络上声明同一账户并转移资产。
如果将EOA迁移到特定网络上的智能账户,不能假设EOA会自动迁移到新网络上。智能账户今天已经面临类似的问题,无法在新网络上部署,以及状态更改(密钥旋转)无法同步。像密钥存储滚动这样的跨链方法可能在一定程度上缓解这个问题。
离链签名:被泄露的密钥仍然可以在离链系统中被滥用,例如dapp的登录流程或permit2令牌的批准,这些流程会验证签名。虽然这些系统可能支持EIP-1271等智能合约签名标准,但通常只在标准ecrecover失败时才使用它们,这给已撤销的密钥可能破坏账户留下了空间。
明智的做法是,在EIP-5003中,对于已迁移到智能账户的EOA,始终使ecrecover(以太坊中的一个函数)失败。迁移到智能账户应该是对新的身份验证逻辑的明确和完整的转移。
4、EIP-3074对AA是好还是坏?
在过去几个月里,社区倾向于将ERC-4337作为实现完整AA的第一步。它为开发者生态系统的启动提供了帮助,稳定了规范和打包工具,并创造了一些经验教训。随后计划在Layer 2上实现原生AA(RIP-7560),并最终在Layer 1上引入类似的EIP。
ERC-4337最初开始时期望值被夸大了,这有助于吸引动力和吸引开发者。有积极的信号表明我们接近一个临界点,主要交易平台(OKX,Coinbase)和钱包(Trust,Metamask)正在投资支持ERC-4337。但夸大的期望也意味着不可避免的清醒时刻,即实现完整AA(通过RIP-7560或类似方式)将比最初预期的时间更长,因为目前对于Layer 2来说,致力于RIP-7560的兴趣和紧迫性仍然很小。
AA相关的以太坊标准/升级正在经历各自的“炒作周期”。
这就是部分社区转向EIP-3074的原因之一。由于将用户迁移到智能账户似乎还为时过早,一些声音变得响亮起来,至少在此期间部分修复EOA问题。EIP-3074并不取代ERC-4337,它们实际上具有相当的协同效应,但它确实将焦点进一步转移离开ERC-4337/RIP-7560。
为了实现完整的AA,我们需要找到将现有EOA迁移的方法。由于EOA仍然占据以太坊用户的大多数,这影响了开发者和团队的优先事项。这可以通过两种方式实现:(1)让用户手动切换到智能账户,或者(2)实施将EOA转换为智能账户的方式。
包含EIP-3074存在着将我们进一步远离实现完整AA的风险。它增强了EOA,对于(1)起到了消极的作用,同时并没有真正解决(2)的问题。
没有EIP-5003,EIP-3074目前缺乏实现完整AA的明确路径,并对AA的采用产生了负面影响。更重要的是,在下一个硬分叉升级Prague/Electra之后,可能不会再有一个为期2年的窗口来包含与AA相关的升级,因为重点将转向verkle树。因此,我们应该在Prague/Electra升级中包含EIP-5003,以防止进一步确立EOA的地位。
EIP-3074对AA路线图的影响,包括有/无EIP-5003
5、总结
围绕EIP-3074的辩论是以太坊账户抽象轨迹的一个关键节点。
原始的AA路线图:尝试应用层的AA(ERC-4337),通过L2展示原生AA(RIP-7560),最终在L1上引入原生AA。通过迁移交易(EIP-5003,EIP-7377甚至强制迁移)解决旧版EOA问题。这条路径可能比预期时间长得多,并受到EOA的主导地位的阻碍。
我们应该采取的行动:实施EIP-3074,但同时在布拉格/电气硬分叉中包含EIP-5003,以实现对智能账户的完整迁移。这样可以确保不让遗留用户被落下,同时又确保他们不会阻碍AA的努力。
我们目前计划要做的事情(最糟糕的情况):仅实施EIP-3074,并冒着确立EOA的风险,或者至少会严重阻碍智能账户的采用。
以太坊AA路线图的十字路口(感谢Vitalik提供的改进思路)
来源:https://safe.global/blog/eip-3074-risks-opportunities-for-smart-account-adoption