ERC-4337 是现阶段实现账户抽象的最优解,为 SocialFi 和 GameFi 的参与者提供了更为多样的交互选项。

目录

撰文:Jerry Luo

TLDR: 当下以太坊上主流的钱包类型有 EOA 和 SCW 两种,但两者分别面临着执行效率低下和无法自主发起交易的问题。以太坊开发者几经探索,现阶段找到的最优方案是通过 ERC4337 实现的账户抽象。

  • ERC4337 钱包通过 Bundler 实现了私钥与账户主体的分离,交易的批量处理并可以主动发起交易。同时,通过智能合约钱包的内置代码,可以根据外界信息自动化处理交易。
  • 但这一提议仍然面临着协议层账户抽象和原生账户抽象钱包等其他方案的挑战,同时 ERC4337 入口合约今年 3 月才上线以太坊主网,许多问题有待挖掘,最终方案存在较大不确定性。最后,由于 Entry Point 合约的单点性,ERC4337 在升级上受到了很大限制。
  • 为了解决这些问题,ERC4337 的开发者也通过补充 EIP 提案,在不改动入口合约的情况下进行优化。对于 EOA 时代 Dapp 与 ERC4337 不兼容的情况,ERC4337 支持者自建了大量 ERC4337 的钱包项目和专注于 ERC4337 钱包交互的 Dapp 项目,这些项目提供了原来 Defi,Socialfi 中 EOA 账户可以享受的各类交互并在可操作性上做出了优化。

总的来说,ERC4337 仍为现阶段实现账户抽象的最优解。通过 Paymaster 的代偿合约,降低了用户参与 Defi 的门槛,项目方可以提供 0 gas 或者低 gas 交易来吸引更多用户的参与。通过对交易的打包与批量化处理,大大优化了用户在 Socialfi 和 gamefi 中的参与体验,为 Socialfi 和 gamefi 的参与者提供了更为多样的交互选项。

1.背景

去中心化和便利性的取舍一直是困扰 crypto 参与者的一大难题。如果要拥抱去中心化,就必须舍弃便利的 web2 操作模式,接收操作从简单的点击按钮变为保管助记词,私钥签名,设置 nonce 值等一系列流程。而如果要追求便利性, FTX,JPEX 等一系列中心化机构的暴雷又使我们无法忽视账户所有权的重要性。为解决这一问题,以太坊开发者们做出了一系列的尝试,使 web3 账户具有 web2 的便利性——账户抽象。今年的 ETHCC 大会上,以太坊创始人 Vitalik Buterin 总结了这些尝试,其中得到开发者最大共识的便是 ERC4337 标准。

2.ERC4337 账户抽象原理

ERC4337 在实现控制权和所有权与账户主体剥离的过程中主要涉及到了三个对象 UserOperation, Bundler 和链上合约。UserOperation 主要包含了用户的输入,Bundler 完成了打包和触发交易的过程,链上合约由 Entry Point, Paymaster Contract 和 Wallet Contract 三部分构成,主要实现了复杂的验证和执行逻辑。

  • UserOperation:UserOperation 中包含了用户提交的所有和交易有关信息,下图展示了 UserOperation 中需要输入的参数与普通 EOA 账户发起一笔交易需要的输入参数。
ERC4337 与 EOA 账户的输入参数对比,来源:Kernel Ventures

