
Unipass 钱包将 MPC 技术和 CA 合约钱包结合,使得用户可以使用社交登陆而无需自我保管 EOA 钱包。
原文作者:Bill Qian、 Bonan Yuan
原文来源:Cypher Capital
抽象账户的本质是合约账户( Contract Account ),在 Ethereum 中,账户有 2 种
一个简单的例子, Contract Address 即为合约部署的地址,任何一个 Ethereum 中可以被调用的合约,都有一个合约地址,以 USDT 的合约地址为例。 EOA 账户则为我们目前熟知的 ETH 账户,即 Metamask 钱包中现实的账户。
0xdac17f958d2ee523a2206206994597c13d831ec7, 该地址即为USDT的token 合约地址, 合约地址无法直接从外部创建,而是用 EOA来创建和管理,创建USDT合约地址的EOA是0x36928500Bc1dCd7af6a2B4008875CC336b927D57。
因此我们了解到, AA 账户是一种特殊的合约账户( CA ),在 ETH 中 AA 账户依然需要 EOA 创建,且由外部的 EOA 控制,因为 ETH 中与链交互的唯一方式是由 EOA 发起的。因此 AA 是一种对 CA 钱包的标准化和模块化实现,且在不断迭代。
上文阐述了 AA 与 CA 的关系,在ERC4 3 3 7的标准提出前,已经有相当数量的 CA 钱包,下面列举了 3 个主流的 CA 钱包和工作原理
在 ETH 发展的极早期,已经出现了多个合约钱包,最著名的合约钱包是由 PolkaDot 创始人 Gavin Wood 团队开发的 Parity 钱包。 Parity 为 ETH 节点的 Rust 实现,与之对应的是由 golang 开发的 Geth 节点。 Parity 钱包是一个支持多签的合约钱包,允许一个合约账户( CA )由多个 EOA 来控制和管理。在 2017 年,一个黑客通过发现 parity 钱包的 bug ,盗走了超过15万个 ETH 。该事件也引起了人们对 CA 钱包的不信任。
因此, AA 钱包需要大量的实践和标准化,来防止类似事件的发生。
Gnosis 的多签钱包是目前主流的Multi-sig多签名钱包,并被大多数机构和开发者所使用,相当数量的团队将开发资金存储于 Gnosis 的多签钱包中以防止团队成员作恶。著名的使用 Gnosis Safe 的团队如 Yearn, Aave 和 Balancer。Gnosis Safe的安全性极高,但是使用相对昂贵,这也是CA钱包普遍存在的问题
Unipass 钱包将 MPC 技术和 CA 合约钱包结合,使得用户可以使用社交登陆而无需自我保管 EOA 钱包。需要注意的是 Parity 钱包和 Gnosis Safe 依然需要用户自我托管私钥。 Unipass 的大致流程是
需要注意的是, Unipass 的原始 AA 方案并没有严格执行 ERC4337 的标准。本质钱包的控制权依然由 Unipass 的 MPC 控制的 EOA 所托管。
AA 的本质是一种标准化,模块化的 CA 账户,4337中主要体现为如下的创新
上图大致描述了 ERC4337 下的标准交易流程
我们可以总结 AA 与传统 CA 的最大区别为:
在充分认知 AA 之前,不少人通常将 AA 与 MPC 的概念混淆,因为他们都支持了例如社交恢复,无浏览器插件等功能。 AA 与 MPC 的本质区别如下
下面介绍下 MPC ,以及 MPC 的特点。
MPC 方案在目前的社交登陆中被广泛使用,众多项目纷纷推出 MPC 钱包以满足 Ch a inless 的无感钱包体验,用户无需安装插件钱包和托管私钥。在行业内,该类托管钱包统称为 W a a S ( W a llet a s a Service )。目前成熟的项目诸如
面对雨后春笋般冒出的 Waas 服务,可以预见未来提供 WaaS 服务的产品会越来越多,但是中心化交易所在这方面有绝对的用户体量和大规模商用经验,可能未来所有的中心化交易所都会提供相关服务。
传统 EOA 账户的最大劣势是需要用户自主托管私钥,自主托管私钥存在以下问题:
AA 在设计时,允许用户设立社交恢复账户,借助另一个或者多个外部的 EOA 账户,来恢复对 AA 的控制权,以下为社交恢复的常见流程。
通过上诉的方法,即使用户丢失了控制 AA 的 EOA 账户,依然可以通过社交恢复更改为新的 EOA 。并且与 MPC 的社交登陆不同,该社交恢复完全基于去中心化方案,不存在 MPC 的单点故障风险。
GAS 代付是区块链大规模应用( Mass Adaption )的核心。对于初入 Web3 的用户,最大的痛点便是与链进行交互前,需要预充值 gas 。然而 Web3 的新人获取 ETH 或其他链的代币有较高的门槛,这便大大增加了 Web3 应用对新用户的获取成本。通过 AA 的 paymaster 来做 Gas 代付,可以允许 paymaster 在前期补贴用户的 gas ,降低 web3 的准入门槛。
另一个影响 Web3 大规模应用的核心是跨链问题,假设一个用户在区块链 A (比如 Ethereum )中有 ETH ,但是却想去体验另一条链 B 的应用(例如 Matic 或者 B SC),用户首先需要 swap 成相应链的 Token 并使用跨链桥将资产转移至 B ,整个过程繁琐且冗长。 Paymaster 通过集成跨链协议,如 Layer0 / Warmhole ,可以让用户在链 A 充值,并在任何其他链中无感的使用应用,这使得链的边界感消失,也使得新的 Dapp 更容易获得来自其他链的用户。
上文提到了 AA 账户的优势,然而目前 ERC -4337依然在快速的迭代和创新以解决目前 AA 中尚存的一些劣势
与 EOA 的账户不同,一个 EOA 账户在被创建之后,在任何 EVM 兼容链中,用户可以使用同一对公私钥在不同的链上进行交互。然而,因为 AA 的本质是 CA 账户( Contract Account ),在任何一条链或 Layer2 中使用 AA ,都需要重新部署新的 AA 合约。 AA 合约的部署成本较高,用户可能因此缺乏使用 AA 的动力。
同时,若用户部署不当,如使用了不同的 Factory 来部署 AA 合约账户,可能导致在不同链上的 AA 地址不同,这对用户使用和理解会造成相当程度的困扰。目前 AA 的 Wallet Factory 已经实现了不同链生成相同的 AA 地址的实现,但是在实际使用中,用户依然需要谨慎的检查使用的协议,以确保在不同链上的 AA 地址相同,防止未来可能出现的麻烦和困扰
上文提到, AA 账户需要用户在不同链和 Layer2 分别部署 Wallet Factory 生成的 AA 合约。即使目前的侧链, EVM 兼容链, Layer2 gas 较低,依然是一笔不小的开销。在当前的 gas , ETH 的币价 1800 的情形下,在 ETH 主网部署 AA 账户大致需要20-40美金, EVM 兼容链或者 Layer2 则为0.5美金-5美金不等。在用户尚未使用 Dapp 下就需要支付 AA 的部署费用,对于大多数用户是很难接受的。假设这部费用由 Bundler 或者 Paymaster 补贴,补贴的成本依然过高,需要较强的动机( incentive )。
取决于 AA 的实现方式,以及 Bundler 一次性打包交易的数量(数量越多,单个 UserOP 分摊的 gas 越低),当前标准ERC4 3 3 7交易的 gas 消耗可能为常规 EOA 账户数倍。原因是因为 AA 账户发起的一笔交易往往需要调用 3 个或以上的合约,并且有链上 BLS 签名验证这类及其复杂的计算。目前的4 3 3 7标准也在为此优化,路线包括
上述提到了使用 ERC4337 标准会有相对高昂的成本,具体的成本如何。首先,这里要普及一个知识,即 gas 费用的计算公式:
fee = gas × price
那么, ERC4337 的部署和使用成本具体成本为多少呢, StackUp 的团队在他们的博客中进行了准确的测算。
https://www.stackup.sh/blog/how-much-more-expensive-is-erc-4337
Table 1. Gas for ERC -4337 transactions

