進階
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 限制以提供更好的路由服務。
終端用戶
保守設定減少攻擊面,降低複雜性。
相關資源
已複製連結