当比特币区块容量达到 400 万权重单位时触发费用拍卖

比特币区块受共识限制为 400 万重量单位,这迫使在容量填满时,费率较低的交易需要等待。周一美国东部时间凌晨 8 点时,大约有 90,617 笔未确认转账在内存池(mempool)中等待。该约束会触发基于费用的拍卖机制:矿工会优先处理那些按虚拟字节(virtual byte,sat/vB)提供更高聪(satoshis)费率的交易,而不考虑提交时间。每个比特币核心(Bitcoin Core)节点都会维护自己本地的内存池,默认容量为 300 MB,并且最多可保留交易 336 小时,从而构建出一个去中心化的系统,在比特币网络中不存在统一的交易队列。Bitcoin Core 31.0 引入了集群内存池(cluster mempool)架构,以改进节点如何对关联交易进行分组、排序,以及在本地内存达到上限时如何逐出(evict)。

比特币区块强制执行 400 万重量单位共识上限

满区块和满内存池是两种不同的事件。比特币区块受共识限制为 400 万重量单位,这是一种衡量标准,用于考虑交易数据的结构方式。Bitcoin Core 节点默认允许本地内存池占用约 300 MB 内存,并且最多可保留交易 336 小时。即使内存中仍有大量交易等待确认,区块也可能填满。

一笔交易会先进入节点的内存池,这是一个用于暂存有效支付、尚未完成确认的临时区域。每个节点都会保留自己的一份版本,应用自己的本地策略,并且可能看到略有不同的待处理交易集合。在比特币网络中不存在单一、通用的内存池。

矿工按每虚拟字节的聪费率优先级选择交易

矿工通常不会按交易年龄来选择交易。他们会基于费用、交易权重(transaction weight),以及支付之间的依赖关系来构建区块模板。用户实际看到的核心单位是按虚拟字节计的聪数,即 sat/vB。更高的费率能让矿工在相同稀缺的区块空间里获得更多收入,因此最强的费率打包往往会更快被处理。

先发送的支付可以在比后发送的支付早一两分钟后确认。一笔高费率交易可能会在网络中广泛传播,并进入矿工的下一批区块模板。低费率交易则可能一直留在“低于截断线”的状态,即便已经过去了多个区块。确认预估有所帮助,但并非承诺,因为新交易会持续到来,而区块本身也会以不规则的间隔出现。

当足够多的待处理交易为每个区块展开竞争时,内存池就会变成一个竞争环境。新的、更高出价(更高付费)的交易可以挤走较弱的出价。如果某个 Bitcoin Core 节点触及其配置的内存上限,它会裁剪掉在经济上最弱的一组已连接交易,并抬高一个滚动的本地最低费率(fee floor)。被逐出的交易并不会失效,区块链也不会取消它。该节点只是停止携带(不再传播/保存)它。

延迟确认为时间敏感型转账带来运营风险

对普通用户而言,首要后果是延迟。钱包可能会显示某笔支付在数小时内都处于待确认状态,而更新的交易已经完成确认。对交易员、交易所或金库(treasury)席位而言,这种延迟可能会推迟一次交易所入金、减慢抵押品移动、打断一次套利转账,或在快速行情中导致资金不可用。

由于费用主要与交易权重相关,而不是与转账金额本身相关,一笔 50 美元的支付和一笔 500 万美元的转账在交易结构相近时,可能会以类似的条件竞争。转账越是时间敏感,少付带来的成本就可能越高。

第二个后果是更高的费用市场。比特币没有协议层面的基础费用(base fee)。相反,用户会与矿工在下一出块中最多能容纳的边际费率(marginal fee rate)进行竞争;同时,每个节点也会维护一个本地准入(admission)门槛。在压力之下,这个动态门槛可能会远高于软件的基础中继(relay)设置。

第三个后果是交割前的不确定性。看到某笔交易出现在区块浏览器中,说明有些节点知道它,但并不能证明每个矿工都知道。未确认的支付可能在某些节点视角中被替换、被逐出或消失,但它仍可能是一笔有效的可花费(valid possible spend)。释放商品、记账入账,或在 0 确认时就将入金视为最终的企业,等于接受一种风险:拥堵可能让这种不确定性变得更明显。

