高級
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,要麼全部成功,要麼全部失敗。
超時協調
所有分片必須在發票過期前到達,否則接收者會拒絕。
相關資源
已複製連結