为什么我们需要账户抽象与智能钱包

     这段时间听了不少关于账户抽象和智能钱包的内容,在账户抽象这方面我不是专家,毕竟没有做过项目实践,仅根据自己的理解总结一下目前我对于这个方向浅显的认识,可能存在不足和错误,欢迎交流,我会主要以@UniPassID@dappOS_com为例解读

     首先给定义,我之前多次表达过我看项目的逻辑,只要是能够降低用户进入web3的理解门槛和使用门槛的东西,都是好东西,所以账户抽象和智能钱包是好东西,绝对不仅仅是炒概念。 在此之前钱包主要分为两种,EOA和CA。EOA即大家常用的个人钱包,小狐狸中用私钥生成的地址,该地址完全由私钥掌握

     从而也就导致了大家常说的两类问题 1.安全,私钥丢失/泄漏意味着失去了对地址的掌控 2.门槛,对于大量场外用户理解私钥助记词的概念门槛很高 除此以外还有CA即通过智能合约实现的钱包逻辑,注意这里用了逻辑这个词,即它实质上是以合约可承载和转移资产的特性,来用合约实现了钱包的业务逻辑

     它的好处是合约是可编码的,从而可以实现相比于EOA更复杂多样性的业务逻辑,比如Gnosis safe就是合约钱包,可以通过多签的形式来操作资产,这背后就是合约代码所实现的,所以CA相比于EOA的好处在于 1.可以实现更复杂的业务逻辑 2.资产承载在CA即智能合约而非某个人的地址上,也更安全

     大家可能会疑惑那CA钱包已经这么好用了,账户抽象和智能钱包又是干嘛的呢? 刚才说到了CA的两个好处是让“钱包用的更好”的过程,但不是让“钱包用的更简单”的过程,即它依然没有解决掉用户使用门槛的问题,这个门槛就在于

     1.用CA之前你还是得有一个自己的EOA钱包,私钥助记词这一步依然要迈过去

     2. CA的本质是一套智能合约,创建它是需要EOA支付gas费来部署的,其次CA的所有资产操作均需要EOA发起并支付gas费,智能合约自己是无法发起交易的,只能被动触发

     所以导致用户使用CA的路径依然是自己要先搞一个EOA,然后往里面充钱,再用它去创建一个CA并缴纳gas费,想让钱包用的更简单,降低用户进入门槛要解决的是 1.如何抛弃掉私钥助记词这一套包袱,而用传统web2邮件、手机这些用户非常熟悉且低门槛的账户体系 2.如何解决掉gas的问题,让用户少付甚至不付

     账户抽象想实现的就是继续以CA智能合约为钱包载体,但是尽量弱化EOA的必要性。其实解决思路其实就是在用户和CA之间加一层“代理”,由代理方帮助用户完成“触链”过程,如下图是V神写的文章中对账户抽象的架构设计,中间加了一层Bundler概念,建议大家阅读原文 https://medium.com/infinitism/erc-4337-account-abstraction-without-ethereum-protocol-changes-d75c9d94dc4a

     所以从账户抽象思想出发,大部分智能钱包设计思路也基本如此,下图为UniPass,其增加了Relayer层帮助用户提交交易和支付gas。

