技术支持
Learning - Insights

当比特币区块满时会发生什么?每个字节都会引发一场实时手续费竞拍

当比特币网络流量激增时,区块已满并不会导致网络停摆;相反,它会将下一个可用空间变成一场实时竞拍,在其中,紧迫性需要付出代价。

分享
当比特币区块满时会发生什么?每个字节都会引发一场实时手续费竞拍

关键要点:

  • 比特币区块的权重上限为400万单位,这迫使手续费较低的交易不得不等待。
  • 当节点的 300 MB 内存池(mempool)已满时,比特币核心 31.0 版可移除优先级较低的交易包。
  • 当拥堵持续时,比特币用户有3种提高手续费的途径:RBF、CPFP和挖矿加速器。

区块区块排队

不妨想象一下高峰时段拥挤的地铁站台。每位新乘客都持有有效的车票,但进站列车空间有限。在比特币网络中,一笔交易首先进入节点的内存池(mempool)——这是一个用于暂存尚未确认的有效支付的临时区域。 关键在于,并不存在单一的、通用的内存池。每个节点都维护着自己的版本,应用各自的本地策略,因此看到的待处理交易集合可能略有不同。

mempool.space unconfirmed transfer count.
截至周一东部夏令时上午8点,比特币内存池中约有90,617笔未确认的转账在等待处理。图片来源:Mempool.space

“区块已满”与“内存池已满”也是两种不同的情况。根据共识机制,比特币区块的上限为400万权重单位,这一计量单位反映了交易数据的结构。 比特币核心(Bitcoin Core)节点默认为其本地内存池分配约300 MB的内存,并可能将交易保留长达336小时。当一个区块填满时,内存中仍可能有大量交易等待后续的“列车”装载。

区块填满将等待转化为竞拍

矿工通常不会根据交易年龄来选择交易。他们会根据手续费、交易权重以及支付之间的依赖关系来构建区块模板。 用户实际看到的计量单位是每虚拟字节的聪(sat/vB)。更高的费率能在相同的稀缺区块空间内为矿工带来更多收益,因此手续费最高的交易包往往优先被纳入。

这意味着,先发送的一笔支付可能在几分钟后发送的支付之后才得到确认。高手续费交易可能会在网络中广泛传播,并进入矿工的下一个区块模板中。 而低手续费交易即使经过数个区块,仍可能因未达到阈值而被排除在外。确认时间预估虽有参考价值,但并非承诺——因为新交易持续涌入,且区块生成间隔本身并不固定。 当待处理交易数量足够多,且都在争夺每个区块的席位时,内存池就不再像一条井然有序的队伍,而更像机场的升舱候补名单。 新的、出价更高的“乘客”可能会取代出价较低的交易。如果一个比特币核心(Bitcoin Core)节点达到了其配置的内存限制,它会剔除经济效益最差的一组关联交易,并提高滚动的本地手续费下限。被剔除的交易并非无效,区块链也没有取消它。该节点只是停止了对其的处理。

拥堵波及钱包

对于普通用户而言,首要后果是延迟。当较新的交易陆续确认时,钱包可能会显示某笔支付已挂起数小时之久。对于交易员、交易所或资金管理部门而言,这种延迟可能会推迟交易所入金、减缓抵押品转移、中断套利转账,或在市场波动剧烈时导致资金无法使用。

由于手续费主要与交易权重相关,而非转账金额,当交易结构相近时,一笔50美元的支付与一笔500万美元的转账可能在类似条件下竞争。转账对时间越敏感,手续费支付不足的代价就越大。

Mempool blocks via mempool.space
mempool.space 上的绿色区块代表了一组未确认的比特币交易,它们正在内存池中等待矿工的挑选。每个区块会根据交易手续费率(以每虚拟字节的聪为单位,即 sat/vB)来估算哪些交易有可能被纳入未来的区块中。 矿工通常优先处理手续费最高的交易,因为这能最大化区块收益。由于大约每10分钟会挖出一个新区块,旧交易会被从内存池中移除,而新广播的交易则不断补充其中,从而形成一个不断变化的队列。

