一文领略以太坊钱包的前世今生和未来。
原文标题:《A&T View:我们离普及智能合约钱包还有多远?一文看懂 ERC-4337》
撰文:Todd,A&T Capital VP,Web3 Maximalist
当前主流以太坊钱包(指 EOA 钱包)的用户体验很有限,以下便捷性功能都只能通过智能合约钱包来完成(一些链外辅助方案可以提供便利,但会引入不必要的外部风险,故不在本文讨论范围内)。
幸运的是,我们已经很接近通行的智能合约标准,而这意味着用户很快就能拥有 100 倍的以太坊钱包体验!
智能合约钱包 (Smart Contract Wallet) 是当前以太坊支持的两种钱包形态之一,而另一种是大众所常用的 EOA 钱包(e.g Metamask)。
顾名思义,前述的一切美好价值都得益于智能合约:
但「私钥即账户」的特性面对的限制也很明显:用户不能授权另一个密钥来为给定地址签名,也不能在其上编写自定义逻辑。
账户抽象 (Account Abstraction) 是通过省略以太坊账户体系中不必要细节,来减少复杂性并提高有效性有效地(消除了对 EOA 的需求和对智能合约钱包的特殊处理),最终为前述的有价值功能提供基础!(可参照 Abstraction 在 Computer Science 里的解释【1】)
ERC-4337 是实现账户抽象效用的设计之一:
(如果对技术细节没有兴趣,可直接跳至「ERC-4337 的优势,相较于目前主流智能合约钱包」)
辅助阅读 tips:
上图中,分割线将每个框架分成了三个部分:用户签名阶段,中继阶段(在交易被出块打包前),最终执行阶段(在交易被出块打包后)。希望这样的分割能让你更好的理解 。
一笔交易,由用户用其私钥进行标准的 ECDSA 签名,随后将其发送到以太坊 Mempool,矿工将其打包至下一个区块内。
与 EOA 最大的区别:出于网络安全以及更好 UX 的考虑,目前的主流智能合约钱包需要建立&运营一个 replayer 来将用户的信息发送至最终的智能合约钱包。
考虑到以太坊目前主流智能合约钱包(e.g. Safe, Argent, Loopring)之中并不存在一个通行的开发标准,每个项目都必须开发&维护自己的 relayer 和相关的费用模块,并独立审计其采用的智能合约功能。
与目前主流智能合约钱包最大的区别在于:
具体流程是这样的,不同于 transaction,用户发出的 User Operation 会汇集到 User Operation Mempool,并由 Bundler 对数笔 User Operation 进行打包(并附上 gas fee)后发给以太坊的 transaction mempool,随后由出块节点包含至下一个区块。
上述打包的 User Operation 将由 Entry Point 智能合约处理,包括初次部署智能合约账户以及验证用户 User Operation 对象。
最终,用户 User Operation 由用户选择的智能合约钱包处理。
(感谢 https://hackmd.io/@erc4337 【2】) 的巨大帮助)
答案是很快了。核心合约基本准备就绪,数个优秀团队即将发布生产级的 ERC-4337 原生客户端钱包!
要部署 ERC-4337——整个 EVM 生态系统的通用标准,需要开发几个主要模块(如上图红点所示):
① 生产级 ERC-4337 源生客户端钱包
虽然 ERC-4337 没有指定签名方案,但依赖 MetaMask 为 UserOperation 使用 ERC-191 或 ERC-712 签名的 dapp 并不是最佳的用户体验。Market 需要客户端钱包通过专用的标准签名方案原生支持代理钱包地址及其 UserOperation 交易。
开发进展:
② UserOperation Block Builder Bundler
ERC-4337 网络的主要操作模式至少需要一定部分的网络块构建结构(e.g. 矿工、验证器、排序器等)才能在其公共 P2P 内存池中原生支持 UserOps,并使用这些 UserOps 创建捆绑包并包含 Entry Point 交易在 block 中。
开发进展:
③ Entry Point 智能合约
ERC-4337 的核心部分。
开发进展:
④ 生产级 ERC-4337 ECDSA 代理钱包智能合约
ERC-4337 的主要操作模式假设每个用户都将获得由代理钱包代表的身份。这意味着为此类钱包提供安全实施至关重要。这也意味着我们必须保证用户的代理钱包地址在整个网络中是确定性和一致的,就像 EOA 一样。
开发进展:
⑤ ERC-4337 客户端 SDK
这部分旨在使 ERC-4337 集成到各种钱包和 dapp 中尽可能简单,例如继续使用 MetaMask,同时能体验到 ERC-4337 的功能。
开发情况:
⑥⑦⑧⑨... 社交找回、Paymaster 以及你想要的便捷性功能
虽然这些功能不是 ERC-4337 钱包的必备部分,但 ERC-4337 钱包的价值必将建立在其之上。
开发进度:
答案是比 EVM 环境更早。目前,开发人员已经可以在测试网中使用它进行编码,并且许多强大的功能已经进入生产级。
作为非 EVM 等价区块链,Starkware 可以通过在协议级别上进行一些修改来更轻松地实现帐户抽象(与以太坊和 100% EVM 环境相比)。
StarkNet 上 Account Abstraction 的基本流程
目前,帐户抽象的进展几乎已达到可大规模推广的生产级别,且 Starkware 已发布了涵盖帐户抽象改进的 StarkNet Alpha 0.10.0(受 ERC-4337 启发)
[DevConnect StarkNet 黑客马拉松] 期间已经出现了一些很有趣的东西:
回想一下前述的内容,账户抽象的主要合约甚至钱包客户端 SDK 都会是开源的,这意味着在基于账户抽象框架来推出一个基础钱包(不含各种花样功能)是非常容易的。随后,开源社区已经有很多很棒的便捷性功能,并且可以期待还会有更多。最重要的是,这些基础钱包和便捷性功能都在同一个标准下!
那么,产品形式大概会是这样:任何人都可以构建一个标准化的前端,并加载一个便捷性功能的插件市场,让用户可以他们想要使用的插件,并展示当前正在使用的插件(我不是 PM 或美工,如果下图很难看,还请谅解 :)
参考前述理论,如果基础界面会沉淀为底层基础设施,而大部分的便捷性功能也都将开源,那如何做价值捕获?
当然,钱包可以继续通过 swap 功能来实现流量变现。
但对这些极具价值的便捷性功能而言,目前的市场缺乏针对这类公共物品的适当的激励机制,那谁来负责丰富更多的便捷性功能呢?毕竟这是智能合约钱包最重要的价值所在。
大众用户能习惯对公共物品的按次付费吗?
正如 Vitalik 多次公开对账户抽象的阐述那样:账户抽象是区块链网络进行主流人群的必经之路! 希望这篇文章能让你对它有更好的理解。
尽管仍然存在许多实际限制(e.g. 许多不支持 EIP-1271 的 dapp >>> 智能合约钱包无法与这些 dapp 进行交互),并且它不适合多链场景。但就像 L2 是以太坊的未来一样,我相信 账户抽象是以太坊钱包的未来!
当然,我也鼓励大家在多链用例中尝试 MPC 钱包,它应该是近期最好的钱包解决方案了。如果你对多链体系下的账户抽象钱包有任何想法,请联系我!
感谢 @沙漏时间@cejay @kristofgazso 的帮助!
参考内容:
https://hackmd.io/@s0lness/BJUb16Yo9
https://medium.com/nethermind-eth/ethereum-wallets-today-and-tomorrow-eip-3074-vs-erc-4337-a7732b81efc8
【1】https://en.wikipedia.org/wiki/Abstraction_(computer_science)
【2】https://hackmd.io/@erc4337
【3】https://twitter.com/lordOfAFew/status/1519057227834818561
【4】https://deadman.me/
【5】https ://www.notion.so/33c8008e033d4040b9438edf5225c580
【6】https://www.stackup.sh
【7】https://www.candidewallet.com
【8】https://twitter.com/soulwallet_eth
【9】https://nethermind.io/
【10】https://github.com/NethermindEth/nethermind/tree/master/src/Nethermind/Nethermind.AccountAbstraction
【11】https://github.com/NethermindEth/mev-aa-geth
【12】https://twitter.com/infinitism8
【13】https://github.com/eth-infinitism/account-abstraction
【14】https://github.com/stackupfinance/stackup/blob/main/apps/contracts/contracts/entrypoint/EntryPoint.sol
【15】https://www.biconomy.io/
【16】https://github.com/eth-infinitism/account-abstraction
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。