攻擊比特幣只需20%算力?自私挖礦作者提出新BDoS方案引發爭論

買賣虛擬貨幣

康奈爾大學以及IC3組織的的研究人員宣佈,他們發現了一種針對中本聰共識協議區塊鏈的拒絕服務攻擊,並稱之為BDoS,這種攻擊遠比此前的DoS攻擊要便宜得多(只需20%的算力)。研究者展示了攻擊者如何誘導理性礦工停止挖礦,並提出了一個緩解措施。

這一研究也引起了加密社羣的關注,以太坊創始人vitalik對其表示了認可,獨立區塊鏈安全審計員Sergio Demian Lerner則表示這一研究是有趣的,他提到RSK可以提供額外的激勵以減少礦工問題(RSK相當於提供了叔塊獎勵),因此不受此攻擊的影響。

自網際網路誕生以來,拒絕服務(DoS)攻擊一直是個讓人頭疼的問題。DoS攻擊者以各種服務為目標,旨在獲取樂趣和利潤。最常見的情況是,他們會向伺服器傳送大量的請求,這些請求會導致伺服器太忙,以至於無法為正常使用者提供服務。

而應對措施通常是透過識別洪泛源來防止這類攻擊。因此,在所謂的分散式拒絕服務(DDoS)攻擊中,攻擊者必須協調來自多臺計算機的洪泛(Flooding)。

有趣的事實:分散式源通常是普通使用者們的機器,它們形成了機器人網路或殭屍網路。

而比特幣等加密貨幣,則是DoS攻擊一個特別有利可圖的目標。理論上,期貨市場和保證金交易允許攻擊者做空一種加密貨幣,透過壓低該貨幣的價格來獲取利潤。而競爭加密貨幣,以及擔心加密貨幣對金融主權影響的政府,則是其他潛在的攻擊者。

然而,據我們所知,在實際操作中,並沒有人對重要的加密貨幣進行過成功的拒絕服務攻擊。

原因就是區塊鏈協議的去中心化特性。在區塊鏈中,並沒有可攻擊的中心伺服器。操作區塊鏈的機器被稱為礦機,它們會完全複製區塊鏈資料。雖然對個別機器的攻擊是已知發生過的,但幾臺機器的完全關閉(甚至是控制),對整個系統的可用性而言幾乎沒有什麼影響。

更有趣的事實:比特幣的點對點網路是為了抵禦攻擊而構建的,它吸取了殭屍網路的教訓。

事實上,已知針對比特幣這類區塊鏈的DoS攻擊是非常昂貴的。中本聰提出的比特幣協議依靠工作量證明機制(PoW)來保證安全,礦工只有證明他們在系統外花費了資源(即計算能力)才能建立區塊。只有當系統中的大部分計算能力表現適當時,才能維護區塊鏈的安全。因此,攻擊者要進行DoS攻擊,其擁有的計算能力就要比其他參與者的總和都要高,即51%攻擊。對於主要的加密貨幣來說,51%攻擊對於大多數實體而言都是非常昂貴的。

這類攻擊在2018年底Bitcoin ABC和Bitcoin SV之間的“雜湊戰爭”中有過嘗試,但成功是有限的。

BDoS的提出

我們發現,中本聰協議的固有特性,會使其暴露在明顯更便宜的DoS攻擊當中,我們利用了區塊鏈協議依賴於安全激勵的事實。在區塊鏈中,參與者(礦工)因參與加密貨幣挖礦而獲得獎勵。當這些激勵措施不再促進良好行為時,這個體系就會處於危險之中。我們將這種攻擊稱為區塊鏈DoS(BDoS),它利用了礦工的理性,使得他們違反規則要比遵循規則更有利可圖。

為了充分發揮效力,攻擊者需要讓礦工們意識到這種攻擊,以及意識到這種行為會增加他們的利潤。而這種策略行為顯然沒有在挖礦軟體中預先程式設計。因此,我們認為,這種攻擊並不會帶來迫在眉睫的風險,因為礦工們在面對攻擊時,必須重新規劃挖礦裝置以最大化其利潤。

