Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
OnFinality Learn
网络与协议指南阅读约 11 分钟

MEV 含义:面向区块链构建者的最大可提取价值详解

实用解读 MEV 的含义、交易排序如何产生可提取价值,以及如何在自有基础设施上测量和推理它。

TL;DR

MEV 代表最大可提取价值:区块生产者或其他特权参与者通过选择在区块内包含、排除或重新排序哪些交易,在标准区块奖励和 gas 费之外可捕获的利润。该术语最初在 PoW 中称为“矿工可提取价值”,在 PoS 使验证者成为排序权威后更名。本文解释其机制,演示一种使用自有 RPC 端点检查排序效应的可复现方法,并将已记录的协议行为与你应自行运行的测量区分开来。还涵盖故障排除、权衡取舍以及端点基础设施的后续方向。

MEV 在区块链语境中的含义

在区块链讨论中,MEV 是 最大可提取价值 的缩写。它指拥有排序权力的参与者通过在区块内包含、排除或重新排序交易,在普通区块奖励和这些交易支付的 gas 费之外可捕获的最大利润。该概念最初称为 矿工可提取价值,因为工作量证明矿工控制区块构建。以太坊转向权益证明后,验证者接管了这一角色,因此更广泛的术语现在成为标准。

同样的三个字母在物理学中也指 兆电子伏特,一种能量单位。那完全是另一个领域。在 Web3 语境中,如果有人问“MEV 含义”,他们几乎总是指这里描述的交易排序概念。

  • MEV = 最大可提取价值(区块链交易排序)。
  • 原称矿工可提取价值;因权益证明和多链使用而更名。
  • 相对于正常区块奖励加 gas 费的基线来衡量。
  • 并非天生恶意,但某些提取模式会损害普通用户。

范围、假设及本文不主张的内容

本文假设你熟悉交易、区块、gas 和 JSON-RPC。它不发布任何提供商的基准数据,不声称哪些网络支持哪些 MEV 工具,也不断言当前市场规模。你在其他地方看到的任何数字都应视为时效性数据,并应基于你自己的数据重新测量。

本文描述协议行为时,反映的是区块生产和交易排序的文档化工作方式。描述测量时,提供了一套针对你自己的 RPC 端点运行的流程,以便结果属于你而非借用他人。

心智模型:排序是一种稀缺资源

区块空间有限,其中交易的顺序会改变结果。如果两笔交换触及同一个流动性池,第二笔的执行价格会与第一笔不同。如果清算在特定区块变得有利可图,谁先让清算交易上链谁就获得奖励。因此排序具有经济价值,决定排序的一方可以引导该价值。

常见角色包括:搜索者,运行算法寻找有利可图的排序;构建者,将交易捆绑组装成候选区块;以及验证者(或矿工),提出区块并最终决定什么上链。用户和应用处于另一端,通常承受不利排序的成本而不直接察觉。

  • 搜索者发现机会并提交捆绑包。
  • 构建者竞争构建最有利可图的区块。
  • 验证者提出区块并捕获部分价值。
  • 用户以滑点、失败交易或更差成交的形式体验 MEV。

常见 MEV 模式及其链上表现

以下模式是已记录的类别。识别它们有助于你在自行测量时解读原始区块数据。

DEX 套利纠正池间价差,通常被认为良性甚至有助于市场效率。清算奖励最先平仓抵押不足头寸的人。三明治攻击在用户交换前后分别买入和卖出,使价格对用户不利。广义抢跑复制有利可图的待处理交易并提交条件更优的竞争交易。NFT MEV 涵盖狙击新上架物品或利用铸造机制。

  • 套利:通常提升效率,但仍具竞争性。
  • 清算:时间敏感,奖励归于最先包含者。
  • 三明治:直接损害被夹用户。
  • 抢跑:对有利可图待处理活动的通用复制。
  • NFT 狙击:围绕铸造和上架的排序优势。

自行测量 MEV 的前提条件

要检查排序效应,你需要一个提供历史区块和交易收据的 RPC 端点,以及脚本环境。轻量探索可使用公共端点,但重复查询和更大区块范围时,专用端点更可预测。OnFinality 的 RPC API 服务 和 专用节点方案 是可供评估的选项之一;选择提供商与测量方法是两个独立决策。

你还需要决定关注哪条链和哪个区块范围。MEV 行为因网络而异,因此从一条链和有界窗口开始,而非试图一次覆盖所有。

