# 以太坊想要实现“账户抽象”，Nervos 已经走在前列

By [Nervos 中文社区](https://paragraph.com/@nervos) · 2022-11-02

---

大家好，我是字节君！

最近一段时间，“**账户抽象（Account Abstraction，AA）**” 这个名词又流行起来了。其中一部分原因是以太坊重点发展的 Layer 2 其格局基本上已定，Vitalik 对以太坊升级的后续计划开始转向账户抽象。在 Vitalik 最新的提案中，提出了通过 Layer 2 来处理账户抽象化产生的数据。

另一部分原因，是账户抽象确实会带来很多优点。UniPass 创始人知县在上周的一个分享中提到 “[AA 钱包在 Web3 钱包中是更新的范式](https://mp.weixin.qq.com/s/CBptUYlGyBeA91EPfeqALA)”。很多行业媒体也纷纷撰文，科普账户抽象相关的知识，取的标题有《浅谈账户抽象：如何对现在的钱包进行降维打击？》、《账户抽象方案会重塑钱包赛道，就像移动支付取代现金和信用卡》、《详解近期热议的 “账户抽象”：Devcon 后的新风口？》、《深入探究账户抽象与 Web3 钱包终局》......

今天，字节君也给大家简单聊聊账户抽象，因为账户抽象并不是一个新事物，在设计之初 Nervos 就有考虑这点。

1、什么是抽象？
--------

“抽象”这个词本身就很抽象。**从技术的角度，所谓“抽象”是一个过程，我们把特殊性从一个系统里去掉，然后从系统里创造出一般性、普遍性。**

在去年的上海万向区块链全球峰会上，Nervos 首席架构师 Jan Xie 发表过一篇演讲，题目为《[区块链抽象与演进](https://talk.nervos.org/t/topic/6241)》。在演讲中，他用过一个通熟易懂的例子：

游戏厅里玩的街机，每一台机器其实对应一个游戏。对于街机来说，系统设计是从软件到硬件一体的设计，所有设计都是围绕一个目的服务的，那就是这一款游戏。当我们需要创造另一款新游戏的时候，我们需要另外设计一台新的机器。所以，游戏厅里摆了十台、二十台机器，每台机器是不同的游戏。

图：街机

游戏行业发展到今天，最流行的东西已经不是街机了，更多的是像 Xbox 这种通用的游戏平台。Xbox 是一般化的设计，你可以为 XBox 设计各种各样的游戏。玩家可以购买不同的游戏去玩，这些游戏通通可以在 Xbox 这个平台上运行。

所以，从街机到 Xbox 就是一般化的过程。从另外一个角度来说，Xbox 是抽象层次更高的设计，可以适用更多的场景，里面为每一个特定游戏所打造的特殊东西很少很少，几乎没有。正是因为它没有那些特殊的细节，在这个平台上的开发者才能填补细节，才能让平台能够适应各种各样的需求。

**所以，“抽象”就是一般化的过程，通过去掉特殊的设计，把共性找出来，让系统可以变得更加一般化，从而适用于更多的场景。**

2\. 什么是账户抽象？
------------

Vitalik 说，**账户抽象是 “我们一直想要的东西”，它 “长期以来一直是以太坊开发者的梦想社区”。**

那么，什么是 “账户抽象” 呢？

在解释这个概念之前，字节君先给大家介绍下目前的以太坊账户类型：外部账户（Externally Owned Account，EOA），合约账户（Contract Account，CA）。

**外部账户**（EOA），就是我们平时在钱包里生成的以太坊账户，由一把私钥与该私钥对应的公开地址来表示。在一般情况下，私钥掌握在我们自己的手中。

**合约账户（CA）**，没有私钥 ，仅有公开的地址，是智能合约分配的账户，它部署在区块链上，由存储在智能合约账户内的以太坊虚拟机代码控制。

如果你想了解外部账户和合约账户的更多区别，请继续阅读《[知县：Web3 账户概念梳理，钱包使用不迷路](https://mp.weixin.qq.com/s/-bdTx54FdrOF4hX2V1AH6A)》。

**以太坊的账户抽象，是对以上两种账户的一种改进，尝试模糊二者之间的界限，变成一种包含复杂逻辑的通用性账户，使账户可以同时拥有合约账户和外部账户的功能。**

从技术的角度来看，以太坊账户抽象在做的事情就是把账户层和密钥层抽象出来，用户可以自定义里面的逻辑。

3\. 为什么要账户抽象？
-------------

账户抽象为什么是以太坊一直想要的东西？

知名自媒体蓝狐笔记的一条推文总结得非常好，摘录如下：

> 以太坊的账户抽象方案是开启 Web3 应用和大规模用户采用的先行基础。它支持智能合约钱包，简化交易步骤，降低费用和代付费用等，整体上有机会大幅提升用户体验，降低用户进入门槛。当然也有缺点，如费用太高。后续有可能会跟 rollup 结合，进行落地的尝试。

以太坊账户抽象之后，能带来多维的可拓展性。

UniPass 创始人知县在分享中提到：\*\*智能钱包是当前实现以太坊账户抽象最有前途的方法，不需要从共识层、底层改进，ERC-4337 可以让应用层做账户抽象这个事情。\*\*他列举了智能钱包相比于 EOA 钱包的 4 大优势：

1、\*\*更强的功能性，\*\*比如签名的内部逻辑、gas费用的代付、批量交易等都可以通过智能钱包实现。

2、**更好用**，让用户的门槛降得很低。备份密钥这件事情可以使用社交恢复给替代，包括 gas 支付也是如此。

3、\*\*更大的可扩展性，\*\*可以安装类似于装插件的操作，让功能变多。

4、**范式转移**，很多传统观念会被覆盖，例如私钥公钥对应，需要付 gas，或者是需要不断 approve，这些场景都可以被打破。

总结起来，账户抽象能在钱包、DeFi 等各种应用场景下显著改善用户与以太坊链的交互体验，而智能钱包是当前实现以太坊账户抽象最有前途的方法。

4、Nervos 的账户抽象
--------------

在账户抽象这点上，Nervos 在设计之初就有所考虑，所以 Nervos CKB 推出了新的数据账号模型 — — **Cell 模型**。Cell 是通用版的 UTXO，一个 cell 是一个包含任意数据和可定制脚本的 UTXO。

Cell 模型拥有账户抽象的能力，能够实现什么样的效果呢？搭建在 Nervos CKB 上的应用，可以被不同地方的用户用到，举几个例子：

*   UniPass，搭建在 Nervos CKB 上的去中心化区块链账户系统，不需要用户保存私钥、助记词，直接使用邮箱做账户，让普通的互联网用户也可以直接使用区块链上的应用。
    
*   .bit（原 DAS），搭建在 Nervos CKB 上的 Web3 身份协议，利用了抽象账户的特性，[使得以太坊用户、BSC 用户、Polygon 用户、Tron 用户都可以直接操作 .bit 账户。](https://mp.weixin.qq.com/s/BpRBJdZtjb10iwUUK_Ek2g)
    
*   [JoyID](https://mp.weixin.qq.com/s/NG4iA7sER5b6RB6G3tcG7g)，尚在开发中的 Web3 钱包，利用了手机的安全芯片，能让用户直接使用 Face ID 和 Touch ID 来安全地创建钱包账户。
    

Nervos 的 “抽象” 不仅仅表现在账户抽象这一个层面，还有密码学的抽象、运行时的抽象等等。如果你想了解更多，欢迎阅读《[区块链抽象与演进](https://talk.nervos.org/t/topic/6241)》。

推荐阅读
----

*   [区块链抽象与演进](https://talk.nervos.org/t/topic/6241)
    
*   [UniPass 知县：为什么 AA 钱包在 Web3 钱包中是更新的范式](https://mp.weixin.qq.com/s/CBptUYlGyBeA91EPfeqALA)
    
*   [知县：Web3 账户概念梳理，钱包使用不迷路](https://mp.weixin.qq.com/s/-bdTx54FdrOF4hX2V1AH6A)
    
*   [其他公链的地址如何管理 CKB 链上的资产？](https://mp.weixin.qq.com/s/BpRBJdZtjb10iwUUK_Ek2g)
    
*   [JoyID：面向大规模用户落地的非托管钱包](https://mp.weixin.qq.com/s/NG4iA7sER5b6RB6G3tcG7g)
    
*   [从 .bit 的融资看 Nervos 公链的优势](https://mp.weixin.qq.com/s/X3pQUAE2I-fLk642Vx311Q)

---

*Originally published on [Nervos 中文社区](https://paragraph.com/@nervos/nervos-3)*
