钱包帐户是进入Web3必备的一环,而比特币网路的UTXO模式和以太坊网路的帐户模式一直以来都处於对比优劣,当然两种模式各有千秋,不能单纯说谁更好,只是能说更适合哪些场景。
(前情提要:V神再捧「以太坊帐户抽象」:让加密钱包像Email一样简单 )
(背景补充:L2》Visa 发表《自托管钱包的自动循环支付》:利用帐户抽象、提议使用 StarkNet )
本文目录
概要
实际上,被用来对比的以太坊 EOA 帐户是一个比较原始的产品,具体来说:
EOA 帐户这麽难用,Vitalik 其实早就知道了,以太坊团队也在尝试解决这个问题,而帐户抽象就是解决方案之一。但由於无法为帐户抽象修改以太坊底层共识,一直等到 ERC-4337 这个基於应用层的智慧合约钱包的方案的提出,帐户抽象才真正得到关注,成为热点话题。
延伸阅读:OKX 正式推出「帐户抽象(AA)」智能合约钱包!即将支援社交恢复功能
本文将在对帐户抽象和 ERC-4337 进行简单介绍後,根据帐户抽象的应用与 Web2 帐户体系的发展,推测未来 Web3 帐户体系的演进和流量入口归属。
从生态角度看,过往使用者需要利用 EOA 才能进行复杂的链上操作,并且由於目前链上生态发展有限,故而只能提供有限的协议,使用者的实际需求并不能得到有效的满足。而帐户抽象将上述操作执行简化,仅需使用者 input,即可得到 output,不再有频繁的点选和繁琐的签名。 可以说,AA 的落地使得链上生态由卖方主导转向买方主导。
帐户抽象(Account Abstaction)与 ERC-4337
帐户抽象(Account Abstaction,以下简称 AA)具体指的是什麽? 将底层技术和资料结构抽象,以简化使用者和开发者的操作步骤。简单理解就是「在 EOA 的基础上实现 CA」的功能性。
ERC-4337 成为了 AA 的基础标准。ERC-4337 引入了 UserOperation,它是一种表示使用者意图的特殊交易,允许合约帐户主动执行操作。这些 UserOperation 由一个名为 Bundler 的角色管理,它模拟执行 UserOperation 并将有效的操作新增到一个特殊的交易池。然後,EntryPoint 合约验证和执行这些 UserOperation,以实现使用者意图。
帐户型别
以太坊中有两种主要型别的帐户:EOA(Externally Owned Account)帐户和合约(Contract Account)帐户。
EOA 帐户的地址长度为 20 位元组,由使用者建立时生成的私钥和椭圆曲线加密演算法产生的公钥计算而来。EOA 帐户状态包括交易次数(Nonce)和资产数量(Balance)。合约帐户的地址也是 20 位元组,但是它们是由合约建立交易的传送人地址和 Nonce 计算而来。合约帐户状态包括合约数量(Nonce)、资产数量(Balance)、程式码hash(CodeHash)和储存根hash(StorageRoot),後者用於储存合约资料的 Merkle Patricia Trie 树的根节点hash值。
延伸阅读:进击的钱包:带你了解加密钱包的新发展
帐户型别和状态资讯对於以太坊上的交易和智慧合约执行至关重要,也是 EOA 和 CA 的区别所在。
交易
以太坊的交易包括发送者和接收者资讯、数位签名、交易次数、资金转移数量、可选资料、燃料限制以及交易费用。上述 2 种不同的帐户型别产生了 2 种截然不同的通讯交易型别。
在签名过程中,交易资料被hash後进行数位签名,验证人通过计算椭圆曲线上的点来验证签名的有效性,无需获取传送者的私钥,只需提供交易资讯和公钥。公钥的恢复是通过签名中的 v 值来实现,确保了签名的安全和验证的高效。
帐户抽象
以太坊的交易结构和签名验证过程揭示了一个重要事实,即发起交易的帐户必须是拥有公私钥对的 EOA 帐户。
合约帐户,由於缺乏公私钥对,无法主动发起交易,而是在接收到交易後根据交易中的资讯自动执行帐户中的智慧合约程式码,或向其他帐户传送交易资讯,甚至建立新的智慧合约。因此,目前由主流钱包应用程式如 Metamask 建立的钱包都是 EOA 帐户。然而,EOA 帐户在使用中存在一些缺陷:私钥风险、签名演算法受限、签名许可权过高、交易费用限制。
合约帐户可以储存程式码和资料,并执行预定义的智慧合约逻辑来解决 EOA 帐户的上述问题。然而,合约帐户无法主动发起交易。
帐户抽象是对以上两种帐户的一种改进,尝试模糊二者之间的界限,变成一种包含复杂逻辑的通用性帐户,使帐户可以同时拥有 CA(合约帐户)和 EOA 帐户的功能 。
ERC-4337
ERC-4337 在不修改以太坊共识层的情况下完成了帐户抽象的功能,成为以太坊最终采用的方案。最终实现链下撮合,链上交易的终极愿景。
延伸阅读:V神大推的「以太坊帐户抽象」是什麽? ERC-4337 实用案例说明
UserOperation
ERC-4337 引入了一种名为 UserOperation 的新概念,以解决合约帐户无法主动发起交易的问题,同时避免更改以太坊协议底层的交易型别。
UserOperation 与标准交易相似,但它仅表示使用者的意图,而不是直接的交易行为。 标准交易会被发送到以太坊的 mempool(交易池),然後由 searcher 和 builder 组合成一个完整的区块,最终由 proposer 传送到区块链上,通常选择回报最高的区块。与此不同,UserOperation 并不是一笔真正的交易,因此 ERC-4337 引入了一个新的 mempool 和一个名为 Bundler 的角色,以去中心化的方式执行 UserOperation。这种创新允许使用者的意图能够被处理和执行,而无需直接参与标准交易流程。
Bundler
Bundler 在处理 UserOperation 时,首先进行基本的合法性检查,然後模拟执行操作以确认签名的有效性。如果模拟执行成功,UserOperation 会被新增到 UserOperation mempool 中,以等待实际链上执行。为了确保模拟和实际执行的一致性,UserOperation 限制了访问可能在执行中发生变化的变数,并只允许访问与传送者地址相关的资料。Bundler 可以根据自己的偏好对 UserOperation 进行打包,优先选择支付更高费用的操作。最终,Bundler 将有效的操作批次传送给 EntryPoint 合约进行链上执行。
EntryPoint
EntryPoint 是以太坊中的单例合约,其主要任务是处理 UserOperation 的执行。它有两个关键函式:handleOps 和 handleAggregatedOps,它们都先验证 UserOperation,然後执行操作。验证包括检查帐户、签名有效性和费用支付。在执行阶段,使用 UserOperation 中的资料呼叫目标合约帐户中的智慧合约程式码。不同的智慧合约钱包协议可能会有不同的解析和执行方式。
资料
根据 SixdegreeLab 的 ERC-4337 半年度资料报告:
帐户抽象的发展方向
在了解帐户抽象的基本原理和 ERC-4337 的架构之後,我们将进一步探究 AA 的拓展方法。我们不会赘述无私钥和无 Gas 等智慧合约钱包的基本功能,而是在 AA 的元件中寻找更多可能性:
架构
原生帐户抽象
ERC-4337 只是应对当前以太坊无法修改底层共识而采用的应用层解决方案,虽然它能使得帐户抽象概念大面积普及,但终归是假借合约帐户来进行互动。验证过程额外的 Gas 消耗,其他竞品 ERC 的采用,dapp 对合约帐户互动的禁止,都是阻碍 ERC-4337 壮大的因素。
所以原生帐户抽象,特别是 Layer 2 的原生帐户抽象就显得格外重要。当前 Layer2 中,只有 Starknet 和 ZKSync 两条链支援原生的帐户抽象。如下图所示,在原生帐户抽象方案中没有 Bundler 和 Paymaster,Starknet 使用 Sequencer 确定交易顺序、支付 Gas 并执行,ZKSync 通过 Operator 确定交易顺序、支付 Gas,再呼叫 bootloader 一起操作。
而宣称要基於 OP Stack 构建的 DeBank Chain 也要在链级别原生整合类似帐户抽象的系统,但具体架构就需要在其主网推出时才能知晓了。
NFT 合约钱包
NFT 合约钱包是类似於 ERC-4337 的一种应用层的帐户抽象方案,它们通过 NFT 使得 EOA 帐户拥有 CA 帐户的功能,而不是藉由 Bundler 呼叫 EntryPoint 合约,当前有两种 NFT 合约钱包的主流实现方式:ERC-6551 和 A3S Protocol。
ERC-6551 允许使用者使用自己 EOA 钱包中 ERC-721 标准的 NFT 作为控制器,操控一个 / 多个新建立的智慧合约钱包,从而实现在不修改 ERC-721 程式码的前提下,通过 「外挂合约」 的方式去为已有 NFT 匹配一个 / 多个智慧合约帐户。这种方式将现有的 NFT 与帐户抽象结合,既打开了 NFT 的应用场景又普及了帐户抽象的概念。
延伸阅读:GameFi救星?ERC-6551创办人:或能改变链游的命运
A3S Protocol 则是使用 NFT 本身的智慧合约本身作为智慧合约钱包,也就是说钱包资产就在 NFT 的智慧合约帐户上,完全跟随 NFT 所有权转移,不需要像 ERC-6551 一样为 NFT 合约外挂一个作为钱包的合约帐户,用更短的路径实现了 NFT 合约钱包,但这也意味着对已有 NFT 的不相容。
在多链钱包地址的统一上,两个方案都借用了混淆值 Salt 来实现在不同 EVM 相容公链上获得一样的地址,以解决合约帐户多链地址混乱的问题。这也是当初导致 Wintermute 向不同链上多签地址转帐丢失 2000 万枚 OP 代币的问题。
延伸阅读:造市商Wintermute爆「2,000万枚OP」遭窃!骇客发百万给 V 神,OP大跌25%
模组化与多链抽象
模组化帐户抽象的意义在於像 OP Stack 一样将开发和维护的成本降到最低,让钱包开发者能更多关注产品本身,而不是底层基础设施的构建与维护。当然,由此建立的模组化生态也是模组化平台的立足之本,因此模组化帐户抽象一定要实现:
我们在上文提到用 Salt 使多链智慧合约帐户地址一致,但一致的地址只是第一步,更重要的是让使用者在操作中对跨链没有感知,即多链抽象,这是模组化的重要一步,也是帐户抽象的重要一步。
签名验证
我们之前提过以太坊上任何交易都只能依赖 EOA 发起并支付 ETH 作为 Gas。除此之外,EOA 只能使用 ECDSA 签名方案,这使得 EOA 的使用非常繁琐且功能单一,还有私钥泄漏风险,而量子电脑问世的那一天,也是以太坊 EOA 帐户成为待宰羔羊的一天。
签名演算法
在签名层面当前已经有通过智慧合约来实现多重签名和社交恢复的方案( Gnosis Safe 和 Argent ),也有用所谓签名抽象来实现一次授权後在给定范围内自由与合约互动的方案(Lens Protocl)。但是根据 「Not your keys,not your coins」,我们可以多关注签名演算法本身:
签名聚合
通过 Schnorr 或 BLS 实现更高效、更简单的签名,这不仅能从底层实现多签,还能通过聚合签名减少 Gas 消耗。当然他们都有各自的问题,例如需要额外的通讯回合,不适合较大值 m 和 n 的多重签名方案,大量匹配验证的时间等。
後量子安全签名
通过 Lamport 或 W-OTS 等一次性签名来避免他人利用量子电脑破解公开的部分私钥来伪造讯息和签名。
UserOperation
ERC 7521 Intent Centric
当我们对比帐户抽象,特别是 ERC-4337 ,和 Intent Centric 的架构时,可以发现其实 Bundler 和 Solver 可以是同一个人。也就是说使用者的互动内容 「UserOperation」 可以由 Bundler 来给出,Bundler 解析使用者给出的意图提出一个匹配的解决路径,再通过 EntryPoint 合约向用户确认路径的合法性,避免 Bundler 作恶,最後执行被验证的意图路径。
延伸阅读:「意图为中心」Intent-Centric生态中值得关注的专案
帐户抽象和意图的结合将能够实现帐户和互动的同步抽象,实现超越 Web2 的使用者体验。
而整个交易过程可以通过见证人 / 挑战和响应等过程,使用 ZK 证明技术实现隐私支付。这既能让使用者证明交易的有效性,而无需透露传送者的真实地址,还能将多个交易批处理为单个证明,从而减少计算开销并显着提高可扩充套件性,正所谓降本增效。而一些需要面对监管的企业使用者也可以向监管方单独透明化交易,在不牺牲机密性的情况下满足监管合规要求。
Bundler
Bundler MEV 与 Bundler Competition
Bundler MEV 和 Bundler Competition 都是基础设施不够完善的结果,Bundler MEV 来自於 Bundler 类似於 Searcher 的交易打包职责,Bundler 可以改变 UserOperation 的提交顺序获利,而 Bundler Competition 则在不同 Bundler 打包同一个 UserOperation 时产生。这与 Searcher 的 Gas War 类似,打包的 UserOperation 没有上链的那个 Bundler 虽然花费了 Gas,但是交易却失败了。
他们都可以借监已有的基础设施,例如 MEV- Boost ,打通 Bundler 之间以及 Bundler 与 Block Builder 之间的沟通渠道。Etherspot 正在为 AA 开发 mempool 的 p2p 网路,等待打包的 UserOperations 将在这个 p2p 网路中传输,一旦被打包并在链上处理,它们将被标记并从列表中删除,从而避免被多个 Bundler 打包。
Paymaster
Paymaster 出入金
Paymaster 可以为使用者支付 Gas Fee,并与使用者协商以任意代币或法币作为替代。因此,Paymaster 配合支付服务商为使用者提供出入金服务就是一个很好的方案。
Visa 团队在以太坊 Goerli 测试网上部署了两个实验性的 Visa Paymaster 合约,一个用来探索使用者是否可以用包括美元稳定币在内其他代币支付费用,另一个则尝试直接赞助交易费用。当然, 将 Paymaster 与现有的 ERC-20 代币整合,需要使用一个外部来源或链上预言机来确定代币价格,并检查 Paymaster 合约是否有批准向用户收取指定的代币。在这套成熟方案下,直接接入 Visa 卡使用法币支付 Gas,甚至即时与 ERC-20 代币进行转换,实现出入金抽象将很大程度降低 Web2 使用者的进入门槛。
Web3 帐户体系演进与未来的 Web3 入口
Web2 时代的网路流量入口和相应的帐户体系演进反应了第二代网际网路的快速发展和使用者需求的变化。
起初,使用者通过入口网站进入网际网路,他们可以自由选择入口网站罗列出来的线上资源。然後,搜寻引擎的出现使得使用者能够通过搜寻引擎查询关键词,搜寻引擎通过分析 URL 来提供相关结果。Web2 时代见证了社交平台的崛起,包括 PC 端和移动端。使用者除了主动使用搜索引擎进入 Web2,还可以藉由 PC 媒体平台的资讯被动接触 Web2,或是通过 PC / 移动自媒体平台自主进入 Web2。这期间经历了两次从被动到主动的过程,和一次资讯去中心化的过程。
而 Web2 的帐户体系也在一同改变,从最初的简讯 / 彩信以手机号为帐户,到 QQ / 微信 / 部落格 / 微博建立多元帐户并获得丰富的附加功能和独立的个人网路身份,这些平台引入了个人资料和联络人列表,将使用者标识从单一 URL 扩容到更复杂的使用者 ID 和社交图谱。
延伸阅读:解读DID 去中心身份》未来大规模采用,具体投资方向在哪?
随着网路和硬体技术的发展,出现了两类发展自身生态的方式:
- 「iOS+ Apple Pay+Apple Store」 和 「微信支付 + 小程式」 在建立自身的帐户和支付体系的流量优势後,开辟出一个外部开发者接入的区域从而将使用者留在自身体系内,以壮大生态。
- 「淘宝 + 支付宝」 和 「抖音 + 抖音支付」 在爆款应用带来的流量基础上发展自己的帐户与支付系统,并进一步整合其他应用建立统一的帐户与支付系统。
这两种方式都各自有效,并占据了一方天地,微信一个应用内能完成使用者的大部分需求,而支付宝支付也可以在各大应用中被找到。
综合而言,Web2 时代的流量入口旨在给使用者更多主动性和去中心化,而帐户体系则从单一到丰富和多元,并通过两种方式实现自身生态的发展。
帐户体系
Web3 时代的帐户体系演进既保留了部分 Web2 的影子,又呈现了独特的发展路径。
Web3 时代的帐户体系演进延续了部分 Web2 的特点,同时呈现出独特的发展路径。在 Web3 中,出现了多种型别的帐户,包括外挂钱包如 Metamask、软体钱包如 Math 和 Trust、「操作平台」 如 dAppOS 和 Gnosis Safe,以及嵌入在 dApp 内部的 UniPass 和交易所内建的 OKX Web3 Wallet。
Metamask 等外挂钱包就像是最初的简讯能满足使用者最基本的需求,虽然哪儿都能用,但功能过於单一。
Math 和 Trust 等软体钱包则如同 QQ 与微信在基本功能之上附加了各种提升使用者体验的优化和功能,例如多帐户管理 / 社交板块 / 附属应用等。
dAppOS 和 Gnosis Safe 等 「操作平台」 相比软体钱包更进一步的把基础功能升级构建出另一套先进的帐户系统,类似於 Apple 和微信并以自己为核心开发配套 「小程式」 来丰富生态。
UniPass 和 OKX Web3 Wallet 等应用内建钱包就像走另一类帐户与支付路线的支付宝和抖音支付,藉助一个个爆款应用的流量来发展自己的使用者,通过联盟建立生态。
流量入口
我们曾在《Web3 流量入口》这篇文章中提到:
根据使用者进入 Web3 的流程,我们可以把 Web3 流量入口定义为两个大类:
如今我们仍旧这麽认为,但是根据第二部分内容,所有这些入口都可以成为 AA 钱包的一部分。不过它们也反向地将 AA 钱包的采用路径分为了两类,即上文所述的帐户与应用,使用者是先获取帐户再进行应用互动还是先进行应用互动再使用帐户。
钱包小程式与 Wallet as a Service
当我们从 AA 采用的程式来看,可以发现最初是 Instadapp 独立的 AA 钱包产品 Avocado 释出,随後 Metamask 释出 Snaps 小程式元件支援部分 AA 功能,支付巨头 Visa 也加入 Paymaster 试水并接入 Visa Card 支付,不久社交应用 Lens Protocol 尝试通过 ERC-6551 建立 AA 钱包,而 Safe 也相容 ERC-4337 巩固自身 「小程式」 市场,紧跟着 OKX Wallet 支援使用 AA 钱包, Circle 则是选择释出自己的 AA 钱包。
从中我们不难发现,AA 的采用无外乎两种模式:
- 自有钱包释出或相容 AA 利用钱包使用者和内部应用小程式来吸引和留住使用者。
- 应用 / 交易所 / 支付服务商借助自身流量优势,将使用者转化为 AA 钱包使用者。
这也引出我们需要讨论的部分:既然链上生态因为 AA 的出现将会从卖方市场转变为买方市场,那麽使用者会对哪种模式买单呢?
小程式
从短期的采用率来看基於自身钱包发展小程式生态的 AA 模式会更容易得到使用者的接纳,本质上来说就是一个 To C 的方案。因为当前尝试 AA 钱包的大部分使用者还是 Web3 使用者,所以对於他们来说钱包本身并不陌生也不需要额外的理解就能直接使用,而丰富的功能且流畅的操作体验又能够吸引并留住他们。以 MetaMask 的 Snaps 为例,通过 API 介面允许第三方开发对应钱包小程式来在非 EVM 链互动,看似是为其他钱包引流,但实际上是为自己构建生态进行使用者教育。毋庸置疑,MetaMask 彻底相容 ERC-4337 的那一天,就是它成为 AA 钱包龙头的那一天。
当我们以 dappOS 为例:
dappOS=dappOS Account (多链统一的 EOA)+dappOS Network 。
dappOS 尝试将帐户,公链和 Gas Token 的概念抽离,使使用者能有类似 Web2 帐户的使用体验,但是由於其还处於相对早期,平台的合作 dapp 有限,不过这并不妨碍它使用者资料的增长。因为使用者是有动力从 EOA 进入的,特别是需要多帐户多链互动的使用者,迁移後的互动体验是大於迁移成本的。最重要的是使用者一旦进入,这个帐户体系基本就不会离开,因为使用者在使用的同时也在被教育,首先一开始就接触 AA 钱包的使用者是无法使用 EOA 钱包的,其次 dappOS 这一类钱包能满足使用者大部分互动需求,使用者不必迁移,最後哪怕使用者想要迁移,无形中的多链抽象也会让整个迁移过程变得繁琐。
可见,成型的钱包产品可以更快的获得并留住 Web3 AA 使用者,例如 Safe,Avocado,OKX Wallet 等。
Waas
WaaS 则是与走小程式路线的 AA 钱包相对的应用路线 AA 钱包。先有应用再有钱包,显然是一个 To B 的方案。应用使用 WaaS 订制自己的钱包来配合产品功能,标准化的 WaaS 模组供不同应用挑选,藉助应用的流量来扩大自己的生态,构建 AA 钱包平台,再转向 C 端发行针对使用者的客制化钱包,使用者自由搭配所需要的钱包功能。
以 Stepn 为例,作为一个出圈应用,Stepn 在全球拥有上千万的使用者,而每一个使用者都通过 Stepn 建立了一个钱包。倘若 Stepn 内建一个 AA 钱包并以该钱包为核心而不仅仅是 GMT 代币,继续发展生态,例如後续的 MOOAR NFT 交易市场,麻将游戏和 Gashero。那麽单单这一个 AA 钱包就能为整个 Crypto 市场带来千万级别的增量使用者,而且这些使用者都是这个 AA 钱包的高粘性使用者,因为对於他们来说迁移成本是极高的。
最近大热的 Friend Tech 也是同理,每一个推特使用者都可以是它 AA 钱包的潜在使用者,而法币出入金和 Gas 代付能让使用者越过 Web3 的互动障碍,快速融入 Web3。
延伸阅读:Friend.tech经济模型详解:庞氏骗局还是火热的幻象?
落地产品中我们可以关注 WaaS Pay 和 UniPass,这两个产品分别代表了 WaaS 方向钱包的特点:
・ WaaS Pay 是一个智慧合约帐户部署平台,利用 Safe {Core} 协议套件和 Safe {Core} 帐户抽象 SDK,专为寻求即时区块链支付同时优先考虑隐私的组织而设计。它提供了一个使用者友好的无程式码介面来订制智慧合约帐户功能,例如社交登入、法定货币进 / 出坡道以及接收者的无 Gas 交易。通过 ZKBob 通过零知识证明 (ZKP) 促进匿名交易,WaaS Pay 可确保敏感的财务资料保持安全和保密。该平台由 Polygon ZKEVM 提供支援,可保证可扩容性和效率,而带有 Helia 的自托管 IPFS 节点可保护敏感元资料。
・ UniPass 本质上也是一个为第三方 dapp 提供的 SDK,使得 dapp 可以绕过传统帐户私钥和一系列签名以及 Gas 的限制或者托管私钥生成邮箱系结地址的中心化,直接使用 UniPass 的 DKIM 验证实现邮箱控制的非托管帐户,同时经由 Relayer 将链上互动简化,做到无 Gas / 签名抽象 / 社交回复等大大提升使用者互动体验的功能。作为一个由场景驱动的应用,UniPass 选择以联邦社交网路的方式,为不同应用提供订制化服务的同时,建立互通的帐户体系。再基於由这个联邦社交网路的互通性,在提供资料所有权和隐私保护的前提下,将社交关系上链,建立对资料和资产具有所有权的 DID 证明自身的使用场景,来吸引更多应用使用 UniPass 的 SDK 进入 Web3。而这些应用的使用者自然而然的就成为了 UniPass 的使用者,并使用它继续在 Web3 互动,且粘性极高。
由此我们也能看出,在成长空间和对 Web2 使用者的获取上 WaaS 路线的 AA 钱包更有优势,但这非常考验团队的产品品质和 BD 能力,不过一旦形成网路效应,就会拥有增长惯性,属於是後期发力的型别。
📍相关报导📍
2023,你该关注的「以太坊改进」提案?ERC-4337 ERC-6551 ERC-5507 EIP-4844
速览》以太坊基金会「帐户抽象」资助轮获奖的18个ERC-4337潜力项目
以太坊坎昆升级确认纳入EIP-7514、将拍板Devnet-9发布日