這種攻擊的存在,也許並不令人驚訝,它確實是Bryan Ford和Rainer Böhme提出的理論的一種表現,他們認為,從理性主體的角度分析系統的效用是有限的,因為外在的激勵是無法與拜占庭行為進行區分的。

下面我們將概述這種BDoS攻擊的機制。但首先,對於不熟悉中本聰大陸的人們來說,讓我們先從背景開始講起。

背景

絕大多數加密貨幣都在使用中本聰為比特幣提出的區塊鏈協議。在中本聰共識區塊鏈中,系統中的所有交易都放在區塊當中,並形成一個不斷增長的資料鏈。礦工們透過新交易組成的新區塊來擴充套件這條鏈,並將其釋出給所有其他系統參與者。區塊生產的速度,是透過要求礦工在他們的區塊中包含工作量證明(密碼難題的解決方案)來調節的。(而沒有PoW的區塊在定義上是無效的)為了補償礦工們的努力,生產區塊就會伴隨一些固定的獎勵(例如,當前比特幣的固定區塊獎勵是12.5 BTC)。如果礦工誠實挖礦,那麼他們就會被激勵來延長區塊鏈,並獲得相應的獎勵。

由於礦工遍佈全球,偶爾會有兩個或更多的礦工同時生產區塊,而這些區塊有相同的父塊,這導致的結果就是分叉,也就是鏈出現了多個分支。而要確定哪條鏈是主鏈,中本聰提出的規則是:最長鏈就是主鏈,所有礦工都應該延長這個最長鏈,而與主鏈分離的區塊以及它們的回報都會被忽略。

為了避免失去獎勵,礦工們一旦在最新區塊的header中接收到它的後設資料,它們就開始對它進行挖礦。這樣就避免了在舊區塊上浪費挖礦資源,增加了挖取下一個區塊的機會。這通常不是好的做法,並引起了很多安全研究者的關注。在輕量級客戶端使用簡化支付驗證(SPV)協議進行部分割槽塊鏈驗證之後,這種基於區塊頭的挖礦方法便被應用了,並被稱為SPV挖礦。

攻擊

我們提出的BDoS攻擊,透過操縱對理性礦工的獎勵,從而可使區塊鏈停止執行。

攻擊者會使系統處於一種狀態,在這種狀態下,理性礦工的最佳行動就是停止挖礦。

為了誘導這種狀態和相應的證明,攻擊者生成一個區塊,並只發布其區塊頭。而給定一個區塊頭,一個理性的礦工有三種可能的行動:

其可以延長主鏈,然後忽略區塊頭;

其可以擴充套件這個區塊頭(SPV挖礦);

其可以停止挖礦,既不消耗算力,也不贏得獎勵;

如果理性礦工遵循選項1並擴充套件主鏈,找到並廣播一個新的區塊,那麼攻擊者礦工將使用其相對較高的連線性(如自私挖礦)並傳播與區塊頭BA相對應的完整區塊。這會導致兩組礦工之間的競爭,其中一組先接收到攻擊者的區塊資料,另一組則先接收到理性礦工的區塊。

在一定概率下,理性礦工會輸掉比賽,區塊Bi永遠不會被包含在主鏈當中。與“無攻擊”情況相比,這會降低在最後一個完整區塊上挖礦的預期回報。

如果理性礦工遵循選項2併成功地擴充套件了攻擊者的區塊頭BA,則攻擊者就不會發布完整的區塊BA。這導致理性礦工的區塊永遠不會包含在主鏈當中,從而導致該區塊的預期回報為零。

因此,如果“無攻擊”設定中的原始盈利能力不是太高,在這兩種情況下,攻擊者都可以確保誠實的礦工最終會賠錢。因此,BDoS攻擊者的威脅,意味著誠實礦工最好是放棄,而不是選擇挖礦,即選擇第三個方案。正如電影《戰爭遊戲》中所說的那樣,“唯一能贏的途徑,就是不參與。”

BDoS攻擊在什麼樣的條件下能成功

