摘要:MEV Bundle(文档里也叫 Flashbots Bundle)是搜索者按指定顺序捆在一起、私下交给区块构建者的一组已签名交易。官方文档写:可以指定目标区块;未列入 revertingTxHashes 的回滚会让整个包失效。本场主网转发地址是 relay.flashbots.net,限制为每秒 10,000 次请求、每个 bundle 最多 100 笔、大小上限 300,000 字节,会变动。失败的包往往不会出现在链上,排查页要求先用 eth_callBundle 模拟。

你在链上换币时,可能先听到 三明治攻击是什么:交易进了公共交易池,成交价有时会比刚才看到的报价差一截。站内 Flashbots Protect 是什么 讲的是普通钱包可以把一条专用 RPC 加进去,交易先走私有池。本篇只把另一个词看清楚:MEV Bundle,文档里也叫 Flashbots Bundle,中文常说成打包交易。钱包确认页上通常没有这个按钮。它指的是搜索者把一笔或多笔已签名交易按指定顺序捆在一起,私下交给区块构建者。普通钱包用户一般不会自己去发 eth_sendBundle。

一、官方怎么定义 Bundle,顺序和回滚规则先看清

本场打开的 Flashbots 文档「Understanding Bundles」 开篇写:搜索者把 bundles 提交给区块构建者,争取被写进区块。Bundles 是一笔或多笔交易,按你提供的顺序捆在一起执行。除了搜索者自己的交易,bundle 里也可以放入公共交易池里其他用户还在 pending 的交易,并且可以指定要进入哪一个区块。页面底部的 Last updated 是 Dec 16, 2025,文档改写后会变,以你当时打开的页面为准。界面是英文,图注用中文对照。

同一页的示例里,先取当前区块高度和时间戳,把 maxTimestamp 写成当前时间加 120 秒,再调用 signBundle 和 sendRawBundle。示例把目标写在 targetBlockNumber 上,也就是这个 bundle 在哪一个区块高度有效。可选字段里还有 minTimestamp、maxTimestamp,以及 revertingTxHashes。注释写得很直接:如果不在这里列出交易哈希,任何一笔回滚都会让整个 bundle 失效。示例后一句还写,这个 bundle 里既有自己的 transaction,也有来自交易池的 SIGNED_ORACLE_UPDATE_FROM_PENDING_POOL。公共池里 Pending 是什么,见 Pending 交易是什么,这里不重写。

MEV Bundle 是什么:新手听说的打包交易-玩转加密货币
图1:docs.flashbots.net「Understanding Bundles」:Searchers use Flashbots to submit bundles to block builders for inclusion in blocks。Bundles are one or more transactions that are grouped together and executed in the order they are provided。除搜索者自己的交易外,bundle 也可包含其他用户仍在 mempool 中的 pending 交易,并可 target specific blocks。示例代码中 maxTimestamp 为当前时间戳加 120,sendRawBundle 使用 targetBlockNumber,可选字段包括 minTimestamp、maxTimestamp,以及 revertingTxHashes(注释写 Without specifying here, any revert invalidates the entire bundle)。文末写该示例同时包含自己的 transaction 和来自交易池的 SIGNED_ORACLE_UPDATE_FROM_PENDING_POOL。页底 Last updated on Dec 16, 2025。界面英文,2026-11-13 实拍,文案会变动

二、eth_sendBundle 在说什么,搜索者通常是谁

Flashbots Auction Overview 的 Technical Architecture 一节写:Flashbots Auction 引入了新的 eth_sendBundle RPC,用来统一这条通道里的消息格式,这条消息就叫 Flashbots Bundle。文档接着写,bundle 由一组任意的、已签名的以太坊交易组成,再附上元数据,用来说明这些交易在什么条件下才能被写入。同一页把搜索者写成:选择 Flashbots 私有交易池、而不是标准点对点交易池的以太坊用户。他们跟踪链上状态,并把 bundles 交给区块构建者。

