記憶池與交易費用

理解未確認交易如何被選擇與費用市場機制。

記憶池與交易費用:深入技術分析與量化模型

理解未確認交易如何被選擇與費用市場機制。

大多數支付失敗與確認延遲,根因都不是「鏈壞掉」,而是費率競價與交易包排序判斷錯誤。理解 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:低採用(悲觀)
• 主鏈仍是主要支付方式
• 費用率持續上升
• 區塊空間需求保持強勁
═══════════════════════════════════════════════════════════════════════════════

結論

記憶池與費用市場是比特幣經濟學的核心組成部分。理解其動力學需要結合:

  1. 隨機過程理論:交易到達和確認的數學建模
  2. 微觀經濟學:拍賣理論和供需均衡
  3. 計算機科學:優化算法和數據結構
  4. 實證分析:歷史數據的模式識別

對於工程師和開發者,掌握這些原理能夠:

對於用戶和投資者,理解費用市場能夠:


相關主題


更新日期:2026-02-27

版本:2.0

本文包含

延伸閱讀與來源

這篇文章對您有幫助嗎?

評論

發表評論

注意:由於這是靜態網站,您的評論將儲存在本地瀏覽器中,不會公開顯示。

目前尚無評論,成為第一個發表評論的人吧!