# 抽象账户简洁梳理

By [N-sky](https://paragraph.com/@n-sky) · 2023-04-04

---

关于抽象账户（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调用客户的智能合约，然后由客户自己账户中的智能合约执行相关交易。

![](https://storage.googleapis.com/papyrus_images/06bb09a7e2995499f1f0c53a6e017cd9a0684f0da95ec8f769bc28df50942f88.png)

这里显然有个问题，EOA发起交易，是有GAS费用的？怎么解决。目前，unipass是定位为第三方技术平台，后期可能寄往于希望发展客户的应用方去解决，同时尽可能将钱包放在layer2，降低交易费用。

8、再看看以太官方的EIP-4337方案

以太坊当然是希望在以太坊自身的体系内，构建抽象账户的支撑体系，而不是像UNIPASS去构建新的平台。 以太坊为了支撑抽象账户，增加了一个角色bundle、一个合约，入口点合约。

![](https://storage.googleapis.com/papyrus_images/fce41da07e744d39e5736a3739d87e594d2a9f15f99777b111ed9594f4f8f8eb.png)

用户讲交易操作签名后，将交易信息发到用户操作内存池（以太坊基础设施），然后由bundle挑选相关交易打包发送到入口点合约。注意，这里bundle可以由以太坊矿工来承担，实质上就是承担了合约调用的功能，及外部EOA账户的角色（只是以后，根据这个提案，bundle的角色基本上就是矿工承担，但是目前不清楚这个不分的GAS，由谁来承担）。调用入口点合约以后，由入口点合约验证钱包、交易等，然后调用客户钱包的智能合约，完成用户的交易。

9、抽象账户的进展 目前EIP-4337,虽然是已经被认可的以太坊主网抽象账户的方案。但如8）中所提到的，这个方案gas费的问题并没有解决，甚至比EOA框架下更高；同时交易环节增多，风险也就更大了。本质上，EIP-4337是一个妥协的方案，并没有在共识层彻底解决EOA/CA分离的问题。但是，现在在二层网络，starknet就是原生支持AA的网络，zksync也能够支持账户抽象功能，loopering等也都有抽象钱账户的功能。二层毕竟是新网络，调整共识层难度会不大。

---

*Originally published on [N-sky](https://paragraph.com/@n-sky/FCbcLawzsh7fZ7emYAfD)*