从上述的图表中可以看出:
Table 2. Gas fee estimates for ERC -4337 transactions
Gas Price RangeToken PriceCreate ERC-4337 AccountSimple TransferERC-20 TransferEthereum30.5 ± 10.6 gwei$2000$23.50 ± $8.17$5.41 ± $1.88$5.54 ± $1.93Polygon224 ± 108 gwei$1.10$0.09 ± $0.05$0.02 ± $0.01$0.02 ± $0.01Optimism 3,40.0013 ± 0.008 gwei$2000$0.50 ± $0.18$0.45 ± $0.16$0.46 ± $0.17Avalanche 5,636.4 ± 4.5 nAVAX$20$0.29 ± $0.04$0.06 ± $0.01$0.07 ± $0.01BnB Smart Chain7.05 ± 0.53 gwei$350$0.95 ± $0.07$0.22 ± $0.02$0.22 ± $0.02
上述图表,是当前的 gas 价格下,对 ERC -4337的 AA 账户各种操作的成本测算。我们可以看出:
总结一下 ERC -4337的成本测算,因为在主网创建 ERC -4337的 AA 账户的成本较高, ERC -4337的大规模采用大概率会在 Layer2 和 EVM 兼容链中率先采用。
目前另一个阻碍 AA 发展的原因是基础设施对 AA 合约的兼容,目前除原生 AA 链外的 Dapp 大多数仅仅支持 EOA 账户。对 AA 的支持需要 Dapp 使用 AA 的 sdk 发起交易,并更改查询( query )的参数来获取用户信息。
此外,区块链浏览器目前的用户体验更多是为了 EOA 账户设计,例如 Etherscan 。要更好的方便 AA 账户查询,区块链浏览器可能还需要在 UI 和 UX 进行一系列的优化来方便用户更方便的了解自己账户的变动。
在 ETH 之外的新公链,大多数已经实现了原生的 AA 账户。
优势
劣势
Near
Near 在共识层实现了原生的 AA ,账户直接存储于区块链中。用户可以通过多个 access keys 来控制账户,并且支持社交恢复( Email ,手机号)。下图为 ETH 账户与 Near 账户的区别。
Ethereum WalletNEAR AccountPublic IdentifierPublic Key (0x123...)Account ID (alice.near)Secret KeyPrivate Key (0x456...)Multiple Keypairs with permissions: - FullAccess key - FunctionCall keyCharacteristics- Private key gives full access- Account doesn't have to be created via a transaction- Permission-based keypair - Account ID must be created via blockchain transactionAptos / Sui
因为 Aptos 和 Sui 的 Resource Ownership 模型, Aptos 和 Sui 也在共识层实现了原生的 AA 。 以 Aptos 为例, Aptos 的账户是区块链上的一组资源,因此在 Aptos 创建账户,需要预先充值 Aptos 来完成账户的初始化。 Aptos / Sui 的账户也支持更改 authentication _ key ,但是账户的地址不变等 AA 特性。
ZKsync与 Near / Aptos / Sui / Starknet 不同, ZKsync 在共识层同时支持 EOA 和 AA 。因此 ZKsync 既可以用 EOA 发起交易,也可以由 AA 发起交易,借此 ZKsync 可以使用目前主流的 Metamask 钱包,以及 AA 的 Argent 钱包。 ZKSync 的 AA 设计参考了 ERC -4337,因此对 EIP4337 的钱包和 Dapp 有较好的兼容性。目前 ZKsync 的 AA 发起交易的的额外 gas 消耗约为 execution _ gas + 20000。在写作时,大约为0. 01USD 。相比非原生 AA 的 ERC 4337,开销很小。Starknet
Starknet 在原生支持 AA ,且不支持 EOA 发起交易。 Starknet 的 AA 账户在设计之中,也是参考了 ERC4337 ,目前 Starknet 的 AA 合约由 OpenZeppelin 提供,使用 Cairo 预言进行开发。
ICP
ICP 中的原生 AA 账户称为 Internet Identity ,以下简称 II 。 II 的实现与 ERC4337 有较大的区别。 Internet Identity 使用了在 Web2 框架中常用的 WebAuthn ,使得用户可以使用手机内置的安全芯片来控制账户,且可以自由添加,删除设备。 II 事实将用户的手机设备变成了硬件钱包。
Bundler 在 AA 生态中取代了原来节点 Mempool 的地位,用户的 UserOp 不在发给 Validator ,而是发给 Bundler 进行打包,并由 Bundler 上链。 目前主流的 bundler 如下:
Bundler 目前的痛点
Bundler 目前尚处于快速的发展和迭代中。
Paymaster 是 AA 最重要的一部分, paymaster 可以补贴用户的 gas ,大幅降低 Web3 的准入门槛,下面介绍一些目前主流的 paymaster 实现。
Wallets
传统的 EOA 账户往往无法同时实现去中心化,易用性和安全性。
在传统的 EOA 框架下,用户需要使用 Web3 应用,往往需要先使用法币获取链的代币,如 ETH 。这需要涉及使用 CEX 的入金服务,再兑换成需要使用链的代币,最终转账到新创建的 EOA 账户中。整个过程,需要大量的 web3 基本认知,且在众多地区,该流程相当繁琐。通过引入 AA 的 paymaster ,用户初期的 onboarding 成本可转移到 Dapp 的项目方。 Gas 费的转移对 web3 的大规模应用,有极大的意义。
目前,大多设备,如手机,笔记本电脑等,已经内置了安全芯片,如 Mac 和 Iphone 使用的 Apple T2 Security Chip 。因此本质上,每一台搭载了 Tee 芯片的设备,都是非常可靠的硬件钱包。但是这些安全芯片目前并不支持对 ECDSA 或别的常用区块链签名算法的支持。
得益于 ERC -4337的高度模块化设计,通过对 ERC 4337的拓展和迭代,未来 AA 账户将获得极高的安全性提升。
当前,另一个验证阻碍 web3 大规模应用的问题是区块链生态在不同链上的割裂。
引入 paymaster 的最大优势是给 Dapp 补贴用户程序化的设立了条件,以。
在 EOA 下,由于 Metamask 的统治地位,目前的 Dapp 主要是用网页的 DApp 接入,所以网页插件钱包的市场占有率较高。但是 web3 的 mass Adaption 依赖移动端的用户参与,因此 AA 的开发和适配会更加 Mobile Native 。
随着 Dark Forest 的爆火,全链游戏的风潮悄然而至,然而 EOA 在游戏中的体验非常不好。想象一下,每次在游戏中进行任何操作都需要使用钱包进行授权或签名交易,玩家并无法真正专注于游戏本身。因此专为全链游戏设计的 AA 账户:游廊账户( Arcade Account )应运而生。游廊账户是对普通 AA 账户的特化,通过授权特定游戏的特定操作,玩家在全链游戏中无需重复授权和签名交易,大大提高了游戏体验。因此未来全链游戏的兴起极有可能推动 AA 账户的大规模采纳。
近期, intent - based transaction s 的概念随着 Unibot 的爆火而兴起, Uniswap 近期也发起了 Uniswap X 项目来推进其 intent - based transaction s 的落地。何为 intent - based transaction ,下面这个例子可以很简单的解释:
Intent Based Transactions 有下列优势:
目前, CowSwap 已经实现了基于 EOA 的 Intent Based Transactions ,但是基于 EOA 的 Intent Based Transactions 依然需要用户先授权( ERC -20, Approve ),才可以发起。然而,在 AA 的新账户架构下, 用户可以将 Approve 和 Intent 一并发给 bundler , AA 的 bundler 可以同时接入 Intents Poll ,撮合 intents ,实现更便捷的交易体验。