下图为DappOS,其增加了DappOS NetWork层帮助用户完成交易,接下来我会分别拆解Unipass和DappOS这两个项目,大家也会疑惑这个中间层具体是谁,又有何动力帮用户去做这些事

     下图为UniPass的官网,通过slogen可见其主打的是seedless无私钥和gasless无gas两个特点,注意这里它说的是“for your web3 apps”,我之前以为UniPass是一个C端产品,毕竟提起钱包就觉得是给C端用的,但是实际上它是一个面向B端的用户账号体系解决方案,这一点我等会讲DappOS的时候会再重点展开

     UniPass产品形态是为第三方app提供的SDK,传统的dapp用户的账号体系要么是导入/生成EOA地址,即传统的私钥那一套,但是这对于用户的使用门槛会很高,这也是很多dapp难以推广的原因。要么是通过中心化托管私钥的方式帮用户生成地址,然后再关联到用户的邮箱账号上,但是这则非常中心化从而不安全

     而使用UniPass则可以实现开箱即用的账号体系解决方案,降低产品用户使用门槛,并且账号是非托管的,即使UniPass挂了也不会影响用户。我们来具体体验一下UniPass并分析其核心解决方案,这是基于其SDK所开发的demo,如图可以直接通过熟悉的邮箱来创建账号密码并登陆,而非传统的私钥助记词

     UniPass创建的账号都会自动的在链上为用户部署一套智能合约,与该账户相关的数据和逻辑将保存在合约中。如下图所示当我注册后,自动的为我创建了一个合约,gas费是由项目方即relayer支付的,体验很顺滑对用户来说完全无感。

     其中relayer是个开源的服务端程序帮助用户提交交易和支付gas,其原理是元交易,它是一种其数据由一个人在链下创建和签署,并由另一个人支付汽油费的人执行的过程,它并不是一个很新的概念,早在18年的EIP-1077就出现了,并且解决方案也趋于成熟网上可以找到很多关于元交易的案例代码。

     其实它的逻辑淘宝好友代付是一样的,假设你的女朋友看中了8万的包包,在淘宝下单(签署交易),然后通讯录选择大冤种代付,这时候你的支付宝收到提示后,由你进行支付执行交易,然后下单成功你的女朋友就会收到包包,详细的原理可以看 https://medium.com/coinmonks/ethereum-meta-transactions-101-de7f91884a06

     所以我作为开发者使用UniPass,就有责任成为relayer帮我的用户代缴gas,当然我也可以实行比如只帮助代缴首次,如果再多需要用户付费等策略,这个可以有具体项目方自己决定。 UniPass还有一个重要特性是社交恢复,传统EOA如果私钥泄漏了是不可逆的,钱包彻底失去控制,但UniPass可以设置监护人

     当我的账户因为一些问题无法使用时,我可以使用社交恢复来重置账户,如下图所示UniPass 独创的链上邮件验证技术使用了DKIM签名来验证邮件的真实性,DKIM是一种身份验证方法,它使用公钥/私钥加密来验证电子邮件是否是由授权服务器发送,所以由UniPass发送的社交恢复邮件请求都会进行DKIM签名

     以上就是UniPass的使用体验和一些核心内容解析,我们再来看看DappOS,它是币安孵化器第五期的成员,总共有12个项目入围,还是挺有含金量的,如下图可以看到入围项目画像围绕在降低web3进入门槛和提高web3安全性的infra层项目居多

     如官网所示DappOS也是主打的让dapp拥有web2的顺滑体验,号称要将公链虚拟化,不过我觉得它这个名字起的挺好,实际上做的事情和UniPass等是一个方向,但是OS两个字让自己从“钱包”直接拔高到达了“操作系统”,让人看起来不明觉厉,直呼牛逼,不过目前其还处在很早期阶段,没有demo也没有开发文档

     所以只能通过白皮书来理解该项目,如图所示它也是在用户和链之间加了一个中间层,和UniPass的relayer一样也承担着执行交易的过程。但是最大的不同是DappOS的这个“网络”的概念更重更宏大,它不单单只是relayer那样由具体某一方来执行交易,而是搞了一套生态级的东西,整体思想和OP很像

     如下为这套网络生态的体系,其中有两类节点角色,超级节点向服务器节点传达交易,并惩罚服务器节点的不当行为,服务器节点则从超级节点接收交易并赚取利润,如果想成为服务器节点需要质押一定资金,然后去“接单”,比如一个用户需要从OP发起交易并在BNB进行支付,其中涉及到多环节多币种

     则服务器节点就可以接单去执行这个过程,并从中赚取手续费,如果产生违约行为则会被扣除质押金,当质押到一定程度就可以升级为超级节点并进行派单等操作,所以DappOS将代付这个环节玩出了花,一整套多角色的经济模型,成为DappOS的节点帮助用户代付可以赚取利润,这套模型如果跑出来想象空间很大

     但我刚才也说了毕竟现在项目还非常早期处在白皮书阶段,愿景很美好,能否落地需要观望,它的roadmap写到今年Q3才会进行节点测试,所以我个人感觉,虽然DappOS的愿景更宏大,但是它执行的难度也要比UniPass高很多,毕竟UniPass的relayer只是一个角色,没有什么生态、利润、奖惩等等这些复杂的体系

     所以落地起来也更容易,只需要考虑如何让更多B端接入,但是DappOS则需要将这一套生态建设起来才能保证上层交易的完成率,除了考虑B端还要考虑生态,我觉得成本还是不小的,但好在有币安加持,应该会催熟一波吧,不过无论如何UniPass和DappOS都是一个非常棒的赛道,让web3更简单易用。

     以上均为个人主观见解,存在偏颇和缺陷,如有不足还望见谅,不代表任何组织立场,不构成任何投资建议,欢迎互相交流探讨,欢迎点赞转发。

     也欢迎关注我的twitter:@jason_chen998,有需要也可添加微信 cj350306878,请备注姓名、公司和目的,谢谢。

往期文章:

Subscribe to Jason chen
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.