Eclair已合併兩項修復,降低Lightning節點在通道融資、拼接及簽名器模式下,因對手方要求提高費率或比特幣後端構造異常交易而支付過高礦工費的風險。相關改動分別於10月2日及10月5日併入專案主分支;不過,截至10月12日,Eclair發布頁面列出的最新版本仍是9月推出的v0.14.3,尚無法確認修復已納入正式版本。
Eclair是由ACINQ開發的Lightning節點軟體。兩項修復分別針對雙向融資通道與調整通道資金的拼接操作,以及Eclair-signer簽名器模式。若發生損失,款項可能以礦工費形式支付給網絡中的礦工,而非直接流入攻擊者地址。
PR #3388限制對手方提高融資費率
第一項修復由PR #3388提出,針對對手方發起的替代手續費(RBF)交易。無論是透過雙向融資開通通道,還是以拼接方式調整通道資金,對手方都可以提出手續費率較高的替代交易。修復前,如果Eclair節點也為交易出資,可能需要為自己的出資部分承擔更高費用,且流程沒有明確的費用上限或預算。
這讓惡意對手方有機會要求出資的Eclair節點承擔任意高的礦工費率,自己卻不必負擔這部分費用。節點的損失會以礦工費支付,而不是直接轉給對手方。
修復後,若對手方要求的手續費率超過Eclair向其建議的融資費率上限,Eclair便會拒絕該請求。不過,若對手方購買流動性並替Eclair支付相關費用,或Eclair節點沒有為交易出資,則不受這項限制;在這兩種情況下,節點不會承擔這項修復所針對的費用。
PR #3390核對簽名器模式的實際交易費用
第二項修復由PR #3390提出,適用於Eclair-signer模式。在此模式中,Bitcoin Core後端bitcoind負責選擇比特幣及構造交易,私鑰則由Eclair保管並用於簽署交易。僅保留簽名密鑰,無法防止受損後端回報的費用仍在預算內、實際交易卻支付更高費用;例如,後端可能移除找零輸出,藉此提高礦工費。
按照比特幣交易的計算方式,輸入金額中未分配給任何輸出的部分會成為礦工費。因此,移除找零可能令節點蒙受資金損失,但款項不一定會進入攻擊者控制的地址。
修復要求設定費用預算時,根據待花費幣的金額計算實際費用,並透過交易ID取得相關交易,以核實輸入金額。Eclair接著會比對後端回報的費用與實際費用,並以實際費用而非僅依賴後端提供的數值套用預算。此外,系統也會確認Eclair重新構建的出資部分支付相同、且已核實的費用,並拒絕找零輸出位置無效的交易。
主分支已合併,正式版本仍待確認
兩項改動分別處理雙向融資及拼接流程的費用上限,以及簽名器模式下的交易費用核驗。它們與先前涉及合作關閉手續費的漏洞,以及10月2日披露、可能在節點重啟後引發拒絕服務的問題,是不同事項。
截至10月12日,Eclair發布頁面仍列9月推出的v0.14.3為最新版本。程式碼併入主分支不代表修復已隨正式版本推出;運行Eclair的節點營運者仍需確認所安裝的構建是否包含10月的改動。