比特币为卡住的交易提供三种提费(fee-bump)方式

比特币本身为用户提供两种主要方式来重新定价延迟支付。替代即支付费(Replace-by-fee,RBF)允许支出方用一笔更高费用的交易替换一笔未确认交易。子支付父母(Child-pays-for-parent,CPFP)走的是另一条路:将延迟交易中的一个可花费输出,用在一笔新的高费率子交易中,从而给矿工一个激励,让他们将父交易与子交易一起打包进区块。

这两种工具都不是自动化的。RBF 的替换必须满足节点策略,并且支付足够高的费用,才能同时战胜被替换的那笔交易以及当前市场费率。CPFP 的子交易必须抬高整个打包组合(package)的合并费率,而不仅仅是让子交易本身看起来很“贵”。真正的目标并不是最低中继费(minimum relay fee),而是下一笔更可能被打包的区块尾部(tail)附近的费率。

在这两个选项之外,一些比特币挖矿加速器(mining accelerators)由部分比特币挖矿矿池提供:当交易在内存池中因低费而卡住时,允许用户提交交易以获得优先考虑。加速器并不会改变比特币的共识规则,它只是请求参与其中的矿工在他们挖出的下一批区块里把该交易纳入其中。一些加速器是免费的,但有资格要求;另一些则会收取费用,或要求交易满足最低费率。ViaBTC 的转账加速器(transfer accelerator)每小时提供 20 次免费的“推动”(push)。

Bitcoin Core 31.0 实现集群内存池架构

Bitcoin Core 31.0 改变了一些交易选择背后的机制。它的集群内存池会将彼此关联的未确认交易分组,并按预计会被挖出的费率对这些组进行排序。默认的集群限制为 64 笔交易以及 101 kB 的虚拟大小(virtual size)。该设计旨在在不改变比特币 400 万重量单位共识上限的情况下,提升区块构建、逐出(eviction)、交易中继与替换决策的效果。

其他工程工作还试图降低在网络上传输完整区块的成本。紧凑区块中继(compact block relay)允许节点从它已经持有的交易中重建出大部分新的区块,从而减少传播所需的数据量与时间。这一点很关键,因为传播更慢可能会增加风险:两个矿工会在短时间内基于不同的链头(chain tips)分别构建区块。

常见问题

当一个比特币区块达到 400 万重量单位上限会发生什么?

当一个比特币区块达到 400 万重量单位的共识上限时,矿工会按以每虚拟字节的聪数(sat/vB)衡量的费率来优先选择交易。提供更高费用的交易会更先被选中,而费率较低的交易会留在内存池中等待后续区块。区块上限不会使待确认交易失效;它们会继续在每个节点的本地内存池中等待,默认情况下最多可保留 336 小时。

Bitcoin Core 31.0 的集群内存池如何改进交易处理?

Bitcoin Core 31.0 引入了集群内存池架构:它会将彼此关联的未确认交易进行分组,并按预计会挖出该组的费率进行排序。默认的集群限制为 64 笔交易以及 101 kB 的虚拟大小。该设计在不改变比特币 400 万重量单位的共识区块上限的前提下,改进了区块构建、逐出决策、交易中继以及替换处理。

有哪些三种方法可以加速一笔卡住的比特币交易?

比特币用户有三种提费方式用于卡住的交易:替代即支付费(Replace-by-fee,RBF)允许支出方用一笔支付更高费用的交易替换未确认交易;子支付父母(Child-pays-for-parent,CPFP)使用延迟交易中的一个可花费输出,在一笔新的高费率子交易中进行打包激励,从而促使矿工同时包含两者;以及由部分矿池提供的挖矿加速器(例如 ViaBTC 每小时提供 20 次免费的优先“推动”),会要求参与其中的矿工在他们下一批区块中纳入该交易。

免责声明:本页面信息可能来自第三方,仅供参考,不代表 Gate 的观点或意见,亦不构成任何财务、投资或法律建议。数字资产交易风险较高,请勿仅依赖本页面信息作出决策。具体内容详见声明
评论
0/400
暂无评论