記憶池與交易費用
理解未確認交易如何被選擇與費用市場機制。
記憶池與交易費用:深入技術分析與量化模型
理解未確認交易如何被選擇與費用市場機制。
大多數支付失敗與確認延遲,根因都不是「鏈壞掉」,而是費率競價與交易包排序判斷錯誤。理解 mempool 等於理解比特幣當下的區塊空間市場。
每個全節點都有自己的 mempool 視圖。由於接收順序、relay policy、min relay fee 與本地資源限制不同,節點看到的候選交易集合不完全一致,因此「全網 mempool」其實是近似概念。
第一章:記憶池動力學的數學模型
1.1 記憶池狀態空間
比特幣記憶池(Memory Pool, Mempool)是比特幣網路中最動態的數據結構之一。從數學角度,我們可以將其建模為一個隨機過程:
記憶池狀態定義:
═══════════════════════════════════════════════════════════════════════════════
令 M(t) 表示時刻 t 的記憶池狀態:
M(t) = {S(t), B(t), F(t)}
其中:
• S(t): 記憶池中交易的集合 {tx₁, tx₂, ..., txₙ}
• B(t): 記憶池總大小(bytes)
• F(t): 記憶池最低費用率門檻(sat/vB)
狀態約束:
• B(t) ≤ B_max(記憶池容量,通常 300MB)
• 每筆交易 txᵢ 滿足 fee_rate(txᵢ) ≥ F(t)
關鍵特性:
• 非靜態:交易持續進入和離開
• 異構性:不同交易的費用率差異極大
• 競爭性:區塊空間是稀缺資源
═══════════════════════════════════════════════════════════════════════════════
1.2 交易到達模型
記憶池中的交易到達過程可以用泊松過程(Poisson Process)建模:
交易到達過程建模:
═══════════════════════════════════════════════════════════════════════════════
假設 1:交易到達服從泊松過程
─────────────────────────────────────────────────────────────────────────────
• 參數:λ = 平均每秒到達交易數
• 典型值:λ ≈ 3-10 tx/s(正常時期)
• 高峰期:λ ≈ 20-50 tx/s
泊松過程特性:
• P(N(t+Δt) - N(t) = k) = e^(-λΔt) × (λΔt)^k / k!
• 到達間隔時間服從指數分佈
假設 2:費用率分佈
─────────────────────────────────────────────────────────────────────────────
觀察顯示,費用率分佈近似指數分佈或對數正態分佈:
P(fee_rate > x) ≈ e^(-αx)
其中 α 是衰減參數,典型值 α ≈ 0.1-0.3(取決於網路狀態)
實際數據觀察:
• 大多數交易費用率較低(1-10 sat/vB)
• 高費用交易(>50 sat/vB)數量呈指數衰減
═══════════════════════════════════════════════════════════════════════════════
1.3 記憶池動力學方程
記憶池動態演化方程:
═══════════════════════════════════════════════════════════════════════════════
令 n(t) = 記憶池中的交易數量
dn/dt = λ_in(t) - λ_out(t)
其中:
• λ_in(t): 交易進入率(每秒進入記憶池的數量)
• λ_out(t): 交易離開率(每秒被確認或被逐出的數量)
進入率 λ_in(t):
取決於用戶行為和網路活動,通常與比特幣價格正相關
離開率 λ_out(t) = λ_block + λ_evict
• λ_block: 被區塊確認的速率
- 每 10 分鐘約 3,000 筆交易(取決於區塊大小和費用率)
- ≈ 0.5 tx/s
• λ_evict: 被逐出的速率
- 記憶池滿時,低費用率交易被刪除
- 逐出閾值動態變化
穩態分析:
═══════════════════════════════════════════════════════════════════════════════
當 dn/dt = 0 時,系統達到穩態:
λ_in = λ_out = λ_block + λ_evict
記憶池大小呈現週期性波動:
• 正常時期:n ≈ 10,000-30,000
• 擁堵時期:n ≈ 100,000-500,000
═══════════════════════════════════════════════════════════════════════════════
第二章:費用市場機制的經濟學分析
2.1 區塊空間拍賣模型
比特幣交易費用市場可以理解為一個拍賣市場,用戶競標有限的區塊空間:
拍賣模型框架:
═══════════════════════════════════════════════════════════════════════════════
市場參數:
• 區塊空間供給:每區塊約 1.5-2 MB(平均值)
• 區塊時間:平均 600 秒
• 有效供給:每秒 ~3,000 vB(考慮區塊空間和時間)
需求函數:
D(p) = 交易總量愿意以價格 p 進入記憶池
供給函數:
S(p) = 以價格 p 可被確認的交易量
均衡條件:
D(p*) = S(p*)
實際觀察到的市場結構:
• 大多數用戶對費用不敏感(使用錢包預設)
• 專業用戶和機構使用費用優化策略
• 費用率呈現顯著的週期性波動
═══════════════════════════════════════════════════════════════════════════════
2.2 費用率分布與優先級隊列
費用率分布結構:
═══════════════════════════════════════════════════════════════════════════════
記憶池中的交易按費用率降序排列:
優先級 費用率範圍 預期確認時間
─────────────────────────────────────────────────────────────────────────────
P0 >100 sat/vB <10 分鐘
P1 50-100 sat/vB 10-30 分鐘
P2 20-50 sat/vB 30 分鐘-2 小時
P3 10-20 sat/vB 2-6 小時
P4 5-10 sat/vB 6-24 小時
P5 1-5 sat/vB >24 小時
P6 <1 sat/vB 可能永遠不被確認
費用分布的帕累托特性:
═══════════════════════════════════════════════════════════════════════════════
研究表明,比特幣費用分佈具有重尾(heavy-tail)特性:
• 80% 的交易費用率低於中位數
• 5% 的「高費用」交易競爭剩餘區塊空間
• 費用分布可近似為指數分佈
實際含義:
• 大多數用戶可以選擇較低費用率
• 緊急交易需要顯著提高費用率
• 費用市場存在「贏家通吃」效應
═══════════════════════════════════════════════════════════════════════════════
2.3 費用估算的數學方法
費用估算算法:
═══════════════════════════════════════════════════════════════════════════════
Bitcoin Core 使用歷史數據進行費用估算:
方法 1:歷史百分位數法
─────────────────────────────────────────────────────────────────────────────
1. 收集過去 N 個區塊中的確認交易
2. 按費用率排序
3. 選擇目標百分位數對應的費用率
例如:
• 若要 1 小時內確認,選擇費用率的 90 百分位
• 若要 1 天內確認,選擇費用率的 50 百分位
方法 2:指數平滑法
─────────────────────────────────────────────────────────────────────────────
E[f(t+Δt)] = α × f_observed + (1-α) × E[f(t)]
其中 α 是平滑參數(通常 0.15)
方法 3:記憶池穿透法
─────────────────────────────────────────────────────────────────────────────
1. 分析當前記憶池中各費用率的「排隊長度」
2. 估算需要多少區塊才能輪到該費用率的交易
3. 考慮新交易持續進入的影響
費用估算的準確性限制:
• 歷史數據不能預測未來需求突變
• 重大事件(ETF 批准、減半)導致費用劇烈波動
• 建議結合多種方法並留有緩衝
═══════════════════════════════════════════════════════════════════════════════
第三章:區塊模板建構與礦工收益優化
3.1 區塊模板生成算法
礦工的區塊模板生成是一個組合優化問題:
區塊模板優化問題:
═══════════════════════════════════════════════════════════════════════════════
最大化目標函數:
max Σ tx∈B fee(tx)
約束條件:
• Σ tx∈B size(tx) ≤ BlockSizeLimit (≈ 2,000,000 vB)
• 對於每個 tx 的祖先集合 A(tx):Σ tx∈A(tx) size(tx) ≤ AncestorLimit (≈ 101,000 vB)
• 對於每個 tx 的子孫集合 D(tx):Σ tx∈D(tx) size(tx) ≤ DescendantLimit (≈ 101,000 vB)
• 交易之間無衝突(不花費相同輸入)
實際算法:
═══════════════════════════════════════════════════════════════════════════════
Bitcoin Core 使用以下策略:
1. 初始選擇:按費用率降序選擇交易
2. 祖先約束檢查:確保祖先包不超過限制
3. 迭代優化:嘗試替換交易以提高總費用
4. 線性掃描:從高費用到低費用掃描
複雜度分析:
• O(n log n) 其中 n = 記憶池交易數
• 實際執行時間 < 100ms
═══════════════════════════════════════════════════════════════════════════════
3.2 祖先-子孫鏈的數學約束
祖先/子孫限制的數學意義:
═══════════════════════════════════════════════════════════════════════════════
令 T 為一組相關交易(具有父子關係):
祖先集 Ancestors(T) = {所有在 T 之前需要確認的交易}
子孫集 Descendants(T) = {所有依賴 T 中輸出的交易}
約束數學表達:
• |Ancestors(T)| ≤ 25 筆交易
• Σ size(Ancestors(T)) ≤ 101,000 vB
• |Descendants(T)| ≤ 25 筆交易
• Σ size(Descendants(T)) ≤ 101,000 vB
為什麼需要這些限制:
─────────────────────────────────────────────────────────────────────────────
1. 防止內存爆炸:避免巨大交易鏈佔用過多內存
2. 防止驗證阻礙:過大的交易包增加區塊驗證時間
3. 防止費用操縱:避免通過交易鏈進行費用攀比
CPFP 策略的限制:
═══════════════════════════════════════════════════════════════════════════════
CPFP(Child Pays for Parent)依賴於子孫交易增加父交易的費用率:
fee_rate(ancestor_package) = (fee(parent) + fee(child)) / (size(parent) + size(child))
這個費用率需要足夠高才能在區塊中被選中,但受到上述約束限制。
═══════════════════════════════════════════════════════════════════════════════
第四章:費用替換機制的深度分析
4.1 RBF(Replace-By-Fee)機制
RBF 規則詳解:
═══════════════════════════════════════════════════════════════════════════════
Bitcoin Core 實現的 RBF 規則( BIP125 ):
RBF 觸發條件(滿足其一):
1. 原始交易信令 RBF:nSequence < 0xffffffff - 1
2. 記憶池中已有替換候選
替換費用要求:
fee_new ≥ fee_old + max(fee_rate_delta, min_relay_fee)
其中:
• fee_rate_delta = (fee_rate_new - fee_rate_old) × size_new
• min_relay_fee = 1 sat/vB
競爭對手限制:
• 同一交易最多 100 次替換
• 替換交易不能引入新輸入(除非費用足夠高)
RBF 策略的數學分析:
═══════════════════════════════════════════════════════════════════════════════
最佳替換時機決策:
令:
• f₀ = 原始費用率
• f₁ = 替換費用率
• c = 替換成本(估計約 50-100 sat)
最佳替換條件:
f₁ > f₀ + c/size
實際影響:
• RBF 使費用率估計更加困難
• 導致「費用攀比」效應
• 增加了交易被確認的可預測性
═══════════════════════════════════════════════════════════════════════════════
4.2 CPFP(Child Pays for Parent)機制
CPFP 費用結構分析:
═══════════════════════════════════════════════════════════════════════════════
CPFP 原理:
當父交易的費用率過低無法快速確認時,發送一個低費用率的子交易,並顯著提高子交易的費用率,使整體包(父+子)的費用率足夠高。
數學表達:
R_package = (f_parent × s_parent + f_child × s_child) / (s_parent + s_child)
其中:
• f = 費用率(sat/vB)
• s = 大小(vB)
• R_package = 包的平均費用率
CPFP 成功的費用率閾值:
═══════════════════════════════════════════════════════════════════════════════
經驗公式(基於記憶池狀態):
R_needed(t) = F_mempool(t) + k × σ(t)
其中:
• F_mempool(t) = 當前 mempoolminfee
• k = 安全係數(通常 1.5-2.0)
• σ(t) = 費用率波動標準差
示例計算:
假設:
• mempoolminfee = 10 sat/vB
• σ = 5 sat/vB
• k = 2
R_needed = 10 + 2 × 5 = 20 sat/vB
如果父交易為 5 sat/vB,子交易需要:
(5 × 200 + f_child × 200) / 400 = 20
f_child = 35 sat/vB
═══════════════════════════════════════════════════════════════════════════════
4.3 RBF vs CPFP:何時使用哪種策略
策略選擇決策框架:
═══════════════════════════════════════════════════════════════════════════════
使用 RBF 的場景:
─────────────────────────────────────────────────────────────────────────────
• 原始交易尚未確認
• 需要調整費用率
• 交易已廣播但未確認
優點:
• 靈活性高
• 可多次替換
• 不需要預留輸出
缺點:
• 需要設置 nSequence
• 一些節點可能不接受 RBF
• 可能導致費用波動
使用 CPFP 的場景:
─────────────────────────────────────────────────────────────────────────────
• 原始交易已發送,無法修改
• 需要確保交易最終確認
• 有控制輸出可用於子交易
優點:
• 無需原始交易配合
• 可追加費用而不替換
缺點:
• 需要預留未花費輸出
• 受祖先/子孫限制約束
• 總費用通常更高
混合策略:
═══════════════════════════════════════════════════════════════════════════════
最佳實踐是同時使用兩種策略:
1. 發送原始交易時設置 RBF
2. 同時準備子交易使用 CPFP
3. 根據實際確認時間動態調整
═══════════════════════════════════════════════════════════════════════════════
第五章:記憶池動力學與費用預測模型
5.1 記憶池清空動力學
區塊空間供需失衡模型:
═══════════════════════════════════════════════════════════════════════════════
記憶池清空速率:
dM/dt = -λ_block(M) + λ_in(t)
其中:
• M = 記憶池大小(bytes)
• λ_block(M) = 取決於記憶池大小的區塊確認速率
• λ_in(t) = 交易輸入速率
穩態條件:
dM/dt = 0 ⇒ λ_block(M*) = λ_in
線性近似:
當記憶池接近滿載時:
λ_block(M) ≈ λ_max × (1 - M/M_max)
這意味著:
• 記憶池越滿,確認速率越接近最大值
• 當 M → M_max,清空速率趨於穩定
費用率動態方程:
═══════════════════════════════════════════════════════════════════════════════
令 r 為費用率門檻
dr/dt = k₁ × (λ_in - λ_block(r)) - k₂ × (r - r_baseline)
其中:
• k₁ = 需求敏感度
• k₂ = 回歸速率
• r_baseline = 基礎費用率
這個方程描述:
• 當輸入 > 輸出時,費用率上升
• 費用率有回歸到基礎水平的趨勢
═══════════════════════════════════════════════════════════════════════════════
5.2 歷史費用模式的量化分析
費用率週期性分析:
═══════════════════════════════════════════════════════════════════════════════
每週期模式:
• 週末(UTC):費用率通常較低
• 週一至週五:費用率較高
• 美國交易日:費用率最高
原因:
• 亞洲時區:較低費用(相對)
• 歐洲時區:中等等級
• 美國時區:最高費用
每小時模式(UTC):
═══════════════════════════════════════════════════════════════════════════════
費用率與比特幣網路活動時間高度相關:
時段(UTC) 費用率特徵
─────────────────────────────────────────────────────────────────────────────
00:00-08:00 較低(亞洲主導)
08:00-16:00 中等(歐洲主導)
16:00-24:00 較高(美國主導)
峰值時段:
• 美國股市開盤前後(14:30-21:00 UTC)
• 亞洲清晨(02:00-04:00 UTC)
低谷時段:
• 週末全天
• 節假日
特殊事件影響:
• 比特幣減半:費用率飆升
• 市場劇烈波動:費用率大幅上升
• 協議升級:可能短期影響費用
═══════════════════════════════════════════════════════════════════════════════
5.3 機器學習費用預測
費用預測模型框架:
═══════════════════════════════════════════════════════════════════════════════
特徵工程:
─────────────────────────────────────────────────────────────────────────────
輸入特徵:
• 歷史費用率序列(過去 N 個區塊)
• 記憶池大小
• 記憶池費用分布
• 比特幣價格
• 時間特徵(小時、星期、月份)
• 區塊空間利用率
• 活動地址數
目標變量:
• 未來 N 個區塊的確認費用率
• 確認概率
模型選擇:
═══════════════════════════════════════════════════════════════════════════════
1. 線性回歸
優點:快速、可解釋
缺點:無法捕捉非線性關係
2. 梯度提升樹(XGBoost, LightGBM)
優點:精度高、處理非線性
缺點:需要更多數據
3. LSTM/Transformer
優點:捕捉時序依賴
缺點:需要大量數據、可能過擬合
實際建議:
• 簡單模型(線性回歸)+ 特徵工程 效果已經不錯
• 複雜模型需要專業團隊維護
• 建議結合多個模型的集成預測
═══════════════════════════════════════════════════════════════════════════════
第六章:工程實作與最佳實踐
6.1 費用策略的分層設計
費用策略架構:
═══════════════════════════════════════════════════════════════════════════════
Layer 1:費率估算引擎
─────────────────────────────────────────────────────────────────────────────
• 調用 estimatesmartfee API
• 獲取 mempoolminfee
• 計算記憶池費用分布百分位數
• 輸出:基礎費用率建議
Layer 2:風險評估
─────────────────────────────────────────────────────────────────────────────
• 評估交易緊急性(金額、目的、時間敏感度)
• 評估當前網路狀態(記憶池大小、趨勢)
• 計算風險調整係數
• 輸出:費用調整倍數
Layer 3:費用計算
─────────────────────────────────────────────────────────────────────────────
final_fee_rate = base_rate × risk_multiplier × safety_margin
典型參數:
• safety_margin:1.2-1.5(確保確認)
• risk_multiplier:
- 低風險:1.0
- 中風險:1.2
- 高風險:1.5+
Layer 4:執行與監控
─────────────────────────────────────────────────────────────────────────────
• 發送交易
• 追蹤確認狀態
• 觸發 RBF/CPFP 條件
• 記錄費用效率用於優化
═══════════════════════════════════════════════════════════════════════════════
6.2 記憶池監控關鍵指標
監控指標儀表板:
═══════════════════════════════════════════════════════════════════════════════
核心指標:
• mempool size(交易數)
• mempool bytes(總大小)
• mempoolminfee(最低費用率)
• mempool usage(內存使用)
進階指標:
• 費用率分布(各百分位數)
• 平均交易大小
• 確認延遲(P50, P95, P99)
• 交易進入速率(tx/s)
告警閾值建議:
═══════════════════════════════════════════════════════════════════════════════
指標 正常範圍 警告閾值 嚴重閾值
─────────────────────────────────────────────────────────────────────────────
mempool size <50,000 >100,000 >200,000
mempool bytes <50 MB >150 MB >250 MB
mempoolminfee <10 sat/vB >30 sat/vB >50 sat/vB
確認延遲 P95 <60 分鐘 >240 分鐘 >720 分鐘
═══════════════════════════════════════════════════════════════════════════════
第七章:費用市場的長期演變
7.1 區塊獎勵遞減對費用的影響
費用市場演變預測:
═══════════════════════════════════════════════════════════════════════════════
歷史數據顯示:
• 區塊獎勵在礦工收入中的占比逐漸下降
• 費用在總收入中的占比預計上升
長期趨勢模型:
設:
• B(t) = 區塊獎勵(BTC)
• F(t) = 區塊費用(BTC)
• P(t) = 比特幣價格(USD)
礦工收入 = (B(t) + F(t)) × P(t)
為維持當前安全性水平:
F(t) × P(t) ≥ 目標安全預算
隨著 B(t) 遞減:
• 2024-2028: B ≈ 3.125 BTC → F 需要補償
• 2028-2032: B ≈ 1.56 BTC → 費用占比上升
• 2032+: B < 1 BTC → 費用成為主要收入
對用戶的影響:
═══════════════════════════════════════════════════════════════════════════════
短期(2024-2028):
• 費用率相對穩定
• 高峰期費用率可能上升
中期(2028-2032):
• 費用率波動可能加劇
• 區塊空間競爭增加
長期(2032+):
• 費用市場成熟
• 可能出現費用保證服務
═══════════════════════════════════════════════════════════════════════════════
7.2 Layer 2 對費用市場的影響
閃電網路對主鏈費用的影響:
═══════════════════════════════════════════════════════════════════════════════
閃電網路增長的影響:
1. 降低主鏈交易量
• 小額支付遷移到閃電網路
• 主鏈主要承載大額和原則性交易
2. 改變費用結構
• 開啟/關閉通道需要主鏈費用
• 這些費用相對穩定
3. 增加 UTXO 合併需求
• 閃電通道關閉後可能需要合併
• 增加主鏈費用市場需求
費用市場預測模型:
═══════════════════════════════════════════════════════════════════════════════
場景分析:
場景 1:閃電網路普及(樂觀)
• 2030 年 50% 小額交易遷移
• 主鏈費用率下降
• 區塊空間成為「精品市場」
場景 2:適度採用(中性)
• 2030 年 20% 遷移
• 費用率基本穩定
• Layer 2 和主鏈共生
場景 3:低採用(悲觀)
• 主鏈仍是主要支付方式
• 費用率持續上升
• 區塊空間需求保持強勁
═══════════════════════════════════════════════════════════════════════════════
結論
記憶池與費用市場是比特幣經濟學的核心組成部分。理解其動力學需要結合:
- 隨機過程理論:交易到達和確認的數學建模
- 微觀經濟學:拍賣理論和供需均衡
- 計算機科學:優化算法和數據結構
- 實證分析:歷史數據的模式識別
對於工程師和開發者,掌握這些原理能夠:
- 設計更有效的費用策略
- 構建更可靠的支付系統
- 預測和管理成本波動
對於用戶和投資者,理解費用市場能夠:
- 優化交易成本
- 理解網路擁堵的原因
- 評估比特幣的長期經濟模型
相關主題
更新日期:2026-02-27
版本:2.0
本文包含
相關文章
- Bitcoin Core 節點運作 — 運行完整節點,理解比特幣網路的運作機制。
- 比特幣費用市場機制 — 理解比特幣費用市場與手續費估算模型。
- 比特幣記憶池即時監控 — 使用 RPC 即時查看記憶池狀態、交易排序與費用估計。
- RBF 與 CPFP 費用加速 — 理解交易費用加速技術與費用替換機制。
- UTXO 與交易費用計算指南 — 深入理解比特幣 UTXO 模型與交易費用計算。
延伸閱讀與來源
這篇文章對您有幫助嗎?
請告訴我們如何改進:
0 人覺得有帮助
評論
發表評論
注意:由於這是靜態網站,您的評論將儲存在本地瀏覽器中,不會公開顯示。
目前尚無評論,成為第一個發表評論的人吧!