两者最大的不同在于 ERC4337 钱包中可以指定 sender ,而不像 EOA 中默认 ECDSA 解签地址为交易发起者,因而 ERC4337 钱包实现了账户主体与所有权的分离。其次,ERC4337 中还新增了 paymasterAndData 参数用于设置代付合约的具体信息。代付合约的具体作用我们也会在后面进行讲解。

  • Bundler:Bundler 本质上是一个 EOA 账户,对于传入的 UserOperation,它首先对 calldata 中涉及与 Wallet Contract 的 validateOp 函数交互的代码逻辑进行验证,如果其中包含了 TIMESTAMP,BLOCKHASH 等代码,或者是对钱包存储之外的访问,Bundler 会拒绝这笔 UserOperation,以防止一种叫做恶意模拟的攻击形式。验证通过后,Bundler 会打包传入的多个 UserOperation 并在验证通过后将其广播至公有或者私有的 mempool 中。同时,由于以太坊中的智能合约必须由 EOA 账户触发,所以 Bundler 后续还要与 Entry Point Contract 交互以执行 UserOperation。这一过程中,Bundler 可以通过 maximum priority fee 与实际 gas 的差价,以及排序捆绑交易中的 MEV 收益。因此,ERC4337 的崛起或许也会给以太坊带来 Bundler 矿工的新型挖矿方式。
  • Entry Point:Entry Point 是用来验证和执行 UserOperation 中的内容的智能合约,由 Bundler 触发,实现了 Bundler 和智能合约钱包的分离。同时 Entry Point 在 ERC4337 中为单例合约,ERC4337 中每个 Wallet Contract 在创建时都会赋予 Entry Point 合约地址一个特殊认证一赋予交互过程中的特殊权限。Bundler 在调用 Entry Point 合约时会触发合约里的 handleOps 函数,这个函数首先会检查钱包是否有足够的 gas 补偿 Bundler,如果没有则直接回滚交易。此外,智能合约钱包还可以选择由 Paymaster 合约代为支付这笔 gas,这点我们会在后续的内容中提及。如果验证全部都得以通过,接下来合约中的 _executeUserOp 内部函数将逐步执行 UserOperation 的 calldata 中的内容,调用智能合约钱包中的相应函数。一切结束后将剩余的 gas 补偿给 Bundler。
  • Wallet Contract:Wallet Contract 本质上就是一个智能合约钱包,合约里面有一个 multiCall 函数可以批量处理来自 UserOperation 的 calldata 里面的数据从而大大降低 gas 消耗。但和普通智能合约执行过程中极为不同的一点是,在 multiCall 函数中,UserOperation 内的内容并非直接执行,而是分为了 validateOp 和 executeOp 的过程。如果 UserOperation 中的内容无法通过 validateOp,则将自动终止执行,同时整个过程中产生的 gas 消耗全部由 Bundler 自行承担,而一但执行到了 executeOp 函数,无论因为何种原因导致合约执行终止,所产生的 gas 消耗均由 Wallet Contract 承担。这一机制既有效的保证 Bundler 可以通过自己的打包行为获取正当收益,又可以防止恶意 Bundler 发起的 Dos 攻击,空耗 Wallet Contract 中存储的 eth。
  • Paymaster:Paymaster 在 ERC4337 中不是必须的存在。当 UserOperation 中的 paymasterAndData 参数不为空的时候,将由指定的 Paymaster 合约为 Bundler 代付 gas。这个过程中,Bundler 会触发 Paymaster 中的 validatePaymasterOp 函数,这个函数的作用是在检查了 Paymaster 中是否有足够余额支持支付 gas 后,按照用户自定义的需求为指定的 UserOperation 支付 gas。值得注意的是,ERC4337 自身并未规定一个标准对 Paymaster 使用的优先级进行排序,需要 Bundler 根据链下对 Paymaster 过往代付情况的记录选定最优的 Paymaster 而淘汰质量较低的 Paymaster,这一过程形成了 Paymaster 间的竞争,有助于提升网络运行效率。
  • Signature Aggregator:由于 ERC4337 中支持非 ECDSA 的签名算法。所以我们首先要将使用不同签名算法的 UserOperations 分类,然后由 Bundler 将同类交易通过 Signature Aggtegator 生成一个聚合签名,一次验签便可以将里面包含的交易全部进行验证,这一过程大大降低了 gas 费的消耗。

