Cover photo

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

大家好,我是字节君!

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

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

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

1、什么是抽象?

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

在去年的上海万向区块链全球峰会上,Nervos 首席架构师 Jan Xie 发表过一篇演讲,题目为《区块链抽象与演进》。在演讲中,他用过一个通熟易懂的例子:

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

图:街机

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

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

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

2. 什么是账户抽象?

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

那么,什么是 “账户抽象” 呢?

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

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

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

如果你想了解外部账户和合约账户的更多区别,请继续阅读《知县:Web3 账户概念梳理,钱包使用不迷路》。

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

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

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 账户。

  • JoyID,尚在开发中的 Web3 钱包,利用了手机的安全芯片,能让用户直接使用 Face ID 和 Touch ID 来安全地创建钱包账户。

Nervos 的 “抽象” 不仅仅表现在账户抽象这一个层面,还有密码学的抽象、运行时的抽象等等。如果你想了解更多,欢迎阅读《区块链抽象与演进》。

推荐阅读