深入解析 Pectra EIP
让我们来看看此次 Pectra EIP 到底是啥吧!
作者 | Péter Garamvölgyi
翻译 | Natalie
排版 | Echo
01 | EVM 相关
EIP-7702:设置 EOA 账户代码
简介:新增一种交易类型,允许为 EOA 设置代码
背景与动机
账户抽象(AA)进展缓慢,ERC-4337 已上线但多数账户仍为 EOA
EIP-7702 允许用户将 EOA 升级为智能合约,实现混合模式:
EOA:可通过私钥签名交易(作为 tx.from)
智能合约:可接收交易并触发代码执行(作为tx.to)
应用场景:批量交易、赞助交易、多签账户、会话密钥等
开发者与用户视角
示例:向 Scroll 存入 USDT(无 EIP-7702)
需两次交易:
1. 授权:
cast send "$usdt" "approve(address,uint256)" "$erc20_gateway" "$amount" --from "$alice" --unlocked2. 存款:
cast send "$erc20_gateway" "depositERC20(address,uint256,uint256)" "$usdt" "$amount" "$gas" --value $fee --from "$alice" --unlocked使用 EIP-7702 后:
设置 EOA 代码为 MultiCall:
cast send --from "$alice" --private-key "$alice_pk" --auth "$multicall" $(cast az)2. 单次批量交易:
cast send "$alice" "aggregate3Value((address,bool,uint256,bytes)[] calldata calls)" "[${calls[1]}, ${calls[2]}}]" --value $fee --from "$alice" --unlocked协议层变更
新增交易类型 SetCodeTx,包含授权列表 AuthList
交易执行前应用授权,更新账户 nonce 并设置代码
对 Rollup 的影响
Rollup(如 Scroll)需适配 EIP-7702
可基于此构建定制化用户体验
资源
EIP-2537:BLS12-381 曲线操作的预编译合约
简介:在 EVM 中添加 BLS12-381 曲线操作的预编译合约,支持高效 BLS 签名验证等操作
背景与动机
BLS12-381 是信标链协议使用的椭圆曲线,支持签名聚合
现有预编译合约基于 BN254 曲线(如 ecAdd、 ecPairing)
新增 7 个预编译合约,覆盖 BLS12-381 的群运算( G1/G2 加法、乘法、多指数运算、配对等)
开发者与用户视角
BLS12-381 安全性更高(120 位),支持签名聚合
应用场景:分布式验证者注册、轻客户端构建、随机数信标
可能推动更高效的 zkSNARK(更大电路规模)和加密方案(如时间锁解密)
协议层变更
新增地址 0x0a 至 0x12 的预编译合约
Geth 代码示例:
var PrecompiledContractsBLS = map[common.Address]PrecompiledContract{
common.BytesToAddress([]byte{10}): &bls12381G1Add{},
// ...(其他预编译合约定义)
}对 Rollup 的影响
Rollup 需适配 EIP-2537 以保持兼容性
验证合约可能因更高效运算而受益
资源
BLS12-381 For The Rest Of Us:https://hackmd.io/@benjaminion/bls12-381
BN254 For The Rest Of Us:https://hackmd.io/@jpw/bn254
PEEPanEIP#133: EIP-2537:https://hackmd.io/@jpw/bn254
EIP-2935:在状态中保存历史区块哈希
简介:将最近 8192 个区块哈希存储为系统合约的存储槽,支持无状态执行
背景与动机
当前 blockhash 操作码仅能访问最近 256 个区块哈希
无状态客户端(如 Verkle)需通过状态数据验证历史哈希
开发者与用户视角
系统合约地址 0x0F792be4B0c0cb4DAE440Ef133E90C0eCD48CCCC
通过存储槽直接读取历史哈希:
cast storage "$HISTORY_STORAGE_ADDRESS" $(($block_number % 8191))协议层变更
区块处理时自动更新系统合约存储(环形缓冲区)
代码示例:
func ProcessParentBlockHash(prevHash common.Hash, evm *vm.EVM) {
// 调用系统合约更新哈希
msg := &Message{To: ¶ms.HistoryStorageAddress, Data: prevHash.Bytes()}
evm.Call(..., msg)
}对 Rollup 的影响
ScrollChain 可更便捷获取 L1 历史哈希作为公开输入
资源
原始 EIP: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2935.md
Peep an EIP #10: EIP-2935 https://github.com/ethereum/EIPs/blob/master/EIPS/eip-2935.md
Revm PR bluealloy/revm#1354:https://github.com/bluealloy/revm/pull/1354
02 | Blob 与 Calldata
EIP-7691:提升 Blob 吞吐量
简介:将每区块的 Blob 目标值/最大值从 3/6 提升至 6/9
背景与动机
Rollup 对 Blob 需求激增(数据)
网络稳定性已验证,PeerDAS 上线前的临时扩容方案
协议层变更
Blob 基础费用调整机制变更:
满负载时基础费涨幅从 12.5% 降至 8.2%
空负载时基础费降幅从 11.1% 增至 14.5%
对 Rollup 的影响
降低费用,提升 L2 吞吐量
资源
原始 EIP:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7691.md
Prysm PR prysmaticlabs/prysm#14750:https://github.com/prysmaticlabs/prysm/pull/14750
EIP-7840: 将 Blob 调度添加到 EL 配置文件
简介:在客户端配置文件中包含每个硬分叉的最大和目标 Blob 数量的调度
背景与动机
定义 EL 客户端应如何遵循 Blob 配置更改的格式。
这一点在 EIP-7691: Blob 吞吐量增加之后变得更加相关。
在 genesis.json 中添加新的条目:
"blobSchedule": {
"cancun": { "target": 3, "max": 6 },
"prague": { "target": 6, "max": 9 },
...
}资源
EIP-7623:增加 Calldata 成本
简介:提高 Calldata 的 Gas 成本以限制区块最大体积
背景与动机
当前区块理论最大值 7.15 MB(实际平均约 100 KB)
目标:减少数据密集型交易对区块空间的占用
协议层变更
Calldata 成本从 4/16 Gas/字节提升至 10/40 Gas/字节
区分计算密集型与数据密集型交易
对 Rollup 的影响
Rollup 若使用 Calldata 需调整 Gas 估算逻辑
建议同步适配以保持 L1/L2 费用一致性
资源
原始 EIP:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7623.md
研究分析:https://ethresear.ch/t/analyzing-eip-7623-increase-calldata-cost/19002
03 | 共识层与质押
EIP-7685:通用执行层请求
简介:定义执行层(EL)向共识层(CL)传递请求的通用框架
背景与动机
现有 Engine API 无法传递合约触发的请求(如存款、退出)
被多个 Pectra EIP 依赖(EIP-6110、EIP-7002、EIP-7251)
协议层变更
区块头新增 RequestsHash 字段
请求类型示例:
// 收集存款请求(EIP-6110)
core.ParseDepositLogs(&requests, allLogs)
// 处理退出请求(EIP-7002)
core.ProcessWithdrawalQueue(&requests, evm)对 Rollup 的影响
需调整 SDK 以适配新区块头格式
资源
原始 EIP:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7685.md
PEEPanEIP#132: EIP-7685:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7685.md
EIP Fun 的总结:https://x.com/EIPFun/status/1864270492376682684
EIP-6110:链上供应验证者存款
简介:通过协议内机制处理验证者存款,替代日志轮询
背景与动机
当前存款需 CL 主动扫描 EL 日志,存在延迟和安全隐患
将存款处理时间从 12 小时缩短至 13 分钟
协议层变更
基于 EIP-7685 框架,从存款合约日志生成请求
对 Rollup 的影响
需调整 SDK 以适配新区块头格式
资源
原始 EIP:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-6110.md
EIPs For Nerds #4: EIP-6110:https://ethereum2077.substack.com/p/eip-6110-supply-validator-deposits-onchain
理解 EIP-7002 和 EIP-6110 | Devcon SEA:https://ethereum2077.substack.com/p/eip-6110-supply-validator-deposits-onchain
EIP-6110 在 EIP Wiki 上的详细介绍:https://eips.wiki/eips/protocol/consensus/eip-6110/
EIP-7002:执行层触发的验证者退出
简介:允许通过执行层(0x01 类型提款凭证)触发验证者退出
背景与动机
当前退出仅能通过验证者密钥发起
支持社交恢复和复杂提款规则(如多签合约)
协议层变更
请求通过预部署合约 WITHDRAWAL_REQUEST_PREDEPLOY 提交
资源
原始 EIP:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7002.md
Twitter 讨论:https://x.com/Figment_io/status/1859317234000330883
PEEPanEIP#128: EIP-7002:https://eips.ethereum.org/EIPS/eip-7002
理解 EIP-7002 和 EIP-6110 | Devcon SEA:https://eips.ethereum.org/EIPS/eip-7002
EIP-7251:提高 MAX_EFFECTIVE_BALANCE
简介:允许验证者有效余额超过 32 ETH,提升质押灵活性
背景与动机
当前 32 ETH 限制导致运营者需管理大量验证者节点
支持收益复投和节点合并,降低网络负载
协议层变更
通过预部署合约 CONSOLIDATION_REQUEST_PREDEPLOY 提交合并请求
资源
原始 EIP:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7251.md
Unchained 概述:https://unchainedcrypto.com/eip-7251-maxeb-ethereum/
EIP 7251 解释:https://medium.com/@james_gaps/eip-7251-explainer-aa10558b9150
EIPs For Nerds #3: EIP-7251:https://ethereum2077.substack.com/p/eip-7251-increase-max-effective-balance
EIP-7251 by Paul Harris | Devcon SEA:https://ethereum2077.substack.com/p/eip-7251-increase-max-effective-balance
EIP-7251 for Staking Pool Operators:https://hackmd.io/@wmoBhF17RAOH2NZ5bNXJVg/S1U86pzgR
深度分析以太坊 EIP-7251:https://zhangyuting.medium.com/in-depth-analysis-of-ethereum-eip-7251-the-future-of-validator-consolidation-and-opportunities-947ec32df544
EIP-7549:将委员会索引移出 Attestation
简介:优化 Attestation 结构以提升聚合效率
背景与动机
原 Attestation 包含委员会索引,阻碍跨委员会聚合
减少 62 倍验证负载,支持更多 Attestation 上链
对 zk 客户端的意义
简化 Casper FFG 验证逻辑,降低零知识证明生成成本
资源
原始 EIP:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7549.md
EIP-7549:最优链上聚合 https://hackmd.io/@n0ble/eip7549_onchain_aggregates
PEEPanEIP#131:EIP-7549 https://hackmd.io/@n0ble/eip7549_onchain_aggregates
04 | 快速阅读资源
Tim Beiko's post:https://tim.mirror.xyz/emiQJfRCb5sdnY018t-CeFDIye_Ehn4mieXI6kn5aXA
OAK Research's summary:https://oakresearch.io/en/analyses/innovations/ethereum-pectra-most-important-eip