整体来看,这个过程中用户首先向 Bundler 发送包含了用户自定义参数的 UserOperation,如果有 paymasterAndData 参数,则会调用代付合约对 gas 费进行支付。如果有 initCode 参数,用户则会按照里面的代码逻辑创建一个新的智能合约钱包。最后,为了降低验签过程的 gas 消耗,ERC4337 中采取了批量打包交易的方式,使用 Signature Aggregator 将同类的 UserOperation 打包生成一个聚合签名,仅进行一次验证。当链下 Bundler 的模拟验证和链上的实际验证都通过后,智能合约钱包便成功执行了 UserOperation 中用户的自定义功能同时将多余 gas 退还给 Bundler 作为奖励。

ERC4337 账户抽象工作示意图,来源:Kernel Ventures

相较而言,使用 EOA 账户发起一笔交易就显得极为简单,只需要某个 EOA 账户对交易数据进行签名后全网广播即可。广播的交易经过节点验证后会被等待打包,最后由 POS 机制选出的具有记账权的节点记录上链。这一过程非常简洁,不存在中间商 Bundler 和 Entry Point 入口点合约,因为会有相对较小的 gas 消耗。同时,安全性仅与 ECDSA 加密算法相关,不存在复杂合约逻辑带来的内生安全风险。但是这一过程中私钥和账户控制权唯一绑定,无法变更,且必须对所有交易一个个进行签名验证,无法进行自动化的处理。

EOA 账户交易过程,来源:Kernel Ventures

总而言之,ERC4337 实现了私钥与账户所有权的分离,通过批处理交易降低了复杂交易过程的 gas 消耗,通过代付合约消除了钱包的以太坊余额准入门槛,通过智能合约钱包实现了签名方式的多样化与账户功能的自定义化,这些改进为 web3 账户的使用便利化,功能多样化做出了巨大推进。

3.当下以太坊钱包的种类和优缺点

  • EOA(外部账户):以太坊 EOA 账户通过私钥签名进行控制,而私钥由 12 个单词组成的助记词生成。虽然 EOA 账户具有操作上的主动性,可以主动交易。但要保证 EOA 账户的所有权,就必须妥善保存 64 位的一串 16 进制数字或者 12 个助记单词,这给用户的使用带来许多不便。同时 EOA 账户涉及身份认证的交易需要一个个进行签名,极不方便,相当于将一次确认背后每次的状态改写和权限变更都要进行单独的确认。最后,使用 EOA 账户发起交易需要向账户内预先转入以太坊,这也提高了钱包的使用门槛。
  • SCW(智能合约钱包):智能合约钱包相对于 EOA 钱包在操作的便利性和自动化程度上有了很大的提升。通过智能合约内置代码可以实现对交易的打包并按用户意图自动化执行复杂操作。但是 SCW 在权限上远低于 EOA,无法自动执行交易,交易的发起需要一个 EOA 账户触发。
  • MPC(多方计算钱包):MPC 钱包将私钥打散后交由多个主体保管,在需要签名时再进行拼接。这听起来和多签钱包很像,但本质上两者有很多不同。首先是 MPC 中只有一个私钥,我们只是将私钥进行了分片保管。再次是多签的验证完全是通过链上的智能合约,而 MPC 的阈值设置和签名生成均在链下进行。MPC 钱包有效避免了单点故障,不用担心 EOA 中丢失私钥从而丢失账户所有权的情况。但链下对签名的生成过程属于中心化过程,需要有严格的审查制度以防可能的作恶。同时 MPC 现在大多是定制产品且不开源,因而很难在开发过程中进行模块化的嵌入,增大了开发成本。但需要强调的一点是, MPC 钱包和我们后面提及的 AA 钱包并不存在竞争。MPC 的解决痛点在私钥保存,而 AA 解决的痛点是在改善交易过程的灵活性,两者在未来的发展中可以结合使用。
  • AA(账户抽象):账户抽象的概率最早可以追溯到 2017 年的 EIP86,该提案中提出要将所有的账户都变成合约,让用户自由定义自己的安全模。但这一提案涉及了以太坊共识层的改动,有比较高的难度,且存在一系列可能得安全问题。所以 EIP86 以及后续以 EIP86 为代表的涉及以太坊共识层或协议层改动的提案均被无限期搁置。直到 EIP2938 的提出,大大减少了对以太坊底层的改动,并且通过设置节点的内存池规则解决了安全问题。账户抽象的整体解决思路转变为了如何在仅更改智能合约层的基础上实现账户抽象。2021 年,ERC4337 提出,彻底实现了仅在智能合约层进行更改的前提下完成账户抽象。今年 3 月,ERC4337 的 Entry Point 入口合约在以太坊上部署,账户抽象进入 ERC4337 时代。

