# 账户抽象如何确保以太坊大规模化普及


By [Vinde.eth](https://paragraph.com/@0xvinde) · 2022-11-12

---

原文：Account Abstraction — A pivotal step in ensuring Ethereum’s adoption.

账户抽象是今年被反复关注的话题，但很少有市场参与者了解它是什么以及它如何改变游戏规则。根据 Vitalik 的说法，帐户抽象是“我们一直想要的东西”，并且它一直是“以太坊社区的长期梦想”。

本篇文章，我们将讨论，帐户抽象在扩展以太坊区块链和确保大规模采用中的作用。

首先，要全面了解账户抽象，我们首先需要了解计算机科学中的抽象是什么：

抽象的艺术
-----

抽象是指去除系统的物理、空间或时间细节，并专注于更重要的属性。

软件工程中一种流行的抽象形式是数据抽象，它只是指隐藏信息并允许用户在高层次上使用计算机，而无需彻底了解其背后发生的逻辑或过程。

例如，当开发人员要编写软件时，他们会编写 Python、Java 等高级编程语言。程序员不需要了解如何编写构成机器码的 0 和 1。

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

以太坊帐户抽象
-------

账户抽象是数据抽象的一种形式。要了解从以太坊账户中抽象出什么，我们必须首先了解账户在以太坊上是如何工作的。以太坊上有两种类型的账户，即：

外部拥有的账户 (EOA)、合约账户 (CA)

### 外部拥有的账户 (EOA)

合约账户是由以太坊网络上的代码控制的智能合约。合约没有私钥，而是由以太坊网络上的智能合约代码的逻辑控制。由于您正在使用网络存储，因此开立合约账户需要支付一定的费用。这种账户只能发送交易作为对接收交易的响应。

### 合约账户 (CA)

合约账户是由以太坊网络上的代码控制的智能合约。合约没有私钥，而是由以太坊网络上的智能合约代码的逻辑控制。由于您正在使用网络存储，因此开立合约账户需要支付一定的费用。这种账户只能发送交易作为对接收交易的响应。

以太坊账户有四个字段
----------

Nonce - 这充当一个计数器，指示从帐户发送的交易数量。 nonce 是一个重要的特性，因为它确保事务只在 EOA 上发生一次。在 CA 上，nonce 代表一个账户创建的合约数量。

余额 - 这表示以 wei 衡量的地址拥有的 eth 数量。

Codehash - 这是指以太坊虚拟机（EVM）上的帐户代码。不同的代码片段具有不同的独特功能，一旦调用代码的哈希值就会发挥作用。对于 EOA，这由空字符串的散列表示。

Storageroot - 这也称为 storage has 并简单地映射帐户的存储内容。

现在我们知道了以太坊上的两种账户，我们可以定义账户抽象。账户抽象是将以太坊的两种账户（外部拥有账户和合约账户）简化为单一类型——合约账户的过程。由此产生的合约账户将能够发起交易、支付交易费用，并且可以根据用户的独特需求进行定制。合约账户将具有传统 CA 和 EOA 的功能。

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

实施技术
----

以太坊的创始人 Vitalik Buterin 描述了几种在网络上实现账户抽象的方法。这些方法包括：

*   Lazy Full Abstraction：这是经常讨论的抽象形式。它是将以太坊账户从 EOA 和 CA 减少到只有 CA。用户将资金存储在合约账户中，合约代码解释并执行编码在 nonce、余额、代码哈希、签名、gas 价格和存储哈希中的数据。
    

优点：这使得协议非常简单

缺点：

需要将非常复杂的代码硬连接到每个帐户中，以验证 nonce 签名并支付 gas。

在矿工为发件人创建新帐户之前，需要额外的逻辑。

由于帐户是以非标准方式创建的，因此可以多次包含具有相同哈希的交易。

*   去除随机数抽象：在这种实现技术中，通过使交易随机数等于帐户随机数来抽象随机数。
    

优点：nonce 抽象消除了事务在多个地方发生的可能性

缺点：它使基础协议更加复杂。

标准化签名方案：这种抽象方法为交易添加了字节数组字段签名。

优点：这使签名验证更简单

缺点：它增加了基础层的复杂性。

Vitalik 概述的其他一些账户抽象技术包括添加断点操作代码、添加付费Gas操作代码、插入Gas价格 + 恐慌操作代码、结合恐慌和付费Gas操作代码、在交易中组合盐（salt） + 代码、新创建的账户支付 .

帐户抽象的好处
-------

至此，您可能想知道这对您有何影响，以及这将如何使以太坊区块链变得更好。让我们来看看帐户抽象的一些好处：

1、多呼叫功能的实现：目前，在与以太坊区块链交互时，您必须为每个操作进行新的交易。有了抽象，所有交易都可以一键完成，节省了用户的Gas、时间。

2、会话密钥：会话密钥允许用户在与去中心化应用程序（Dapp）交互时指定规则。这些规则将保证更高的安全性，因为用户仅限于预先批准的规则，确保恶意行为者无法修改帐户并窃取您的资金。可以使用会话密钥指定的一些参数包括帐户可以与 Dapp 保持连接的最长时间、可以使用的最大Gas以及可以交易的代币数量的安全阈值。一些实现此功能的团队包括战利品领域、briq、matchboxDAO 和分类帐。

3、社会恢复。帐户抽象化允许结束metamask流行使用的种子短语。社会恢复允许用户通过一个值得信赖的联系人或可靠的第三方服务指定恢复方法。如果用户在试图恢复账户时改变主意，他们也可以在恢复前设置延迟计时器。Argent正在实施这一措施，并允许用户在google drive上备份其加密的种子短语。

4、多因素认证：一些传统金融机构正在推动规范双因素认证。这种安全模型可以通过账户抽象来实现，允许用户指定和创建多重签名钱包。

5、插件：帐户抽象允许第三方开发人员在创建帐户时插入新功能。

6、多代币费用支付：账户抽象将使用户能够以以太坊以外的任何代币支付Gas费。

7、费用委托：账户抽象将允许用户代表他人支付费用。项目和协议可以代表用户支付 gas 费用，使入职过程更加无缝。

8、多样化的签名方案：帐户抽象将允许与当前 ECDSA 方案不同的签名方案。只有抽象才会允许这种变化。这将：

*   引入量子阻力，确保以太坊不能被伪造或被量子计算机攻击。
    
*   创造更有效的签名算法，这将可能导致更低的Gas费用。
    
*   允许合约账户可升级。
    

我们相信，账户抽象化可以使以太坊链对网络更加可用，以使下一波用户进入DeFi。

---

*Originally published on [Vinde.eth](https://paragraph.com/@0xvinde/TZceVzojgSaZbWsOCkjf)*
