進階
手續費估算
手續費決定交易被確認的速度。學習如何計算和估算合適的手續費。
15 分鐘
手續費基礎
比特幣交易手續費不是按金額計算,而是按交易的「虛擬位元組」(vBytes) 大小計算。 礦工優先處理每 vByte 費率較高的交易。
手續費公式
手續費 = 交易大小 (vBytes) × 費率 (sat/vB)
例如:250 vBytes × 10 sat/vB = 2,500 sats
虛擬位元組 (vBytes)
SegWit 引入了「權重」概念。witness 數據享有 75% 折扣。
| 數據類型 | 權重 | 說明 |
|---|---|---|
| 基礎數據 | 4 WU/byte | 版本、輸入、輸出、locktime |
| Witness 數據 | 1 WU/byte | 簽章和公鑰(SegWit) |
# vBytes 計算
vBytes = weight / 4
# 區塊限制
最大權重 = 4,000,000 WU ≈ 1,000,000 vBytes
交易大小估算
不同地址類型的交易大小差異很大:
| 輸入類型 | 大小 | 相對成本 |
|---|---|---|
| P2PKH (1...) | ~148 vB | 100% |
| P2SH-P2WPKH (3...) | ~91 vB | 61% |
| P2WPKH (bc1q...) | ~68 vB | 46% |
| P2TR (bc1p...) | ~57.5 vB | 39% |
省錢秘訣: 使用 Taproot (bc1p) 地址可以節省高達 61% 的手續費!
記憶池 (Mempool)
未確認的交易在記憶池中等待被打包。礦工從記憶池中選擇費率最高的交易來填滿區塊。
記憶池狀態對費率的影響
低擁堵
1-5 sat/vB 即可確認
中等擁堵
10-30 sat/vB 建議
高擁堵
50+ sat/vB 可能需要
費率估算方法
1. 歷史區塊分析
分析最近幾個區塊中被確認的交易費率,推斷當前需要的費率。 Bitcoin Core 使用這種方法提供 estimatesmartfee RPC。
2. 記憶池分析
直接分析當前記憶池中的交易,按費率排序,估算需要多高的費率才能在下一個區塊被確認。 mempool.space 使用這種方法。
3. 確認時間目標
根據希望在多少個區塊內確認,動態調整費率建議:
- 下一個區塊:最高費率,緊急交易
- 1 小時內:中等費率(約 6 個區塊)
- 1 天內:低費率,可以等待
- 不急:最低費率,週末或夜間可能確認
費率查詢工具
- mempool.space:最常用,即時記憶池視覺化
- bitcoinfees.net:簡單的費率建議
- 自建節點:
bitcoin-cli estimatesmartfee <blocks>
常見錯誤
- 設置過低的費率,導致交易長時間不確認
- 在高擁堵時段發送大額交易(週末通常較便宜)
- 不考慮 UTXO 合併(低費率時段可以整理 UTXO)
- 使用舊地址類型,多付不必要的手續費
省錢策略
- 使用 Native SegWit 或 Taproot 地址
- 在低費率時段合併小額 UTXO
- 批量處理多筆付款(減少交易數量)
- 支援 RBF,可在需要時加速交易
- 使用閃電網路處理小額支付
延伸閱讀: 了解 RBF 和 CPFP 交易加速技術, 以及 BIP-125 RBF 標準。
已複製連結