4.挑战与应对

4.1 账户抽象标准未定

  • 共识层账户抽象:首先是对于以太坊上 Layer1 上的账户抽象,ERC4337 并非唯一方案。以 EIP2938 为主导的共识层账户抽象只是暂时被搁置而非完全否决。或许从现阶段来看,账户抽象带来的利益无法驱使开发者在以太坊底层做出改动。但随着 ERC4337 式账户抽象开发到瓶颈,人们便会要追求更佳的用户体验。这时,可以提高合约账户权限使其能主动发起交易,去除掉 Bundler 并降低交易成本与交易复杂度的共识层账户抽象方案或许又会重新进入大家的考虑范围。
  • 有待确定的 EIP 提案:其次,ERC4337 正式实施的时间不足一年,现在还在不断发现问题并进行完善。因为无法对 Entry Point 进行改动,所以暂时提出的优化 ERC4337 的 EIP 提案大都是涉及 Bundler 和 操作码的优化,比如 EIP-1589 中可以防止 MEV 攻击的 endorser 合约,以及涉及共识层变更的 EIP-3974 中所添加的将 EOA 账户控制权托管给智能合约账户的操作码,这些提案能否通过还有待以太坊开发社区的讨论。
  • Layer2 原生账户抽象:最后还有 Layer2 上的各类原生账户抽象钱包,比如 Starknet 与 Zksync Era。在 Starknet 中采用了不同于以太坊的 ECDSA 签名,大大降低了签名和验签过程的成本,从而大大降低了 gas 消耗。同时 Starknet 中仅有合约账户,默认其为顶级账户,不需要再通过复杂的合约层操作便直接可以让合约账户主动发起交易,为开发者提供了更灵活、丰富的应用设计环境。

总而言之,要在以太坊上进行账户抽象,ERC4337 虽然是现今得到最广泛认可的选项,但并非唯一选项。

4.2 ERC4337 自身缺陷

  • 更高的固定 gas 成本:ERC4337 钱包中基本操作的 gas 消耗为 42000 gas,是普通 EOA 账户的两倍。具体原因如下:
ERC4337 账户与 EOA 账户的 gas 消耗区别 ,来源:Kernel Ventures

可以看出,由于智能合约的引入,在执行合约业务(解包 UserOperation,执行条件验证,链上哈希等)以及触发事件并在以太坊上发布日志的过程中产生了巨大的 gas 消耗。同时,ERC4337 中所提出的交易批处理以降低交易成本的方式被证明在实际交易中并不实用,大多数的用户往往不需要在一次调用中打包大量交易,仅在项目方发放空投等极少数情景下可以发挥 ERC4337 批处理交易的优势。此外,原先为了分摊交易成本的 UserOperation 一旦在链上执行失败,也会给钱包账户或 Bundler 带来更高额的损失。

  • 升级成本高:在 Entry Point 智能合约中可以通过 entryPoint() 函数返回一个符合 IEntryPoint 接口的参数,在 Wallet Contract 中通过这个参数可以判断外部的交易是否来自 entryPoint 合约中的函数调用。但这要求必须将 EntryPoint 的地址写死在了每一个生成的智能合约账户主体中,如果要对 EntryPoint 合约进行升级需要所有的智能合约账户主体都同意。当 ERC4337 被广泛接受后,这一改变的难度将会不亚于共识层的改动。所以 ERC4337 的部署必须非常慎重,做好各个方面的安全审计。而后续如果要进行性能的优化,也将会是一件非常困难的事情
  • 合约安全问题:在原先的 EOA 账户中交易过程简单,交易安全性通过密码学以及共识层的共识机制来进行确保。加密算法和分布式系统的共识机制都是经过了长期考验以及学界认证的技术,出现漏洞的可能极低。而 ERC4337 钱包将许多原来通过区块链共识机制验证的操作改为合约函数判断,这对合约自身安全性的要求极高,而随着交易逻辑的复杂化,安全风险也急剧上升。

