比特币内存池详解:待处理交易的工作流程

区块链文库报道:

比特币内存池:交易等待区的运作机制与应对策略

当你点击发送比特币支付时,这笔交易并不会立即进入区块。它首先进入比特币内存池(Mempool),这是一个临时存放未确认交易的“等候区”,直到矿工将其打包进区块。大多数人只有在转账显示“待处理”状态的时间远超预期时,才会注意到这个阶段。本指南将介绍内存池存储的内容、手续费如何决定排队顺序,以及当支付停滞时发送方可以采取的措施。

什么是比特币内存池,为什么需要它?

比特币内存池是指每个节点保存的已广播但尚未确认的有效交易的临时记忆池。它的存在是因为矿工大约每十分钟才能找到一个新区块,而人们全天候都在发送支付请求。这些处于“待处理”状态的比特币交易需要一个地方等待,就像银行客户等待空闲柜员一样。

内存池存储什么内容

内存池中的每一项都是已经通过几项基本检查的签名交易。节点会确认所花费的硬币是否存在、签名是否有效,以及费率是否满足最低要求。任何未能通过这些检查的交易都会被立即拒绝,永远不会加入内存池。

为什么每个节点都保留自己的副本

并没有一个单一的等待付款主列表。每个节点根据接收到的交易构建自己的比特币内存池,并使用其所有者设定的限制。最广泛使用的节点软件 Bitcoin Core 默认将内存池容量限制为 300 MB,并在空间不足时优先丢弃费用最低的交易。因此,同一时刻两个节点可能显示略有不同的队列,运行比特币全节点的用户看到的数据往往与公共浏览器显示的不同。

比特币内存池的工作步骤

交易从发送方的钱包流向附近的节点,在比特币内存池中等待,直到矿工将其放入区块才离开。在平静的一天,这个过程可能需要约十分钟;而在网络拥堵时,低费用支付的确认时间可能会延长至数小时。

广播与验证

钱包签署交易后,会将支付发送给少数对等节点。这些节点对其进行验证并传递给它们的连接,因此大多数网络参与者会在几秒钟内看到该支付。随后,每个节点自行决定是否让该交易进入其内存池。

等待矿工

比特币矿工扫描内存池,并将支付费用最高的交易填入下一个区块。由于区块无法容纳所有交易,付费最高的交易优先被打包,其余交易继续等待。这个顺序与谁发送了支付或移动了多少比特币无关。

确认与移除

当矿工找到有效的区块时,其中的每笔交易都会获得第一次确认并从内存池中移除。剩余的未确认比特币交易留在原地,竞争下一个区块的位置。许多交易所和商家通常会等待多次确认(通常为六次),才将大额支付视为最终完成。

比特币交易为何会在内存池中卡住?

当想要区块空间的交易数量超过区块承载能力时,交易就会卡住。一个区块有固定的四百万权重单位上限,仅能容纳几千笔普通支付。如果提供的费用低于当前市场费率,交易将一直排在队伍中,直到拥堵缓解。

过低的费用

低费用是导致大多数延迟的原因。一些比特币钱包在网络平静时选择费用,而支付恰好在一个高峰时段开始之前广播。结果是一笔看似公平的比特币交易卡在长队末尾,尽管几分钟前费用看起来是合理的。

大额交易

交易量大小与费用同样重要。由许多小额输入构建的交易比简单支付占用更多的区块空间,因此需要更高的总费用才能达到相同的费率。那些在一个钱包中收集许多小额存款的人,在一次性支出时经常注意到这一点。

交易费用如何决定优先级?

矿工保留他们包含的每一笔交易的费用,因此他们偏好为所用空间支付最高费用的交易。比特币交易费用因此像是一场每十分钟举行一次的小型拍卖。决定排名的数字是比特币费率,即总费用除以交易大小。

如何解读费率

比特币费率以每虚拟字节聪(sat/vB)显示。一聪等于百亿分之一枚比特币。提供 25 sat/vB 的支付通常会比提供 6 sat/vB 的支付先得到确认,即使后者移动的比特币数量更多。

费用的涨跌原因

当等待的人很少时,适度的费用就能赢得下一个区块的位置。当队伍很长时,每个新发送者必须出价高于正在等待的人,因此市场费率上升。这就是为什么同一笔转账在一周前只需几分钱,而下周可能需要几美元。

结论

比特币内存池是未确认支付等待的队列,费用决定顺序,拥堵程度决定等待时间。待处理的交易是安全的,RBF(替换费率)和 CPFP(子母费)等工具为发送方和接收方提供了推动交易进展的方法。在发送紧急资金之前,快速查看内存池浏览器以了解当前费率范围,确保费用与当下情况匹配。你是否曾遇到过支付卡住数小时的情况?请在评论区分享你的处理方式。

© 版权声明
THE END
喜欢就支持一下吧
分享