---
title: "EIP-7702：Pectra 升级后 Ethereum 开发者快速集成指南"
description: "Ethereum 即将迎来 EIP-7702 这一重要升级。以下是面向所有开发者的集成注意事项快速指南。"
---

# EIP-7702：Pectra 升级后 Ethereum 开发者快速集成指南

<ImageBlock
  src="https://media.alchemy.com/1738616619-eip-7702-blog.jpg"
  alt="Ethereum Pectra 升级中的 EIP-7702，为 EOA 提供智能账户能力"
  width={3200}
  height={1600}
  caption="EIP-7702 为 EOA 提供智能账户能力"
  priority
/>

<CalloutBlock>

太长不看?我们懂。可以看看[我们在 X 上的系列内容](https://x.com/Alchemy/status/1886965484383559972),里面有简短的讲解和演示。

</CalloutBlock>

[Ethereum 的路线图](https://ethereum.org/en/roadmap/pectra/7702/)正朝着主流加密货币采用迈进,而**[EIP-7702](https://www.alchemy.com/overviews/eip-7702-metamask-and-wallets)**是其中的重要一环,包含在[**Pectra 硬分叉**](/overviews/ethereum-pectra-upgrade-dev-guide-to-11-eips)中。这次升级标志着 Ethereum 迈向**账户抽象**旅程中的一个关键节点,旨在让链上体验更流畅、更智能、更易用。具体来说,EIP-7702 让外部拥有账户(Externally Owned Accounts,EOA)能够使用智能合约账户的功能。

作为开发者,你们是下一代链上创新的构建者,我们希望确保你们能充分发挥 EIP-7702 的潜力。作为[<u>为数百万链上应用提供支持</u>](https://www.alchemy.com/)的基础设施建设者,我们希望在这方面为你们提供指引。

这是我们针对应用开发者深入解析 EIP-7702 系列文章的第一篇。我们将一起探讨这项提案为何重要、其底层原理,以及帮助你决定如何(以及为何)将这些前沿功能集成到应用中的关键技术考量。让我们一步一步构建未来。

太长不看:

- EIP-7702 让 EOA 能够将控制权委托给智能合约账户,后者可以直接从该地址执行代码
- 它与主流的 AA 标准 ERC-4437 兼容,因此现有钱包可以变为智能合约钱包,而无需创建新地址或转移资产
- 对用户而言,它将带来类似 Web2 的功能,包括账户恢复和用于简化身份验证的 passkey 登录,以及 Web3 的优势,比如由项目方赞助 gas 费,以及用任意代币(而不仅是 ETH)支付 gas

## Ethereum 账户的现状

2024 年 5 月,Vitalik Buterin 提出了[<u>EIP-7702</u>](https://eips.ethereum.org/EIPS/eip-7702),这项提案可能从根本上改变 Ethereum 账户的运作方式。这项最初只是在一次全体核心开发者会议前用 22 分钟写成的草案,如今已被纳入 Pectra 升级。EIP-7702 代表着迈向完整账户抽象的关键一步,同时解决了当下的可用性问题。

但要理解 Ethereum 的发展方向,我们需要先[<u>了解其当前架构</u>](https://www.alchemy.com/overviews/what-is-account-abstraction)。

如今,Ethereum 用户依赖两种类型的账户:由私钥控制的**外部拥有账户(EOA)**,以及可以直接执行代码的**智能合约账户(SCA)**:

**外部拥有账户**:

- 可以发起交易
- 无法直接从其地址执行代码
- 仅限于基本操作

**智能合约账户**:

- 可以执行代码
- 无法发起交易
- 更灵活、可编程性更强

EIP-7702 的目标是将这两者合二为一,让*任何账户都能像智能合约一样运作*。通过让 EOA 能够直接从其地址执行代码,Ethereum 开发者可以在链上构建媲美 Web2 的用户体验,具体功能包括:

- 会话密钥(Session keys)
- 账户社交恢复
- 无需助记词的身份验证机制
- 将多个操作打包为一次点击完成

以下是关于 EIP-7702 工作原理的一些要点。

### 关于 EIP-7702 与 ERC-4337 你应该了解的事

EIP-7702 并不会取代 Ethereum 现有的 AA 标准 ERC-4337。EIP-7702 的设计初衷是与 ERC-4337 互补,让这些账户抽象功能更容易触达用户。但 ERC-4337 确实存在一个局限:

- 由于它与 EOA 不向后兼容,因此需要创建新钱包

**EIP-7702 消除了这一局限**,且无需对 EVM 的共识逻辑做更深层的改动:

- 使用现有钱包
- 不需要新账户或迁移
- 与 ERC-4337 的基础设施完美契合
- 现有 EOA 只需通过委托指示符(delegation designator)委托智能合约逻辑

### EIP-7702 的执行流程

EIP-7702 依赖一种巧妙的委托机制,该机制要求用户提供授权以执行智能合约代码。这种授权在用户明确撤销之前一直有效,这意味着用户需要信任自己授权的代码不是恶意的。

执行流程如下:

1. **设置**:EOA 决定将控制权委托给一个智能合约钱包
1. **验证**:系统检查该委托是否已正确签名
1. **执行**:EOA 获得智能合约的能力
1. **清理**:如果 EOA 决定撤销智能合约的控制权,必须发送另一笔 7702 交易将委托重置为 0

EOA 通过存储一个**委托指示符**来获得像智能合约账户一样运作的能力。这个指示符是一段特殊代码,`0xef0100 \|\| address`,其中 `address` 指向一个包含所需功能或操作的智能合约。

委托指示符使用被禁用的操作码 `0xef`,以将其与常规数据区分开来,确保代码执行操作会从指定地址加载代码。

当一笔交易发送到该 EOA 时,该 EOA 会执行指定地址上的代码,从而获得智能合约账户的功能。

### 应用开发者需要考虑的采用与安全因素

EIP-7702 的普及主要依赖一个因素:钱包提供商。由于钱包处于应用的上游,如果没有钱包的支持,应用开发者及其用户就无法使用 EIP-7702 所带来的功能。

与智能合约账户相比,EIP-7702 也呈现出不同的安全模型。首要的一点是,EIP-7702 账户仍然保留其原始的 EOA 私钥,该私钥可以覆盖智能账户的安全规则。

你应该如何集成 EIP-7702 所支持的钱包功能,取决于几个因素:你应用所处的开发阶段、你所面向的用户类型,以及你在多链部署应用时所需要的灵活性。

#### 面向已有用户和内嵌钱包的开发者

如果你已经拥有内嵌钱包,那很幸运。我们将通过[**智能账户**](/smart-wallets)帮助你管理不同类型的用户:

- 现有 EOA 用户可以升级为 ERC-4337 账户
- 新用户可以直接从纯 ERC-4337 账户开始
- 系统将同时支持智能 EOA(EOA+7702)和纯 ERC-4337 账户

#### 面向尚未部署应用的开发者

对于全新开发的应用:虽然 ERC-4337 和 EIP-7702 都能实现账户抽象,但它们在现代区块链应用中满足的是不同的需求。

ERC-4337 提供纯粹的智能合约账户,具备最大程度的可编程性、丰富的交易自定义能力,以及成熟的工具支持,非常适合单链应用,以及大多数以账户功能为核心诉求的多链应用。

相比之下,EIP-7702 提供一种混合方案,让账户既能作为 EOA,也能作为智能合约运作,从而实现跨链的无缝兼容性和地址在各网络间的一致性,同时由于不需要立即部署合约,初始 gas 成本更低。

**在以下情况选择 ERC-4337:**

- 深度的账户可编程性是核心需求
- 你正在构建一个多链应用,但不需要在部分链上使用 EOA、在另一些链上使用 SCA 这种灵活性
- Gas 成本不是主要顾虑
- 你需要丰富的交易自定义能力
- 你希望利用现有的 4337 基础设施

**在以下情况选择 EIP-7702:**

- 你正在构建一个多链应用,且各网络间地址的一致性是关键需求
- 初始 gas 成本是一个顾虑
- 与 EOA 基础设施的向后兼容性很重要
- 你希望从简单起步,并随时间推移逐步升级,保留这种灵活性

EIP-7702 的关键优势在于其灵活性:你不必在 EOA 和智能账户能力之间二选一,这对于既需要与传统区块链基础设施交互、又需要与现代基础设施交互,同时还在规划跨链扩展的应用来说,格外有价值。

#### 面向对接外部第三方钱包的应用

许多广泛使用的钱包,比如 [MetaMask](https://www.alchemy.com/dapps/metamask),计划在今年集成智能钱包功能。以下是一些值得你研究的主题:

- [<u>批量处理(Batching)</u>](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7702.md#self-sponsoring-allowing-txorigin-to-set-code):单次授权即可原子性地执行多个操作的能力,比如在 [DEX](https://www.alchemy.com/dapps/list-of/decentralized-exchanges-dexs-on-base) 上用户先批准一个 ERC-20,再使用该批准额度进行花费
- [<u>委托</u>](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7702.md#secure-delegation)所带来的风险
- 可以考虑使用[<u>我们的 SDK</u>](https://www.alchemy.com/docs/wallets/reference/account-kit/react/hooks/useConnect)来简化外部智能钱包的连接

### 其他注意事项

**如果应用开发者决定使用 EIP-7702 升级现有 EOA,并希望使用 7702 所支持的**\***全部**\***功能,就需要一个中继器(relayer)。**虽然存在不同的中继器架构,但我们建议使用 4337 bundler,原因如下:

- 提供标准化的中继接口;
- 内置 paymaster 系统;
- 保证向前兼容性;并且
- 可以通过公开的 mempool 支持抗审查性

如果你需要 4337 bundler,[<u>Alchemy Bundler</u>](https://www.alchemy.com/bundler?utm_source=what_is_7702&utm_medium=blog&utm_campaign=eip_7702_series) 可以满足你的需求。

## 展望未来:通往主流采用之路

虽然 EIP-7702 有望让 Ethereum 更贴近 Web 体验,但开发者应注意,主网上线后的普及程度取决于钱包是否率先集成这些功能——因此 EIP-7702 的实际可用性在短期内可能仍会有限。如果你想了解 Ethereum 开发者正在讨论的最新动态,可以查看[<u>这里</u>](https://ethereum-magicians.org/t/eip-7702-set-eoa-account-code/19923/346)的最新文章。

### 我们帮助你集成 EIP-7702

<ImageBlock
  src="https://media.alchemy.com/1745712194-frame-1597879441.png"
  alt="智能钱包增加用户和交易量"
  width={2160}
  height={910}
  caption="智能钱包增加用户和交易量"
/>

[**智能钱包**](/smart-wallets)帮助你零摩擦地将用户带上链。你今天就可以利用 EIP-7702 来升级你的 EOA,或部署新的 ERC-4337 账户。

- **零摩擦引导**:通过内嵌钱包实现用户熟悉的邮箱和社交登录
- **无 gas 交易**:为用户赞助 gas 费,实现一键交易
- **智能账户集成**:轻松的 SDK 集成,支持 ERC-4337、ERC-6900 和 EIP-7702

我们随时为你提供学习、构建和上线方面的帮助!

1. **探索**:阅读[文档](https://www.alchemy.com/docs/wallets?utm_source=what_is_7702&utm_medium=blog&utm_campaign=eip_7702_series),[开始构建](https://dashboard.alchemy.com/accounts?utm_source=what_is_7702&utm_medium=blog&utm_campaign=eip_7702_series)。
1. **需要支持?**:[联系我们!](https://www.alchemy.com/contact-sales?utm_source=what_is_7702&utm_medium=blog&utm_campaign=eip_7702_series)我们的团队 24/7 待命,帮助你实现这些功能

## 常见问题

### 什么是 EIP-7702?

EIP-7702 是包含在 Pectra 硬分叉中的 Ethereum 升级,它让外部拥有账户(EOA)能够将控制权委托给智能合约账户,从而获得智能账户的能力,比如批量交易、gas 赞助和社交恢复。

### EIP-7702 如何与现有 EOA 协同工作?

EIP-7702 让现有 EOA 无需创建新账户或转移资产就能获得智能合约功能。该 EOA 会存储一个指向智能合约的委托指示符,使其能够直接从该地址执行代码。

### EIP-7702 与 ERC-4337 兼容吗?

是的,EIP-7702 的设计初衷是对 ERC-4337 形成补充,而非取代它。ERC-4337 提供纯粹的智能合约账户,而 EIP-7702 让这些账户抽象功能能够被现有 EOA 使用,而无需创建新钱包或进行迁移。

### EIP-7702 为用户带来了哪些功能?

EIP-7702 带来了类似 Web2 的功能,包括账户恢复、用于简化身份验证的 passkey 登录、由项目方赞助的 gas 交易、用任意代币(不仅限于 ETH)支付 gas,以及将多个操作打包为一笔交易。

### 使用 EIP-7702 的功能需要中继器吗?

如果你想使用 EIP-7702 支持的全部功能,就需要一个中继器。我们建议使用 4337 bundler,因为它们提供标准化接口、内置 paymaster 系统,并保证向前兼容性。

### 什么时候应该选择 EIP-7702 而不是 ERC-4337?

当你构建的多链应用需要在各网络间保持地址一致、初始 gas 成本是一个顾虑、与 EOA 基础设施的向后兼容性很重要,或者你希望从简单起步并随时间推移逐步升级时,可以选择 EIP-7702。

### EIP-7702 的委托可以撤销吗?

可以,委托在用户明确撤销之前一直有效。要撤销智能合约的控制权,需要发送另一笔 7702 交易,将委托重置为零。

### EIP-7702 普及的主要依赖因素是什么?

主要依赖因素是钱包提供商的支持。由于钱包处于应用的上游,如果没有钱包的集成,应用开发者及其用户就无法使用 EIP-7702 的功能。