4.3 ERC4337 的更新成本

传统钱包巨头的观望:

ChainCatcher 消息,MetaMask 产品负责人 Alex Jupiter 在接受 Decrypt 采访时表示,尽管 EthCC 期间账户抽象、EOA 等多种优化用户体验的技术被多次提及,但 MetaMask 会非常谨慎地采用这些技术.

MetaMask 作为传统钱包供应商,可以帮助用户便捷的创造 EOA 账户,并通过提供去中心化的 Swap 服务收取手续费。对于这类已经形成稳定盈利方式的传统钱包巨头,大都不愿意冒险做出改变,当下对账户抽象也是多采取观望态度,虽然积极探索但在尝试方面始终保持谨慎态度。

Dapp 的更新成本

以太坊上现有的 Dapp 包括 Opensea,Uniswap,MetaMask Swap…..,均以 EOA 账户作为默认服务对象。而如果要使这些 Dapp 完全兼容 ERC4337 钱包,需要改变 Dapp 与钱包交互的审查机制以及代币质押机制。要完成这一改变,现今主流 Dapp 的智能合约代码都需要进行改动,这一过程可能产生的安全风险以及更新成本都无法估量。此外,考虑到之前 Tornado 合约而引发的 Dapp 对合约账户的大量交易抵制,这一更新的工作量将更加巨大。

4.4 ERC4337 与跨链

在以太坊与 Layer2 进行交互的跨链桥中,往往默认接收网络的收款地址为发送网络上付款的地址。这在传统的 EOA 账户中完全是没有问题的,因为同一把私钥通过签名便可以实现对两个网络上地址同样的控制效力。但是在 ERC4337 钱包中,转账发起地址为合约地址,而并不受私钥控制,也就不能把收款地址设置为与发送网络相同的地址了。所以 ERC4337 钱包与现今以太坊 Layer1 和 Layer2 之间几乎所有跨链桥都存在不兼容问题。

4.4 ERC4337 的改进措施

  • EIP 提案改进:虽然 ERC4337 标准自身难以改动,但是我们可以通过提出新的 EIP 补充提案对 ERC4337 进行补充,比如 22 年 6 月提出的 EIP5189,通过引入 endoser 合约降低了 Bundler 筛选过程的风险以及进一步防止了 MEV 机器人的恶意攻击。此外还有 EIP3074,EIP5003 等大量 4337 相关的待审查提案。
  • 跨链协议的补充:对于以太坊 Layer1 和 Layer2 跨链问题最根本的解决方法是从跨链桥的底层出发,用户可以自行设置在接收网络上的接收地址,但这一改进成本较高,设计到跨链桥的重新部署以及新合约的安全问题。目前比较理想的解决方案是通过设置一个可信的第三方 EOA 账户,在 ERC4337 钱包和跨链桥间起到一个中间人的作用,而这要求这个中间人存有大量的 ETH 或者 Layer2 token 质押,每次在帮助执行一笔跨链前先质押超额资产,等收款的智能合约钱包接收到转账后返回质押的 token,并给予一定奖励。
  • ERC4337 的自建 Dapp:自从今年 3 月份入口点合约部署以来,大量基于 ERC4337 开发的钱包项目落地以太坊,这些项目自身便与 ERC4337 钱包兼容,比如高度可拓展的智能合约钱包项目 ZeroDev Kernel,与日本政府官方合作的钱包抽象项目 MynaWallet……。这些项目自成一个庞大的账户抽象钱包生态,可以看到,即便在传统钱包商多持观望态度的情况下,以太坊上 UserOperation 的使用量从今年 3 月份以来仍持续攀升,处于快速扩张状态。