export RPC_URL="https://your-endpoint.example"
export CHAIN_ID="1"
# Confirm the endpoint responds before running any analysis
curl -s -X POST "$RPC_URL" \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_chainId","params":[]}'

检查区块排序的可复现流程

目标是拉取一个区块,按顺序列出其交易,并记录足够元数据以推理排序。这本身不能证明 MEV 被提取;它为你提供分类模式的原始材料。

针对你的端点运行以下脚本,将区块号替换为你想检查的区块。输出是按区块顺序排列的交易哈希、发送者、接收者和 gas 价格表。

import os, json, urllib.request

RPC_URL = os.environ["RPC_URL"]
BLOCK = "0x" + format(19000000, "x")

def rpc(method, params):
    req = urllib.request.Request(
        RPC_URL,
        data=json.dumps({"jsonrpc":"2.0","id":1,"method":method,"params":params}).encode(),
        headers={"Content-Type":"application/json"},
    )
    with urllib.request.urlopen(req, timeout=30) as r:
        return json.load(r)["result"]

block = rpc("eth_getBlockByNumber", [BLOCK, True])
print("block", block["number"], "txs", len(block["transactions"]))
for i, tx in enumerate(block["transactions"]):
    print(i, tx["hash"], tx["from"], tx.get("to"), tx.get("gasPrice"))

预期验证结果及如何解读

成功运行会打印区块号、交易数量,以及按区块列出顺序的每笔交易一行。该顺序是研究对象。如果交易数量为零或调用出错,首先检查端点或区块号。

当你扩展脚本以分类交易时,将结果记录在表格中以便运行可比。如下模板可保持测量诚实:你填入自己运行的数字,并为每行注明链、区块范围和时间戳。

  • | 运行 | 链 | 区块范围 | 扫描交易数 | 候选套利 | 候选三明治 | 备注 |
  • |-----|-------|-------------|----------------------|---------------------|----------------------|-------|
  • | 1 | (你的链) | (起-止) | (实测) | (实测) | (实测) | (方法备注) |
  • | 2 | (你的链) | (起-止) | (实测) | (实测) | (实测) | (方法备注) |

常见测量问题的故障排除

端点返回区块为 null。 区块可能超出提供商保留范围,或区块号在未来。用 eth_blockNumber 确认最新区块并选择其下的区块。

批量扫描时出现速率限制或超时。 公共端点常限流。批量请求、添加退避或改用专用端点。通用实践见 RPC 端点指南。

交易顺序与预期不符。 某些客户端按区块列出顺序返回交易,即规范顺序。如需执行追踪,仅在端点支持时使用 debug_traceBlockByNumber;并非所有端点都支持。

部分交易缺少收据。 某些提供商收据可能滞后于区块获取。稍后重试或用 eth_getTransactionReceipt 单独获取收据。

curl -s -X POST "$RPC_URL" \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}'

该方法的局限与权衡

区块级检查显示排序但不显示意图。看似三明治的交易可能是无关的两笔交易。分类需要启发式规则,而启发式会产生误报。将任何计数视为估计并记录你的规则。

历史深度因提供商而异。某些端点仅保留近期区块,因此长程研究可能需要支持归档的端点。成本与延迟同深度和可靠性之间存在权衡;定价概览 有助于在承诺大规模扫描前比较层级。

最后,MEV 具有对抗性且变化迅速。曾经常见的模式可能被新机制取代。定期重新运行测量,而非依赖单一快照。

MEV 在基础设施决策中的位置

如果你在构建搜索者、区块浏览器或分析管道,你的 RPC 层是测量的一部分。对大多数分析工作负载而言,一致的排序、可靠的历史访问和可预测的速率限制比峰值吞吐量更重要。查看 支持的网路 以确认所需链可用,若扫描长期运行可考虑专用节点。

对于仅需快速端点探索链的团队,RPC Assistant 的简短推荐比完整提供商评估更快。无论选择哪个端点,本文的技术方法保持不变。

后续步骤:从定义到实践

从一条链和一天的区块开始。运行检查脚本,记录表格,并完善分类规则直到误报率可接受。然后扩大范围并比较运行结果。

若想深入基础设施方面,请阅读 区块链节点托管指南 和 多链 RPC 端点指南。准备好为持续工作选择端点时,RPC Assistant 的 Web3 项目最佳 RPC 提供商 是合理起点。

永远不用担心基础设施

OnFinality 消除了 DevOps 的繁重工作,让您能够更聪明、更快地构建。

开始