希伯來大學教授 Ayelet Mizrah 和 Aviv Zohar 提出通過使用不到 0.5 BTC 鎖定大部分閃電網絡流動性的兩種攻擊方法,並給出了緩解方案。

原文標題:《最新研究:0.5 個比特幣就能鎖定大部分流動性,支付通道漏洞讓閃電網絡癱瘓》(Congestion Attacks in Payment Channel Networks)
撰文:Ayelet Mizrah 和 Aviv Zohar,希伯來大學教授
編譯:kyle

希伯來大學教授 Ayelet Mizrah 和 Aviv Zohar 聯合發表論文《支付通道網絡中的擁塞攻擊》,這篇論文討論了在構建去信任的多跳支付時,支付通道網絡中出現的一個基本漏洞。這篇文章提出了兩種攻擊方式:第一種是長時間鎖定儘可能多的高流動性通道,第二種是試圖將單個節點與網絡隔離,並對閃電網絡承受這些攻擊進行了評估。通過檢查閃電網絡的三個主要實現對網絡的屬性和不同參數的設置,這篇文章證明了閃電網絡最近默認參數的更改會讓攻擊更易於發生。結果表明,通過使用不到 0.5 個比特幣就可以鎖定大部分閃電網絡的流動性,這可能破壞閃電網絡。


在一篇 新論文 中,我們討論了在支付通道網絡中構建無需信任多跳支付過程中出現的一個基本漏洞。我們提出兩種攻擊方式:第一種旨在長時間鎖定儘可能多的高流動性通道,第二種旨在將中樞(hubs)與網絡的其餘部分隔離。在本文中,我們介紹了這些針對閃電網絡的攻擊的評估。我們將檢查閃電網絡的三個主要實現對網絡的屬性和不同參數的設置,並展示閃電開發人員同意的默認參數的最新更改如何使攻擊更容易實施。我們的結果表明,通過使用不到 0.5 個比特幣就鎖定大部分閃電網絡的流動性,這可以破壞閃電網絡。

支付通道網絡是解決區塊鏈可擴展性問題的第二層鏈下解決方案。作爲比特幣二層網絡的閃電網絡目前擁有超過 11,000 個節點和 35,000 個通道,總容量約爲 880 BTC (約合 9,000,000 美元)。

我們探索的攻擊的基本概念是可以追溯到 2015 年 8 月的 Lightning-dev 列表中的對應內容中提到的,以及 2017 年 5 月提到的 BOLT 中的一個 git 問題。從未對這種攻擊的後果進行全面評估,其成本卻非常低:攻擊者只需不到 0.5 個比特幣,就可以無限期地鎖定網絡的大部分通道。

攻擊:

爲了使通道癱瘓,攻擊者使用一套路徑的源和目標打開通道,並通過該路徑請求許多小額付款,從而耗盡了同時打開的 HTLC 的數量(閃電網絡的每種主要實現方式對併發 HTLC 的數量都有不同的限制 )。 攻擊者既是付款的來源,又是目的地,並且可能嚴重延遲付款的最終執行時間(最多幾天)。 然後,攻擊者可以再次重新運行攻擊,並鎖定同一路徑額外的一段時間。

0.5 BTC 就可以鎖定大部分閃電網絡流動性,瞭解兩種攻擊方法攻擊者創建了兩條長途路線用於癱瘓通道

我們研究了閃電協議的主要實現。 這是它們用於相關參數的默認值(大多數節點的確使用這些默認值-請參閱本文中的詳細信息)。 如今,網絡上的大多數節點實際上都是 LND 節點(約 90%)。

0.5 BTC 就可以鎖定大部分閃電網絡流動性,瞭解兩種攻擊方法默認參數

下圖說明了如何沿着路徑執行單筆付款(攻擊者在每個路徑上重複多次,直到沒有更多的 HTLC 可用):

0.5 BTC 就可以鎖定大部分閃電網絡流動性,瞭解兩種攻擊方法路由建立和 HTLC 消除的過程

我們評估了在整個閃電網絡上大規模運行此操作的後果。

攻擊整個網絡:

當使用一種貪婪算法以選擇路線並使盡可能多的流動性癱瘓時,我們得到以下結果。 下圖顯示了我們設法癱瘓的閃電網絡當前鎖定的總容量的一部分(一次連續 3 天)。