以太坊上 UserOperation 月使用量的变化, 来源:Dune, 时间:2023 年 10 月 8 日

5.ERC4337 带来的机会

ERC4337 全景图 来源:Kernel Ventures

5.1 ERC4337 下的矿工 Bundler

ERC4377 中为了使账户主体与账户控制权剥离而引入了 Bundler。只需要一个存储了一定以太坊的 EOA 账户便可充当 Bundler。相比传统 POW 机制下的矿机挖矿,这种新型挖矿方式几乎是零投入成本,同时也不存在可能的法律风险。而相较 POS 机制下的质押挖矿,Bundler 具有极低的参与门槛,不需要质押 32 枚以太坊,仅需要留存可以与 Entry Point 合约进行一次交互的 gas 即可。这一差异的本质原因是 Bundler 作恶的难度远大于验证节点而作恶产生的收益远小于验证节点,因而并不需要质押大量的以太坊以保证 ERC4377 协议整体运作过程中的奖惩平衡。最后,相较于流动性池中的质押收益而言,Bundler 具有更短的锁仓时间,从而使得资产有了更高的流动性,在以太坊面临较大抛压时,用户可以及时取出以减少损失。鉴于上述种种优势,Bundler 未来很有可能成为以太坊上的一种新型投资方式,并进一步衍生出类似于比特币矿池,以太坊质押池的 Bundler 池。具有低成本,回报稳定,高流动性的特点。

5.2 ERC4337 下的 intent centric

Intent centric 即以「意图」为中心,指用户在进行操作时无需了解具体执行步骤,而是程序根据用户需求在底层自动执行模块化的操作。对于新入 web3 的投资者,交易中的各种签名,gas 设置非常不友好,所以他们即便对 crypto 感兴趣,往往也只能借助 CEX 进行投资,无法进入真正的 web3 世界。这一现象产生的本质原因在于 DEX 和 CEX 中操作意图的差异。比如说现在有人想通过 DEX 以对自己获利最大的方式将手上的 USDT 置换为 ETH,那么他首先要从众多交易池中进行挑选,选出最优的一个,然后签名授权该 Dapp 一定权限,再签名确认将 USDT 质押入流动性池,最后签名确认从流动性池中提取出等值的 ETH。以上每一步操作都是基于行为的操作,一个操作对应底层的一个行为。但在 CEX 中,操作均为基于意图的操作。为了实现以最利方案将用户持有的 USDT 置换为 ETH 的意图,仅需要一个市价挂单便可,用户无需对具体挂单价位进行设置,了解。尽管有人提出,通过自己完成这一系列过程可以对交易过程有更具体的了解,防止模块化流程中可能存在的固有问题。但总的来说,拥有这一能力的人还是极为少数,多数人需要的只是一个可以实现他们意图的模块化流程,而没有意愿了解背后对应的具体操作。同时,人为操作过程相较经过长期检验的模块化流程也存在更高的风险性。在 ERC4337 账户抽象诞生之前,EOA 账户执行效率低下,需要对交易一个个进行签名确认,因而需要按照用户意图模块化处理交易的 intent centric 应用在以太坊上一直发展缓慢。而在 ERC4337 中通过引入 UserOperation 和 Bundler ,用户不是每签署一笔交易,经过验证便放入主要内存池等待上链。而是首先将交易 ( ERC4337 中的 UserOperation) 发送到备用内存池和自己另外的或其他用户的 UserOperation 混到一起,等待 Bundler 对这些 UserOperation 进行捆绑后一起提交给入口合约进行验证和执行。在这个过程中,用户仅需声明或签署其偏好,具体过程由 Bundlers 按照已有的共识层或者合约层逻辑进行选择与执行,无需用户参与任何具体过程。在 Dapp 中,我们可以设计好 intent centric 逻辑,当用户想要完成某一目标时,仅需对自己的意图签名即可,而不需要向原来一样自己选择交易行为,并逐个签名。可以预想,随着 ERC4337 的全面推广,intent centric 的 Dapp 将会在以太坊上得到普及,从而大大降低 web3 的进入门槛。

