关于抽象账户(AA)的简洁梳理
1、抽象账户是一个概念,目前业界有多种尝试的方案。但是随着EIP-4337被确定下来,以太官方的抽象账户标准及操作框架基本确定下来了,但是离落地实现还有一定时间。
2、为什么要搞抽象账户?简单来讲,两大原因,一是,现有账户(钱包)使用门槛高、远不如WEB2的账户体验;二是,搞抽象账户,可以释放很多新功能,让钱包更灵活、智能。
3、现有账户体系的构成。以太坊现有账户分为两种类型,一是EOA账户,载体就是类似小狐狸的钱包,有密钥、有余额、有地址,可以主动发起交易,调用智能合约。二是智能合约账户CA,这类账户没有密钥, 是通过程序逻辑控制执行,有账户余额、有地址,但是不能主动发起操作,只能通过外部调用来执行。
4、现有账户EOA的问题:
基于密钥、助记词等的验证体系,使用过程中选择各种链,不太友好,使用门槛高
用户发起一次交易前,必须要有ETH
私钥、助记词丢失,财产永久丢失
不够灵活,任何操作的执行起点都是EOA本身(由EOA账户发起,就需要EOA账户,循坏死结)
5、抽象账户想怎么干?
第一,能不能绕开EOA,按照WEB的方式(比如邮件、密码、人脸等方式),构建用户端的账户。 第二,给用户账户配置智能合约(同样有账户链上地址),让用户所有链上交易的执行起点是智能合约,这样就能够参与链上活动,并足够灵活(通过智能合约发起链上交易,可以根据用户的需要配置各种交易逻辑,简单支付、转账、代付、交易限制、交易计划、账户委托、账号社交恢复等等) 想想都很美,既如WEB2一样简单,又可以拥有智能合约的灵活性和拓展性。但是, 第一点和第二点之间,存在天然的鸿沟。第二点,里面的智能合约谁来触发?又回到了问题的起点。
6、要弥合这个鸿沟,就诞生的多种解决方案。
其实道理很简单,肯定是需要一个中介的第三方那个来帮忙的。 比如,unipass,比如后续会出来的以太官方方案EIP-4337.
7、先看看unipass。
unipass就是构建了这样一个第三方平台(去中心化的),用户可以直接用邮件在他们的平台上注册账号,unipass通过自己控制的EOA账户【所谓relayer】代客户在以太坊上注册一个CA合约,并将CA的地址绑定在用户的名下(通过用户自身的密钥体系才能解锁智能合约 ),后续客户执行交易的时候,也是先将交易信息加密后(不一定是原来复杂的加密体系),发给UNIPASS-relayer(平台方),relayer用自己的EOA调用客户的智能合约,然后由客户自己账户中的智能合约执行相关交易。

这里显然有个问题,EOA发起交易,是有GAS费用的?怎么解决。目前,unipass是定位为第三方技术平台,后期可能寄往于希望发展客户的应用方去解决,同时尽可能将钱包放在layer2,降低交易费用。
8、再看看以太官方的EIP-4337方案
以太坊当然是希望在以太坊自身的体系内,构建抽象账户的支撑体系,而不是像UNIPASS去构建新的平台。 以太坊为了支撑抽象账户,增加了一个角色bundle、一个合约,入口点合约。

用户讲交易操作签名后,将交易信息发到用户操作内存池(以太坊基础设施),然后由bundle挑选相关交易打包发送到入口点合约。注意,这里bundle可以由以太坊矿工来承担,实质上就是承担了合约调用的功能,及外部EOA账户的角色(只是以后,根据这个提案,bundle的角色基本上就是矿工承担,但是目前不清楚这个不分的GAS,由谁来承担)。调用入口点合约以后,由入口点合约验证钱包、交易等,然后调用客户钱包的智能合约,完成用户的交易。
9、抽象账户的进展 目前EIP-4337,虽然是已经被认可的以太坊主网抽象账户的方案。但如8)中所提到的,这个方案gas费的问题并没有解决,甚至比EOA框架下更高;同时交易环节增多,风险也就更大了。本质上,EIP-4337是一个妥协的方案,并没有在共识层彻底解决EOA/CA分离的问题。但是,现在在二层网络,starknet就是原生支持AA的网络,zksync也能够支持账户抽象功能,loopering等也都有抽象钱账户的功能。二层毕竟是新网络,调整共识层难度会不大。