本场打开时,文档把搜索者分成三类:一是做套利、清算这类、希望更快且尽量避免失败单上链的机器人运营者;二是希望交易不被抢先交易的普通用户,例如在 Uniswap 上换币的人;三是需要账户抽象或免 Gas 交易等进阶能力的去中心化应用。普通钱包用户如果只是想少被夹,优先看 Flashbots Protect 是什么 里的专用 RPC,不必自己拼 eth_sendBundle。同一页后文还写 Not all builders can be trusted:构建者能看到送来的原始交易,也就有抢跑、审查的能力,选构建者时要自己核对,这里不展开名单。

MEV Bundle 是什么:新手听说的打包交易-玩转加密货币
图2:docs.flashbots.net「Overview」Technical Architecture:Flashbots Auction introduces a new eth_sendBundle RPC which standardizes the message format,This message is called a “Flashbots Bundle”。bundle 由 an array of arbitrary signed Ethereum transactions 加上说明写入条件的 metadata 组成。示例字段包括 txs、blockNumber、minTimestamp、maxTimestamp、revertingTxHashes(右侧注释在截图里被栏宽截断,完整含义以同页正文和下一节 RPC 文档为准)。Searchers 一节写他们选择 Flashbots private transaction pool 而不是 standard p2p transaction pool,跟踪链上状态并向 block builders 提交 bundles。三类搜索者为本场页面所写:套利和清算等机器人运营者、希望得到 frontrunning 保护的用户(例如 Uniswap traders)、以及需要账户抽象或 gasless transactions 的 Dapps。界面英文,2026-11-13 实拍,文案会变动

三、发送地址和限制以当天文档为准

JSON-RPC Endpoints 写,进阶用户可以直接和 Flashbots 的 RPC 端点交互,主网地址是 https://relay.flashbots.net。本场打开时,页面的 Bundle Relay URLS 表是:Mainnet 为 https://relay.flashbots.net,Sepolia 测试网为 https://relay-sepolia.flashbots.net。同一段下面的限制是:每个 IP 每秒最多 10,000 次请求;每个 bundle 的 txs 参数最多 100 笔交易,大小上限 300,000 字节。这是本场文档里的数字,之后增减都以你当时打开的页面为准,不要把 10,000、100、300,000 当成永远不变的数。

同一页把 eth_sendBundle 写成:把 bundles 发给 Flashbots 的构建者。字段除了上一节已经出现的 txs、blockNumber、minTimestamp、maxTimestamp、revertingTxHashes,还多了可选的 replacementUuid(用来取消或替换这个 bundle 的 UUID)和 builders(要分享给哪些已注册构建者)。官方注释里,txs 是要在一个原子 bundle 里按顺序执行的已签名交易列表,blockNumber 是这个 bundle 在哪一个区块高度有效,用十六进制书写。截图右侧的注释被栏宽截断了一截,完整句子以该页正文为准。

MEV Bundle 是什么:新手听说的打包交易-玩转加密货币
图3:docs.flashbots.net「JSON-RPC Endpoints」:Advanced users can interact with the RPC endpoint at relay.flashbots.net。Bundle Relay URLS 表中 Mainnet 为 https://relay.flashbots.net,Sepolia 为 https://relay-sepolia.flashbots.net。本场写明的限制为:rate limit of 10,000 requests per second per IP;Each bundle(txs parameter)can contain at most 100 transactions and have a size limit of 300,000 bytes。eth_sendBundle 用于把 bundles 发给 Flashbots builder,字段包括 txs、blockNumber、minTimestamp、maxTimestamp、revertingTxHashes,以及可选的 replacementUuid、builders。截图右侧注释被栏宽截断。界面英文,2026-11-13 实拍,地址和上限会变动

四、为什么有的 bundle 上不了链,文档让你先模拟

