账户抽象可能推动 Web3 应用的大范围采用。
演讲:知县,Unipass 创始人
整理:Amber
本文根据视频内容整理
这次的分享主要围绕「账户抽象」展开,以及为什么我会觉得它是 Web3 的 iPhone 时刻。就像大家认为 ChatGPT 是人工智能的 iPhone 时刻一样,悲观或者比较谨慎的人甚至认为我们应该停止 ChatGPT 的进一步研究。但是对于 Web3 而言,相对于传统的互联网,能够从另一个层面上给大家贡献新的东西。账户抽象事实上是可以让 Web3 的大范围采用落实得更加顺利。
在开始正式展开账户抽象之前,我们先谈一谈背景话题,那就是 iPhone 之前的移动互联网是什么样的?没有 iPhone 的时候,大家如果要使用移动互联网,将要面对的是一个九宫格,或者说是一个更小但密密麻麻的全物理键盘,还带上下左右键的手机,当然屏幕占比也比较小,当时比较大的屏幕可能只有 2.4 寸,即便是比较大的屏幕分辨率也非常堪忧。当要做一件事情时,一定要从另一件事情中退出,对 iPhone 之前的手机而言,没办法直接退出,而要按好长时间返回键才能回到桌面状态,再去进行下一个业务。第二个是,在日常使用移动互联网的时候,现在存在的互联网场景基本都还没有,当时的使用场景基本就是收发邮件,由于发邮件需要打字,都非常痛苦。
第二个比较酷的事情,就是可以随时随地看看新闻,不像现在大家普遍处于一个信息过载的状态。在那个时候要能随时随地打开手机就能查到最新的资讯,比如说球赛的比分,或者大盘的走势。以及当时的搜索引擎还是非常常用的,当遇到不知道的事随时百度一下,google 一下,在当时能够随时随地做到这些的用户,相较于只能在家打开电脑才能过使用互联网的用户显得更加高级一些。
所以说从这种描述大家也可以感受到,当时用户群的画像就是一些高端小众的人。小众呢,就是说,移动互联网在当时是鲜为人知的,手机的主要用途还是用来打电话、发短信。而现在接短信主要是为了验证码,电话主要是为了接外卖。那么当年手机的主要用途就是电话短信,手机上网就被视为非常新潮的事。
第二个是高端,首先有互联网功能的手机在当时是很贵的,其次是开通数据流量套餐是很贵的,而且当年的流量套餐都是按 mb 收费的,1mb 当时可以用很长时间,并且还有专门为省流量创造出来的像 UC 浏览器之类工具。所以说只有一些经济比较殷实,又比较新潮,同时还喜欢折腾技术的人才会选择使用手机端的互联网,至少可以在浏览器中输入网址,能够知道一些名词都代表什么,或者调整现显示界面。这些能力都属于一些比较技术范的人。
这也就是为什么说当时的用户画像可以理解为高端小众或者比较极客的人群。类比一下,其实目前 Crypto 生态和 Web3 的场景和体验也是类似的。
那么 iPhone 来了之后互联体验又是什么样的呢?首先是触控体验的改变,当年 iPhone1 的发布会上,乔布斯形容是用最好的,每个人都配备的交互工具,也就是手指,来控制。进行「非线性的交互体验」,因为原来使用键盘手机打开通讯录,就是要一个个往下摁,所有的东西都是线性的。然而有了触控之后,就可以去随机访问一个项目,通过滑动让列表快速滚动,包括后台多任务等等功能,都是 iPhone 颠覆性的创新。
有了这些基础设施的升级,手机现在的应用场景就变得非常多了,包括短视频、长视频、聊天和微博在内的社交、游戏、外卖等等。现在很多场景都是手机来完成的,这在以前是无法想象的。同时现在已经没有「互联网用户」这种标签了,几乎所有年龄段的人都可以无障碍地使用移动互联网。总的来讲,基础设施的换代可以带来一些场景和用户的繁荣的。
基础设施除了上面提到的像 iPhone 这样的智能设备以外,还包括网络设施的演进。之前主要使用的 2G 网,又贵又慢,慢到现在的很多功能是无法进行的,对比现在的 5G 网络,可能速度会比 WiFi 还快。因此这种更新换代除了提高使用频率以外,还能够实现一些从前无法应用移动互联网的场景。
类比到 Crypto 和 Web3 领域,除了账户抽象能够带来基础设施方面的升级,Layer 2 等扩容技术能够提升网络层的效率并同时降低运营成本,相信这两项技术结合,可以促进 Web3 场景和用户的繁荣。
第二部分是背景类的知识,关于账户抽象是在做什么?账户抽象之前,大家使用的纯密钥生成的 EOA,可以简单地定义为最原始的加密账户。首先有一个记不住也改不掉的密码,虽然不排除某些极客或管了很多钱的人,能记住助记词或者私钥的,一般人是记不住这些的,因此就会把它们抄在纸上藏起来,假如被别人看到或拍下来了,那么这个人就拥有了和账户所有者相同的权限,因为没有办法更改助记词的缘故,这个账户只能最终被放弃掉。第二个点就是 EOA 不充钱不能用,相比较互联网来讲,很多时候新用户的进入门槛是非常低的,一个服务或产品不会因为不充钱就无法使用,但对 EOA 而言,没有 gas 就无法进行任何链上操作。再者,即便是充了钱,但不是 gas 对应的有价值的 Token,而是稳定币或其他 Token,EOA 也是无法进行任何操作的。第三个原始的点在于账户权限,其实就是对标到之前发生的 NFT 被转走或其他钓鱼攻击的事件,基本上相当于出门的时候用钥匙开了一下信箱,回家的时候却发现整个家都被人搬空了。
如果发生在现实世界就是相当离谱的事件,但 EOA 确实能给人这样的体验。因此,我们说 EOA 是比较原始的,也就是说为什么我们需要账户抽象,账户抽象为什么能让 EOA 没有这么原始。首先按照刚才的对比来讲,账户抽象可以更改密码,根据不同情况设置不同的密码,甚至重置密码。就像之前提到的情况,有个人当面把密码抄了下来,账户所有者此时可以废掉这个已经暴露的密码,或多设几个新密码,甚至可以使用手机扫码这种不显示明文密码的方式,进行账户设置,安全又方便。
第二个就是,账户抽象在充钱或者不充钱,或是充任何一种只要有价值的 Token,都能使用。了解智能钱包的人会说,不充钱没有 Gas 是不能用的,甚至不花钱部署都不能用。但实际上,互联网也是一样的,绝大多数的 App 都有需要付出成本的后端服务。但并没有服务商或场景方让用户先打钱再使用,都是通过其他方式产生盈利。用户在开始阶段是不需要付费的,相当于是场景方在商业策略上先给用户免费的服务,再给用户是否付费使用的选择权。
你充钱或者是不充钱,或者说你充任何一种只要是有价值的东西都能用,可能了解智能钱包的人会说不可能,对吧?智能钱包不充钱,没有 Gas 也是不能用的,甚至你不部署,不花钱部署都不能用,但实际上大家想一想这个互联网也是一样的,对吧?我们现在用的这些 App 绝大多数都是有后端服务的,都是需要付出成本的,但是并没有说这个服务商或者说这个场景方就会让用户,「诶,你先给我打点钱,你才可以使用我的服务」,对吧?都是通过其他的方式产生盈利,那使用的时候,尤其是一开始是不需要用户充钱,就是相当于说它可以在商业策略上选择先给用户免费的服务,再让用户后面选择要不要付费,但是我至少可以给你这个选择的权利,对吧?
所以说作为一个场景,一个应用,愿意让用户先不充钱直接使用,那可能会达成非常好的转化率,这就是所谓的充不充钱都能用。对于充哪种钱都能用,则是如果一个账户只是为了中转一笔收入,或者说只有一个链上的资产,当想在其他链上进行操作的时候,智能钱包或着说在账号抽象的前提下,都可以通过持有的那一种 Token 进行操作。
第三个就是刚才提到的比较离谱的情况,使用者终于不用担心去开信箱就会把家门打开。因为可以给信箱和其他地方设不同的密码,做不同的钥匙,甚至搬走电视和凳子所需要的权限不同。在账户抽象的背景下,这些事情都是可以完成的。
所以总结一下就是,账户抽象可以将那些普通用户无法接受的不合理的地方进行改善,第二个可以降低用户门槛,正如之前智能手机为不会打字的老一辈用户提供手写和语音输入,为理解不了文字指示的小朋友提供图形化解锁等便利,使得他们可以无差别使用互联网功能。
所以总结一下,账户抽象它可以做到:一是补足体验短板,把那些我们作为一个正常用户无法接受的这些难用的地方给它补足。第二个就是降低用户门槛,这就类似这个,咱们说智能手机降低这个用户的门槛,对吧?这个之前不会打字的,老一辈的这个用户他们可以手写,他们可以语音,对吧?那么小孩子也是之前可能摁不动键盘的,理解不了一些文字指示,它可以通过触摸点按和一些图形化的东西,也无这个无差别的去使用互联网的这个功能。
第三个就是拓展产品场景边界。账户抽象带来的一些账户的新能力,比如刚才提到的权限控制,虽然只有四个字,但其实能扩展出来新的场景和新的用法是非常多的。
既然账户抽象有这么多优势,我们应该如何实现账户抽象呢?在这里不对账户抽象的历史做过多展开,我们主要讲就目前而言,大家希望用怎样的方式实现账户抽象能力,那就是「智能钱包」或「智能合约钱包」,同时还有与之相配套的标准「ERC-4337」。智能钱包,顾名思义,也就是用合约账户(CA,contract account)代替通常情况下 Metamask 生成的 EOA 地址,作为用户默认使用的账户。
它能够带来两个基本改变,一个是「Gas 抽象」,因为智能合约不需要自己支付 Gas,所以说无论是平台出于长期使用角度的初始补贴,抑或是用户使用别的 Token 进行交换,都能够为覆盖 Gas 费用提供动力。举个例子来讲,比如我可以让你用法币来买我的 Gas 服务,让后我来帮你支付 Gas 费,这听上去好像和直接购买 Crypto 以支付 Gas 相类似,但实际上性质完全不同。购买 Crypto 相当于要用法币支付给对方,而对方要将数字货币打给买方,这个行为事实上是有很大的监管问题的。所以说 Crypto for Gas 事实上会面临非常严格的 kyc,会让流程非常复杂,而且并不一定能买到 Crypto。但如果用户只是想购买 Gas 服务,他所支付的必定不是 Crypto 吗,平台也只是相当于 Gas 中枢,付出另一种成本来赚取使用这的服务费,这一举措其实就打开了很大的局面。
第二部分是「密码学抽象」,现在大家使用的 EOA 账户,密码学上是「写死」的,就像一个屋子上加了物理门锁,就只能使用物理钥匙一环扣一环的硬逻辑揭开。但如果装了更强的密码锁、蓝牙锁、指纹锁等,解锁的逻辑就是开放的。所以说账户抽象既能够使用密码学的一套基础设施,也可以使用另外的比如 Face ID,指纹甚至银行卡之类的钥匙。原则上只要是有密码器的东西,都可以拿来用,以及还可以给密码学增加效率上、安全上的升级,在这里就不过多展开了。
第三个就是账户抽象的基础功能能够为用户带来一些好理解的,或者扩展上的功能点。比如之前提到的「权限控制」。比如「批量交易」,举个例子来讲,使用 Web3 就像去淘宝,一旦接一单购物,事实上更好的体验是把所有东西都放在购物车里,一次性结账,这就是智能钱包能够给大家带来的新的体验。再比如「社交恢复」,其实就是设置一些策略,让一些被用户信任的人辅助回复账户,就像是钥匙丢了的时候,在亲戚朋友家放一些备用钥匙。除此之外社交恢复还有更大的升级性和扩展性。
简单过一下 ERC-4337,它其实是规定了一个智能合约钱包,可以理解为大家在使用智能合约钱包的时候,基础设施应该怎样设计。在用户使用钱包之前,他需要先发起一个让钱包进行某种活动的指令(UO,user operation),跟常见的交易区别就是,它只是一个签名加一段指令,并没有类似 EOA 和 Gas 之类的元素。然后 UO 有一个专门的角色 bundler,可以简单理解为矿工或者 validator;矿工和 validator 构建一个 block,而 bundler 构建一笔 Layer 1 交易,而经过 bundler 的 Layer 1 交易,聚合了不同用户的不同操作。简单来讲,个人每天发的 Layer 1 交易,就像是一个人开私家车上路,而 bundler 的交易,就是一辆满满当当的大巴,同时上路,使得交易效率大大提高。同时也节省了大巴和 bundler 的 Gas 费,这一点可能和一些刻板的理解不同,智能钱包在大规模使用之后要比 EOA 省钱。ERC-4337 的 bundler 中包含了很多 EOA,以及不同用户的操作,再由每个 bundler transaction 构成的区块,完成 4337 交易的生命周期。图中也有显示可选的 pay master,用于介入并垫付 Gas 费。以上就是 ERC-4337 定义的一套规则,它的目标就是用智能钱包这种产品与技术方案实现账户抽象这个功能。
相比于以前的一些 EIP,它们可能更希望的是通过引入一种新的交易来实现账户抽象,或者想 StarkNet 这种 Layer 2,直接从共识层暴力重构整个账户设计实现账户抽象。ERC-4337 希望通过智能钱包实现账户抽象的目的。
下面我们再讲一下账户抽象能够带来的新奇体验。首先,比如「渐进式非托管,progressive not custody」,意思很简单,非托管是一个目的,或者说是一个终局,而不是一开始就可以去做的。那么如果使用的是 EOA 这类密钥钱包,是很难实现这一点的,毕竟一旦账户出于托管状态,密钥被披露给了服务方的情况下,是没有办法通过改密码等方式重新将账号收回的。而非托管恰恰是智能钱包能够做到的,这也就是大家常说的「on board and off board」的概念,即不光要把用户 on board 进来,为了让他们变成成熟的 Web3 用户,还要让用户从托管方 off board 到一个自托管状态。
第二个体验是所谓的「Gasless」,这个就是在上文深入讲解到的,Gas 抽象能够带来 Gas 费用层面的灵活性,这种灵活性其实既能够优化体验,也能够产生新的商业模式。
第三个是「多级风控」,除了刚才提到的不同场景,用户其实还可以设置不同的权限。比如,单独设一个签名专用的 key,而这个 key 同时是无法转移资产的。甚至可以根据不同的资产类别,或者不同的操作属性来设置不同的权限。比如,转一个很简单的小额资金,或者只是在链上 claim 一个东西,可能只需要一个软件钱包,甚至网页的 key 就可以做到,毕竟不会让用户蒙受什么损失。但对于一个非常重要的决定,比如账户控制,那是需要使用的 key 可能就是一个甚至多个硬件钱包的 key,甚至是一个多签合约的授权。
第四个就是它可以做到「升级性和扩展性」,一切原来只能通过外部合约或者通过用户把权限让渡给第三方合约才能做到的,比如 OpenSea 上的 NFT 交易,在未来某天大家都开始使用智能钱包的时候,用户可以通过扩展和升级能力,让自己的钱包直接拥有 P2P 的交易能力,从而并不需要授权给第三方合约。
最后再讲一下我们做的事情,我们就是在为开发者或终端用户做一个智能钱包方案,或者说账户抽象方案。特点就是无助记词,免 Gas 费,体验上能做到渐进式非托管,以及 ERC-4337 的完全兼容性。此外,智能钱包或账户抽象并不仅仅是合约而已,相比合约之外,大家看不到的东西其实更加重要和困难。比如像 SDK、API,再如 Relayer 这种可能类似 bundler 加 Pay master,包括多链情况下的同步问题。这些其实都是整个解决方案需要涵盖的内容,也是 Unipass 对开发者可以提供 API 和 SDK 的地方,同时也可以给用户提供个性化 UI。那么对于普通用户来讲,可以拼一个自己特别想要或现阶段觉得最好的账户方案,可以用 Email 登录并进行首要恢复,也可以连接 MetaMask 进行一些关键操作,也可以使用手机的 Face ID,甚至硬件钱包进行一些更高级的比如账户类或大额资产类操作。
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。