0.5 BTC 就可以鎖定大部分閃電網絡流動性,瞭解兩種攻擊方法

在不同的時間段內可以非常有效地鎖定網絡:

0.5 BTC 就可以鎖定大部分閃電網絡流動性,瞭解兩種攻擊方法

攻擊的總成本很低。 成本由兩個主要因素組成:開通通道的成本(不可退款)和提供具有流動性的通道的成本(這筆錢仍由攻擊者掌握)。

0.5 BTC 就可以鎖定大部分閃電網絡流動性,瞭解兩種攻擊方法

我們的結果表明,攻擊者可以使用少於 0.25 BTC 的數量使閃電網絡中 650 BTC 的流動性癱瘓 3 天。

攻擊中樞:

爲了延長單個節點與網絡的連接時間,攻擊者將連接到受害節點並使它的相鄰通道癱瘓。 爲此,它會通過受害人的通道來回路徑發出多次付款請求(這在閃電網絡實現中令人驚訝地被允許)。

0.5 BTC 就可以鎖定大部分閃電網絡流動性,瞭解兩種攻擊方法

以下是一些重要節點,攻擊它們的成本爲:

0.5 BTC 就可以鎖定大部分閃電網絡流動性,瞭解兩種攻擊方法

該表中的最後一個條目涉及對屬於 LNBIG 的所有 25 個節點的隔離攻擊,這些節點持有閃電網絡中所有流動性的 47.3%。

如果要攻擊較小的節點,代價通常與它們的級別成正比(但不完全相同):

0.5 BTC 就可以鎖定大部分閃電網絡流動性,瞭解兩種攻擊方法

我們注意到該漏洞相對難以修復,因爲它涉及到鏈下支付網絡的三個基本屬性:

1. 支付是以一種無需信任的方式執行的,使用了有條件的支付合約(以與 HTLC 的交易形式),這些合約在各方之間交換,並且僅在發生爭議時才發送到區塊鏈。這些合約的規模隨着更多的有條件付款待處理而增長,因此,待處理付款的總數受到可放置在區塊鏈上的交易規模的限制。

2. 到期時間長。爲了允許節點在惡意夥伴關閉作爲待付款項一部分的通道時收回其資金,已設置 HTLC 到期時間以允許節點有足夠的時間對這種關閉提出上訴。在比特幣的閃電網絡中,由於其腳本語言的表達能力較低,HTLC 的到期時間會在路徑的整個長度上累積,直至達到 2016 個的區塊——通常需要兩個星期的時間。

3. 付款的隱私。付款通道網絡使用洋蔥路由,該路由不允許路徑上的中間節點識別付款的來源和付款地點,從而使攻擊者可以不受懲罰地採取行動。

緩解技術 :

實際上,對默認值的最新更改實際上使我們的攻擊更容易實施:LND 將其 cltv_expiry_delta 默認值從 144 個區塊更改爲 40 個區塊(2019 年 3 月 12 日),這允許在每個路徑中鏈接更多節點而不會達到 locktime_max 限制。此外,Lightning 開發人員在 2018 年阿德萊德會議上商定了 2016 (max_cltv)的最大鎖定時間以設置 BOLT 1.1 規範。這是在某些實現中使用的先前值的增加。同樣,這允許更長的路由和更長的到期延遲,這使攻擊更具破壞性,更易於執行。

強制執行快速 HTLC 解析。雖然 HTLC 的到期時間可以使節點保持安全並提供足夠的時間將事務發佈到網絡,但我們建議添加另一種超時機制。具體來說,如果 HTLC 機密沒有從一個相鄰節點足夠快地傳播,則與該節點的通道應關閉。這種機制是一種將行爲異常的對等方與網絡斷開連接的方式,以防止它們免費重複多次攻擊。

減小路線長度。我們建議降低最大允許路由長度(當前爲 20 跳)。網絡圖是高度連接的,並且跳數仍然應該足夠:網絡中節點之間的路徑平均少於 3 跳,並且網絡直徑約爲 6。

0.5 BTC 就可以鎖定大部分閃電網絡流動性,瞭解兩種攻擊方法

根據信任級別和循環迴避設置最大併發支付數是另外兩種可以稍微緩解攻擊的方法。

爲了確保網絡安全,必須進行進一步的工作。 由於攻擊依賴於支付通道中的基本機制,因此需要更多考慮。

來源鏈接:medium.com