進階
交易加速:RBF 與 CPFP
當交易卡在記憶池中時,RBF 和 CPFP 是兩種讓交易更快被確認的方法。
12 分鐘
為什麼交易會卡住?
當你發送交易時設置的手續費率太低,礦工會優先處理費率更高的交易。 你的交易可能需要等待數小時、數天,甚至可能永遠不被確認。
兩種加速方法
RBF (Replace-by-Fee)
用更高費率的新交易替換原交易
CPFP (Child Pays for Parent)
創建一筆高費率的子交易,拉高整體費率
RBF (Replace-by-Fee)
工作原理
RBF 讓你可以廣播一筆新交易,花費與原交易相同的輸入,但支付更高的手續費。 節點會用新交易替換記憶池中的舊交易。
RBF 流程
- 1. 原交易:UTXO A → 目標 + 找零(10 sat/vB)
- 2. 發現費率不夠,交易卡住
- 3. 創建新交易:UTXO A → 目標 + 較少找零(50 sat/vB)
- 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. 父交易:UTXO A → 目標 + 找零(5 sat/vB,卡住)
- 2. 創建子交易:找零 → 新地址(100 sat/vB)
- 3. 礦工計算組合費率:(父手續費 + 子手續費) / (父大小 + 子大小)
- 4. 如果組合費率足夠高,礦工會一起打包確認
誰可以使用 CPFP?
- ✓ 發送者:使用找零輸出創建子交易
- ✓ 接收者:使用收到的輸出創建子交易
優勢: CPFP 可以由接收者執行,無需發送者的私鑰, 這對於無法使用 RBF 的情況很有用。
RBF vs CPFP 比較
| 特性 | RBF | CPFP |
|---|---|---|
| 執行者 | 發送者 | 發送者或接收者 |
| 效率 | 較高(不增加交易) | 較低(需要額外交易) |
| 前提條件 | 交易標記 RBF 或 Full RBF | 有可花費的輸出 |
| 可改變輸出 | 是 | 否 |
| 額外手續費 | 只需補差額 | 需要為子交易付費 |
實際操作
RBF 操作(以 Sparrow 為例)
- 在發送交易前,確保啟用「Allow fee bumping」
- 交易卡住後,在交易列表中右鍵選擇「Increase Fee」
- 設置新的費率
- 簽署並廣播替換交易
CPFP 操作
- 找到卡住交易的找零輸出(或你收到的輸出)
- 創建新交易花費該輸出
- 計算需要的組合費率,設置足夠高的子交易費率
- 廣播子交易
# 計算 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
已複製連結