跳至主要內容
高級

MPP Splitting 多路徑分割

了解閃電網路多路徑支付的分割策略,如何將大額支付分成多個小額部分。

12 分鐘

分割策略的重要性

多路徑支付(MPP)允許將大額支付分割成多個較小的 HTLC。 如何分割直接影響支付成功率和費用成本。

核心權衡: 分割越多,單個 HTLC 越小容易路由,但總費用和複雜度增加。

分割演算法

常見分割策略:

1. 均勻分割:
總額 = 1,000,000 sats
分割數 = 4
每份 = 250,000 sats

優點:簡單
缺點:可能不匹配可用流動性

2. 基於流動性的分割:
分析可用路徑的估計流動性:
• 路徑 A:估計容量 400,000 sats
• 路徑 B:估計容量 300,000 sats
• 路徑 C:估計容量 500,000 sats

分割:按比例分配
• A: 333,333 sats
• B: 250,000 sats
• C: 416,667 sats

3. 二分法分割(Binary Split):
嘗試完整金額
├── 成功 → 完成
└── 失敗 → 分成兩半,遞歸嘗試

優點:最大化單路徑使用
缺點:失敗探測增加延遲

LND 分割實現

LND Mission Control 分割:

配置參數:
[routerrpc]
routerrpc.maxparts=16              # 最大分片數
routerrpc.minrtprob=0.01           # 最小成功概率

SendPaymentV2 參數:
• max_parts: 限制分片數量
• max_shard_size_msat: 最大分片大小

分割決策流程:
1. 計算所有可能路徑
2. 評估每條路徑的成功概率
3. 計算期望成本:
   cost = (fees + timelock_penalty) / success_prob
4. 選擇最優路徑組合
5. 根據路徑容量限制分配金額

分割限制

實際限制因素:

接收者限制:
• max_accepted_htlcs:同時接受的 HTLC 數量上限
• 通常 30-483 個
• 所有分片必須同時待處理

費用影響:
假設路徑費用:base_fee=1000 + fee_rate=100ppm

單路徑 1M sats:
fee = 1000 + 100 = 1100 msat

4 路徑各 250k sats:
fee = 4 × (1000 + 25) = 4100 msat

base_fee 是固定成本,分割越多費用越高!

最小分片大小:
• 受 htlc_minimum_msat 限制
• 太小的分片不經濟
• 建議最小 10,000 sats

原子性保證

所有分片使用相同的 payment_hash,要麼全部成功,要麼全部失敗。

超時協調

所有分片必須在發票過期前到達,否則接收者會拒絕。

相關資源

已複製連結
已複製到剪貼簿