内存池(mempool,memory pool 的缩写)是交易被广播到网络之后、被打包进区块之前的等候区。每个节点都在内存中保存自己的一份副本。
可以把它理解为一个没有固定顺序的队列。矿工与验证者从其中挑选交易,而他们挑什么,主要由您支付的费用决定。
一笔交易如何穿过内存池
共有五个阶段,内存池是第二阶段。
- 您在钱包中签署并广播一笔交易。
- 节点验证该交易,确认其不是双花,并将其保存在自己的内存池中。
- 矿工或验证者挑选纳入下一个区块的交易,通常优先选择单位数据费用最高的交易。
- 区块被挖出或被提议,您的交易随之离开内存池。
- 后续区块在其上继续构建,确认数逐步累积。
交易停留在内存池中时,在任何实质意义上都还没有发生。它只是一个请求。在被打包进区块之前,它可能被替换、被丢弃,或者只是继续等待。
手续费市场
正因为区块空间有限,内存池才具有意义。
Bitcoin 区块约可容纳 400 万权重单位,Ethereum 区块则设有 gas 上限。当到来的交易多于可容纳的数量时,单位字节出价更高的交易会被优先选中,其余交易只能等待。
费率按单位大小报价,而非按总额。在 Bitcoin 上,这一单位是每虚拟字节聪数(sat/vB)。支付很高的总手续费,并不能让一笔体积较大的交易胜过一笔费率更高的小额交易。
因此拥堵有其特征:内存池体积膨胀,费率攀升,低手续费交易在队尾堆积。
如果您的交易被卡住会怎样
有三种选择,取决于网络以及您当初的设置。
等待。在网络清闲时段费率会下降,被卡住的交易可能在数小时后无需干预即获确认。
Replace-by-fee(替换手续费)。RBF 在 BIP-125 中定义,允许您以更高手续费重新广播同一笔交易,以替换原交易。要使其生效,您的钱包在发送时必须已将该交易标记为可替换。
Child pays for parent(子为父偿)。用一笔携带高额手续费的新交易花费尚未确认的输出。矿工要获得子交易的手续费,就必须同时纳入父交易,于是两笔一并确认。
交易也可能被彻底丢弃。默认情况下,多数 Bitcoin 节点将内存池上限设为 300 MB,池满时会剔除手续费最低的交易。从未确认即意味着从未花出,因此资金仍归您所有。
值得关注的拥堵事件
有两起事件说明了不同的成因。
2021 年,新疆的一次停电几乎瞬间移除了 Bitcoin 全球算力的约 24%。出块速度放慢。未确认交易急剧堆积,因为区块空间的供给下降,而需求依旧。
2023 年至 2024 年间,Ordinals 与 BRC-20 代币把大量数据推入 Bitcoin 区块,直接与普通支付争夺空间。这属于需求冲击而非供给冲击,费率也相应上涨。
两者从相反方向说明了同一件事:深度是一个比值,而不是绝对值。
内存池作为公开数据源
正因为所有等待中的交易都可见,这带来了一系列后果。
交易者观察内存池深度与费率以选择交易时机。分析师把大额待确认转账读作信号。MEV 搜索者持续监控,寻找值得重新排序、抢先交易或三明治攻击的交易。
在 Ethereum 上,这催生了一个市场。如今私有订单流绕开公开内存池,通过 Flashbots 等中继完整路由交易,正是为了让机器人在交易结算前无法看到它们。相当大比例的 Ethereum 交易从未以公开待确认状态出现过。
内存池无法告诉您什么
- 不存在单一的全局队列。每个节点持有自己的视图,彼此各不相同。这也影响区块浏览器向您展示的内容。某个节点可见的交易,可能还没有到达另一个节点。
- 深度无法可靠预测手续费。一个塞满低手续费交易的庞大内存池,可能在不推高您所需费率的情况下缓慢清空。
- 待确认意味着一切尚未结算。把未确认交易当作最终结果,正是接受双花的方式,无论您是在向某个加密货币地址转出资金还是接收资金。
- 它无法告诉您顺序。费率是选中与否的主要影响因素,但并非保证。
mb.io 在其中的位置
当您在链上转移资金时,内存池机制才有意义。在中心化交易所内部的交易从不触及内存池,因为它们在平台自身的账本中完成结算。
mb.io 是一家受监管的加密货币现货交易所,由 MultiBank Group 提供支持——这家金融机构成立于 2005 年,服务 100 多个国家和地区的 200 多万名客户。
- 受阿联酋 VARA 与澳大利亚 AUSTRAC 监管
- 40 纳秒的成交速度
- 独立区块链安全审计机构 Hacken 给出的 10/10 安全评分
- 由 Fireblocks 提供支持的机构级 MPC 托管,客户资金隔离存放
- 三步完成买入、卖出与兑换,从注册到成交
- 7×24 小时客户支持,覆盖网页端以及 iOS 与 Android 应用
开设账户,在 mb.io 开始交易。
常见问题
mempool 是什么的缩写?
是 memory pool(内存池)的缩写。它指节点保存在内存中、有效但尚未确认、等待被打包进区块的交易集合。
我的交易为什么卡在内存池里?
因为相对于竞争交易,您的费率过低。可选做法:等待拥堵缓解、在钱包已启用的情况下使用替换手续费(RBF),或使用子为父偿(CPFP)。
交易在内存池中能被取消吗?
不能取消,但有可能被替换。替换手续费(RBF)允许您广播一个手续费更高的竞争版本,在原交易尚未确认的情况下,可以将资金改道。这只有在该交易被标记为可替换时才有效。
内存池中的交易会被丢弃吗?
会。默认情况下,多数 Bitcoin 节点将内存池上限设为 300 MB,池满时会剔除手续费最低的交易。被丢弃意味着从未确认,因此资金也从未被花出。
每个节点的内存池都一样吗?
不一样。每个节点根据自己收到的内容与自身策略维护各自的视图,因此不同节点的内存池存在差异。
我该如何查看内存池?
公开区块浏览器会显示当前池体积、费率估算以及待确认交易数量。它们展示的是某一个节点的视图,而非权威的全局状态。
什么是 MEV,它与内存池有何关系?
MEV 指最大可提取价值,即机器人通过重新排序、插入或抢先待确认交易获利。它们正是在公开内存池中发现这些机会,这也是 Ethereum 上出现私有订单流路由的原因。
我应该等待多少个确认?
这取决于金额与网络。停留在内存池中意味着零确认,并非最终确定。按惯例,金额较大的转账会等待更多区块在其上叠加。

