账户抽象(AA):未来的Web3钱包体验
众所周知,Web3钱包是区块链用户的关键,但目前大多数钱包的用户体验并不是很好,这也是它获得大规模采用的最大障碍之一。新用户要在区块链上交互,必须熟悉以下操作:创建钱包,保存好私钥,购买和转移资金,支付gas费,并在各种DAPP上进行繁琐的操作。因此,降低新用户的进入门槛和改善用户体验是加密货币得到大规模采用的前提。
ERC-4337是一种新的“账户抽象(Account Abstraction,缩写为AA)”标准,它可以在以太坊区块链及兼容EVM的网络上解锁智能合约钱包的功能。ERC-4337是Web3钱包工作方式的最关键的升级之一,它可以通过智能账户为用户创造丝滑的用户体验。
本文将介绍什么是AA智能合约账户(账户抽象),其工作原理,为什么ERC-4337是Web3钱包用户体验的重要升级,以及如何在Web3应用程序中实现“智能账户”。
AA智能合约账户简介
AA智能合约账户(账户抽象)把现行的合约账户、外部账户(EOA)两种账户类型的优势合二为一,让账户本身“可编程”。在确保资产仅由智能合约持有的同时,可以拥有批量交易、代付gas、私钥恢复等更多自定义和扩展功能。既简化了链上交互的流程,又可以自动化实现gas补贴。
账户抽象这(ERC-4337)将是一次以太坊更新,可让用户创建非托管钱包作为可编程的智能合约。它可以解锁许多可能性,例如钱包恢复,无痕交易和团队钱包,从而使Web3体验更安全、便捷、灵活。AA 智能合约钱包(账户抽象)又被称为“智能账户”,“智能钱包”和“账户抽象钱包”等。
以太坊账户类型
以太坊账户是以太坊区块链上存储ETH并可以启动和执行交易的独特数字地址。以太坊账户可以分为外部账户(EOA)和合约账户这两种类型。
外部账户(EOA):
EOA是由用户拥有的钱包,从区块链生态系统外手动操作。他们使用公钥和私钥对进行管理,只要拥有私钥,就可以使用存储在EOA中的资产。EOA最关键的部分是助记词,即设置钱包时产生的12个随机单词(通常为12,有时候也会使用其他数量的单词)。
EOA使用助记词生成私钥,然后用私钥来签署交易。因此,账户拥有者必须离线存储助记词才能免受黑客攻击和盗窃。如果用户丢失私钥,则助记词是重新获取私钥并找回资产的唯一方法。
目前流行的加密钱包大多数都是EOA,例如Coinbase钱包和Metamask。EOA是以太坊生态系统的关键部分,但它们在功能和灵活性方面受到限制,通常只能执行两个动作:将token转移到其他EOA或启动触发另一项智能合约的交易。
这些设计局限性提出了许多挑战:
1.安全性弱:EOA的安全性与助记词直接相关。如果用户丢失私钥和助记词,则可能会丢失所有资产。而且没有社会性的恢复选项。此外,用户无法进行支出限制、双重认证等安全设置。
2.缺乏自定义功能:EOA发起的交易无法自定义或自动化。用户必须手动签署每笔交易。
3. Gas支付:用户必须先有ETH才能为交易支付gas,而新注册的用户却通常没有ETH。
因此,尽管EOA在Web3旅程中扮演了重要角色,但用户体验不佳,特别是对大多数新用户并不友好,因此EOA并非区块链得以大量采用的理想方式。吸引大量新用户需要更简单的用户界面,更好的安全性和更高的灵活性。
合约账户:
合约账户使用智能合约形式作为加密钱包。各种逻辑都可以被编码到智能合约中,以自定义交易并在合同账户中添加其他功能。但是,合约账户没有私钥或助记词,无法主动启动交易。当来自EOA的交易触发智能合约代码时,它们只能执行某个操作。这意味着用户需要维持具有ETH余额的EOA才能操作合约账户。这使合约账户操作比操作独立EOA更加不便,但账户抽象可以改变这一点。
账户抽象的工作原理
账户抽象和ERC-4337最重要的创新并非基于合约的钱包,而是抽象(分开)单独的EOA或合约账户的能力。账户抽象能够创建可执行交易的,无需EOA的独立智能合约账户。任何可用智能合约代码形式定义的自定义操作,都可以在智能账户中实现。
智能账户的操作很简单,它不需要像 EOA 一样发送常规交易,而是使用“用户操作对象”(UserOperation)代表用户进行操作。用户操作对象具有多个数据元素,描述了交易类型、token、交易各个步骤的 gas 价格、验证交易的签名以及其他数据。
基于“账户抽象”的智能账户,在每次发送用户操作时,交易都先会进入用户操作的通用等待区域“内存池”(Mempool)中。然后,这些请求被类似于验证常规交易的节点打包者(Bundler)打包在一起,它们使用与验证器节点相同的逻辑来确定可以提取最大价值的交易。被打包的用户操作通过单个白名单的入口发送,在该白名单中,通过调用不同的功能来验证和执行每个单独的用户操作。
用通俗的话来说,这其实不是一个钱包,而是一个智能合约,但是,你可以把它当作钱包来用,所以叫“抽象”的账户。这样的做的好处是,它可以实现一些全新的,更好体验的功能。那么,到底是哪些功能呢?
以太坊智能账户功能
由于用户操作可以包含任何类型的逻辑,因此它允许用户实现各种自定义操作,以如何管理其账户和资金。以下是5个账户抽象的用例:
1.钱包恢复
与EOA不同,智能账户的安全性不依赖助记词或私钥。智能账户所有者可以将多个设备、人员或第三方服务设置为钱包监护人。如果账户所有者失去了账户凭据,可由监护人签署一项交易以分配新的凭据以访问智能账户。这一过程不会损害账户所有者对资产的控制或所有权。
2.合并交易
在DEX中将一种token兑换为另一种token需要两项单独的交易。首先,用户需要使用其私钥签署批准DAPP使用其想要交换的token。然后,需要签署交易以执行兑换。其他更复杂的Web3交易可能需要三次或更多的签名批准。智能账户则可以将多个交易汇总在一起,并一次性批准所有交易,这会使DeFi 交易与传统的金融交易一样简单。
3.共享账户和团队钱包
EOA账户所有者通过助记词可以控制对EOA的完全访问,如果他想要与他人共享权限,只能给出完整访问权限,或者自己保管全部权限,并没有中间路线可选。而账户抽象可以让账户所有者与多个用户共享对钱包的不同级别的权限。例如,账户所有者可以创建一个多签,需要其中两个或多个用户签署交易才能执行交易。此外,还可以添加只能在特定时间内为一组特定钱包支付限额资金的用户。
4.自动交易
使用EOA时,用户必须手动启动或签署DAPP上的每笔交易。无法将此过程自动化以进行信任的交易。在智能账户中,用户可以定义一系列参数,例如访问特定token、花费限制、持续时间、gas限制、基于预设的触发条件的特定操作等等。
5.使用Token作为手续费代币
使用抽象的账户,即便你的账户里没有以太坊,当必要第三方服务商支持其他Token时,例如USDT,你同样可以使用USDT作为手续费完成账户操作。
综上,AA智能账户的功能包括多重身份验证和账户恢复;将原来普通账户需要多个步骤的交互(例如在 DEX 中兑换token)合并为一键完成;解除了gas对主链币的依赖,可以使用任何代币包括稳定币支付gas,并实现第三方代付gas;以及更多可能性,因为智能账户的钱包本身即是合约,安全性与非托管钱包相同,可以实现更多自定义的功能。
AA智能账户的挑战与前景
目前,ERC-4337仍存在兼容性问题,因为目前并非所有DAPP都可以验证合约账户签名的有效性。 但实施EIP-1217之后将解决这一问题。另外,由于以太坊区块链使用费用仍然昂贵,因此AA智能账户也同样面临gas成本问题。在短期内,可以预见的是,ERC-4337将在L2中得到更多的采用。
总体来说,AA智能账户为Web3应用程序和钱包带来了各种新的可能性。借助智能账户,用户不仅可以更轻松地管理钱包,而且还可以优化钱包运行方式的灵活性。智能账户将是Web3交互的未来,它们将为Web3的可能性设定新的标准。