5.3 ERC4337 下的 Defi

Defi 在上一轮牛市与 EOA 账户紧密结合,提升了 crypto 投资者链上交互功能的多样性,提供了质押,做市商,借贷等多样的金融方式,最终促成了 Defi Summer。但是 Defi 的复杂交易过程以及链上损耗为普通用户的参与设置了一个巨大的门槛,阻碍了 Defi 的进一步推广。ERC4337 钱包与 Defi 结合后可以提供 intent centric 的交互方式,使用户获得接近 CEX 的体验。同时通过 ERC4337 中的 Paymaster 还可以实现免 gas 交易,一些运营商也可以通过这个方式降低 Defi 的门槛,吸引更多的人参与。但是不同于 Socialfi 和 gamefi 等赛道, Defi 涉及大量 token 的转账质押,对安全性有极高的要求。而账户抽象的合约层具有比较高的复杂性,容易出现安全漏洞造成用户加密资产的损失。同时,自从美国政府下达了对 Tornado 等许多洗币合约的禁令后,许多 Defi 对合约地址都会严格审查甚至暂停与其交互,因而智能合约钱包与现行 Defi 系统存在大量不兼容的地方,在与 Defi 合约交互过程中甚至还有被误判进入黑名单的可能,这也为 ERC4337 钱包在 Defi 中的推广带来不少阻碍。

5.4 ERC4337 下的全链游戏

不同于早期 gamefi 中的「半链」游戏,仅将游戏资产与道具进行了上链处理,通过去中心化的形式确保其资产安全。全链游戏将游戏的核心逻辑以及经济模型都写成了链上的智能合约,在链上进行游戏交互,实现了全过程的去中心化以及高安全性。但是现阶段的 web3 游戏为了实现全链也付出了巨大代价。首先便是 gas 费的激增,链上游戏,道具,场景的交互,每一步都需要在链上记录,这造成了游戏成本的激增。为了解决此问题,现阶段全链游戏的交互逻辑往往极为简单,但这也限制了用户的交易体验。同时,如果使用传统的 EOA 账户,在全链游戏的交互过程必须忍受极为繁琐的验签流程,对每一次交互进行确认,这使得游戏体验大打折扣。而引入账户抽象后首先便是大大降低了交易成本,交易确认环节仅进行 BLS 聚合签名和一次验签即可,大大节省了密码学验证过程的 gas 消耗。此外,通过批量打包交易,可以将原来一次次确认的过程。同时,个性化智能合约账户的引入可以为全链游戏的模块化搭建提供便利,从而提高开发效率。但是截止目前为止,账户抽象与全链游戏的结合更多的还是出现在 StarkNet 这类实现了原生账户抽象的 Layer2 上面,比如 loot realms,cartridge 等项目。不过原因并非以太坊上不适合进行全链游戏与 ERC4337 钱包的结合,而是由于 Entry Point 合约今年 3 月才完成上链,所以多数以太坊上基于 ERC4337 的全链游戏仍在开发中。可以预见,近期便会有许多基于 ERC4337 的全链游戏在以太坊上落地,从而大大提高其上全链游戏的交互体验以及降低交互费用。而以太坊现有的一些大型全链游戏比如 Dark Forest, Wolf Games 等也可能会考虑对合约层做出更改,以兼容与 ERC4337 账户的交互。

5.5 ERC4337 下的 Socialfi