我們現在解釋BDoS攻擊者的成功條件是什麼。具體來說,我們考慮對於特定的理性礦工i,無論其他參與者的行為如何,其停止挖礦要比繼續挖礦更有利可圖。答案取決於三個因素:首先,如果攻擊者持有的算力足夠多,那麼攻擊將成功;其次,如果礦工i的算力足夠少,那麼他將成功;最後,如果礦工i一開始利潤不高,那麼他將成功;

礦工i的盈利因素是,如果沒有發生攻擊,其在挖礦作業投入的每一美元投資的回報。

下面的圖片顯示,對於不同攻擊者大小(X軸)和礦工大小(不同曲線)的成功攻擊的最大收益率。

在我們的分析中,我們使用了一個稱為收益因子的屬性,它代表每美元投資的回報。這取決於挖礦裝置以及電力成本,以及相關加密貨幣的價格。

舉個具體的例子,如果最大的礦工持有著全網算力的20%,那麼一個擁有全網20%算力的攻擊者,就可以激勵所有的礦工在其盈利係數低於1.37時停止挖礦。

目前,對於比特幣而言,在電價為0.05美元/千瓦時的情況下,位元大陸S17 Pro礦機的收益因子接近2,而S9 的收益因子接近1。如果幣價大幅下降,攻擊者將能夠激勵現有的礦工停止挖礦,導致比特幣網路完全停止執行。

此外,比特幣區塊獎勵預計將在2020年減半,這相應會降低礦工的盈利能力。

兩種幣模型

請注意,我們的模型是保守的,在某種意義上低估了攻擊者的機會。到目前為止,我們假設一個礦工在利潤為0的情況下可以繼續挖礦或停止挖礦。然而,加密貨幣礦工通常會將挖礦工作轉移到第二種加密貨幣上,甚至是暫時性的。如果兩種幣的初始盈利能力(在攻擊前)是相似的,那麼在攻擊發生時,切換到另一種幣上,幾乎就是能盈利的。這意味著在這種情況下,我們稱之為兩種幣模型的攻擊威脅,甚至要比我們上面分析所顯示的還要高。事實上,兩種幣模型更符合現實場景。例如,有證據表明,礦工們經常會在BTC和BCH之間進行轉換工作,這取決於盈利率。

緩解措施以及披露責任

我們沒有租用挖礦裝置來進行攻擊,也沒有做空比特幣然後跑去躲避,而是遵循安全研究的最佳做法,這經歷了一段負責任的披露期。我們向受影響的主要加密貨幣的開發人員發出了攻擊警報,並討論了緩解措施。

我們建議對共識規則進行一個小的修改,這樣礦工們就可以對區塊header在body在之前某個閾值時間(比如1分鐘)以上的區塊給予較低的優先順序。

這將增加攻擊者輸掉區塊傳播競賽的機會,因此可降低BDoS攻擊的有效性。

不幸的是,這一對策並不是根本性的。正如我們在論文中所解釋的,攻擊者可以使用智慧合約或零知識(ZK)證明來證明其找到了一個區塊(而不是釋出區塊頭)。使用這些技術,就會使得區塊傳播競賽中的攻擊者區塊與理性礦工區塊之間無法被區分,從而使緩解技術無效。

BDoS攻擊的另一個可能解決方案,是使用叔塊獎勵機制,正如以太坊採用的方案。叔塊獎勵機制將獎勵挖到非主鏈(但與主鏈直接相連)區塊的礦工。如果使用了叔塊獎勵機制,理性的礦工在BDoS攻擊中停止挖礦的的機會要低得多,因為即使其輸掉了比賽,它也會得到獎勵(相當於以太坊完整區塊獎勵的7/8)。不過,這是一個折衷方案,因為叔塊會降低抵禦自私挖礦攻擊的安全性。

結論

BDoS對中本聰共識區塊鏈而言是一種威脅,因為它允許攻擊者使用遠低於之前攻擊的算力執行拒絕服務攻擊。我們已經展示了攻擊者如何扭曲激勵機制,並引導追求利潤的礦工停止挖礦活動。我們提出的緩解措施很容易實施(不需要網路分叉),但只會影響特定的BDoS攻擊。如果沒有更有力的緩解措施,中本聰共識區塊鏈的活躍性,就取決於礦工在收入損失的情況下是否願意遵守協議,即利他主義。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;