跳至主要內容
進階

HTLC Limits HTLC 限制

了解閃電網路中 HTLC 的數量和金額限制,以及這些限制的安全考量。

10 分鐘

為什麼需要限制?

HTLC 限制保護節點免受資源耗盡攻擊,並確保承諾交易可以在合理的費用內上鏈。

攻擊向量: 沒有限制的話,攻擊者可以用大量小額 HTLC 堵塞通道,或創建巨大的承諾交易。

主要限制類型

HTLC Limit Parameters

Count Limit (max_accepted_htlcs):

BOLT 規範限制:每方向最多 483 個 HTLC

為什麼是 483?
  • 比特幣交易最大 400,000 weight units
  • 每個 HTLC 輸出約 172 bytes
  • 483 x 2 方向 = 966 個 HTLC
  • 加上其他輸出,剛好在限制內

實際配置:
  • LND 預設:483
  • CLN 預設:30(保守設定)

Amount Limits:

max_htlc_value_in_flight_msat:
  • 同時在途的最大 HTLC 總額
  • 預設通常是通道容量的某個百分比

htlc_minimum_msat:
  • 單個 HTLC 的最小金額
  • 用於避免粉塵攻擊

htlc_maximum_msat:
  • 單個 HTLC 的最大金額
  • 用於流動性管理

通道協商

Channel Open Negotiation

open_channel message:
{
  "max_htlc_value_in_flight_msat": 990000000,
  "max_accepted_htlcs": 30,
  "htlc_minimum_msat": 1000
}

accept_channel response:
  • 對方可以設定不同的限制
  • 最終限制 = min(雙方各自的限制)

channel_update dynamic update:
  • htlc_maximum_msat 可以通過 channel_update 更新
  • 用於動態流動性管理

安全考量

Attack Scenarios and Defenses

HTLC Jamming Attack:
  Attack: 發送大量 HTLC 但不解決
  Defense: max_accepted_htlcs 限制
  Best Practice: 設定合理的上限(如 30-100)

Transaction Bloat Attack:
  Attack: 創建巨大的承諾交易,使強制關閉成本高昂
  Defense:
    • HTLC 數量限制
    • Anchor Outputs(可動態加費)

Fund Locking Attack:
  Attack: 用大額 HTLC 鎖定通道容量
  Defense:
    • max_htlc_value_in_flight 限制
    • 分散通道連接

路由節點

設定較高的 HTLC 限制以提供更好的路由服務。

終端用戶

保守設定減少攻擊面,降低複雜性。

相關資源

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