账户抽象:简化你的加密世界
作者:鉴叔
7月17日,在巴黎举行的以太坊社区会议(EthCC)上,以太坊联合创始人Vitalik发表了主题为“账户抽象的历史与未来”的公开演讲,并表达了对账户抽象钱包的支持。其实,这并不是他第一次为账户抽象站台,在早些年间,其就在博客中表示“账户抽象一直是以太坊开发者社区的梦想”。
那么,账户抽象是为了解决什么样的问题?以及账户抽象究竟抽象了什么?本文将详细探索这些问题。
一、从以太坊的账户模型说起
在细致了解账户抽象之前,我们必须先从最基本的以太坊账户模型说起,并且明白现在的钱包出现了什么问题。
以太坊上的钱包账户主要分为两种类型,一种是外部拥有账户(EOA),另一种是合约账户(CA),二者的比较如下:
我们日常熟悉的直接由某一用户私钥控制的钱包如Metamask、imToken、OneKey等都属于传统的EOA钱包。
传统EOA钱包的弊端
- 使用门槛过高
加密钱包是用户进入Web3世界的重要入口,然而钱包却并不对新用户友好。很多人需要学习私钥、公钥、地址和助记词等概念,并在有一定了解后才可能会使用钱包。这对于久在单一的账号密码体系下的Web2用户来说,门槛过高。
- 安全保障单一,资产丢失风险大
用户的公钥是根据私钥随机生成的,所以EOA的私钥与公钥之间具有绑定关系。私钥是用户访问EOA的唯一途径,私钥在谁手里,那么资产就在谁手里,如果私钥丢失,那么也意味着与之关联的EOA内的所有当前资产将无法找回。同时,私钥因某些原因而被盗取后,用户除了赶快转移钱包资产外,没有任何限制办法,否则资产也会丢失。
- 无法实现定制化功能
EOA的可编程性弱,无法实现批量交易、自动提取资金或者其他的用户定制化功能。例如用户将ETH存入Lido,并想将获得的stETH兑换成USDT,使用传统EOA钱包进行操作的话这将是一个繁琐的过程,极大地影响了用户体验。若是使用支持定制化功能的钱包进行操作,用户只需要进行一笔交易就够了。
- 昂贵与缺乏灵活的Gas费
以太坊网络上的每笔交易都会花费Gas,这就使得小额交易的手续费显得非常昂贵,网络拥堵时更甚。同时,用户必须在钱包中时刻持有ETH以便支付交易手续费,而不能选用其他币种来代付手续费。如此昂贵与死板的gas,时常为很多普通用户造成困扰。
以太坊社区开发者一直以来探索的账户抽象技术就是为了解决使用传统EOA钱包所带来的弊端。
二、账户抽象究竟在抽象什么?
第一次听到账户抽象(Account Abstraction)这个概念,或许大家心中第一反应都在想究竟抽象了什么东西?其实在中文语境下这确实非常难以理解,但是我们从英文语境下理解,“Abstraction”也有提取的意思,“提取”顾名思义就是将一个或两个事物的精华单独拿出来,而抛弃其他累赘的东西。
从这个角度解释“Account Abstraction”,就是将EOA账户能主动启动交易的功能和CA账户的功能进行提取并融合成一种新的可编程性通用型账户。由此,我们便可以抛弃繁琐的私钥/助记词,用电子邮箱等简单的身份验证方式登陆账户,同时也可以实现更多的账户定制化功能,更加灵活的支付Gas甚至可以由DApp赞助。
从手动挡汽车到自动挡汽车的转变
如果从用户角度解释使用传统EOA钱包和使用AA(Account Abstraction)钱包的体验区别,就例如从开手动挡汽车到开自动挡汽车的转变。当我们去学习开手动挡汽车时,需要先理解不同档位与速度的匹配、油门与离合器的配合操作和换挡的技巧等,否则真正上路时就有发动机异常损耗和熄火等风险。但是,如果是开自动挡汽车就简单许多,用户只需要理解加油前进、刹车减速和空档停车等基础操作就可以轻松上路,并且还升级增加许多手动挡汽车所没有的智能功能。实际上这便是自动挡汽车对手动挡汽车复杂操作的抽象。
账户抽象也是类似的,对于用户来说就是简化了钱包原来的操作并且还提升了钱包使用体验,用户也不需要在乎其背后的运行逻辑,直接用就完了。
ERC-4337运行原理
自2017年2月Vitalik提出首个账户抽象提案EIP-86以来,以太坊社区已经迭代了许多具体的帐户抽象操作想法,但是由于这些提案不够全面或是需要在共识层上进行更改,对以太坊来说并不理想。直到2021年9月份EIP-4337的提出,才使得在不更改以太坊共识协议的基础上实现账户抽象成为可能。
提案EIP-4337在今年3月份正式被授权为标准ERC-4337,开发者可以利用该标准构建AA(Account Abstraction)钱包。
那么,如何理解ERC-4337的运行原理呢?在用户使用传统EOA账户发起交易(transaction)时,可以形象理解为是自己将“交易”送到内存池(Mempool)中,然后等待区块验证者(Validator)上链。
而在ERC-4337标准框架下,用户并不发起交易(transaction),而是发起“UserOperation”,我们可以将其比喻成一个包裹,因为相比于“transaction”,“UserOperation”中包含了发件地址、身份签名、代付款人地址及用户较复杂的指令等信息,所以更像一个包裹。用户将这个包裹先放在专门的包裹中转站(UserOperation Mempool),随后由中转站的快递员(Bundler)整理打包后再送到内存池(Mempool)中去。
因此,我们完全可以将ERC-4337的运行类比成一个帮用户送包裹的过程。
面对这么多的包裹,负责中转站的快递员(Bundler)可以选择与区块验证者(Validator)类似的方法,看谁给的手续费多就先把谁的包裹打包,当把一捆包裹(bundle transactions)打包好后,快递员并不会将这一捆包裹直接放入内存池,有两个原因,一是用户写在包裹中的指令还没有被执行,二是辛辛苦苦的快递员还没得到钱呢。
因为用户付的手续费其实并没有直接给快递员,而是还在自己的智能合约钱包里。快递员要想拿到这笔钱,就得先调用EntryPoint智能合约,我们将它比喻为入口执行机器,只有当用户包裹进入了这个机器,机器才会自动从用户的智能合约钱包中把钱发给快递员。
那么,这个入口执行机器在内部又对包裹做了什么呢?首先该机器会在内部把包裹拆开,先验证这一捆包裹里的用户身份和估计用户存的钱是否足够补偿快递员的费用,验证通过就会将用户存的手续费付给快递员并将用户的指令分发出去执行(不管执行有没有成功小费都将支付),有多余的手续费则退还钱包,要是验证不通过的话则直接丢掉其中的包裹。
机器在给快递员支付费用时还有另外一种情况,如果用户包裹里写了代付款人的地址信息,那么执行机器就会去检查对应的代付款人(paymaster)是否在专属的地方存了钱,足够的话就不需要用户支付这笔费用了。因为这个功能的存在,在实际应用场景中DApp为得到用户芳心可以赞助Gas,或者用户也可以使用其他ERC-20代币支付给代付款人实现Gas费的灵活。
但是,值得注意的是快递员启动入口执行机器是需要付费且过程是不可逆的,不管最后有多少有效包裹,入口执行机器估计的费用是否准确,快递员花的钱都不会被退。所以,为了避免损失,在让包裹进入机器前,聪明的快递员会自己用一台类似于入口执行机器的装置先模拟一下整个过程,估计最后自己得到的费用是否足够,够的话再让包裹进入真的机器。
如此,在ERC-4337标准框架下就很顺利的实现了账户抽象,不仅没有改变以太坊原有的基础协议,同时也使账户可以实现批量交易、社交恢复钱包、Gas费补贴等的复杂功能。
三、基于ERC-4337标准的AA钱包
不同的钱包解决方案
在ERC-4337被采用之前,针对于传统的EOA钱包带来的弊端,市面上也有其他的解决方案:智能合约(CA)钱包和多方计算(MPC)钱包。下面我们将简单介绍这两种钱包并比较出账户抽象(AA)钱包的优越性。
- 智能合约(CA)钱包
其本质就是一个合约,多签钱包是最常见的一类智能合约钱包,用户将钱放入智能合约中,并由多个EOA账户控制,所有交易都通过合约执行。因为合约有逻辑,所以能更加安全地控制资产。这样的钱包对于个人来说并没有多大的使用场景,但是对公司等组织来说却非常有效。例如GnosisSafe等钱包。当然,目前还有一类智能合约钱包没有使用ERC-4337标准而是通过其他技术方式实现了类似账户抽象的功能,如Argent等钱包。
- 多方计算(MPC)钱包
多方计算(Multi-Party Computation)钱包是指控制EOA的单一私钥被分散成更小的碎片并由多方保管。进行交易时,再将多方碎片组合在一起。因为私钥分配在不同服务器上,所以更加安全。例如Fireblocks,ZenGo等钱包。
- 不同钱包优劣性比较
为了直观看出不同钱包解决方案的差异及优劣性,我们将钱包分为MPC钱包、多签钱包、基于ERC-4337的AA钱包及不基于ERC-4337的AA钱包。
从上图比较中可看出,基于ERC-4337的AA钱包无论是易用性、安全性还是功能性上整体都优于其他类型钱包。
基于ERC-4337的AA钱包盘点
- unipass
今年5月份,UniPass与硬件钱包Keystone宣布合并成立Account Labs,并且将聚焦账户抽象方向,共同开发 Web3 账户抽象解决方案。Account Labs的CEO由原Keystone的创始人刘力心担任,原UniPass的创始人知县担任COO。
UniPass已经实现的功能有让用户可以使用社交方式登陆及恢复钱包,允许灵活支付Gas等。其目前已经兼容了ERC-4337,并且透露今年下半年会对UniPass进一步升级,加速账户抽象能力的实现和落地。
- Echooo Wallet
Echooo Wallet是基于ERC-4337标准构建的AA钱包,同时还结合了MPC和AI技术,支持多重签名和社交恢复等多种功能。Echooo Wallet成立于2022年,7月17日以1亿美元估值完成1500万美元的融资,A&T Capital等参投,并且在当晚开启了“限时领取AA钱包”的活动,引起了关注。
- OKX Web3钱包
8月2日,OKX Web3钱包正式推出基于ERC-4337标准的AA智能合约钱包,并且是首个支持 Ethereum、Polygon、Arbitrum、Optimism、BNB Chain、Avalanche 和OKT Chain 7大公链的AA智能合约钱包。OKX的AA智能合约钱包在上线的第二天就曾得到了ERC-4377官方的认可,称其在用户UX层面的设计非常完善(原推文已被删除)。
目前OKX的AA智能合约账户可以在新版本的OKX app中轻松创建,并且已经实现了灵活支付Gas费、DEX一键兑换、Defi一键挖矿以及一键批量上架NFT等多种功能。同时为了激励用户,还推出了限时免Gas的活动,最高可达5U。
四、思考与总结
在Vitalik的构想中,他希望通过账户抽象使人们管理加密钱包就像管理电子邮箱一样简单。账户抽象的愿景确实非常吸引人,有些支持者甚至判断成功的AA钱包会为加密行业转化大量Web2的用户以及促进新的生态爆发。
但是在币圈当一个事物越是被疯狂看好,我们越是要冷静分析。根据Dune上的数据显示,尽管ERC-4337的运行机制已经相当完善,但今年以来一些链上的Bundler月亏损依然很高。如图,在今年7月份除了Optimism和Ethereum上的Bundler收入较为可观外,其他链上的Bundler并无明显增益。
在区块链的价值逻辑下,任何行为都由客观的激励与惩罚机制来规范,若是Bundler的高亏损得不到有效解决显然会削弱其行为的积极性,这对于整体系统的运行是不利的。
还有一个值得思考的问题是,AA钱包能够降低用户使用钱包的门槛,但是否一定能吸引更多用户呢?在imToken发布的“2023年加密钱包报告”中,其随机对180名加密用户进行了调查,发现有63%的用户更喜欢使用交易所的托管钱包,因为更便宜和方便,被黑客盗取资金的风险也较小。
AA钱包或许可以抢夺交易所等托管钱包的用户,但是单靠它未必能够吸引更多Web2的用户加入加密行业。因为我们从以往成功破圈的DeFi、NFT项目或者是StepN等应用来看,能够吸引Web2用户的要么是具体解决了某些痛点的实际用例,要么就是强大的财富效应。钱包的使用体验提升确实是一个锦上添花的事情,但能否在目前的熊市中扮演雪中送炭的角色妄还不敢下定论。
因此,账户抽象真的要想达到人们期待的效果,不仅需要AA钱包的努力还需要AA的生态系统,上到应用层下到基础设施进行共同努力才行。
让我们拭目以待吧。