跳至主要內容
進階

交易加速:RBF 與 CPFP

當交易卡在記憶池中時,RBF 和 CPFP 是兩種讓交易更快被確認的方法。

12 分鐘

為什麼交易會卡住?

當你發送交易時設置的手續費率太低,礦工會優先處理費率更高的交易。 你的交易可能需要等待數小時、數天,甚至可能永遠不被確認。

兩種加速方法

RBF (Replace-by-Fee)

用更高費率的新交易替換原交易

CPFP (Child Pays for Parent)

創建一筆高費率的子交易,拉高整體費率

RBF (Replace-by-Fee)

工作原理

RBF 讓你可以廣播一筆新交易,花費與原交易相同的輸入,但支付更高的手續費。 節點會用新交易替換記憶池中的舊交易。

RBF 流程

  1. 1. 原交易:UTXO A → 目標 + 找零(10 sat/vB)
  2. 2. 發現費率不夠,交易卡住
  3. 3. 創建新交易:UTXO A → 目標 + 較少找零(50 sat/vB)
  4. 4. 新交易替換舊交易,更快被確認

RBF 類型

類型 說明 BIP
Opt-in RBF 發送時標記 nSequence,明確表示可替換 BIP-125
Full RBF 無論是否標記都可替換(Bitcoin Core 24+) mempoolfullrbf=1

RBF 規則

  • • 新交易的手續費必須高於舊交易
  • • 新手續費必須至少覆蓋替換成本(通常 +1 sat/vB)
  • • 新交易不能增加記憶池中的交易數量
  • • 不能替換已確認的交易

注意: RBF 可以改變交易的輸出(包括收款地址和金額), 因此商家通常會等待確認後才認可支付,或要求使用不支援 RBF 的交易。

CPFP (Child Pays for Parent)

工作原理

CPFP 創建一筆新交易(子交易),花費卡住交易的輸出,並支付足夠高的手續費, 使得礦工為了獲取子交易的手續費,必須先確認父交易。

CPFP 流程

  1. 1. 父交易:UTXO A → 目標 + 找零(5 sat/vB,卡住)
  2. 2. 創建子交易:找零 → 新地址(100 sat/vB)
  3. 3. 礦工計算組合費率:(父手續費 + 子手續費) / (父大小 + 子大小)
  4. 4. 如果組合費率足夠高,礦工會一起打包確認

誰可以使用 CPFP?

  • ✓ 發送者:使用找零輸出創建子交易
  • ✓ 接收者:使用收到的輸出創建子交易

優勢: CPFP 可以由接收者執行,無需發送者的私鑰, 這對於無法使用 RBF 的情況很有用。

RBF vs CPFP 比較

特性 RBF CPFP
執行者 發送者 發送者或接收者
效率 較高(不增加交易) 較低(需要額外交易)
前提條件 交易標記 RBF 或 Full RBF 有可花費的輸出
可改變輸出 是 否
額外手續費 只需補差額 需要為子交易付費

實際操作

RBF 操作(以 Sparrow 為例)

  1. 在發送交易前,確保啟用「Allow fee bumping」
  2. 交易卡住後,在交易列表中右鍵選擇「Increase Fee」
  3. 設置新的費率
  4. 簽署並廣播替換交易

CPFP 操作

  1. 找到卡住交易的找零輸出(或你收到的輸出)
  2. 創建新交易花費該輸出
  3. 計算需要的組合費率,設置足夠高的子交易費率
  4. 廣播子交易

# 計算 CPFP 所需費率

目標費率 = 20 sat/vB
父交易大小 = 200 vB,費率 = 5 sat/vB
子交易大小 = 150 vB

需要的總手續費 = (200 + 150) × 20 = 7,000 sat
父交易已付 = 200 × 5 = 1,000 sat
子交易需付 = 7,000 - 1,000 = 6,000 sat
子交易費率 = 6,000 / 150 = 40 sat/vB

最佳實踐

  • ✓ 始終啟用 RBF 標記(大多數錢包預設啟用)
  • ✓ 優先使用 RBF,比 CPFP 更經濟
  • ✓ 接收者想加速時使用 CPFP
  • ✓ 確保交易有找零輸出,以便需要時使用 CPFP

相關 BIP

  • • BIP-125:Opt-in RBF 信號
  • • BIP-68:相對時間鎖(nSequence 用於 RBF 信號)
已複製連結

討論

已複製到剪貼簿