等待确认(三):竞价区块空间

fffmCQ.jpg

作者:Gloria Zhao

来源:https://bitcoinops.org/zh/newsletters/2023/05/31/

译者:Primitives Lane

本文为 Gloria Zhao 在 Optech Newsletter 上编写的 “交易池” 系列周刊的第三篇。

前篇见此处

上周我们提到交易为所用的区块空间支付费用,而不是按照所转移的金额支付费用,并确定矿将工优化他们的交易选择以最大化收取费用。因此,当找到一个块时,只有那些位于交易池头部的交易才会得到确认。在这篇文章中,我们将讨论让手续费花得最值的实用策略。让我们假设我们有一个不错的费率估算来源 —— 我们将在下周的文章中更多地讨论费率估算。

在构建交易时,交易的某些部分比其他部分更灵活。每笔交易都需要头部字段、收款人的输出由正在进行的付款决定,并且大多数交易都需要找零输出。发送方和接收方应该都更喜欢区块空间高效的输出类型,以减少未来花费交易输出的成本,但在 输入/钱币选择 期间,更改交易的最终组成和重量的空间最大。由于交易按费率(费率/重量)竞争,较轻的交易只需更低的费用就能达到相同的费率。

一些钱包,例如 Bitcoin Core 钱包,尝试组合输入以避免设置找零输出。避免找零可以节省现在输出的重量,还可以节省以后花费找零输出的未来成本。不幸的是,除非钱包拥有大量不同金额的大型 UTXO 池,否则这种输入组合几乎不存在。

较新的输出类型比旧输出类型更节省区块空间。例如,花费 P2TR 输入产生的重量不到 P2PKH 输入的 2/5。(使用我们的交易体积计算器试试吧!)对于多重签名钱包,最近完成的 MuSig2 模式和 FROST 协议通过允许多重签名功能以看起来像单签名输入的方式编码,节省了巨大的费用。特别是在区块空间需求飙升的时代,使用较新的输出类型的钱包本身就可以节省大量费用。

Overview of input and output weights

聪明的钱包根据费率调整其选择策略:在高费率下,它们使用很少的输入和较新的输入类型来让输入集的重量尽可能低。始终选择最轻的输入集将在本地最小化当前交易的成本,但也会将钱包的 UTXO 池磨成小碎片。这可以让用户在以后以高费率进行具有大量输入集的交易。因此,对于钱包来说,在低费率时选择更多和更重的输入是有先见之明的,以便在以后的区块空间需求高峰时有机会将资金整合到更少的较新输出中。

大体量的钱包通常会将多个付款批处理到单个交易中,以减少每一笔支付的平均交易重量。批处理避免了头字节的开销和每次付款的找零输出,所有支付共同分摊同一份固定开销。即使只是批量处理几笔付款,也可以快速降低每次付款的成本。

Savings from payment batching with P2WPKH

尽管如此,除去许多钱包因为超额支付(overpayment)、出块缓慢或交易提交量激增而错误估计手续费率之外,有时候交易的确认时间依然会比预期更久。在这些情况下,发送方或接收方可能希望重新确定交易的优先级。

用户通常有两种工具可以提高交易的优先级,即“子为父偿(CPFP)” 和 “手续费替换(RBF)”。在 CPFP 中,用户花费其交易输出来创建高费率的子交易。正如上周的帖子所描述的那样,矿工被激励将父交易选入区块,以便包括手续费高的子交易。任何该交易的收款者均可利用 CPFP,因此接收方或发送方(如果他们创建了找零输出)都可以利用它。

在 RBF 中,发送者对原始交易进行更高费率的替换。替换交易必须重用原始交易中的至少一个输入,以确保与原始交易冲突,并且区块链只能包含这两个交易中的一个。通常,这样的替换交易会保留原始交易的付款,但发送者也可以将替换交易中的资金重新定向,或者在替换时将多个交易的付款合并为一个。正如上周的帖子所述,节点驱逐原始交易,以支持激励更加相容的替换交易。

虽然区块空间的需求和生产都不在我们的控制范围内,但钱包可以使用许多技术来有效地竞标区块空间。钱包可以通过消除找零输出、花费原生的隔离见证输出以及在低费率环境中对其 UTXO 池进行碎片整理,来创建更轻的交易,以节省费用。支持 CPFP 和 RBF 的钱包也可以从保守的费率开始,然后在需要时使用 CPFP 或 RBF 更新交易的优先级。

声明:该文观点仅代表作者本人,与炒币网无关。炒币网系信息发布平台,仅提供信息存储空间服务。对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,并不对文章观点负责。 提示:投资有风险,入市须谨慎。本资讯仅供参阅,不作为投资理财建议。

发表评论

登录后才能评论