困于私钥账户的捆绑机制以及 EOA 账户自身有限的交互功能,长期以来 Socialfi 面临着参与门槛高,账户难管理的问题。不佳的用户体验大大限制了 SocialFi 项目的发展上限,账户抽象的引入将彻底改变这一局面,但便利性、可追回性与安全性之间如何取舍,还要根据 Socialfi 具体 web3 账户的重要性进行权衡。首先是私钥与账户控制权的分离,用户不再需要保管复杂又无序的私钥或者助记词,而且可以实现对账户密码的动态调整。比如 2021 年底推出的 ERC4337 项目 Ambire,便实现了通过电子邮件对 web3 账户的创建与私钥恢复。其次,ERC4337 提供的批处理交易解决了本文开头提出的 web3 门槛问题,web2 中一个按钮可以解决的问题,web3 中也可以通过一个按钮来解决。最后,ERC4337 账户中自定义代码逻辑的引入也更贴近 web2 中账户的个性化设计,可以使得每个 Socialfi 账户按照自身喜好引入不同的账户功能,类似于 QQ 中根据用户喜好可以选择开通频道功能与否。

6. 未来展望

截止发稿,web3 用户的数量级大概在 3 亿左右,仅占全球人口的约 4%,相较于全球 60 亿的网民,还有很大发展空间。web3 要对 web2 的体量发起追赶,跨过 10 亿人数这个大关,更低的参与门槛与更多的账户自定义功能是前提条件。当前实现这一目标的所有选项中,ERC4337 相对风险降低,具有比较成熟的框架,还得到了以太坊基金会和主要开发者的认可。因此,自从 Entry Point 入口合约部署以太坊上以来,账户抽象用户的数量也是迎来了爆炸式的增长。

以太坊账户抽象用户月新增数量,来源:Dune 时间:2023 年 10 月 11 日

虽然 ERC4337 现在得到了广泛的认可以及以太坊社区的推进,但在实际推行过程中还是面临不少问题。首先就是自身待定的标准,由于 ERC4377 的许多补充提案还在审核,所以最后的整体实现形式现在还无法确定,这为 ERC4377 生态项目的开发带来了很大的阻碍。其次是 ERC4377 的更新成本,一旦部署入口点合约,需要全网多数钱包统一覆盖原有地址才可以完成更新,成本极高。最后是与现有 Dapp 和跨链桥的不兼容问题,如果要完成 ERC4337 的全面落地,以太坊现有 Dapp 需要大范围升级,面临极高的安全风险和成本。

但是 ERC4377 也有对以上问题做出了积极的应对,比如通过添加外部智能合约提高 Bundler 的打包效率,增添操作码提高智能合约账户权限,补充 EIP 提案解决 Entry Point 难以升级的问题。同时,面对传统 Dapp 的不兼容问题,ERC4337 积极的自建生态,促进账户抽象钱包在以太坊上更为广泛的应用。ERC4337 钱包的全面落地,可以实现以太坊虚拟机层面的 evm intent-centric,而 evm intent-centric 在 Dapp 中进一步抽象便可使 web3 中的操作达到 web2 中以用户意图为中心的简易程度。如果 intent centric 在以太坊 Dapp 可以全面实现,Defi,gamefi 以及几乎所有对操作简便性以及自动化有需求的赛道都将对用户体验做出大大优化,从而吸引更多圈外人士参与。但是 Defi 这种直接涉及 token 转移的赛道增量相对会比较保守,因为其对安全性有更苛刻的要求。而 Socialfi 和 gamefi 这类赛道更在意用户体验,相对弱化安全性。但之前苦于 EOA 账户局限性,一直无法进行复杂交互设计。通过 ERC4337,这些赛道可以解决原来用户门槛过高和用户体验差两大问题,从而迎来用户量的大规模增长,甚至可能作为下一轮牛市中的主要爆发点。

https://foresightnews.pro/article/detail/46272

THE END