Bundle Inclusion Troubleshooting 开篇把这件事和普通广播交易对照:普通交易即使失败,往往也会出现在链上;Flashbots bundle 则不同,下面这些情况都会让它上不了链。同一页开头列出五条:bundle 里有交易失败,且没有写进可选的 revertingTxHashes;激励不够(gas 价格和 coinbase 转账的合计,补不足这块空间的价值);同一机会上有人出了更高的价;bundle 到达太晚,赶不上目标区块;目标槽位的验证者没有在运行 mev-boost。文档还写,Flashbots 会避免把失败交易写到链上,所以不能只靠 Etherscan 判断执行结果。

往下「Does your transaction work and pay enough?」把前两条写得更具体。本场打开时,页面写 Flashbots 在这些情况下不会收录这个 bundle:一是 bundle 里有交易回滚,除非它被写进 revertingTxHashes,或遇到 uncled 这种情况;二是 gas 价格低于基础费,若硬写进去会变成无效区块;三是有效优先费不够补这块空间改给其他无关交易时的机会成本。页上举的例子是:你的 bundle 只付 1 Gwei 优先费,而区块里最便宜的那笔已在付 2 Gwei,构建者更愿意丢掉你的 bundle、改收普通 pending 交易。1 Gwei 和 2 Gwei 是文档里的对照写法,不是你这笔交易的真实数字,费率自己会变。

同一节写,这类问题要用 eth_callBundle 做模拟。它和常见的 eth_call 类似,但作用在一组已签名交易上,并按指定区块从顶部依次执行。页上还写,Flashbots 的 ethers.js 封装是通过 simulate() 来调用它,而且只接受预先签好的 bundle。钱包里的模拟按钮怎么看,见 交易模拟是什么,两边不是同一套入口,这里只对照文档里的 RPC。

MEV Bundle 是什么:新手听说的打包交易-玩转加密货币
图4:docs.flashbots.net「Bundle Inclusion Troubleshooting」一节 Does your transaction work and pay enough?:Flashbots will not include a bundle if。三条为:bundle 内交易回滚,除非写进 optional argument revertingTxHashes 或遇到 uncled;gas price is below the base fee,否则会形成 invalid block;effective priority fee 不足以弥补这块空间改给其他无关交易的机会成本。页上例子为 bundle 付 1 Gwei priority fee,而区块里最便宜的交易在付 2 Gwei,构建者更愿丢掉该 bundle、改收 standard pending transactions。这类问题要用 eth_callBundle 模拟,它类似 eth_call,但作用于已签名交易数组,并从指定区块顶部依次执行。Flashbots ethers.js provider 通过 simulate() 暴露该方法,且只接受预先签好的 bundle。1 Gwei、2 Gwei 是文档对照写法,不是你这笔交易的真实数字。界面英文,2026-11-13 实拍,文案会变动

五、中文页面里的「交易包」在指同一件事

ethereum.org 中文「最大可提取价值 (MEV)」 把搜索者的提交方式写成:搜索者寻找利润丰厚的 MEV 机会,并把交易包连同要写进区块的密封价格出价,一起发给区块提议者。运行 mev-geth 的验证者只需选择利润最高的交易包,再把它写入新区块。为了保护提议者(验证者)少接到垃圾信息和无效交易,交易包在到达提议者之前会经过中继者验证。本场打开时,页脚写「页面最后更新:2026年10月16日」,之后以当时页脚为准。

同一段接着写,MEV-Boost 仍沿用早期 Flashbots 拍卖的工作原理,只是为权益证明补了新功能:搜索者还是在找有利可图的 MEV 交易,但多了一类专门参与者,也就是构建者,负责把交易和交易包聚合成区块。构建者收下搜索者的密封价格出价,再做排序优化。中继者仍然负责在把交易包交给提议者之前先验证;MEV-Boost 还加了托管,用来保存构建者送来的区块主体和验证者送来的区块头。这里只用来对照「交易包」这三个字在官方中文里怎么出现,不讲怎么成为搜索者,也不对收益做判断。

