EIP-4337 标准智能钱包实践研究报告:全景式呈现 4337 标准实例实现过程及机遇探讨
以太坊区块链关于账户抽象的 EIP–4337 提案,是当前智能合约钱包热潮中的焦点。让用户在链上自行管理资产,是区块链技术给互联网带来的一个主要变革,而这也是所谓「可拥有」的 Web3.0 给出的最大承诺。但目前,对于用户来说,依赖于助记词、私钥的链上账户有着极高的使用门槛;而对开发者来说,当前的账户本身没有编程性可言。
EIP–4337 的「钱包合约账户」或将改变上述链上账户的尴尬状态,并成为众多 Web3.0 应用提供给用户自行保管资产的主要方式,且有可能会推动 Web3 的大规模采用。在这里,我将基于提案技术规格和项目组的官方代码实现,来探讨它带来的机遇及如何实际开发。
编者注:本份研究报告作者采用了与传统 Web2 解决方案对比介绍的撰写手法,通过掰开揉碎、深入浅出的方式,使得非技术背景人员也能够获益良多。
作者:方军,Web3Caff Research 特邀研究员
封面:Photo by Resource Database™ on Unsplash
字数:本份研报超 16000 字,预计阅读时长 33 分钟
目录:
前言
一个使用场景
EIP-4337 带来的六个变化
EIP-4337 相关术语表
为什么需要 EIP-4337
现有改进之一: 多签钱包
现有改进之二: 无需燃料费的元交易
以太坊账户:EOA 外部账户与合约账户
当前实践中的以太坊账户改进
EIP-4337 的三种场景
场景一: 用户的「钱包合约账户」自付燃料费
场景二: 由代付者(Paymaster)支付燃料费
场景三: 使用聚合签名
EIP-4337 的原理与组件
UserOperation
入口点合约 EntryPoint
打包者、打包者网络与 UO Mempool
准备工作: 合约部署与运行打包者
创建账户: 首次操作钱包
资产转账: 转账 ETH 与 ERC20 Token
代付机制: 代付者支付燃料费
运行 EIP-4337:通过运行理解
EIP-4337 的组件详解
应用与钱包开发者的视⻆
钱包应用的两项关键任务
钱包合约与部署者合约
链外签名与链上签名验证
代付者合约
总结与展望