比特币的 Cluster Mempool: 15 年来的架构大修如何重塑手续费市场
十五年来,比特币的内存池(mempool)——未确认交易在被打包进区块之前的“候诊室”——一直运行在比特币单价仅为几美分时设计的架构之上。那个时代即将结束。2025 年 11 月 25 日,Bitcoin Core 合并了第 #33629 号拉取请求(Pull Request),这是一项名为 Cluster Mempool(集群内存池)的全面重新设计,它用统一的、基于集群的框架取代了遗留的交易排序引擎。该升级目标定于 2026 年下半年的 Bitcoin Core 31.0 版本发布,它悄然成为了自 SegWit 以来比特币所经历的最具影响力的协议级变更之一。
没有新的操作码。没有代币标准。没有华丽的叙事。这仅仅是对每个比特币节点如何决定哪些交易最重要的一次根本性反思——以及为什么这个决定在过去几年中一直存在细微的缺陷。
没人讨论的问题:两个不一致的排名
比特币的内存池一直为未确认交易维持着两种独立的排序方式。**祖先费率(Ancestor feerate)**通过回顾父级依赖项来对交易进行排序。**后代费率(Descendant feerate)**则通过前瞻子级交易来进行排序。挖矿软件使用祖先费率来构建区块。逐出逻辑(当内存池满时移除低优先级交易的过程)则使用后代费率。
这种双重排名系统导致了一种隐蔽但持续存在的不匹配。矿工想要打包进区块的交易与节点认为最可牺牲的交易,其衡量标准完全不同。这种后果对比特币生态系统产生了连锁反应:
- 钱包错误估算费用。 费用估算依赖于预测矿工将包含哪些交易。当构建区块的排名与管理内存池容量的排名不一致时,钱包经常会多付或少付费用——导致 Sat(聪)的浪费或交易停滞。
- 费用替换(RBF)表现不一致。 在一种排名系统下看似有利的交易替换可能会被另一种排名系统拒绝,这为任何想要调高费用(Fee bumping)的用户带来了不可预测的用户体验。
- 闪电网络惩罚交易面临不确定性。 二层网络(Layer 2)协议依赖于及时的交易传播和确认。当内存池行为与矿工行为发生分歧时,像闪电网络惩罚交易这样的执行机制无法保证能传播给矿工——这是一个关乎安全的关键问题。
- 区块构建损失了潜在收益。 矿工根据祖先费率排序的交易构建区块,有时会错过更有利可图的组合,导致估计约 2–5% 的潜在收入损失。
这些问题并非仅停留在理论层面。2025 年,比特币的平均交易费用维持在 0.62 美元左右,在拥堵期间偶尔会飙升至 2 美元以上。在这些高峰期 ,钱包估算的费用与用户实际需要支付的费用之间的差距进一步扩大——有时甚至达到几个数量级。
集群内存池:统领全局的单一排名
由 Bitcoin Core 贡献者 Suhas Daftuar 和 Pieter Wuille 设计的 Cluster Mempool,通过引入一个统一的框架消除了双重排名问题。
集群的工作原理
**集群(Cluster)**是通过支出关系连接的交易的最大集合。如果交易 A 创建了一个由交易 B 支出的输出,那么它们属于同一个集群。如果交易 C 支出交易 B 的输出,那么这三个交易构成一个集群。核心洞察在于,这些相互关联的交易应该被作为一个整体进行评估,而不是单独评估。
每个集群随后会被线性化(Linearized)——即在内部按费率排序为单调递减的“块(Chunks)”。一个“块”是集群内的一项或多项交易,应作为一个单元被包含(或排除)。这种线性化过程使用了复杂的算法,Wuille 在 2025 年对其进行了广泛的基准测试,其中包括一种基于线性规划的生成森林(Spanning-forest)方法,事实证明该方法比简单的候选集搜索更高效且更实用。