Eclair v0.14.6 預設僅允許對手方節點提供已確認交易的輸入,用於閃電網路通道拼接;此外也補強了拼接交易尚未確認時的通道強制關閉處理。
開發商 ACINQ 於 10 月 27 日發布新版本,並建議營運者升級。此次修正適用於比特幣(BTC)閃電網路的通道資金調整與未結算支付處理。
ACINQ 在版本說明中表示,部分問題可能遭惡意節點利用。修正項目包括限制通道拼接的輸入,以及調整強制關閉時的資金處理邏輯。
通道拼接(splicing)是在不關閉通道的情況下,增加或取出比特幣資金的流程。做法是以新交易替換承載既有通道資金的輸出。
如果對手方節點提供的輸入所屬交易尚未確認,對方可能透過雙重支付使拼接交易失效。若以這類交易為依據強制關閉通道,未結算支付的處理也可能出現問題。
HTLC 是依據雜湊與時間條件結算閃電支付的合約。關閉通道時若仍有未結算支付,以哪筆資金交易作為關閉依據就相當重要。
新增設定「require-confirmed-inputs-for-splicing」預設為啟用。對手方節點用於通道拼接的輸入必須來自已確認交易;前一筆拼接尚未確認時,也會限制在其上再疊加新的拼接交易。
ACINQ 也限制對手方節點可新增的輸入與輸出數量。既有設定「require-confirmed-inputs-for-dual-funding」不再適用於通道拼接。雙方共同出資則是指兩個節點在初次開啟通道時各自投入資金。
強制關閉通道時,系統會選擇與 Bitcoin Core 後端已知資金交易相對應的承諾交易。新區塊產生或拼接交易公開後,系統會重新檢查選擇結果。相關內容載於通道拼接強化變更。
即使先前的承諾交易之後才獲得確認,系統也會保留取回該交易中節點餘額與 HTLC 輸出的處理方式。這項修正可讓通道狀態改變後才被納入區塊的交易,也能在強制關閉流程中獲得處理。
另一項強制關閉修正處理的是這種情況:Eclair 切換至另一筆承諾交易後,先前公開的自身承諾交易仍可能被納入區塊。過去系統可能將其誤判為對手方交易,因而無法請求相關輸出;修正後會重新確認交易是否由自身發出,並依照該承諾交易繼續強制關閉流程。
ACINQ 警告,與不受信任的對手方進行通道拼接時,不應使用預設關閉的「zero_fee_commitments」功能。這項注意事項也列於本次版本說明中。
本刊先前報導 Eclair 0.14.5 發布安全修補並建議升級。此次 0.14.6 進一步限制通道拼接使用未確認輸入,並調整強制關閉期間取回支付資金的流程。
營運者可在不關閉既有通道的情況下更新。ACINQ 表示,停止 Eclair、安裝新版本後重新啟動即可。
留言 0