MEV Bundle 是什么:新手听说的打包交易-玩转加密货币
图5:ethereum.org/zh/developers/docs/mev/:搜索者寻找利润丰厚的 MEV 机会,并将交易包连同包含在区块中的密封价格出价一起发送给区块提议者。运行 mev-geth(Go 以太坊 Geth 客户端的分叉版本)的验证者只需选择利润最高的交易包,并将其作为新区块的一部分包含在内。为了保护区块提议者(验证者)免受垃圾信息和无效交易的影响,交易包在到达提议者之前会通过中继者进行验证。下一段写 MEV-Boost 保留了原始 Flashbots 拍卖的相同工作原理,并为权益证明补充新功能;构建者负责将交易和交易包聚合到区块中,接受搜索者的密封价格出价并优化排序;中继者在传递前验证交易包,MEV-Boost 还引入托管以提供数据可用性。本场页脚为页面最后更新:2026年10月16日。2026-11-13 实拍,文案会变动

六、以后再听到打包交易,可以先对这几项

以后在文档或讨论里再碰到 Bundle、交易包,可以按下面对一下。文档里的 10,000 次请求、100 笔、300,000 字节,以及 1 Gwei、2 Gwei 的对照,都以你当时打开的页面为准。

  1. 先分清对象。普通钱包用户若只是想少被夹,先看 Flashbots Protect 是什么 里的专用 RPC。MEV Bundle 是搜索者向构建者提交的一组已签名交易,不是确认页上的一个开关。
  2. 核对官方定义:按给定顺序执行;可以带上交易池里别人的 pending 交易;要指定目标区块。没写进 revertingTxHashes 的回滚,会让整个包失效。
  3. 发送地址先对官方表。本场主网是 https://relay.flashbots.net,测试网是 https://relay-sepolia.flashbots.net。不要随手填来路不明的转发地址。
  4. 公共浏览器暂时搜不到,不一定等于没发出去。排查文档写,失败的 bundle 往往不会出现在链上。要查执行结果,文档让你先用 eth_callBundle 模拟。
  5. Overview 写过 Not all builders can be trusted。构建者能看到原始交易。普通用户更不必把交易交给自己核对不清的第三方入口。

七、这几栏怎么对照

你要看的字段 它在说什么 新手先做什么
Bundle / 交易包 一组已签名交易,按指定顺序一起执行,常指定目标区块 先认这是搜索者提交给构建者的格式,不是钱包里的一个按钮
revertingTxHashes 允许回滚的交易哈希列表;不写的话,任一笔回滚会让整个包失效 对照 Understanding Bundles 的注释,不要把「打包」理解成失败了也会上链
relay.flashbots.net 本场文档里的主网 Bundle Relay 地址,测试网是 relay-sepolia.flashbots.net 只用来核对官方域名,不要换成来路不明的地址
10,000 次/秒、100 笔、300,000 字节 本场 RPC 文档写明的请求和体积限制,页上会改 只用来理解上限,以你当时打开的文档为准
eth_callBundle / simulate() 排查文档要求用模拟来看回滚、基础费和有效优先费 失败包往往不上链,别只在 Etherscan 上找结果
先认清这不是钱包按钮
Understanding Bundles 把 bundle 写成按给定顺序执行的一组交易。普通用户若只是防夹,先看 Flashbots Protect 的专用 RPC。
回滚规则要看 revertingTxHashes
文档注释写,不在这个列表里的回滚,会让整个 bundle 失效。失败的包常常不会出现在链上。
官方地址和上限会变
本场主网转发地址是 https://relay.flashbots.net。限制是每秒 10,000 次请求、每个 bundle 最多 100 笔、大小 300,000 字节,都以当时文档为准。
上不了链时先做模拟
排查页写明:回滚、gas 价格低于基础费、有效优先费不够,构建者都不会收。1 Gwei 和 2 Gwei 只是文档里的对照写法。

浏览官方文档本身不收费。以后若要在以太坊主网真正发出去,需要留一点 ETH 付 Gas。可在 币安 或 欧易 准备。自托管钱包可以用欧易 Web3(邀请码 CHENGXULVTU)。

相关阅读