以色列最高學府希伯來大學工程與計算機科學學院的副教授Aviv Zohar以及希伯來大學碩士研究生Jona Harris近日發布了一份研究論文《Flood&Loot:一種針對閃電網絡的系統性攻擊》。提出一種閃電網絡的系統性攻擊,攻擊者通過對閃電網絡進行系統攻擊,可竊取鎖定在支付通道中的資金。在此攻擊中,攻擊者會迫使大量受害者向區塊鏈索要資金,然后攻擊者可利用擁塞竊取在截止日期之前未領取的資金。該論文證明,只需 85 個同時被攻擊的通道就可保證攻擊者可以竊取一些資金。此外,該論文還針對此攻擊提出了幾種緩解技術。
眾所周知,閃電網絡支付通道網絡容易受到區塊鏈擁塞的影響,如果網絡受到攻擊,參與者可能無法及時提取資金。 在我們的最新論文中,我們評估了一種這樣的攻擊:對閃電網絡的系統攻擊,它可以竊取鎖定在支付通道中的資金。
在此攻擊中,攻擊者立即迫使許多受害者涌向區塊鏈,索要其資金。 然后,攻擊者可以利用他們造成的擁塞來竊取在截止日期之前未領取的所有資金。
攻擊的后果取決于攻擊者選擇攻擊的閃電網絡實現。 我們證明,攻擊者只需要同時攻擊85個通道就足以竊取通道內的資金(這是假設沒有其他區塊鏈交易爭奪區塊空間的情況下,這是一個非常樂觀的假設)。
除了從總體上了解這種攻擊及其后果外,在這篇文章中,我們還提出了幾種緩解這種攻擊的技術。
注意:攻擊可能會使無辜用戶的資金被盜。 不要在家嘗試這種攻擊。 不幸的是,目前還有任何協議更改可以將其完全消除。 本文的研究結果已在發布前與三個主要閃電網絡客戶端實施的開發人員共享。
動態 | 閃電網絡節點數量已達11476個:據1ML.com數據,閃電網絡節點數量呈持續上升趨勢。目前,支撐網絡的節點數量達到11476個,在過去的30天中上漲3.94%;通道數量為35949,在過去的30天中增長0.8%。閃電網絡承載能力目前為877.57BTC,約合911.53萬美元。[2020/2/12]
該攻擊利用了跨多個閃電通道轉發付款的機制——哈希時間鎖定合同(HTLC)。簡而言之,HTLC允許參與者通過無信任的中間節點來路由付款,以確保他們中的任何一個都不會竊取資金。如果這樣的節點試圖竊取資金,則其對等方可以通過將交易發布到區塊鏈來索取資金,但只能在有限的時間內進行。正如我們在工作中所顯示的,相對容易使無辜的閃電節點涌入區塊鏈,并利用此時間限制來竊取資金。
HTLC背后的關鍵思想是,在建立HTLC之后,通過提供一個秘密(secret)(一種哈希原像),付款被通過目標節點從路徑中的上一個節點“扯出”。攻擊者將在他自己的兩個節點之間路由付款,并在路徑的末尾提取付款。當付款最終要被從源節點提取時,他將拒絕合作——迫使受害者通過區塊鏈交易進行索要。
這個拓撲示例顯示了攻擊者的節點以及他與受害者共享的通道
動態 | 閃電網絡節點數量達11039個:據1ML.com數據顯示,閃電網絡節點數量呈持續上升趨勢。目前,支撐網絡的節點數量達到11039個,在過去的30天中上漲了2.50%,而通道數量為35748,在過去的30天中增長了2.0%。閃電網絡承載能力目前為865.55BTC,約合698.11萬美元。[2020/1/13]
該攻擊分為四個主要階段:
攻擊者控制兩個閃電節點,分別代表源節點和目標節點。 源節點打開了許多潛在受害者的通道,可能每個受害者都有多個通道。 這些通道是由攻擊者的源節點發起和提供資金的(目標節點可以遠離受害者,但在下面的圖中,我們簡化了過程,并僅顯示了一條很短的簡單路徑)。
階段1:建立通道
設置完所有通道后,源節點將開始向目的地節點進行許多HTLC付款,并通過每個源節點的通道進行路由。 源節點發送允許中繼的最大金額,并將其分配到盡可能多的付款中(受害人允許的數量)。
作為HTLC機制的一部分,目標節點應該通過發回一組HTLC秘密(secret)來接受付款。 這個攻擊將避免這樣做,直到源節點完成轉發所有付款為止。
動態 | 閃電網絡承載能力達到1076.01個BTC:據1ml.com數據顯示,當前閃電網絡的節點數量達到7819個,在過去的30天中上漲了10.78%,而通道數量為38935個,在過去的30天中上漲了21.3%。閃電網絡承載能力目前為1076.01個BTC。[2019/4/5]
階段2:使用HTLC付款加載通道
在成功完成所有付款的發送并將HTLC添加到目標節點的通道后,目標節點將通過返回所需的secret來解析所有付款,并為自己索取這些資金。 此時,目標節點可以正常關閉其通道,并保留源節點發送的資金。 一旦每個受害者獲取了這些secret,他就會將其發送回源節點,要求解析HTLC,并將其數量移至通道的受害者一側。 源節點拒絕解析付款,并忽略來自其受害者的任何進一步消息。
階段3:在最后一跳解析付款
在這個時候,每個受攻擊的通道都充滿了尚未解析的HTLC,受害者知道它們的secret。 由于攻擊者的源節點不合作,因此受害者可以獲取這些付款的唯一方法是關閉其通道并在區塊鏈上聲明HTLC。 受害者有有限的時間(以區塊為單位)來要求付款(如果節點不知道這些secret,則有時間限制,在這種情況下,資金應由源節點要求)。
一旦它們過期,HTLC的輸出就會被攻擊者花費。 盡管受害者仍然可以在到期后要求HTLC,但是特定的協議詳細信息為攻擊者提供了很大的優勢:
動態 | 閃電網絡容量兩日內增加10BTC:據btcmanager報道,統計數據顯示,閃電網絡的容量在7月8日僅為40 BTC,而7月10日則為51.72 BTC(超過3.3萬美元)。閃電網絡容量從30 BTC增至40 BTC花費了一周時間,卻僅用兩天便從40 BTC增加到超過50 BTC。閃電網絡中的節點數量為2719,其間創建了8951個通道用于傳輸比特幣。大約2000個節點擁有活動的通道,過去24小時內打開了182個新的通道。[2018/7/11]
受害人在發布交易時無法設置交易費用。 該費用是在打開通道時確定的
攻擊者可以按自己的意愿為自己的交易設置費用,并替換到期后仍未確認的任何受害者交易(使用“替換費用(Replace-By-Fee)”策略)
通過攻擊多個通道并強迫所有通道同時關閉(為所有HTLC設置相同的到期時間),某些受害者的HTLC聲明所有權交易將無法得到及時確認,攻擊者將竊取它們。
因此,攻擊者保留了一些本應留給受害者的資金(受害者下一跳的資金已發送至攻擊者的目標節點)。
階段4:到期后收集未使用的輸出
為了顯示攻擊的可行性,我們在比特幣測試網絡regnet上的本地閃電網絡上進行了模擬。 我們實施了攻擊者節點的原型,能夠阻止HTLC secret的傳輸,而忽略解析HTLC的請求,并發布增加費用的HTLC聲明所有權交易。 由于LND是當今最流行的閃電實施方案(據報道,網絡上90%以上的閃電網絡節點都運行LND),因此我們使用它來模擬受害節點。 如下圖所示,即使向受害者的交易分配了區塊中所有可用空間(最大區塊大小),攻擊85個通道也能確保成功進行攻擊。 每增加一個通道,其所有資金也將被盜。
閃電網絡主網測試版 lnd 0.4.1 Beta發布:閃電網絡實驗室官方推特發文表示,其已發布閃電網絡主網測試版 lnd 0.4.1 Beta。該版本中修復了前一版本中的BUG同時進行了優化。[2018/4/4]
針對不同數量的受攻擊通道和區塊大小,成功竊取的HTLC的數量。 比特幣當前的最大區塊大小為4M(與綠線相對應)。 實際上,閃電交易的可用空間少于全部。
如圖所示,當每個區塊中的可用空間減少時,竊取相同數量的HTLC所需要的受害者會更少。 我們證明,當攻擊者使用“聯合最小化”策略(如下所述)時,可能就是這種情況。
針對不同數量的受攻擊通道和塊大小,成功竊取的HTLC的數量。比特幣當前的最大塊重為4M(與綠線相對應)。實際上,閃電交易的可用空間少于全部
如圖所示,當每個區塊中的可用空間減少時,需要更少的受害者才能竊取相同數量的HTLC。我們證明,當攻擊者使用“feerate-minimization(費率最小化)”策略(如下所述)時,可能就是這種情況。
每個受害者交易所支付的費用均來自通道的Feerate參數。這個feerate由通道的發起者(在我們的情況下為攻擊者的源節點)確定并支付。在打開通道之前,另一個節點必須接受通道設置的feerate。如果節點符合其對區塊鏈費用的估計,則節點同意設置一個feerate,由bitcoind的估算方法確定。從下圖可以看出,feerate的估算值可能會在相對較短的時間內發生很大的波動。當單方面關閉該通道時,在某個時間點確定的通道feerate可能不適用于以后的時間。
Bitcoind估算的用于立即確認的Feerate(聰/字節)
除了設置初始通道feerate之外,通道的發起人還可以在通道開放后的任何時間提出新的feerate,以將其調整為當前的區塊鏈費用狀態。閃電協議指出,在我們的情況下,另一方(即受害者)不允許提出任何feerate的更新請求。在“feerate-minimization”策略中,攻擊者在可能的情況下(即,在區塊鏈費用較低時(因此另一方會同意這一更改))使用費用更新機制降低通道的feerate,但從在區塊鏈費用高時進行更新。一旦通道的費用率與實際的區塊鏈費用率之間的差異變得很大,攻擊者就可以開始啟動所有HTLC付款并發起攻擊。在下圖中,我們看到了當攻擊者持續3天和7天使用feerate-minimization策略時,受害者可用的平均區塊空間。例如,當攻擊者試圖在開始攻擊前7天將費用降到最低時,受害人只有58%的時間可以使用平均一半的區塊空間,或者更多(在2個月的時間內收集數據)
當使用“feerate-minimization”策略時,受害者交易可用的平均區塊空間
在這項工作中,我們還表明,找到潛在受害者對于攻擊者來說并不是一件工作量很大的事情。 為了使節點成為攻擊的受害者,節點只需要接受與攻擊者打開通道的請求。 如閃電協議中所述,節點可以通過響應“ accept_channel”消息來顯示其打開通道的意愿,這時候并不需要真的打開通道。 我們進行了一項實驗,其中測試了網絡上許多節點與未知節點打開一個通道的意愿。 我們發現絕大多數活動節點(?95%)愿意根據這個請求打開通道,因此很容易成為這種攻擊的受害者。
節點對“ open_channel”請求的響應
對于這種攻擊,多種技術可以使攻擊者的難度加大,并降低攻擊的潛在危害。以下是我們提出的一些緩解技術。
1)減少未解析的HTLC的最大數量:攻擊者可以通過被攻擊通道進行路由的最大付款次數由通道的參數“ max_accepted_htlcs”確定。如果該參數的值保持較低,則攻擊者將不得不攻擊更多的通道才能成功竊取資金。
2)提前關閉通道:受害人要求其資金的時間(區塊)由特定于實現的參數確定。大多數閃電網絡實施所使用的值要比它們可能使用的值小得多(以避免過早關閉通道)。可以基于通道的當前狀態,例如,未解析的HTLC的數量或總的未解析的值,增加該參數一個恒定因子或者甚至動態地設置。
3)立即釋放HTLC聲明所有權交易:某些實現在釋放HTLC交易以聲明其輸出之前一直等到確認其已發布的commitment。 節點可以并且應該立即與這個commitment一起釋放這些交易,以允許更多交易可以進入的潛在區塊。
4)基于信譽的行為:通道的參數會極大地影響成功攻擊的可能性。 根據某些策略,節點可以為與為其分配了“良好信譽”的當事方的通道使用更多的許可參數。
盡管有不同的緩解措施可以降低攻擊的風險,但是完全消除風險似乎是一項復雜的任務。 我們認為,在許多方面,所利用的漏洞是HTLC工作方式所固有的,因此,如果不對HTLC機制進行重大修改,就無法完全避免攻擊。
Tags:TLCERARATEERMTLC幣tera幣牛幣Croatian Football Federation TokenGEERT價格
本文由金色財經記者Maxwell、7月6日首發于金色財經網站。最近DeFi熱度很高,USDT、USDC地址被凍結引起了廣泛熱議,那么作為DeFi抵押品的穩定幣,是否還值得我們信任呢?文章中進行了.
1900/1/1 0:00:00藍狐筆記在上個月關注過Balancer,它相當于通用版本的Uniswap,它跟Uniswap的主要區別除了可以自定義流動性池的代幣比例之外,還有一個很大的區別就是擁有治理代幣BAL.
1900/1/1 0:00:00如果要用一個詞來形容6月份的DeFi市場,當屬“激流勇進”。在剛過去的這一個月里,加密世界見證了Compound借款總量單月增長1869%;經歷了USDT流通市值首次突破100億美元;看到了總鎖.
1900/1/1 0:00:00從6月15日Compound推出其治理代幣COMP的流動性挖礦以來,不到一個月,流動性挖礦成為加密圈最熱話題,且越來越多的項目正在推出各自的流動性挖礦,那么.
1900/1/1 0:00:00據報道,英國加密貨幣交易所Cashaa被黑客竊取了超過336個比特幣。Cashaa已停止了所有加密貨幣交易,但是,初步看來用戶并未受到此次黑客攻擊的影響.
1900/1/1 0:00:00比特大陸昨天發生了什么?消停了一會,又出現新情況。7月6日晚間詹克團方面控制的比特大陸公眾號、微博發文,稱更換了收款賬戶、網址與郵箱.
1900/1/1 0:00:00