第二个后果是手续费市场走高。比特币没有像以太坊那样的协议级基础手续费。相反,用户需要与矿工能够纳入下一个区块的边际手续费率竞争,同时每个节点也维持着一个本地准入门槛。在压力下,这个动态门槛可能会远高于软件的基本中继设置。 昨天甚至20分钟前显示的手续费,如今可能已无法换取同等确认速度。 第三个后果是结算前的不确定性。在区块浏览器中看到一笔交易,仅表明部分节点知晓该交易,但不能证明所有矿工都知晓。 一笔未确认的支付可能会被替换、移除或从节点的视图中消失,但仍可能作为有效的支出存在。那些在零确认时就放行货物、给予定额或将存款视为最终结算的企业,正在承担一种风险,而网络拥堵会使这种风险更加凸显。

解决支付卡顿的几种方法

比特币本身为用户提供了两种主要方式来重新定价延迟的支付。“通过手续费替换”(Replace-by-fee,简称 RBF)允许支付方用一笔手续费更高的交易替换未确认的交易。 可以将其理解为取消低价竞标,并针对同一席位提交更高报价。子交易支付父交易(Child-pays-for-parent,简称 CPFP)则采取另一种方式:将延迟交易中的可花费输出用于一笔新的、高手续费的子交易,从而激励矿工将父交易和子交易一并纳入区块。

这两种工具都不是万能的。RBF替换必须符合节点策略,并支付足够高的费用,才能同时超越被替换的交易和当前市场水平。CPFP子交易必须提升整个交易包的综合手续费率,而不仅仅是自身看起来费用高。 在费用急剧上涨的市场中,即使费用略有提升,支付金额仍可能低于动态阈值。真正的目标并非最低中继费,而是下一个可能区块尾部的费率水平。

ViaBTC's transfer accelerator
ViaBTC的转账加速器每小时提供20次免费推送。

除上述两种选项外,挖矿加速器是某些比特币矿池提供的服务,当交易因手续费过低而滞留在内存池中时,用户可通过该服务提交交易以获得优先处理。加速器并非改变比特币的共识规则,而是简单地请求参与挖矿的矿工将该交易纳入他们接下来挖出的某个区块中。 部分加速器虽免费但设有资格要求,而另一些则会收取费用或要求交易达到最低手续费率。

Core 31.0 改变了机制,而非上限

比特币 Core 31.0 改动了这场竞争背后的部分机制。其集群内存池(mempool)将相关联的未确认交易分组,并根据该组预计被挖入区块的手续费率对交易进行排序。默认的集群限制为 64 笔交易和 101 kB 的虚拟大小。 该设计旨在优化区块构建、交易淘汰、交易中继及替换决策,同时不改变比特币 400 万权重单位的共识上限。

比特币核心集群内存池概念的示意图。

其他工程工作则致力于降低完整区块在网络中传输的成本。紧凑型区块中继机制允许节点利用已持有的交易数据重建大部分新区块,从而减少传播所需的数据量和时间。这一点至关重要,因为传播速度过慢会增加两名矿工短暂构建在不同链尖上的风险。 更大的区块容量虽可能缓解短期手续费压力,但也可能增加带宽、验证和传播需求。

从中得出的实际教训很简单:当比特币区块已满时,系统不会崩溃,也没有任何交易会因等待而获得优先权。矿工将确认那些符合条件且经济效益最高的有效交易包,而费用较低的支付则会保持待处理状态,要么重新定价,要么失去中继覆盖范围。对于投资者和企业而言,手续费并非一张邮票,而是对稀缺结算空间的竞标。 请将确认时间视为一种概率,并密切关注当前的手续费状况,以免常规延迟演变为代价高昂的运营问题。 标题图/特色图片来源:mempool.space

本文由人工智能从英文翻译而来。英文原版为权威来源;自动翻译可能存在不准确之处,尤其是在法律和监管术语方面。