- 自我介绍:大家好,我是 Jeason Zhang,以太坊爱好者,全栈工程师,独立开发者,很开心参加今年的 EPF 残酷共学。
- 你认为你会完成本次残酷学习吗?会的!
今天是残酷共学的第一天,参加了 chloe 主持的第一周周会,会后看了一下 epf wiki 中的内容,并用 deepseek - R1 总结了一下内容如下:
主题:以太坊协议基础与研发生态全景 目标:理解以太坊设计哲学、技术架构、开发流程及社区协作模式。
- UNIX哲学
- 自由软件运动
- 密码朋克与加密无政府主义
- 设计原则
- 网络架构
- 客户端多样性
- 测试工具链
- 核心仓库
- 通用测试集
- Retesteth工具(状态转换测试)
- Hive测试框架(多客户端仿真)
- 测试类型:单元测试、模糊测试、影子分叉
- 核心仓库
- 安全实践
- 协调流程
- 核心会议
- ACD会议(All Core Devs):双周例会
- PM仓库(ethereum/pm)记录议程
- 提案流程:EIP(EIPs仓库)
- 核心会议
- 讨论平台:
- EthResearch论坛(技术研究)
- Ethereum Magicians(提案讨论)
- R&D Discord(需邀请)
- 视频学习:
- Mario Havel讲座(以太坊协议基础)
- Richard Stallman演讲(自由软件理念)
- 基础阅读:
- 跟踪开发动态:
- 订阅ACD会议纪要
- 加入EPF Discord参与讨论
- 贡献方式:
- 提交EIP改进提案
- 参与ETHGlobal黑客松
- 书籍推荐:
- 《The Infinite Machine》(以太坊早期史)
- 《Mastering Ethereum》(技术细节解析,需注意版本)
- 高级学习:
- Devcon演讲存档(技术深度内容)
- 形式化验证案例(Aleth项目)
主题: 以太坊执行层(Execution Layer)深度解析 目标: 掌握执行层节点架构、状态转换机制、EVM运行原理及网络通信协议。
- 区块验证(Block Validation):
- 处理状态转换(State Transition),将交易结果记录到状态树(Merkle Patricia Trie)
- 维护动态机制更新:EIP-1559基础费用、EIP-4844 Blob Gas、信标链提款等
- 提供快速同步机制(Snap Sync)帮助新节点快速接入网络
- 区块构建(Block Building):
- 基于P2P交易池(Tx Pool)构建新区块
- 交易广播与验证的双向流程
- 区块头验证:
- 校验默克尔根(交易根、状态根、收据根)
- 验证Gas限制与时间戳合法性
- 区块验证代码实践:
- 分析go-ethereum代码库中
core/state_processor.go
的Process()
函数
- 分析go-ethereum代码库中
- 栈式虚拟机原理:
- 操作码分类解析:
- 堆栈操作码(如
PUSH
,POP
) - 内存操作码(如
MLOAD
,MSTORE
) - 系统级操作(如
CALL
,DELEGATECALL
)
- 堆栈操作码(如
- 操作码分类解析:
- 实战工具推荐:
- evm.codes:交互式EVM操作码解析工具
- ethervm.io:EVM指令集速查表
- 三大核心功能:
- 历史区块数据传输
- 未确认交易(Pending Transactions)广播
- 状态数据同步
- Snap Sync技术:
- 阶段一:下载快照数据块(Snapshot Tiles)
- 阶段二:状态修复(State Healing)
- 设计目标:
- 统一所有客户端的API标准,实现工具链无缝集成
- 目前接近实现但仍有细微差异
- 关键RPC方法:
eth_getBlockByNumber
eth_sendRawTransaction
eth_call
- 执行层规范(Python实现)
- ETH2术语更新说明
- 合并对应用层的影响
- Engine API可视化指南(Daniel Ramirez)
- Lightclient开发环境配置
- 核心代码库:
- 执行层API规范:
- 代码调试:在本地运行Geth节点,观察
state_processor.go
的区块处理流程 - 网络模拟:使用devp2p工具包模拟P2P交易广播
- RPC实验:通过Postman调用JSON-RPC接口获取链上数据
主题: 以太坊共识层(Consensus Layer)技术解析 目标: 掌握权益证明(PoS)机制、Gasper协议架构及信标链安全模型。
- 拜占庭容错(BFT):
- 区块链通过分布式网络实现数字稀缺性,需解决节点作恶问题
- 比特币通过工作量证明(PoW)首次实现BFT
- PoS机制创新:
- 以太坊转向权益证明,使用内生经济信号(质押ETH)实现女巫攻击防护
- 通过**罚没(Slashing)**机制惩罚拜占庭行为
- 混合共识机制:
- LMD-GHOST分叉选择规则:基于最新消息(Latest Message Driven)确定主链
- Casper FFG:负责最终性确认(Finality),确保链活性(Liveness)
- 关键特性:
- 每32个区块(Epoch)进行最终性确认
- 支持动态验证者集合调整
- 密码经济学保障:
- 验证者需质押32 ETH,作恶将面临罚没
- 罚没条件:双重签名、违反分叉规则等
- 抗攻击能力:
- 1/3质押量攻击可导致链暂停
- 2/3质押量攻击可导致链重组
- Gasper协议白皮书
- LMD-GHOST优化解析
- Eth2规范注释版(技术细节宝典)
- Slashing场景详解(Dankrad Feist)
- 信标链设计反思(Justin Drake演讲)
-
客户端运行:
- 组合运行执行层(如Geth)与共识层客户端(如Lighthouse)
- 观察日志中的
attestation
(见证)与proposal
(区块提议)流程
-
时隙分析:
-
研究
时隙解剖视频
,理解12秒时隙内的操作序列:
- 区块提议 → 见证打包 → 最终性投票
-
-
安全实验:
- 在测试网模拟双重签名场景,观察罚没机制触发过程
英文术语 | 中文解释 |
---|---|
Finality | 最终性 |
Justification | 合理性证明 |
Checkpoint | 检查点 |
Attestation | 见证 |
Sync Committee | 同步委员会 |
主题: 以太坊测试框架与安全实践 目标: 掌握以太坊核心测试工具链、安全漏洞发现方法及网络升级测试流程。
- 执行层测试套件:
- ethereum/tests: 标准状态转换测试集
- execution-spec-tests: 执行层规范验证测试
- retesteth: 动态测试生成与执行工具
- 网络仿真工具:
- 模糊测试工具:
- 合并测试经验:
- 通过影子分叉(Shadow Fork)模拟主网环境
- 使用**eth_tools**监控网络异常
- 漏洞挖掘案例:
- 共识层分叉规则漏洞(如LMD-GHOST边缘场景)
- 客户端同步协议缺陷(如LibP2P消息处理)
- 分层测试策略:
- 单元测试:验证单个功能模块
- 集成测试:多客户端交互验证
- 压力测试:高负载场景模拟(如Dencun升级的blob处理)
- 自动化流水线:
- 持续集成(CI)触发测试套件
- 测试结果可视化与回归分析
- RPC测试生成器:自动化生成JSON-RPC接口测试
- Dencun测试教程:分片blob处理测试案例
- The Merge测试回顾(Devcon6演讲)
- Layer1共识漏洞挖掘(Marius Van Der Wijden)
-
本地测试环境搭建:
# 使用Hive创建多客户端测试网 hive --client=geth,lighthouse --sim=eth2/merge
-
模糊测试执行:
# 运行FuzzyVM检测EVM异常 go run ./cmd/fuzzy --test=evm_opcodes
-
自定义测试开发:
- 在
ethereum/tests
中新增状态转换测试用例 - 通过
retesteth
验证客户端兼容性
- 在
测试类型 | 工具示例 | 检测目标 |
---|---|---|
状态转换测试 | retesteth | 区块处理逻辑正确性 |
网络协议测试 | Hive | P2P消息兼容性 |
模糊测试 | FuzzyVM | EVM执行边界条件 |
RPC接口测试 | rpctestgen | JSON-RPC规范符合性 |
通过本课程的系统学习,开发者将掌握以太坊核心测试框架的运作机制,具备参与网络升级测试和安全审计的能力。建议从标准测试集入手,逐步深入定制化测试开发。
主题: 以太坊研究生态与路线图演进 目标: 掌握以太坊六大发展阶段(Merge/Surge/Scourge/Verge/Purge/Splurge)的技术规划及当前研究热点。
阶段 | 核心目标 | 关键技术 |
---|---|---|
Merge | PoS共识完善 | 单槽最终性(SSF)、秘密领导者选举(SLE)、提款机制优化 |
Surge | 扩容与数据可用性 | EIP-4844(Blob交易)、数据可用性采样(DAS)、ZK Rollup互操作性 |
Scourge | MEV治理与抗审查 | ePBS(Enshrined PBS)、MEV销毁、质押上限机制 |
Verge | 状态验证效率提升 | Verkle树、SNARK化(信标链状态转换、EVM验证) |
Purge | 协议简化 | EIP-4444(历史数据修剪)、状态过期机制 |
Splurge | 用户体验优化 | 账户抽象(ERC-4337)、EIP-1559最终形态、深度密码学整合 |
- 数据可用性采样(DAS):通过随机抽样验证数据可用性
- 跨Rollup互操作:标准化跨链消息协议
- 包含列表(Inclusion Lists):防止交易审查
- MEV-Burn:通过协议内拍卖销毁MEV收益
- Dencun升级:EIP-4844实施,降低Layer2成本
- Pectra升级:Verkle树预编译合约部署
- Helios轻客户端:Rust实现的快速同步客户端(构建指南)
- EVM对象格式(EOF):优化合约代码存储结构
- EthRoadmap.com:交互式路线图可视化
- 执行票据提案:参与协议改进讨论
英文术语 | 中文解释 |
---|---|
Single Slot Finality | 单槽最终性 |
Data Availability Sampling | 数据可用性采样 |
Enshrined PBS | 协议内提议者-构建者分离 |
Verkle Proofs | Verkle树证明 |
MEV Burn | MEV销毁机制 |
通过本课程的系统学习,开发者可全面把握以太坊技术演进的宏观框架,深入参与核心协议研究。建议结合Ethresear.ch论坛跟踪最新提案,通过节点工作坊实践客户端运维。
主题: 以太坊客户端实践操作 目标: 掌握执行层(EL)与共识层(CL)客户端的部署、配置及运维技能。
-
推荐系统: Debian 12(支持Ubuntu/macOS,建议使用虚拟机统一环境)
-
硬件配置: 测试网节点无需高性能硬件(2核CPU/4GB RAM/50GB存储)
-
基础工具安装:
sudo apt update && sudo apt install -y curl git gpg docker.io build-essential
-
推荐组合: Geth(EL) + Lighthouse(CL)
-
二进制验证(以Geth为例):
# 下载签名文件 curl -O https://geth.ethereum.org/geth-linux-amd64-1.13.0-6c74b4e6.sig # 验证签名 gpg --verify geth-linux-amd64-1.13.0-6c74b4e6.sig
# 启动Geth测试网节点
docker run -d -p 8545:8545 -v /data/geth:/root/.ethereum \
ethereum/client-go --goerli --http --http.addr 0.0.0.0
# 启动Lighthouse共识客户端
docker run -d -p 9000:9000 -p 9001:9001 -v /data/lighthouse:/root/.lighthouse \
sigp/lighthouse lighthouse beacon --network holesky
-
Holesky测试网:
geth --holesky --syncmode snap --http lighthouse beacon --network holesky
-
Ephemery自定义创世块:
geth init --datadir ./ephemery ephemery-genesis.json
-
基础访问:
curl -X POST -H "Content-Type: application/json" \ --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \ http://localhost:8545
-
控制台交互:
geth attach http://localhost:8545 > eth.syncing
-
质押存款:
lighthouse account validator deposit \ --network holesky \ --keystore ./validator_keys \ --deposit-value 32
-
systemd服务文件示例(Geth):
[Unit] Description=Geth Execution Client After=network.target [Service] ExecStart=/usr/bin/geth --http --syncmode snap --cache 2048 Restart=always User=geth [Install] WantedBy=multi-user.target
-
Prometheus+Grafana方案:
# 安装Prometheus docker run -d -p 9090:9090 -v /prometheus-data:/prometheus prom/prometheus # 配置Grafana仪表盘(参考Coincashew指南)
-
P2P网络分析:
# 使用devp2p工具检查节点连接 devp2p discv5 nodes -bootnodes enr://...
-
执行层切换
(Geth → Erigon):
erigon --chain holesky --datadir ./erigon-data --http
-
共识层切换
(Lighthouse → Nimbus):
nimbus_beacon_node --network=holesky --web3-url=http://localhost:8545
- 节点维护指南: EthStaker Holesky指南
- 验证者监控: Grafana仪表板配置
- 故障排查: 合并后节点FAQ
通过本工作坊的系统实践,开发者将具备独立部署和维护以太坊全节点的能力,为参与网络验证或协议开发奠定基础。建议从测试网开始,逐步过渡到主网节点运维。
主题: 共识层与执行层技术规范深度解析 目标: 掌握规范实现原理,参与协议改进提案(EIP)开发。
- Gasper协议实现:
- 结合LMD-GHOST分叉选择规则与Casper FFG最终性机制
- 状态转换逻辑:见证打包、检查点证明、验证者奖惩
- Python参考实现:
- 共识层规范代码库
- 测试框架:通过
pytest
验证区块生成与状态转换
- 关键测试场景:
- 分叉场景模拟(7节点网络测试)
- 罚没条件触发验证(双重签名检测)
- EVM对象格式(EOF):
- 分离代码与数据段,优化合约存储结构
- 支持版本化合约部署(向后兼容)
- 操作码扩展实践:
- 在execution-specs中添加自定义操作码
- 生成一致性测试向量(JSON测试用例)
- 黄皮书对照:
- 状态转换函数的数学形式化验证
- Gas计算模型与预编译合约实现
- EELS规范解析:执行层演进逻辑
- Vitalik注释版规范:协议设计思想解读
-
共识层开发:
# 测试分叉场景 def test_multiple_forks(): genesis_state = initialize_beacon_state() fork1_blocks = generate_alt_chain(genesis_state, length=3) fork2_blocks = generate_alt_chain(genesis_state, length=5) assert get_head(fork1_blocks) != get_head(fork2_blocks)
-
执行层扩展:
- 修改
src/ethereum/[frontier|homestead]/vm/opcodes.py
- 在
tests/[frontier|homestead]/test_opcodes.py
添加测试
- 修改
英文术语 | 中文解释 |
---|---|
LMD-GHOST | 最新消息驱动的最重子树 |
Casper FFG | 友好最终性小工具 |
EOF | EVM对象格式 |
Precompiled Contract | 预编译合约 |
- 共识层实验:
- 修改
beacon-chain.md
中的process_attestation
逻辑 - 运行
make test
验证状态转换正确性
- 修改
- 执行层扩展:
- 添加
OP_CALLDATA
操作码实现数据直接访问 - 生成并提交EIP草案至EIPs仓库
- 添加
通过本课程的系统学习,开发者将具备直接参与以太坊核心协议开发的能力。建议结合Eth2 Book深化共识层知识,通过黄皮书教程理解EVM底层原理。
主题: 分片技术与数据可用性采样(DAS) 目标: 理解Danksharding架构与数据可用性保障机制,掌握扩容路线图核心技术。
- 原始分片方案:64个分片链并行处理交易
- Danksharding优化:
- 统一结算层与数据可用性层
- 通过EIP-4844(Proto-Danksharding)过渡
- 引入Blob交易类型降低Layer2成本
- 核心组件:
- KZG多项式承诺:通过KZG仪式实现高效数据验证
- 2D Reed-Solomon编码:将数据扩展为二维矩阵,确保部分数据丢失时可恢复
- 随机抽样验证:轻节点通过随机抽样(约30次)确保数据可用性(99.9%置信度)
- 抗审查机制:
- 包含列表(Inclusion Lists):强制区块包含特定交易
- 数据可用性委员会(DAC):临时过渡方案,最终由协议内机制取代
- 角色分离:
- 区块提议者:负责排序交易
- 构建者:生成包含Blob的区块
- 证明者:验证数据可用性
- 经济模型:
- Blob存储费用动态调整(类似EIP-1559)
- MEV-Burn机制销毁部分MEV收益
- 数据可用性问题解析(技术讲座)
- Danksharding设计提案(Vitalik Buterin)
- DAS设计选择(Dankrad Feist演讲)
- 欺诈证明与数据可用性证明(学术论文)
英文术语 | 中文解释 |
---|---|
Data Availability Sampling | 数据可用性采样 |
KZG Commitment | KZG多项式承诺 |
Reed-Solomon Erasure Coding | 里德-所罗门纠删码 |
Proto-Danksharding | 原始Danksharding过渡方案 |
Blob Transaction | Blob交易类型 |
-
DAS模拟实验:
# 使用das-simulator进行数据可用性验证 from das import DataAvailability blob = DataAvailability.generate_blob() samples = blob.sample_random_indices(30) assert blob.verify_samples(samples)
-
KZG仪式参与:
- 通过KZG仪式客户端贡献随机数
- 验证多项式承诺生成过程
-
扩容影响分析:
- 测算Blob交易对Gas费的影响
- 评估Layer2在Danksharding下的TPS提升
通过本课程的系统学习,研究者将深入理解以太坊未来扩容方向,掌握数据可用性核心技术。建议结合Devcon研讨会资料跟进最新进展,参与Ethresear.ch论坛讨论协议改进提案。
主题: 执行层客户端架构与Reth设计解析 目标: 掌握现代执行层客户端设计理念,深入理解Reth代码架构。
- 开发语言:Rust(兼顾性能与安全性)
- 核心优势:
- 模块化设计,支持插件扩展
- 基于Actor模型的异步任务处理
- 状态树存储优化(替代传统Merkle Patricia Trie)
- 分层架构:
- 网络层:基于LibP2P实现高效节点通信
- 同步引擎:支持快照同步与增量同步混合模式
- 执行环境:隔离的EVM运行时(WASM兼容)
- 创新特性:
- 基于RocksDB的列式存储优化
- 交易池优先级队列与抗DoS机制
- 轻客户端模式下的状态证明生成
-
核心模块:
reth-db
:数据库抽象层(支持多后端存储)reth-network
:P2P网络协议实现reth-executor
:EVM执行引擎(兼容EOF规范)
-
示例分析:
// 区块处理流程 async fn process_block(block: Block) -> Result<(), Error> { let state = State::new(); execute_transactions(block.transactions, &state).await?; persist_state(state).await?; Ok(()) }
- 并行处理:交易执行与状态更新解耦
- 缓存机制:热数据内存缓存(LRU策略)
- 批处理写入:减少数据库I/O操作
- Reth官方文档:架构设计与API参考
- Erigon设计理念:Geth分叉项目的创新实践
- Reth技术解析(Dragan演讲)
- Rust异步编程模型:理解Actor模型实现基础
-
环境搭建:
# 克隆Reth代码库 git clone https://github.com/paradigmxyz/reth # 编译调试版本 cargo build --features "jemalloc,backend-mdbx"
-
调试实践:
# 启用交易池调试日志 RUST_LOG=debug reth --debug.txpool # 观察区块同步过程 RUST_LOG=info reth --sync-mode snap
-
自定义模块开发:
- 实现
reth-consensus
模块的自定义分叉规则 - 扩展
reth-rpc
添加新的JSON-RPC方法
- 实现
英文术语 | 中文解释 |
---|---|
Actor Model | 参与者模型 |
Columnar Storage | 列式存储 |
State Trie | 状态树 |
Snapshot Sync | 快照同步 |
通过本课程的系统学习,开发者将掌握现代以太坊客户端的架构设计精髓,具备参与Reth等新一代客户端开发的能力。建议结合Erigon代码库对比学习传统与创新设计差异,通过Tokio文档深化异步编程理解。
主题: Verkle树技术及其在以太坊中的应用 目标: 理解Verkle树如何替代Merkle Patricia Trie(MPT),实现无状态客户端与状态验证优化。
- 证明尺寸优化:相比MPT的KB级证明,Verkle证明可压缩至约200字节
- 树高度降低:通过向量承诺(KZG多项式)实现宽树结构(每个节点256个子节点)
- 无状态客户端:轻节点只需存储根哈希,通过证明验证状态数据
- KZG承诺:实现常数大小的多项式承诺(需可信设置)
- Pedersen哈希:结合椭圆曲线加密构建树节点哈希
- 零知识证明兼容:支持未来与zk-SNARKs集成
- 树结构分层:
- 扩展层(Extension Node):处理长路径压缩
- 内部节点(Inner Node):存储子节点承诺
- 叶子节点(Leaf Node):包含实际状态数据
- 路径压缩:通过地址空间划分优化访问效率
- 状态转换方案:
- 分阶段迁移(柏林硬分叉后的状态快照)
- 双树并行期(MPT与Verkle共存)
- Gas模型调整:
- 状态访问操作码(如
SLOAD
)Gas成本重构 - 证明验证Gas定价(约5,000 Gas/证明)
- 状态访问操作码(如
- 测试网集成:已部署在Ephemery测试网
- 客户端支持:Geth、Nethermind的初期实现
- 开放问题:
- 长期状态存储激励
- 证明聚合优化
- Verkle证明解析(Ignacio Hagopian)
- Verkle技术门户:整合各类技术文档
- Verkle状态迁移提案(开发者讨论)
- The Verge升级解析(Guillaume Ballet演讲)
英文术语 | 中文解释 |
---|---|
Vector Commitment | 向量承诺 |
Polynomial Commitment | 多项式承诺 |
Stateless Client | 无状态客户端 |
Witness | 见证(状态证明) |
-
验证工具使用:
# 使用py_verkle生成验证结果 from py_verkle import VerkleTree tree = VerkleTree() tree.insert(b'\x01'*32, b'data') proof = tree.prove(b'\x01'*32) assert tree.verify(proof)
-
Gas成本测算:
- 对比MPT与Verkle在
SLOAD
操作中的Gas消耗差异 - 分析状态证明批量验证的经济性
- 对比MPT与Verkle在
-
迁移测试:
- 在本地私有链部署Verkle过渡分叉
- 监控双树并行期的状态同步效率
通过本课程的系统学习,研究者将深入理解Verkle树的技术革新及其对以太坊生态的影响。建议参与Verkle开发者会议跟进最新进展,通过Verkle测试网进行实践验证。
主题: 共识层客户端架构与Teku实现解析 目标: 掌握共识层客户端设计原理,理解EIP实施流程。
- 开发语言:Java(企业级应用特性)
- 核心模块:
- 信标节点:处理区块同步与状态转换
- 验证者客户端:签名见证与区块提案
- REST API:符合Beacon API规范
- 创新设计:
- 声明式同步框架(Declarative Sync)
- 模块化验证者服务(远程签名支持)
- EIP-7251(Max EB)案例:
- 规范制定:在共识规范库定义
MAX_EFFECTIVE_BALANCE
- 测试生成:通过
generate_tests.py
创建状态转换测试 - 代码实现:修改
BeaconState
类处理余额上限 - 网络集成:配置预设文件更新链参数
- 规范制定:在共识规范库定义
- 检查点同步:快速获取最新可信状态
- 增量同步:基于Finalized Checkpoint的区块回溯
- P2P优化:使用GossipSub协议广播见证
-
代码规范:遵循Hyperledger编码标准
-
调试技巧
# 启用调试日志 java -Dlogging=DEBUG -jar teku.jar --network=mainnet # 监控内存使用 jstat -gc <pid> 1000
- Teku官方文档:部署与API指南
- EIP-7251规范:MaxEB技术细节
英文术语 | 中文解释 |
---|---|
Finalized Checkpoint | 最终化检查点 |
GossipSub Protocol | GossipSub协议 |
Validator Client | 验证者客户端 |
State Transition | 状态转换 |
-
本地环境搭建:
# 克隆Teku代码库 git clone https://github.com/Consensys/teku # 编译并运行测试网节点 ./gradlew distTar && cd build/distributions tar -xzf teku-*.tar.gz && ./teku/bin/teku --network=holesky
-
API交互测试:
# 查询信标链头部信息 curl http://localhost:5051/eth/v1/beacon/headers # 提交自愿退出交易 curl -X POST http://localhost:5051/eth/v1/beacon/pool/voluntary_exits -H "Content-Type: application/json" -d '{"message": {...}, "signature": "0x..."}'
-
自定义EIP实现:
- 在
consensus-specs
中添加新EIP草案 - 修改
BeaconChainController
处理新逻辑 - 生成并运行一致性测试
- 在
通过本课程的系统学习,开发者将深入理解共识层客户端的运作机制,具备参与以太坊核心协议改进的能力。建议结合Lighthouse等其他客户端实现进行对比研究,通过PEEPanEIP系列深化协议知识。
EPF WIKI Week 7 | Protocol services
主题: MEV(矿工可提取价值)与抗审查协议服务 目标: 理解MEV对协议经济的影响,掌握PBS(提议者-构建者分离)等核心解决方案。
- MEV类型:
- 套利交易:DEX间价格差异
- 清算优先权:借贷协议清算收益
- 三明治攻击:操纵交易排序获利
- 负面影响:
- 网络拥堵与Gas费波动
- 验证者中心化风险
- 架构设计:
- 提议者:负责区块最终确认
- 构建者:优化交易排序获取MEV
- 中继:防止MEV信息泄露
- 实现变体:
- ePBS(Enshrined PBS):协议内强制实施
- 市场驱动PBS:通过竞拍机制分配构建权
- 费用销毁:将部分MEV收益通过EIP-1559销毁
- 经济平衡:减少验证者过度激励,增强网络安全性
- 实施挑战:精确测算可销毁比例(当前提案约50%)
- 角色解绑:
- 区块提议:高硬件要求的专业节点
- 见证签名:普通用户参与
- 优势:
- 降低质押门槛(无需32 ETH)
- 提升网络去中心化程度
英文术语 | 中文解释 |
---|---|
Miner Extractable Value | 矿工可提取价值 |
Proposer-Builder Separation | 提议者-构建者分离 |
MEV-Burn | MEV销毁机制 |
Relay | 中继节点 |
-
MEV模拟实验:
# 使用mev-inspect分析区块MEV import mev_inspect block = mev_inspect.get_block(16500000) arb_opportunities = mev_inspect.find_arbitrages(block) print(f"Block {block.number} MEV: {sum(opp.profit for opp in arb_opportunities)} ETH")
-
PBS经济模型构建:
- 设计构建者竞拍收益分配模型
- 测算不同销毁比例对验证者收益的影响
-
抗审查监控:
- 通过dotpics.info追踪OFAC合规交易占比
- 开发插件检测本地节点的交易过滤行为
通过本课程的系统学习,研究者将深入理解MEV经济模型及其治理方案,为参与协议层改进奠定基础。建议结合RIG开放问题列表探索前沿课题,通过mev-boost实践PBS实现。