原文作者:pepper 花椒(X:@off_thetarget)
编者按: 11 月 7 日,币安宣布将上线 Ordinals(ORDI),重新点燃了 Ordinals 的赛道热情。比特币生态再次备受社区关注,链上手续费也持续飙升。随着越来越多玩家涌入比特币生态,链上交易堵塞也成为了潜在的问题。X KOL pepper 花椒(X:@off_thetarget)发文详解了 BTC 链上交易堵塞问题以及相关解决方案,Odaily星球日报整理如下:
BTC 生态又火起来了,链上手续费飙升,随着大批的 ETH 小伙伴的加入,BTC 链上交易“堵住了”一直是个问题。
什么是“堵塞”交易?它们是如何引起的?
“卡住”交易是指在一段时间内未得到确认的交易,交易停滞通常是由于交易费率低造成的。然而,其他事情也可能导致交易停滞,例如未经确认的交易支出、交易中存在灰尘输出或另一笔交易的双重支出。
如果一笔交易存在双花交易并且双花确认,那么该交易将永远“卡住”,因为它永远无法确认。
我该怎么做才能确认我卡住的交易?
有几个选项可用于确认卡住的交易:
对于交易的接收方和发送方:
✦等待交易确认✦等待网络“忘记”该交易✦请矿工帮你确认
对于交易的发送方:
✦尝试进行费用替换双花交易 ✦如果有找零输出,可以尝试“Child-Pays-For-Parent 儿童为家长付款”交易
对于交易的接收方:
✦尝试“子女为父母付款”交易
等待确认
如果无法执行任何其他选项,也不敢这样做,可以简单地等待并希望交易最终得到确认。
为了确保网络不断收到交易提醒,可以定期重播交易。大多数钱包会自动重新广播,因此只需打开钱包即可进行重新广播即可。
等待网络“忘记”交易
如果一笔交易长时间未确认,并且没有人重新广播该交易,那么它最终可能会被比特币网络上的大多数节点“忘记”。
发生这种情况是由于节点重新启动、内存池到期时间或内存池驱逐(因为最低中继费用增加)。此过程通常需要几天(通常为 3 天)。一旦交易被“遗忘”,你可能不会在钱包中看到它,并且也可能不会在大多数区块浏览器中看到该交易。一旦交易被“忘记”,只需再次发送比特币即可,但需要支付更高的交易费用。
请注意,某些钱包会在钱包打开时不断重新广播交易,因此必须使用 RBF 部分中的说明参考从钱包中删除交易,或者关闭钱包并保持关闭几天,具体可以参考 RBF 部分。
向矿工寻求帮助
矿池和矿工会提供一些服务,允许在其内存池中确定交易的优先级,以便更快地选择将其包含在区块中。
比如,可以尝试使用https://viabtc.com/tools/txaccelerator/…来“加速”交易。
(ViaBTC 的加速我没有使用过,仅仅列出作为参考)
另请注意,如果您尝试进行费用替换交易,原始交易和 RBF 交易都将被视为双花,矿工可能不会帮助任何标记为双花的交易。
尝试进行费用替换 (RBF) 双花交易
什么是 RBF 交易
费用替换交易是与你的卡住交易几乎相同但支付更高交易费用的交易。由于原始交易很可能不使用选择加入 RBF,因此我们将创建的 RBF 交易将被视为双花并标记为双花。该交易使用 Full-RBF,因此可能仍需要更长的时间来确认,因为它在技术上是双重支出。
RBF 交易类型的区别
Replace-By-Fee 交易有 3 种不同类型,First-Seen-Safe(FSS) RBF、Full RBF 和 Opt-in RBF。
FSS RBF 要求 RBF 交易包含与其替换的交易相同的输出并消耗相同的输入。
Full RBF 意味着该交易只是另一笔交易的双重支出,但支付的交易费用比它所取代的交易更高
Opt in RBF 意味着 RBF 交易只能替换已选择加入允许自身被替换的交易。
可以参考https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki…
如何进行完整 RBF 交易
进行完整 RBF 交易完全取决于你所使用的钱包。有些钱包支持进行完整 RBF 交易所需的高级功能,而其他钱包则不支持。
一般来说,流程是从钱包中删除未确认的交易,然后重新发送比特币,但交易费用较高。
进行 Full RBF 交易,交易应包含创建交易时的建议费率
比特币核心 RBF 教程
只需进入交易列表,右键单击被卡住的交易,然后选择“放弃交易”选项。
如果该选项呈灰色,则必须转到 Bitcoin Core datadir 并删除 mempool.dat 文件。
然后使用-walletbroadcast= 0 选项重新启动 Bitcoin Core,然后就应该能够使用“放弃交易”。
如果上面的都不行,使用-zapwallettxes 选项启动 Bitcoin Core,以清除钱包中所有未确认的交易。
一旦交易被放弃或从钱包中清除,只需转到“发送”选项卡并再次发送比特币,但请确保包含足够的交易费用。
不支持 RBF 的钱包
大多数钱包并不支持 RGF,具体可以参考每一个钱包的 doc 文件。
如果不确定钱包是否能做 CPFP 或 RBF,可参考
如果你是发起比特币交易的人,而且有一个收到足够钱来支付父交易和子交易手续费的找零地址,你也可以进行 子交易付费(CPFP)交易。如果没有或者钱不够,只有收款方可以进行 CPFP。
Electrum 钱包支持 RBF,你可以把交易转移到支持 RBF 的其他钱包里。创建交易时,你可以选择启用 RBF->在历史记录选项卡里->交易会被标记为可替换的。右键点击可替换的交易时,你可以增加手续费(具体的图标和描述我记不太清楚了,因为我只试过一次)。
因为你是用未确认的输入来实现 RBF,几乎任何可以导出私钥/扩展私钥(xprv)的钱包都应该能够执行 RBF。这包括http://Blockchain.info、Multibit、Android上的 Bitcoin 钱包等钱包。当然,这个过程会变很麻烦,因为你得先获取挂起交易中使用的地址的私钥,然后导入到 Bitcoin Core 里,接着生成原始交易、签名并广播。
关于“等待网络“遗忘”交易”,也许你应该加个警告,有些钱包(比如 Bitcoin Core)会继续广播交易,除非你放弃它或清除钱包交易。