原文作者:十四君
原文来源:十四君
在2023.3.1号丹佛的 WalletCon 上,官宣由以太坊基金会开发人员设计实现的ERC-4337 的核心合约已经通过了 OpenZeppelin 的审计,通过各项测试,目前审计后的合约已经顺利部署在以太坊主网以及若干测试网,后续可在各EVM兼容链上运作包括 Polygon、Optimism、Arbitrum、BNB Smart Chain、Avalanche 和 Gnosis Chain等。
本文将梳理4337标准的实现机制、审计报告结论与最新行业进展
目前在以太坊中有两种账户,分别为外部账户(EOA)和合约账户(Contract Account)。外部账户的所有权和签名权理论上是同一个体单位持有的;简单来讲,持有私钥的人不只拥有这个账户的「所有权」,同时还有权利「签名转移所有资产」。所以当前以太坊上所有权和签名权是一体的,这样的外部账户(EOA)设计可能会衍伸出一些值得讨论的问题:
其次单纯的合约钱包(CA)也有一定问题:
上诉的约束让普通用户很难使用以太坊:
破局之道在于实现账户抽象,将所有权(Owner)和签名权(Signer)解耦(Decoupling),从而才能逐个解决上述问题
拓展阅读:
以太坊账户抽象万字研报:拆解 10 个相关 EIP 提案与冲击千万级日活用户瓶颈的七年之路
虽然也有出现若干折中方案,如多签钱包和无需Gas的元交易机制,接下来咱们展开探讨。
多签钱包,即用智能合约实现多签功能的钱包合约账户。以 Safe 多签钱包(原名 Gnoiss Safe)为例,可以设定钱包的多签规则,如三人共管、两人签名可执行交易(2-of–3),而Argent 钱包的做法也类似,创新点是引入所谓的监护人(Guardian)机制,对用户更友好,用户可以设定其他 EOA 账户或邮件/手机作为监护人,监护人可以许可交易、锁定钱包、协助恢复钱包。这样的做法给用户带来了便利,但由于它的钱包软件、钱包合约及后端程序的功能很复杂,它的方案很难成为行业通行的标准做法。
总之,这里很多的优点都源于合约本身的高度定制能力,同样的缺点则是依赖于EOA账户做管理员来驱动,这本质是签名算法的局限性。
相比之下对比传统多签合约钱包的方案,4337的优势则是可以自定义签名算法。这里的签名只需和合约中签名的算法绑定的(确保合约可以完成解签,但不限于只能基于ECDSA和secp256k1签名 ), 而签名这件事本身可以有多种算法实现,不同算法性能和交互模式不同,而这将带来的核心变化是,如更好的将签名的功能转入手机设备端实现从而实现便携的硬件钱包。这点主要的挑战是安卓等设备开放性过高,不可能私钥存手机,需要单独的签名芯片等。
这点优化折中针对的是用户执行链上行为必须依赖已有ETH作为手续费,采用元交易标准后
用户体验上:用户虽然账户中没有 ETH(实为没有 Polygon 链的原生通证 MATIC),但可仍通过网⻚界面铸造 NFT:用户仅需签 即可,我们创建交易、为之代付燃料费、将之提交上链执行。
幕后执行上:
因此在最终的 NFT 合约中,执行的NFTMint得到的对象就不是原始标准中的交易发起者了
例如最近火热的Lens免gas方案,就是非常标准的元交易执行模式,已经累计有上千万笔代付交易了
这个方案是有效的,但有两个缺点:
为什么用这么多篇幅来讲述合约钱包和元交易呢?因为4337的实现里本身几乎就能涵盖上述的优点(也是从中吸取灵感)
拓展阅读:
EIP-4337 标准智能钱包实践研究报告:全景式呈现 4337 标准实例实现过程及机遇探讨
https://research.web3caff.com/zh/archives/4660
现在在去中心化的领域是不存在免费的信任,身份验证必须基于密码学证明,所以无论哪种提案都是需要管理某种意义的私钥,而要实现体验上的折中,首要打破的就是目前账户权限的过于集中,整体改造方式按针对的对象或者环节可以分成三种大方向:
在下图,EIP-4337 方案纳入了最新路线图,这也宣告着以太坊最终在这两条路径中做出了决定。
EIP-4337 是迄今为止是 AA 的最佳方案。
被选用的核心原因是 EIP-4337 完全避免了共识层协议更改,使用标准中提出了新的事务对象 UserOperation,用户将此对象发送到内存池中由 bundlers 从矿工维度批量打包交付合约执行交易事务。是个任何人可以开发链上合约,任何人可以自运行捆绑器的去中心化模式。
后续深入理解最新进展所面临的难题和挑战还是需要先理解原理,咱们从涉及的角色,分工,对照传统交易的执行流程来梳理。
ERC-4337 有五个主要组成部分: UserOperation、Bundler、EntryPoint、Wallet Contract 和 Paymaster Contract。
我们来重新按完成一笔以太坊转账的流程来梳理下按照 ERC-4337 实现的交易是怎样的:
迁入4337后,对任何账户的调度都需要先经过入口点合约,他需要解决的是
ERC-4337 的高开发投入以及快速的迭代进度,说明他能快速成为最终提案、并被各种应用广泛接纳、真正成为事实性行业标准,他带来的核心价值是大幅度降低普通用户使用 Web3 应用的门槛。届时,一个应用能否兼容 ERC-4337,则将影响自己能否利用整个以太坊生态的其他组件、以快速发展。后续的 DApp 应用,也将必然需要能兼容从账户主体已然转移向 ERC-4337 的用户们。最终验证市场的还是用户本身,实现的方案是复杂的,这也仅仅是对于应用方的复杂对于用户本身而言,最终他们能够看到的是:
如此种种对终端用户体验的提升,都是最终为什么要如此费力的推进 ERC-4337 的原因。
上篇更多是围绕ERC-4337运作机制、背景进行说明。下篇详细讲述当前被审计方案的优缺与实施细节,但涉及较多以太坊底层所以阅读难度较高,投稿在Web3Caff平台的research频道(头部付费研报平台,正在进行十四君粉丝联合活动,可使用"shisi"为推荐码延长15天会员期)。阅读原文:https://research.web3caff.com/zh/archives/6900
参考文献(强烈推荐builder阅读)
https://cointelegraph.com/news/ethereum-erc-4337-smart-accounts-launch-at-walletcon-account-abstraction-is-here
https://blog.openzeppelin.com/eip-4337-ethereum-account-abstraction-incremental-audit/#conclusions
https://blog.openzeppelin.com/eth-foundation-account-abstraction-audit/
https://eips.ethereum.org/EIPS/eip-4337
https://hackmd.io/@erc4337/test-suite
https://www.youtube.com/watch?v=eyT6WzJmWyc
https://notes.ethereum.org/@yoav/unified-erc-4337-mempool#What-does-censorship-resistance-require-of-ERC-4337
https://github.com/eth-infinitism/account-abstraction/issues/188
https://notes.ethereum.org/@yoav/unified-erc-4337-mempool
https://github.com/eth-infinitism/account-abstraction/blob/develop/reports/gas-checker.txt#enroll-beta