比特幣閃電網路開發商 ACINQ 於 10 月 27 日發布 Eclair 0.14.6,修補惡意節點可能利用未確認通道資金交易的問題。新版預設要求對端用於通道拼接的資金輸入先獲確認,並調整通道關閉時的結算與資金追回流程。ACINQ 建議節點營運者儘快升級;目前尚不清楚相關漏洞是否曾在實際環境中遭到利用。
未確認資金可能牽連待處理付款
閃電網路透過支付通道處理比特幣轉帳,使用者不必將每筆交易都記錄在比特幣區塊鏈上。營運者也可透過「拼接」(splice)為既有通道增加或提取流動性,而相關資金變動須由鏈上交易支援。
風險在於,若通道拼接接受對端提供、但尚未獲比特幣網路確認的資金輸入,惡意節點可能在簽署拼接交易後對相關交易發動雙重支付。一旦原有資金安排因此失效,依賴該安排的通道結算也可能受到影響。
若通道之後在比特幣鏈上關閉,以條件式支付合約(HTLC)擔保的待處理付款可能面臨風險,因為這些付款的結算仰賴已失效的資金交易。ACINQ 將此列為潛在安全問題,但未表示已確認發生資金遭竊事件。
拼接資金預設須先獲確認
Eclair 0.14.6 新增安全設定,預設要求對端用於通道拼接的資金輸入先獲確認。這項設定也會阻止營運者在尚未確認的資金變動上繼續建立新的拼接交易,以降低不可靠資金狀態累積後帶來的結算風險。
ACINQ 說明,這項要求與原有的雙重資金保護機制有所區別:原有機制目前專門適用於建立通道,拼接操作則由新增的確認要求涵蓋。對於不受信任的對端,ACINQ 也提醒營運者不要在拼接時啟用可選的零費用承諾功能;該功能先前已預設關閉。
強制關閉改採已確認資金狀態
更新也改善通道資金交易尚未獲確認、但通道必須關閉時的處理方式。依照新的結算邏輯,Eclair 會選用 Bitcoin Core 後端判定有資金支持的承諾交易;必要時,軟體會退回至最近一次已確認的資金狀態,避免以已從本地待處理交易池中消失的資金交易進行結算。
另一項修正針對資金可能未獲認領的情況:部分交易即使不再是 Eclair 優先採用的結算路徑,仍可能獲礦工確認。舊版邏輯可能將這類交易誤認為對手方交易,導致原本可追回的資金及待處理付款輸出未被領取。新版會辨識這些交易,並嘗試追回相關輸出。
升級期間可保留現有通道
ACINQ 建議仍在運行舊版 Eclair 的節點安裝修補程式,並保留預設啟用的已確認輸入保護。升級時須先停止軟體、安裝新版,再重新啟動節點;既有支付通道不必在升級期間關閉。
這次修補的問題由安全研究人員 Erick Cestari 負責任地披露。ACINQ 提醒,惡意節點可能利用其中部分問題,但目前公開資訊未說明實際受影響的節點數量,也未確認是否已發生攻擊。