以太坊基金会在3月1日的WalletCon活动上宣布称,以太坊智能合约ERC-4337经过部署、测试,将正式开启智能账户的新时代。
据悉,这是一项被看作实现以太坊关键增强功能的新合约,名为“账户抽象(account abstraction,AA)”。以太坊基金会安全研究员Yoav Weiss证实了该合约已经进行了全面的安全审计。
什么是账户抽象(ERC-4377)?
(1)账户抽象概念
账户抽象是一个将用户的钱包变成智能合约账户的概念,即把当前主流以太坊钱包(指EOA钱包)转换为智能合约钱包(Smart Contract Wallet),实现账户抽象功能需要ERC-4337合约标准。
账户抽象通过省略以太坊账户体系中不必要细节,以此减少复杂性并提高有效性,消除对EOA的需求以及对智能合约钱包的特殊处理。
使用该功能在加密世界具有更大的灵活性。在以太坊生态安全性、隐私性都得到极大保障的同时,一旦基础设施服务商接入“账户抽象”或ERC-4337合约标准,其生态项目及用户都将迎来一波增长高峰。
(2)ERC-4337运行逻辑
ERC-4337合约之所以被看作是实现账户抽象功能的设计之一,在于它部署较轻易。它无需修改区块链底层核心协议,只通过在以太坊主网层添加新层、部署智能合约即可。
在ERC-4337出现之前,社区为了账户抽象的实现也提出了各种各样的方案,如EIP-86、EIP-2938等,但因为一些问题没有被广泛接受。ERC-4337通过提供无需更改共识协议且安全性更高的方案,在社区中得到了更多的关注。
简单来说,ERC-4337有四个主要组成部分:UserOperation、Bundler、EntryPoint和Contract Account。同时这些可以用Paymasters和Aggregators来补充。
**·UserOperations:**是用于与合约账户执行交易的伪交易对象。
**·Bundlers:**是把UserOperations从内存池中打包并将它们发送到EntryPoint区块链上的合约参与者。
**·EntryPoint:**是处理交易验证和执行逻辑的智能合约。
**·Contract Accounts:**是用户拥有的智能合约帐户。
**·Paymasters:**是可选的智能合约账户,可以辅助Contract Accounts。
**·Aggregators:**是可选的智能合约,可以验证Contract Accounts。
账户抽象可以解决什么问题?
我们来对比一下以太坊钱包(EOA)和智能合约钱包(Smart Contract Wallet),以及了解账户抽象可以解决什么问题。
(1)EOA钱包
简化的EOA交易机制,来源:Nethermind
迄今为止,大多数在以太坊和其他 EVM 网络上创建的账户都属于外部拥有账户类别(Externally Owned Accounts,EOA),是使用传统密钥的帐户。也就是说,它们包含一个可用于进行交易和签署消息的私钥。这意味私钥决定着资金的归属,如果您可以访问该私钥,您就可以完全控制该帐户。
大多数流行的钱包,如Metamask、Coinbase和imToken都是EOA,甚至Ledger Nano和Trezor等硬件钱包也是基于EOA。
(2)智能合约钱包
智能合约钱包交易,来源:Nethermind
另一种类型的以太坊账户是合约账户(Contract Accounts,CA),通过账户逻辑开发的合约账户称为智能合约钱包(Smart Contract Wallet/Account,SCW)。与EOA一样,每个智能合约账户都有一个唯一的公共以太坊地址,智能合约账户也可以接收资金并进行类似EOA的交易。
关键区别在于没有使用单个私钥来验证交易,账户如何完成交易背后的逻辑是在智能合约代码中定义的。智能合约是在以太坊区块链上运行并在满足特定条件时执行的程序,此类账户可以指定由谁以及在什么条件下可以执行交易。
(3)抽象账户解决的问题
“账户抽象”创造了一个新的账户类型:通过让账户作为智能合约存在,把“交易验证”和“交易执行”分开,让每个账户都变成了一个具有自己逻辑的智能合约,并具有无缝的兼容性,解决了EOA存在的问题。这种方式它让“个性化账户定制”成为可能,从而给普通用户一个不牺牲自我主权性的安全网和更流畅的用户体验。
以太坊需要进行这项更新,是为了让用户的钱包使用更加友好。比如钱包私钥一旦丢失,账户抽象功能即可轻松地恢复钱包账户,而无需担心私钥一旦丢失,则无法找回。
账户抽象带来的变化
值得一提的是,账户抽象这一概念被以太坊创始人Vitalik多次提到过,他认为实现它一直是以太坊开发人员的长期“梦想”。通过昨天这一消息的宣布,可以说Vitalik及其开发人员的梦想终于实现了。
有了抽象账户功能,用户能感受到什么变化呢?
① 用户可以创建“多重签名钱包”,让一组用户访问一个账户,并要求多个用户签署交易作为额外的安全机制;
② 用户可以用多个不同的密钥来授权交易;
③ 用户可以每周更改帐户的签名者;
④ 用户无需借助助记词也可实现账户恢复,如通过社交关系找回;
⑤ 用户不再需要额外储备ETH来支付其他ERC-20代币gas费。
在目前,外部钱包要在以太坊上交互的gas费只能通过钱包中的ETH来支付,如果你的钱包中只有ERC-20代币,没有ETH,你将没有办法将这些代币转出。当ERC-4337采用后,用户可以使用账户中的ERC-20代币来支付费用,由矿工节点用合约作为中介来代为支付ETH上链并获取用户的ERC-20代币。
抽象化实现后,由外部账户的所有者签名交易并进行广播将不再是发起交易的唯一方法。目前许多以太坊上的应用都依靠中继者在区块链上发布用户交易,并需要向中继者支付费用。如果钱包中可以内置更复杂的合约,有些中继者就不再有存在的必要,也就不需要向他们支付额外的费用。
结语
钱包被看作是进入Web3或加密世界的入口,因此Web3钱包的形式、功能也决定了行业发展的进程。一个在加密世界进行交易随时都有资金损失风险的钱包,肯定无法带来行业的发展。
智能合约钱包的推出,无疑助推了行业的进步。以太坊Layer 2 Rollup+账户抽象的技术路径已成发展定局,各个Rollup提供商也推出了兼容账户抽象的新版本。
目前ERC-4337的核心合约“账户抽象”已经通过了Open Zeppelin的审计,并将在每个以太坊虚拟机(EVM)上兼容,可用网络包括 Polygon、Optimism、Arbitrum、BNB Smart Chain、Avalanche和Gnosis Chain。关于“账户抽象”的协议也在不断发展。
这也意味着,未来新用户将不再需要特别保存、记忆复杂的助记词,设置钱包的相关专业技术,就能进入去中心化的加密世界。
可以说,Web3正向着越来越适用每个普通人的方向转变,以太坊智能合约钱包的推出,也意味着一个智能账户的新时代已经开启。这对于加密钱包行业无疑是颠覆性的变革,正如Yoav Weiss所说,在一张纸上抄写12个单词的时代即将成为过去式。
参考:
鹿目圆《以太坊账户抽象和ERC-4337》
Coindesk:Ethereum Says ERC-4337 Deployed, Tested, Beginning Era of Smart Accounts
Cointelegraph:Ethereum ERC-4337 'smart accounts' launch at WalletCon: Account abstraction is here
Stackup:Account Abstraction;ERC-4337 Overview
SevenX Ventures《以太坊钱包的变革:账户抽象与ERC-4337的机遇与挑战》