跳至主要內容
Standards Track Proposed

BIP-125: 選擇性費用替換 (RBF)

定義交易如何選擇加入 Replace-By-Fee 機制,允許以更高費用替換未確認交易。

David A. Harding, Peter Todd 2015年12月4日
BIP 編號

125

類型

Standards Track

狀態

Proposed

創建日期

2015-12-04

摘要

Replace-By-Fee (RBF) 允許未確認的交易被另一個支付更高費用的交易替換。 BIP-125 定義了「選擇性 RBF」,只有明確標記的交易才能被替換, 這是通過將輸入的 nSequence 設置為小於 0xFFFFFFFE 的值來實現的。

動機

在比特幣網路擁塞時,低費用交易可能長時間無法確認。RBF 提供了一種機制, 允許用戶提高交易費用以加速確認,而不必等待原交易被遺忘。

選擇加入機制

交易被視為可替換的條件:

任一輸入的 nSequence < 0xFFFFFFFE (4294967294)

這意味著只要有一個輸入的序號小於 0xFFFFFFFE,整個交易就標記為可替換。

替換規則

替換交易必須滿足以下條件:

  • 1. 花費相同輸入:至少花費一個與原交易相同的輸入
  • 2. 更高費率:每 vbyte 的費用必須更高
  • 3. 更高總費用:總費用必須比原交易加上最低中繼費更高
  • 4. 不新增未確認輸入:不能引入新的未確認依賴
  • 5. 替換數量限制:最多替換 100 筆交易

費用計算範例

原交易

大小:250 vbytes,費用:500 sats

費率:2 sat/vbyte

替換交易要求

費率:必須 > 2 sat/vbyte

總費用:必須 > 500 + (250 × 1) = 750 sats

(假設最低中繼費為 1 sat/vbyte)

RBF vs CPFP

特性 RBF CPFP
操作者 發送者 接收者
機制 替換交易 新增子交易
效率 較高(不增加區塊空間) 較低(需要額外交易)
要求 標記可替換 有可花費的輸出

Full RBF

Bitcoin Core 24.0 引入了 mempoolfullrbf 選項, 允許節點接受對任何未確認交易的替換,無論其是否標記為可替換。 這是為了提高網路的經濟效率,但也引發了關於零確認交易安全性的討論。

錢包支援

  • Bitcoin Core:完整支援
  • Electrum:完整支援
  • Sparrow:完整支援
  • BlueWallet:支援

注意: RBF 不是共識規則,而是節點的記憶體池策略。 礦工可以選擇不遵循這些規則,但大多數節點和礦工都實現了標準的 RBF 規則。

相關資源

  • BIP-68:nSequence 相對時間鎖
  • Bitcoin Core 費用估算文件
已複製連結
已複製到剪貼簿