HTLC已死 閃電網絡可能幸存 LN on Drivechain是LN出路之一

2023-10-31 14:44 LayerTwo Labs


來源:LayerTwo Labs

核心开發者Antoine Riard退出閃電網絡,聲稱閃電網絡代碼中故意存在後門,使攻擊者能夠完全控制網絡,稱其存在巨大安全風險須比特幣底層改動來fix。

https://x.com/davidshares/status/1715822317786349706?s=46&t=LEcbC6fzF7RMgGKlX2wsbw

比特幣擴容方案閃電網絡近日被爆出”巨大的安全問題”,开發者 Antoine Riard 宣布退出。

24 小時內 閃電網絡“損失情況”

https://twitter.com/vinibarbosabr/status/1716499209417826431

閃電網絡被曝巨大安全漏洞

據 Cointelegraph 報道:Bitcoin core developer steps back from Lightning Network over ‘hard dilemma’[1],比特幣安全研究人員和比特幣开發者 Antoine Riard 因安全問題和比特幣生態系統面臨的根本挑战而退出閃電網絡的开發,他認爲比特幣社區面臨着「艱難困境」,因爲一類新的替代循環攻擊將閃電網絡置於「危險的境地」。

替代循環攻擊是一種新型攻擊,攻擊者可以利用各個內存池之間的不一致來竊取支付通道參與者的資金,他指出解決新型攻擊可能需要對底層比特幣網絡進行更改,「這些類型的變化需要整個社區的最大透明度和認同,因爲我們正在改變全節點處理要求或去中心化比特幣生態系統的安全架構」。

一份 Antoine Riard 的郵件截圖[2]也被曝光,截圖顯示,Riard 在郵件中稱比特幣閃電網絡存在巨大的安全風險,他聲稱代碼中故意存在後門,使攻擊者能夠完全控制網絡,這促使他宣布退出該項目

https://lists.linuxfoundation.org/pipermail/lightning-dev/2023-October/004154.html

Riard 的郵件內容如下:

在寫完關於連續惡意替換誠實 HTLC-Timeout的經濟學的郵件回復後,我確實又編寫了一個測試來驗證核心內存池上的行爲,而它如我預料的那樣發生了。

https://github.com/ariard/bitcoin/commit/30f5d5b270e4ff195e8dcb9ef6b7ddcc5f6

負責任的披露流程遵循了影響操作系統的硬件問題(如 Linux 內核所述),同時適應了比特幣生態系統:https://docs.kernel.org/6.1/process/embargoed-hardware-issues.html

從現在起,我將停止參與閃電網絡的开發及其實現,包括協調協議級別安全問題的處理(我通知了一些高級閃電开發人員)

關閉了在存儲庫上影響我很長時間的問題:https://github.com/lightning/bolts/pul1/772

我認爲這種新的替換循環攻擊將閃電網絡置於非常危險的位置,其中只有在基礎層才能進行可持續的修復,例如添加所有可見交易的內存密集型歷史記錄或某些共識升級。

面對簡單的攻擊,部署的緩解措施是有價值的,盡管我不認爲它們能夠阻止高級攻擊者,正如第一封完整披露郵件中所述。這些類型的變化需要最大程度的透明度和整個社區的支持,因爲我們正在改變全節點處理要求或去中心化比特幣生態系統的完整性安全架構。

另一方面,要充分解釋爲什么爲了閃電網絡和良好的設計而需要進行此類更改,我們可能需要對約 5355 個公共 BTC 生態系統進行完整的實際和關鍵攻擊。艱難的困境。在比特幣協議部署方面可能有一個教訓,我們可能必須在第一次嘗試時就把它們做好。在飛行中修復它們的第二次機會很少。

我將在 10 月 30 日那周之前對公共郵件列表上的這些問題保持沉默,我已經發布了足夠的材料,並且有其他專家可用。我將重新更多地關注Bitcoin Core。

开發者詳解攻擊方式

