寫在前面:康奈爾大學以及IC3組織的的研究人員宣布,他們發現了一種針對中本聰共識協議區塊鏈的拒絕服務攻擊,并稱之為BDoS,這種攻擊遠比此前的DoS攻擊要便宜得多(只需20%的算力)。研究者展示了攻擊者如何誘導理性礦工停止挖礦,并提出了一個緩解措施。
這一研究也引起了加密社區的關注,以太坊創始人vitalik對其表示了認可,獨立區塊鏈安全審計員Sergio Demian Lerner則表示這一研究是有趣的,他提到RSK可以提供額外的激勵以減少礦工問題(RSK相當于提供了叔塊獎勵),因此不受此攻擊的影響。
原論文作者:Michael Mirkin, Yan Ji, Jonathan Pang, Ariah Klages-Mundt, Ittay Eyal(自私挖礦提出者), Ari Juels (康奈爾大學計算機學教授)
以下是簡化版博文譯文:
自互聯網誕生以來,拒絕服務(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攻擊。如果沒有更有力的緩解措施,中本聰共識區塊鏈的活躍性,就取決于礦工在收入損失的情況下是否愿意遵守協議,即利他主義。
責任編輯;zl
評論
查看更多