跳至主要內容
進階

交易加速: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 信號)
已複製連結
已複製到剪貼簿