AA 智能合约账户(账户抽象)把现行的合约账户、外部账户(EOA)两种账户类型的优势合二为一,让账户本身 “可编程”。

作者:Ebunker

封面:Photo by Shubham’s Web3 on Unsplash

众所周知,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 的可能性设定新的标准。

免责声明:作为区块链信息平台,本站所发布文章仅代表作者及嘉宾个人观点,与 Web3Caff 立场无关。本文内容仅用于信息分享,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。