另一位开發者 @mononautical[3] 詳細解釋了這個攻擊的原理,並表示這種攻擊要發起不容易,但要解決他也非常的困難。 正確的修復可能需要更根本的改變,重新設計 HTLC 協議,或者更改中繼策略以傳播替換的事務,或者讓礦工保留最近替換的交易的緩存,又或者在新操作碼中進行軟分叉。

@mononautical 對攻擊的解釋原文(https://twitter.com/mononautical/status/1715736832950825224):

閃電替代循環攻擊如何運作?郵件列表上有很多關於這個新發現的漏洞的討論,但實際機制有點難以理解。所以這裏有一個圖解入門...

假設Bob正在將一筆閃電付款從Alice路由到Carlo。在飛行過程中,付款受到 HTLC 輸出的保護,HTLC 輸出是他與每個同行預先籤署的通道承諾中的。

HTLC(哈希/時間鎖定合約)是發送者到接收者的有條件付款。接收方可以通過向哈希 H 揭示原像來立即使用它,或者在超時後由發送方回收。

通過使用相同的哈希鎖保護每一跳上的 HTLC,可以自動路由支付。Carol 無法在不泄露原像的情況下領取傳出的 HTLC,然後 Bob 可以使用原像兌換來自 Alice 的傳入 HTLC。至少理論上是這樣的……

爲了確保 Bob 在出現問題時有時間做出反應,傳出 HTLC 上的時間鎖首先在某個區塊高度 T 到期。然後傳入 HTLC 上的時間鎖在稍後的某個高度 T+Δ 到期,之後Alice就可以收回她的錢了。

好的,攻擊如下:記住 Bob 在兩個通道中都有待處理的 HTLC。一份發給 Carol 的傳出 HTLC,在區塊 T 到期,一份來自 Alice 的傳入 HTLC,在區塊 T+Δ 到期。

在 T 區塊,Carol 仍未透露用於結算付款的原像,因此 Bob 被迫在鏈上超時。他廣播承諾 tx 來關閉他與 Carol 的頻道,一旦確認,就會發送一個“HTLC-Timeout”tx,花費 HTLC 來收回他的資金。

Bob 不知道的是,Alice 和 Carlo 正在串謀偷他的錢。他們通過以低費用廣播兩筆交易的鏈來准備攻擊,這顯然與閃電通道無關,我們將其稱爲“循環父項”和“循環子項”。

一旦攻擊者看到 Bob 的 HTLC-Timeout 交易命中內存池,他們就會廣播一個“HTLC-preimage”交易,該交易既花費 HTLC 輸出(使用 Carol 的哈希原像),又花費來自循環父節點的輸出。

由於此 HTLC-preimage 交易支付更高的費用並花費相同的輸入,因此它取代了內存池中的循環子項和 Bob 的 HTLC-Timeout 交易。

如果 Bob 看到這一點,他可以獲取原像並使用它立即兌換來自 Alice 的傳入 HTLC。因此,攻擊者廣播一個新交易來替換循環父代。HTLC 原像依賴於其輸入之一,因此也被從內存池中逐出。

在此周期結束時,Bob 與 Carol 的通道中的 HTLC 最終未使用,並且內存池中沒有 HTLC-Timeout 和 HTLC-preimage 交易的痕跡。

攻擊者每次重播 Bob 的 HTLC-Timeout 交易時都會重復這個循環。如果他們阻止它被开採出另一個 Δ 塊,Alice 可以使另一個通道上的 HTLC-Timeout,並讓 Bob 損失全部支付金額。

這次攻擊並不容易。實現這一目標需要:

  • 與受害者打开兩個渠道。

  • 通過他們進行付款。

  • 成功替換循環受害者的 HTLC-Timeout Δ 塊。

  • 受害者沒有發現 HTLC 原像交易。

但這也很難完全解決。更積極地增加時間鎖增量或重新廣播 HTLC-Timeout會使攻擊更加困難且成本更高,但仍然不是不可能。

Bob 可以主動監控他的本地內存池,以便在 HTLC-Timeout 被替換之前發現它。但聰明的攻擊者可以有選擇地廣播替換內容,以便礦工收到它們,而 Bob 卻沒有收到。

也許Bob可以通過使用連接到網絡其他部分的瞭望塔來監視循環的 HTLC-Timeout 並向他轉發任何相關的原像,從而提高他的機會。

正確的修復可能需要更根本的改變。我們可以重新設計 HTLC 協議,以防止向 HTLC 原像添加額外的輸入(因此它們無法被替換)。或者更改中繼策略以傳播替換的事務(因此原像始終到達 Bob)。

或者讓礦工保留最近替換的交易的緩存,這些交易稍後可能能夠重新進入內存池(這樣Bob就不需要重新廣播他的 HTLC-Timeout)。這可以內置到比特幣核心中,或作爲外部服務運行。

或者在新操作碼中進行軟分叉,其作用與 check-locktime-verify 相反(因此我們可以在時間鎖到期後立即使 HTLC-preimage 花費路徑無效)。

此攻擊僅適用於直接對等點,並導致該通道關閉。如果您不路由付款,您的節點就是安全的。否則,您可以通過降低與您真正不信任的同行的頻道的最大飛行 HTLC 值來限制最壞的情況。

社區動態

慢霧創始人余弦也發推表示了同樣的觀點: 閃電網絡的替換循環攻擊有些類似 MEV 裏的三明治攻擊,前後夾擊套出被夾目標的資金。這一攻擊不容易利用,需要滿足:在受害者身上打开兩個通道;通過這兩個通道中的其中一個路由付款;成功替換循環受害者的 HTLC-Timeout blocks;受害者不會發現 HTLC 預映像交易。這個風險在被修復之前,使用閃電網絡的項目方在對接上下遊建立通道前可以警惕下,最好和有信譽的建立,降低被夾風險,具體還需要測試和驗證。

https://twitter.com/evilcos/status/1715929391124062464

在事件被曝光之後,一些針對閃電網絡的批評也再次被提起。

@Justtherip:https://twitter.com/justtherip/status/1715727312295989249

所以我們又來到這個地步了。他們需要礦工投票來加速網絡並進行更便宜的交易。所以你認爲礦工會投票減少錢嗎?不,他們不會。在最後一個比特幣被开採之前,比特幣將變得緩慢且昂貴。我們都將早已逝去。

@DavidShares:https://twitter.com/DavidShares/status/1716103036399935762

有一些已證實的問題仍未解決,例如路徑路由問題。解決這個問題的唯一方法是使用托管人,LN 正在這樣做,將中心化和銀行機構重新引入比特幣,而比特幣的全部目的就是擺脫它們。

Paul 怎么看?"HTLC 已死、閃電網絡可能幸存、LN on Drivechain 是閃電網絡出路之一"

https://twitter.com/Truthcoin/status/1715783737471066587

**Layer 2 Labs 創始人Paul Sztorc[4] 提出了他設想的解決方案[5]**:

https://twitter.com/Truthcoin/status/1716110498867859760

這需要:

  • 軟分叉操作碼

  • HTLC 進一步增長,至少 5 個字節,可能更多;從而使他們對 L1 費用更加敏感

通過側鏈,可以設計一個新的特殊 txn,它可以節省所有這些字節,而基於Drivechain 的閃電網絡(LN on DC)會更好。”

參考資料

[1]據 Cointelegraph 報道:Bitcoin core developer steps back from Lightning Network over ‘hard dilemma’: https://cointelegraph.com/news/bitcoin-core-developer-antoine-riard-steps-back-lightning-network-dilemma

[2]Antoine Riard 的郵件截圖: https://lists.linuxfoundation.org/pipermail/lightning-dev/2023-October/004154.html

[3]@mononautical: https://twitter.com/mononautical

[4]Paul Sztorc: https://twitter.com/Truthcoin

[5]他設想的解決方案: https://twitter.com/Truthcoin/status/1716110498867859760

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

標題:HTLC已死 閃電網絡可能幸存 LN on Drivechain是LN出路之一

地址:https://www.sgitmedia.com/article/14347.html

相關閱讀: