复制成功

分享至

主页 > 数字货币 >

解密以太坊ERC4337变局 我们可以窥见哪些机会?

2023.11.01

作者:Jerry Luo,Kernel Ventures

TL.DR

当下以太坊上主流的钱包类型有 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。

免责声明:数字资产交易涉及重大风险,本资料不应作为投资决策依据,亦不应被解释为从事投资交易的建议。请确保充分了解所涉及的风险并谨慎投资。OKEx学院仅提供信息参考,不构成任何投资建议,用户一切投资行为与本站无关。

加⼊OKEx全球社群

和全球数字资产投资者交流讨论

扫码加入OKEx社群

相关推荐

industry-frontier