本文深入探讨了以太坊上的账户抽象(AA)及其相关解决方案。账户抽象旨在通过智能合约控制用户账户,实现更灵活的交易条件。文章详细介绍了ERC 4337的原理、采用情况以及相关的EIP提案,并分析了AA技术在以太坊短期内难以大规模应用的原因,以及未来在Layer-2网络和其它Layer-1协议上应用的潜力。
作者:
主题
研究 • 2024年3月28日
管理公钥/私钥对一直是加密货币用户采用的障碍。以太坊最初的目的并不是推出外部控制账户 (EOA),即由公钥/私钥对控制的账户。以太坊的联合创始人 Vitalik Buterin 设想以太坊上的用户账户可以由智能合约代码控制。可编程的智能合约账户将允许用户应用更灵活的条件,以安全地将加密资产转移到他们的钱包和从他们的钱包转移出来。账户抽象是描述智能合约控制的用户账户的官方术语。人们对账户抽象的兴趣在 2023 年猛增,并在 2024 年继续增长。本报告深入探讨了什么是账户抽象,以及为在以太坊上启用该技术而提出的解决方案。
两年前,以太坊开发者 Vitalik Buterin、Yoav Weiss、Dror Tirosh、Shahaf Nacson、Alex Forshtat、Kristof Gazso 和 Tjaden Hess 共同撰写了一份以太坊征求意见稿 (ERC),概述了用户交易执行的新流程。该提案被称为 ERC 4337,提供了一种在不改变以太坊核心协议的情况下,为用户交易实现更高级别可编程性的新方法。
以太坊上的用户只能从用户控制的账户(也称为“外部控制账户” (EOA))发起交易。来自 EOA 的交易由账户用户的私钥的数字签名授权。私钥是最重要的信息,它使用户能够访问和控制 EOA 中持有的资金。在以太坊上,用于保护 EOA 的特定类型的数字签名方案被称为 椭圆曲线数字签名算法 (ECDSA)。 它与比特币上使用的方案相同。
由于私钥可能难以安全地记录和记住,因此以太坊用户和加密货币持有者依赖钱包软件来管理他们的私钥,或者依赖中心化托管人来代表他们直接管理他们的加密资产。多年来,像 Vitalik Buterin 这样的以太坊创始人,以及像 Yoav Weiss 这样的协议开发者,一直在研究如何通过可编程 EOA(即可通过任何类型的逻辑执行和授权交易的 EOA,而不仅仅是公钥/私钥数字签名的逻辑)来改善链上交易的用户体验。可编程 EOA 的另一个术语是账户抽象 (AA)。
AA 可以为链上执行交易启用各种新的方法和授权方案,从简单地启用多个签名(即多个数字签名的组合)到可以用任何类型的 ERC-20 代币支付的交易,而不仅仅是用户账户中的 ETH。本报告概述了 ERC 4337、它的采用情况以及开发者为进一步扩展 ERC 4337 的功能而提出的相关以太坊改进提案 (EIP)。本报告还提供了关于为什么 AA 可能不会在短期内在以太坊上被有意义地采用的见解,因为以太坊开发者专注于更紧迫的优先事项,例如 maxEB 和 peerDAS,以及在中期,由于用户活动迁移到 Layer-2 rollups 和已经支持独立于以太坊的 AA 的替代 Layer-1 协议。
2023 年 3 月,在北美最大的年度以太坊主题会议 ETHDenver 期间,以太坊基金会的安全研究员 Yoav Weiss 宣布 在以太坊上启动一个新的智能合约,称为 EntryPoint。EntryPoint 旨在验证和执行来自“账户合约” (AC) 的交易。AC 是一种以太坊账户,用户可以通过它编写用于授权交易的新逻辑。该逻辑必须使用 ERC 4337 标准 定义的特定字段和类型来构建。使用复杂执行逻辑格式化的用户交易称为“UserOperations”。格式化后,UserOperations 可以发送到专门用于这些类型交易的 mempool。
以下是 ERC 4337 定义的 UserOperations 交易执行流程的高级图示。
一旦 UserOperation 被提交到 规范的 ERC 4337 mempool 或 也接受 UserOperations 的替代 mempool,它会被“Bundler”拾取。Bundler 的作用类似于区块构建者。它们将多个 UserOperations 打包在一起,并将该捆绑包提交到以太坊上进行验证和执行。作为模拟交易并将其打包以在链上执行的交换,捆绑者通过提交 UserOperation 的用户附加的费用获得补偿。
UserOperations 可以指定一个“Paymaster”。Paymaster 是赞助其他用户的 UserOperations 的参与者,以便在以太坊上实现几个新功能,包括:
用户使用 ETH 以外的加密货币支付交易费用,
去中心化应用程序在启动的早期阶段补贴其用户的费用,
创建用于在以太坊上进行交易的链上信用服务。
一旦被 Bundler 拾取,UserOperation 将被提交到 EntryPoint 智能合约。EntryPoint 的作用是验证 UserOperations 并为 UserOperations 的执行向相关方付款。一旦 UserOperations 的操作在链上完成,EntryPoint 智能合约将确保从 Paymaster 的地址(如果已指定且有效)中扣除相关费用,并记入 Bundler 的地址。
从 UserOperation 的初始提交到其链上执行,需要注意以下几个重要事项:
虽然以太坊上的 EntryPoint 智能合约已上线,但统一的 ERC 4337 mempool 尚未启动。可以在 GitHub 上找到此 bundler 的点对点规范的早期迭代。
可以在 UserOperation 中直接指定新 AC 的创建,这样,UserOperation 不仅指定了处理用户交易的复杂要求,还指定了将代表用户签署消息的 AC。
对于接受来自 bundler 的 UserOperations 的区块构建者来说,重要的是要确保在区块中执行的较早交易 不会与任何 UserOperations 冲突,并导致它们失败。区块构建者必须将捆绑包作为区块中的第一个交易放置,或使用 其他策略 来正确验证 UserOperations 的内容。
Paymaster 有可能一次性使多个 UserOperations 无效,从而对负责验证 UserOperations 的 EntryPoint 合约造成不必要的压力。为了防止这种拒绝服务 (DoS) 攻击媒介,paymaster 需要提供 stake,确切金额由 bundler 软件实现 定义,或者
限制其存储能力,以便它们可以支持的 UserOperations 仅限于它们可以在自己的存储范围内访问的那些。
ERC 4337 的创新之处在于它对 gas 记账和支付进行了标准化,并创建了一个独立的 mempool,该 mempool 具有 DoS 抵抗能力且无需许可。ERC 4337 已被采用为以太坊之外的几种协议(包括 Starknet、Optimism、Arbitrum、Avalanche、BNB Smart Chain 和 Polygon)的账户抽象标准。
AC 有可能彻底改变以太坊和其他参与的通用区块链和 L2 上的交易执行。一旦创建,AC 可以与智能合约(即 dapps)进行交互,通过发送已签名消息来执行交易,该消息验证 AC 移动用户资产的权利。ERC 1271 是 dapps 在与 AC 交互时使用的 ERC 4337 的配套标准。支持 AA 的 dapp 将依赖 ERC 1271 来验证来自 AC 的已签名消息,而不是请求启动交易的授权来自用户的私钥。这为用户交易解锁了许多新的用例,包括:
对用户资产的定制控制:AC 可能有一条已签名消息,dapps 可以验证该消息,允许它们移动某些资产,或者移动高达一定限额的资产,从而确保即使在用户 AC 可能被利用的情况下,他们的整个账户余额也永远不会受到威胁或面临被盗的风险。
在发生黑客攻击时停止资产流动:相反,如果超过某些提款限额,AC 可能具有停止资金流动的嵌入式逻辑。
改善重复或频繁交易的用户体验:对于某些链上游戏和 DeFi 应用程序,用户需要提交多个交易。可以对 AC 进行编程,以自动允许与某些 dapp 进行交易,以便用户可以避免必须使用其私钥反复授权与同一智能合约的交互。
支持私钥的社交恢复:AC 还可以被设计为依赖用户的私钥和其他社交恢复设备来移动资金。如果用户丢失了他们的私钥,则可以对 AC 进行编程,以使用 2/3 或 3/5 的其他社交恢复设备来重新生成新密钥。
根据以太坊钱包服务 Argent 和其他来源 的分析,以太坊上大约 60% 到 70% 的 dapp 与 ERC 1271 兼容。
EntryPoint 合约的启动是以太坊主网上 AA 开发的一个重要里程碑。但是,使用 EntryPoint 的标准仍在积极开发中,并且可能会发生变化。ERC 4337 不是协议级别的代码更改,而是一个不断发展的标准,用于提交用户交易的替代工作流程。ERC 4337 的采用正处于因果困境中,因为最终用户广泛采用该标准将为捆绑者创造高收入的机会,从而导致大量新捆绑者涌入。但是,除非已经有很多用户发送 UserOperations,否则捆绑者的崛起也没有经济动机。
此外,采用的另一个障碍是 ERC 4337 需要与以太坊 mempool 不同的替代 mempool,这将使围绕 UserOperations 活动的工具和分析更加复杂和混乱。像 JiffyLabs 和 Blocknative 这样的公司正在开发专用工具和浏览器来跟踪从启动到执行的 UserOperations。
UserOperations 对用户来说平均也更昂贵。大多数 UserOperations 比来自 EOA 的常规以太坊交易更昂贵的主要原因是,通常链上智能合约操作比严格涉及 ETH 的普通交易更昂贵。如果是用户的第一个 UserOperation,他们必须创建一个新的 AC,这会花费 gas,并且根据 AC 的配置,该账户可能会启动与几个代币或 dapp 的交互,无论如何这将花费用户直接从 EOA 启动,但是通过 ERC 4337 框架进行启动会产生捆绑者、paymaster,有时还有用户承担的额外管理费用。
根据 Dune 的数据,截至 2024 年 3 月 26 日,以太坊上创建的 AC 总数为 4,830 个。自 2023 年 3 月以来,链上执行的成功 UserOps 数量为 36,332 个,并且在同一时期内从这些 UserOps 产生的捆绑者收入大约为 30.5 ETH。在交易费用与以太坊相比相对较低的其他协议上,UserOperations 活动相对较高,尤其是在 Polygon 上。请参见下图:
以下是更广泛采用 ERC 4337 标准所需的三个关键开发领域:
监控工具:一旦 ERC 4337 mempool 在以太坊上启动,ERC 4337 mempool 浏览器和其他用于跟踪 UserOperation 活动的强大工具对于支持更广泛地采用 AA 将非常重要。
UserOperations 标准:向用户交易的执行添加额外的代码复杂性可能会导致出现更多错误和漏洞的机会。某些类型的常用用户操作的标准将进一步促进特定 AA 用例的采用。
包含列表和审查 - 抵抗机制:就像以太坊上第三方区块构建者由于这些参与者的角色的特殊性而存在的中心化风险一样,存在最大可提取价值 (MEV) 使捆绑者的角色中心化的风险。随着 AA 的采用不断增长,ERC 4337 标准指定通过包含列表或其他抗审查机制来对抗 MEV 的中心化影响的方式将变得非常重要。
ERC 4337 的主要优势和劣势之一是它不会更改以太坊的协议。这是一个优势,因为作为 EVM 兼容链之间 AA 标准的 ERC 4337 的开发不依赖或依靠以太坊核心开发者的努力和共识。以太坊核心开发者是一群不明确的研究人员和程序员,他们在以太坊的协议上工作,行动速度非常慢,并且在处理几个相互竞争的优先事项和代码议程。可以独立于该组开发 ERC 4337 的事实意味着可以更快地发布对其代码的更新。
但是,ERC 4337 是独立于以太坊的协议这一事实也是一个弱点,因为它限制了该标准的采用。如果没有协议级别的更改,AC 的采用在很大程度上取决于 dapp 开发者更新其智能合约,以请求已签名消息作为用户身份验证的有效形式,而不是来自 EOA 私钥的签名。AC 是像 Starkware 这样的协议上的默认用户账户类型,这些协议本身就支持 AA。这具有许多好处,包括所有 dapp 都与 AA 兼容并且支持来自 AC 的本机用户交易批处理。
为了更好地直接支持在以太坊上采用 AA,最近几个月已经提出了少数 EIP,这些 EIP 将对以太坊协议进行一些小的更改。
EIP 3074:由以太坊核心开发者 lightclient、Ansgar Dietrichs、Micah Zoltu 和 Sam Wilson 提出,此 EIP 创建了两个新的 EVM 指令,用于将 EOA 的控制权委派给智能合约。尽管这是一个早在 2020 年提出的长期存在的 EIP,但它仍然是一个有争议的 EIP,目前正在被以太坊核心开发者讨论是否将其纳入 Prague/Electra 升级中。
EIP 7664:由化名 OP Labs 开发者“Protolambda”提出,此 EIP 在 2024 年 3 月 28 日最近的 All Core Developers (ACD)、All Core Developers Execution Call (ACDE) #184 上提出,作为 EIP 3074 的更好替代方案,可提供其他功能。
EIP 5806:由 OpenZeppelin 的区块链工程师 Hadrien Croubois 提出,此 EIP 创建了一种新的交易类型,该类型将允许 EOA 使用类似委托调用的机制执行任意代码。委托调用是以太坊上的智能合约操作码,允许合约执行来自另一个合约的代码。将此功能应用于 EOA 将通过允许 EOA 更多地控制要执行的合约操作来提高 EOA 的可编程性。通过 EIP 5806,EOA 可以调用另一个合约,然后通过一个初始交易触发多个交易。与 EIP 3074 一样,以太坊核心开发者目前正在讨论是否将此 EIP 纳入 Prague/Electra 升级中。
EIP 7377:由 Geth 开发者和 EIP 编辑器 Matt Garnett 提出,他也使用化名“lightclient”,此 EIP 创建了一种新的交易类型,以帮助使用一次性交易将 EOA 中的资产迁移到 AC。如果用户在 EOA 中有多个资产,则很难单独将这些资产迁移到新地址。因此,创建一种可以安全地将 EOA 中的所有资产以一个简单的操作迁移到 AC 的交易类型将大大改善用户体验并加快 AC 钱包的采用。与 EIP 3074 和 5806 一样,以太坊核心开发者目前正在讨论是否将此 EIP 纳入 Prague/Electra 升级中。但是,在这三个 EIP 中,EIP 7377 被认为是核心开发者中最没有争议的。
EIP 6900:由 Alchemy 和以太坊基金会的开发者合作提出,此 EIP 提出了智能合约和 AC 插件的新标准。插件包含 UserOps 的执行逻辑,以及定义 AC 将批准代表其采取的操作的情况的验证方案。这些插件还可以包含允许执行前和执行后控制的Hook。将此类插件标准纳入 AC 将有助于支持高度模块化和可升级的交易执行逻辑,并增强钱包和 dapp 的互操作性。
EIP 7553:由 Nethermind 客户端开发者 Tomasz. K. Stańczak 和以太坊基金会研究员 Ansgar Dietrichs 提出,此 EIP 创建了一种新的交易类型,该类型将交易发送者和付款人的角色分开。该 EIP 是先前提案 EIP 2711 的一个更窄的版本,旨在启用赞助交易,即由第三方支付费用的交易。
EIP 5806 和 6900 在 All Core Developers Execution (ACDE) Call #167 上于 2023 年 8 月初提出。尽管对在以太坊上采用 AA 有利,但通话中的开发者反对在制定路线图以最终将 AA 完全纳入以太坊协议之前实施与 AA 相关的协议更改。Swirlds Labs 工程师和 Besu 客户端维护者 Danno Ferrin 表示:“这些是有趣的解决方案,可以开辟有趣的设计空间,但我认为我们应该退后一步,考虑一下如果通过深思熟虑的设计来实现账户抽象,我们是否会得到更好的服务。”
考虑到 Verkle 树、已确定的提议者构建者分离、单Slot最终性和完整 danksharding 等其他重要举措的相互竞争的优先事项,开发者对在下一个计划的以太坊硬分叉中承诺与 AA 相关的 EIP 犹豫不决。但是,在 ACDE #178 上,AA 的主题再次被提出,开发者对在 Prague/Electra 升级中实施与 AA 相关的简单 EIP(例如 EIP 7553)的想法表示出更大的热情。最近,上面列出的前三个 EIP 在 ACDE #182 中进行了详细讨论。开发者讨论了这三个提案之间的比较优势和劣势。最后,在最近的 ACD 通话 ACDE #184 中,OP Labs 开发者 Protolambda 提出了新版本的 EIP 3074,以供 Prague/Electra 考虑。
根据围绕以太坊 AA 的持续讨论,该技术是所有以太坊开发者都希望实现的目标,但这是许多需要几个月甚至几年的讨论才能就路线图达成共识的目标之一,同时还要兼顾该协议的其他竞争性优先事项。因此,ERC 4337 可能会在短期内被更广泛地采用为不影响以太坊协议的标准。从中长期来看,随着以太坊的 Layer-2 (L2) rollup 生态系统的成熟,为以太坊提出的 ERC 4337 和其他与 AA 相关的 EIP 更有可能在这些协议上快速采用,因为这些协议比以太坊更灵活。由于以太坊的可扩展性取决于 rollups,并且以太坊正在演变为充当 rollups 的数据可用性层,因此预计更多的最终用户将在 L2 上进行交易,而不是直接在以太坊上进行交易。
ERC 4337 是一个重要的且不断发展的标准,旨在在不更改网络核心协议的情况下将 AA 引入以太坊。更重要的是,它是一个可以被以太坊和 L2 之外的 EVM 兼容协议采用的 AA 标准。ERC 4337 的创新之处在于它提供了一种单一策略,用于向钱包和 dapp 可以整合到的捆绑者和 paymaster 进行 gas 记账和交易支付。此外,ERC 4337 提供了一个受第三方区块构建启发而设计的标准,以支持通过替代 mempool 对 UserOperations 进行无需许可的捆绑验证,理论上任何人都可以向该 mempool 提交交易,如果他们运营一个 bundler,则可以从中获利。ERC 4336 的采用虽然在以太坊上进展缓慢,但已被其他协议所接受;尤其是 Polygon、Arbitrum、Optimism、StarkNet 等 L2,以及最近的 Base。以太坊上有一些协议级别的更改,AA 开发者已经提出,以加快在以太坊上采用 ERC 4337,但考虑到相互竞争的优先事项,尚不清楚这些 EIP 是否会在下一个即将到来的以太坊升级 Prague/Electra 中实施。本报告中提到的 ERC 4337 和与 AA 相关的 EIP 的采用最有可能在 L2 和新的 EVM 兼容链上得到广泛接受,因为它们可以更快地激活协议更改。以太坊上的 AA 仍然是一个积极的研究和开发领域,在开发者确定更可靠的路线图来支持该技术之前,可能会经历更多次迭代。
- 原文链接: galaxy.com/insights/rese...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!