跳转到内容

Pectra 升级 / EIP-7702

Pectra 升级 / EIP-7702

本页内容正在整理中,欢迎贡献

概述

2025 年 5 月,以太坊完成 Pectra 升级(Prague 执行层 + Electra 共识层的合称)。其中最受开发者关注的是 EIP-7702,它为 EOA(外部账户)带来了临时智能合约逻辑,是迄今为止对用户体验影响最深远的账户抽象升级。

主要内容

EIP-7702:为 EOA 注入合约逻辑

EIP-7702 引入了新的交易类型(Type 4),允许 EOA 在一笔交易中临时将自己的代码设置为某个合约的代码:

EOA 发送 Type 4 交易:
authorization_list: [(chain_id, contract_address, nonce, signature), ...]
效果:
- EOA 地址的 code = contract_address 的字节码
- 下次调用该 EOA 时,将执行合约逻辑
- 可随时通过发送新的 Type 4 交易清除或更换

EIP-7702 能做什么?

1. Gas 代付(Sponsored Transactions)

// 用户授权后,Paymaster 可代为支付 Gas
// 用户无需持有 ETH 即可使用 DApp

2. 批量交易

// 一笔交易完成:approve + swap
// 原来需要两笔交易,现在一笔搞定
function executeBatch(Call[] calldata calls) external {
for (uint i = 0; i < calls.length; i++) {
(bool success,) = calls[i].target.call{value: calls[i].value}(calls[i].data);
require(success);
}
}

3. 会话密钥(Session Keys)

// 授权临时密钥在有限范围内操作账户
// 游戏场景:无需每次操作都弹出钱包确认

4. 社交恢复

// 为 EOA 添加多签或社交恢复逻辑
// 不再因丢失私钥而永久失去账户

EIP-7702 vs ERC-4337

特性EIP-7702ERC-4337
是否需要部署新合约否(借用已有合约逻辑)是(SmartAccount 合约)
账户地址保持原 EOA 地址新的合约地址
向后兼容完全兼容现有 EOA需要迁移
激活条件用户签名一笔 Type 4 交易部署合约 + EntryPoint
适合场景现有 MetaMask 用户升级体验新用户原生智能账户

Pectra 包含的其他重要 EIP

执行层(Prague)

EIP说明
EIP-7702EOA 智能合约化
EIP-2537BLS12-381 预编译(高效 BLS 签名验证)
EIP-7623提高 calldata 成本(推动更多使用 blob)
EIP-7840将 blob 调度参数放入 EL 配置

共识层(Electra)

EIP说明
EIP-7251最大有效余额提升至 2048 ETH(减少验证者数量)
EIP-7002执行层触发退出(合约可发起验证者退出)
EIP-7549将委员会索引移出证明
EIP-6110将验证者存款内联到区块

EIP-7251:验证者整合

验证者最大余额从 32 ETH 提升到 2048 ETH:

  • 大型质押者可将多个 32 ETH 验证者合并为一个
  • 减少网络中活跃验证者数量,降低共识通信开销
  • 不影响散户:仍可以 32 ETH 作为独立验证者

EIP-7002:执行层触发退出

// 智能合约现在可以触发验证者退出
// 重要性:流动性质押协议(Lido、Rocket Pool)可以实现自动化退出
// 无需中心化操作员手动退出
address constant WITHDRAWAL_REQUEST_PREDEPLOY = 0x...;
IWithdrawalRequest(WITHDRAWAL_REQUEST_PREDEPLOY).add{value: fee}(
validatorPubkey,
withdrawalAmount
);

开发者行动指南

  1. 了解 EIP-7702:阅读 EIP 规范,了解 Type 4 交易格式
  2. 关注智能合约钱包库:Safe、Ambire 等已开始适配 EIP-7702
  3. Paymaster 集成:如果你的 DApp 希望代付 Gas,评估 EIP-7702 方案
  4. 会话密钥:游戏、高频交互场景考虑引入会话密钥改善 UX

深入阅读