為了避免失去獎勵,礦工們一旦在最新區塊的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攻擊。如果沒有更有力的緩解措施,中本聰共識區塊鏈的活躍性,就取決於礦工在收入損失的情況下是否願意遵守協議,即利他主義。
全部的細節都在我們的當中。
感謝IC3社羣經理Sarah Allen在我們撰寫這篇部落格文章時提供的幫助。