# 读懂以太坊账户抽象方案 ERC-4337 

By [Ac-Core](https://paragraph.com/@ac-core) · 2023-04-20

---

**作者：Ac-Core 研究员**

**字数：本文超5500 字**

Meta Description：

ERC-4337有望成为改善Web3用户体验的催化剂，在确保安全性同时降低用户门槛，使得在数字钱包中进行交易和创建合约成为可能，同时也为每位用户友好的使用加密钱包打开了DIY的设计大门。

前言
--

自 2020 年以来 DeFi、NFT、Web3 等热词 ( Buzzword ) 接连出现，持续给加密货币领域带来新叙事；但对于陌生于新技术的用户来说，钱包建立、智能合约、去中心化应用这些操作都有一定门槛。

为降低新用户的上手门槛，以太坊创始人 Vitalik Buterin 联合 Yoav Weis、Dror Tirosh 发布账户抽象提案。旨在使以太坊钱包更易于使用

ERC-4337 将钱包变成「 智能合约 」的形式存在，或你能理解为「 智能账户 」这样带来的好处是：防止私钥丢失、优化交易流程、提升体验以助普及加密货币

先从了解以太坊账户开始
-----------

以太坊帐户是一个存储或管理以太币 ( ETH ) 或其他相关虚拟资产余额的数字账户，并可在以太坊上发送交易。 帐户由用户控制所有，同时也可以作为智能合约进行部署。每个以太坊账户都由一个唯一的地址和相关的私钥组成。

![(图片来自：https://ethereum.org/zh/wallets/find-wallet/）](https://storage.googleapis.com/papyrus_images/ca84e8385451b07937dbdc2ac8eb0615e4023d4797792b9f90374082c72fcb00.png)

(图片来自：https://ethereum.org/zh/wallets/find-wallet/）

**目前以太坊有两种类型「账户」**

分别为：外部账户（EOA）和合约账户（Contract Account）。

*   外部账户（EOA）由密钥，公钥和私钥组成。可发送或接受以太币和其他Token，如Meta mask它是任何拥有私钥的人实际控制的以太坊钱包。
    
*   合约账户（CA）是部署在网络上的智能合约代码，与外部账户（EOA）不同的是，它没有私钥，靠智能代码逻辑执行。同时合约账户不能被任何人直接访问，只能通过执行智能合约来进行交互。
    

总的来说，外部账户（EOA）是常规账户，可以通过私钥直接控制资金并发送交易，而合约账户（CA)则是由智能合约控制资金和交互方式的账户。合约账户(CA)可以做智能合约执行，而外部账户（EOA）只能用做签署交易。\*\* \*\*

以太坊上的交易如何进行？
------------

![(图片来自：https://ethereum.org/zh/developers/docs/transactions/）](https://storage.googleapis.com/papyrus_images/e569d2d158a6e7251d759d55e64f0cf06a2657b0d97c7097127ca0bcf8a8f504.png)

(图片来自：https://ethereum.org/zh/developers/docs/transactions/）

交易(Transaction)是指由某个外部账户转移一定资产（token）给另外某个账户， 或发出一个命令/指令到某一个智能合约。在整个ETH网络中，交易执行也属于一个指令。比如：交易过程中需要EOA签名，同时EOA也需要支付与这笔交易相关的GAS费用，其具有以下特点。

去中心化：以太坊是一个去中心化的平台，没有任何中心化的机构或个人掌控，所有                   的交易都由网络上的节点来验证和记录。这使得以太坊交易不受政府或                   其他机构的控制和干扰。

智能合约：以太坊交易可以用于部署智能合约或调用智能合约函数等操作。智能合约                  是一种自动化的合约，可以在满足特定条件时自动执行预定的操作，而不                   需要人为干预。这为许多应用场景提供了便利，例如投票、保险理赔等。

不可篡改性：所有的以太坊交易都被记录在区块链上，一旦被确认，就无法更改或删                      除。这保证了交易记录的不可篡改性和透明性。

燃料费机制：以太坊交易执行需要消耗计算资源，因此需要支付燃料费。燃料费的多                       少取决于交易的复杂程度和执行时间等因素。这个机制可以避免网络被                      恶意攻击和滥用。

快速确认：以太坊交易通常可以在几秒钟内被确认，相对于比特币等其他加密货币来                  说速度更快。

总之，以太坊交易是一种快速、去中心化、不可篡改、智能化的交易方式，为许多应用场景提供了便利。

### 解析EIP - 4337和ERC-4337

对于以太坊系统来说，提出每项技术变更最初都是从EIP或以太坊改进提案开始的，一旦链上治理模型接受，并授权确认更改，就会转变为ERC或以太坊征求意见稿。

EIPI-437最早于2021年提出，而ERC-4337在2023年3月部正式署在以太坊网络上，该标准使其在钱包进行交易和创建合约成为可能。此外ERC是更广泛EIP的空间元素，其主要目的是处理协议和开发标准。

![研究员Ac-Core 自制](https://storage.googleapis.com/papyrus_images/5b1cd6ffe41307953de50ee5013344e6503a2aa50b219eed15b27e4e394c4947.png)

研究员Ac-Core 自制

### ERC - 4337的定义及技术细节：

定义：

ERC-4337是一个以太坊标准（不一定是代币标准），旨在将用户账户超级化为智能账户。一个更技术性的定义方式是账户抽象化的手段。设计目标是为了支持可代币化的权益，它提供了一种标准化的方式来定义和交易这些权益。

技术细节：

1.  接口和方法：ERC-4337定义了一组接口和方法，使得代币可以被创建、转                                        移、销毁和查询等。
    
2.  智能合约：ERC-4337使用智能合约来实现代币的功能，智能合约中包含了代                   币的所有逻辑和规则。
    
3.  投票和治理：ERC-4337允许代币持有人参与投票和治理机制，这可以通过定                      义相应的合约和接口来实现
    
4.  合规性要求：ERC-4337考虑了一些法规和合规方面的要求，如KYC、AML                     （反洗钱）等，这些要求可以在代币的合约中定义和实现。
    
5.  可升级性：ERC-4337支持代币合约的升级，这可以通过使用升级合约来实现                   ，新合约可以包含新的功能和规则。
    

### 为什么要抽象？

通过EIP-4337或目前的ERC-4337，以太坊有计划为用户账户带来新的思维模式。简单来说可将以太坊的智能合约功能带入钱包中，让钱包和智能合约融合成为一体以同时处理多个签名，认证，启动和订阅等功能等，但这些功能都是通过代码来实现的。

### 账户抽象，到底抽象了什么内容？

抽象的意思：由你自己完成（钱包的创建者），它主要分为三个板块：证明，回撤保护及付款。

证明：1.会有不同的处理方案（ECDSA，BLS，Quantum-resistant）

          2\.更改签名功能
    
          3\.多重签名功能
    
          4\.恢复账户功能
    

回撤保护：1.有次序性的回撤保护

                  2\.并且，多维度且同时性的回撤保护
    

付款：1.账户直接付款

2.可设置管理员并支付薪酬进行资产管理

### 来自Vitalik富有技术性的版本：

我们根据Vitalik Buterin的Medium内容，下图是用户操作mempool更为详细的表示。值得注意的是：捆绑商以 ETH 支付捆绑交易的费用，并通过所有单独UserOperation执行的一部分支付的费用获得补偿。捆绑者将根据类似于矿工在现有mempool中的运作方式所需费用优先级的逻辑，先后处理要包括的对象。

![(图片来自：https://medium.com/infinitism/erc-4337-account-abstraction-without-ethereum-protocol-changes-d75c9d94dc4a)](https://storage.googleapis.com/papyrus_images/720c2657e55b8c034f79ecdc9e7b8b330daae4bd389abc8cd3ded4bd0fb87cc9.png)

(图片来自：https://medium.com/infinitism/erc-4337-account-abstraction-without-ethereum-protocol-changes-d75c9d94dc4a)

由此可以看出需捆绑者既愿意的验证者来支付费用，所以当UserOperation对象被Entry point或singleton合约处理、验证和执行时，它们会得到一定的补偿。

### EOA欠佳的用户体验与账户抽象背后的理念：

![(图片来自：https://twitter.com/iam_preethi/status/1454455482874306561）](https://storage.googleapis.com/papyrus_images/ececabb747b7ce6dd0acba04f4f31b2e31fc75ca4be3ead8fb2ff76ae6271e15.png)

(图片来自：https://twitter.com/iam\_preethi/status/1454455482874306561）

现在我们对ERC - 4337有了一定了解，下步看它在以太坊主网上被采用的动机。 目现大多数钱包如Meta Mask，imtoken等都是EOA或由第三方提供支持的外部拥有账户，这些钱包现在虽然普及率极高，但也会面临以下各种问题：

1.  安全问题：如果私钥泄露，攻击者将可以使用这个私钥控制账户中的所有资产
    
2.  签名算法较少：在原生协议验证交易问题中只能使用ECDSA签名和验鉴算法
    
3.  交易无法撤回：无论你主动还是被动犯错，此交易均不可撤回
    
4.  可追溯性问题：以太坊的交易是公开的，一旦交易被记录在区块链上，交易信息就无法被篡改或删除。因此，以太坊外部账户上的所有交易都是可追溯的，这可能泄漏用户的隐私。
    

其次单纯的合约钱包（CA）同样也会有一些问题：

1.额外费用问题：对合约钱包的操作必须由EOA发起调用合约，且每笔交易将消耗更多的GAS费用

2.交互性问题：交互性可能不够友好，用户体验较差，操作难度大。例如:需要手动输 入交易数据、填写繁琐的交易手续等，都可能对用户造成困扰。

3.去中心化问题：管理多个账户时，或需牺牲去中心化依靠Relayer来支付Gas费

4.兼容性问题：以太坊合约钱包可能存在与不同网络或协议不兼容的情况。例如，一 些以太坊合约钱包可能不支持某些ERC标准代币，或者不支持与其他 区块链交互的功能等。

5.缺乏标准化：以太坊合约钱包的设计和实现缺乏标准化，导致不同合约钱包之间的交互性差。可导致用户在不同的合约钱包之间转移资产时遇到困难。

我们将外部账户和合约账户做一比较：

![研究员Ac-Core 自制](https://storage.googleapis.com/papyrus_images/918fa0b26758bdf750b4ad5ee2f86ff91bd527cd85d4c3461526e657e1350f2b.png)

研究员Ac-Core 自制

综上：通过对比得出用户可以在AC中使用代码编写出自己想要的智能合约。账户抽象的目的是结合该协议以上两种账户类型的特点。在一个单一的钱包中，与代币进行交易的同时又能创建合约。其破局之道在于实现抽象账户将所有权和签名全进行解耦，从而适中性的解决问题。

### ERC - 4337折中方案

Safa多签钱包方案

![（图片来自：https://safe.global/）](https://storage.googleapis.com/papyrus_images/96debd01411debc292e74a7112ea27d14126a6be5683883d2db1477d64927957.png)

（图片来自：https://safe.global/）

所谓多签钱包即：使用智能合约实现交易多签功能的合约钱包，我们以Safa多签钱包为例（原名：Gnoiss Safa)，我们可设置三人或多人共同管理的多签规则，如三人或五人共管，需两人或三人共同签名确认后才可执行交易（2-of-3，3-of-5)。

**以下是 Safe 多链钱包的解决方案：**

多链支持：Safe 支持多种数字货币和区块链网络，如以太坊、比特币、波场等。Safe                  用户可以在同一个钱包中管理不同的数字资产，无需使用不同的钱包来管                   理不同的数字货币。

安全性：Safe 采用高级加密技术来保护用户的私钥和资产安全。私钥只存储在用户设

备本地，不会存储在 Safe 服务器或其他地方。此外，Safe 还提供了备份和               恢复功能，以便在用户丢失或损坏设备时能够快速恢复资产。

易用性：Safe 提供了简单易用的用户界面，使用户可以轻松地发送和接收不同的数字               货币。此外，Safe 还提供了实时价格更新、多语言支持和社交媒体分享功能               ，以增强用户体验。

兼容性：Safe 可以与多个区块链网络和第三方应用程序进行集成。例如，Safe 可以               与去中心化交易所集成，以便用户可以直接在 Safe 钱包中进行交易。

社区支持：Safe 拥有活跃的社区，用户可以在社区中与其他用户交流和分享经验。此                  外，Safe 社区还提供技术支持和安全漏洞报告机制，以确保 Safe 钱包的                   安全性和稳定性。

这种做法虽给用户带来了便利，但由于它的钱包合约及后端程序的功能过于复杂，对非技术人员来说并非友好，因此Safa方案很难成为行业通行的标准的做法，只适合需要一些定制的特殊功能服务。

因此通过分析优缺点也格外凸显，优点在于通过智能合约自身的高度定制化能力，来实现灵活多变自组性强的功能。缺点同样还是依赖于EOA账户来做管理，其实这本质也是签名算法的局限性。

### ERC - 4337对用户和行业意味着什么

![（图来自：https://inevitableeth.com/en/home/ethereum/upgrades/consensus-updates/account-abstraction）](https://storage.googleapis.com/papyrus_images/1636ecdaae60363d6c03833ff62189f57c8c90bbc7fe389abd2cc546ed61282e.png)

（图来自：https://inevitableeth.com/en/home/ethereum/upgrades/consensus-updates/account-abstraction）

ERC- 4337与以太坊的集成对于web3用户，EVM所兼容链的生态系统和整个加密空间来说意义重大，它的主要改进是增加了一些新的功能和升级了一些现有功能，使得代币的使用更加方便和灵活。不妨设想一下：

**对于用户来言：**

1.  更方便的代币转移：ERC-4337标准增加了一些新的功能，比如增加了代币转                                 移时的备注功能，使得用户可以更方便地在代币转移时添                                加一些备注信息，方便后续的跟踪和管理。
    
2.  更安全的代币交易：ERC-4337标准采用了一些新的安全性协议和机制，增加                                 了代币交易的身份验证功能，使代币交易更加安全可靠。
    
3.  更灵活的代币使用：ERC-4337标准增加了一些新的功能，比如增加了代币销                                 毁和代币回收的功能，使得代币的使用更加灵活。
    

**对于行业而言：**

1.  更广泛的应用场景：ERC-4337标准的改进使得代币可以应用于更广泛的领域                                 和场景，比如物联网、供应链管理、数字资产等领域。
    
2.  更高的安全性和可靠性：安全性升级和身份验证机制的增加，使得代币交易更                                         加安全可靠，将对金融、保险等行业产生积极影响。
    
3.  更好的互操作性：ERC-4337标准的升级使不同代币可以更方便地互相转移和                            交换，促进代币市场的发展，推动代币经济的壮大。
    

因此考虑到它的潜力，ERC-4337可能会在加密货币投资者中引起一股狂热，通过钱包引入智能合约技术加入的账户抽象元素将预示着更多可能性，也意味着会有更多的人们加入其中。

同时另一个层面考虑，以太坊ERC - 4337将促进更为广泛的加密货币的采用。它将一个复杂的数字无银行支付系统转变为一个大多数人都可以理解并可接受的简化系统。因此对于下一代加密采用者来说，这将会是一个非常大的设想。

---

*Originally published on [Ac-Core](https://paragraph.com/@ac-core/erc-4337)*
