寫在前面:康奈爾大學(xué)以及IC3組織的的研究人員宣布,他們發(fā)現(xiàn)了一種針對(duì)中本聰共識(shí)協(xié)議區(qū)塊鏈的拒絕服務(wù)攻擊,并稱之為BDoS,這種攻擊遠(yuǎn)比此前的DoS攻擊要便宜得多(只需20%的算力)。研究者展示了攻擊者如何誘導(dǎo)理性礦工停止挖礦,并提出了一個(gè)緩解措施。
這一研究也引起了加密社區(qū)的關(guān)注,以太坊創(chuàng)始人vitalik對(duì)其表示了認(rèn)可,獨(dú)立區(qū)塊鏈安全審計(jì)員Sergio Demian Lerner則表示這一研究是有趣的,他提到RSK可以提供額外的激勵(lì)以減少礦工問(wèn)題(RSK相當(dāng)于提供了叔塊獎(jiǎng)勵(lì)),因此不受此攻擊的影響。
原論文作者:Michael Mirkin, Yan Ji, Jonathan Pang, Ariah Klages-Mundt, Ittay Eyal(自私挖礦提出者), Ari Juels (康奈爾大學(xué)計(jì)算機(jī)學(xué)教授)
以下是簡(jiǎn)化版博文譯文:
自互聯(lián)網(wǎng)誕生以來(lái),拒絕服務(wù)(DoS)攻擊一直是個(gè)讓人頭疼的問(wèn)題。DoS攻擊者以各種服務(wù)為目標(biāo),旨在獲取樂(lè)趣和利潤(rùn)。最常見(jiàn)的情況是,他們會(huì)向服務(wù)器發(fā)送大量的請(qǐng)求,這些請(qǐng)求會(huì)導(dǎo)致服務(wù)器太忙,以至于無(wú)法為正常用戶提供服務(wù)。
而應(yīng)對(duì)措施通常是通過(guò)識(shí)別洪泛源來(lái)防止這類攻擊。因此,在所謂的分布式拒絕服務(wù)(DDoS)攻擊中,攻擊者必須協(xié)調(diào)來(lái)自多臺(tái)計(jì)算機(jī)的洪泛(Flooding)。
有趣的事實(shí):分布式源通常是普通用戶們的機(jī)器,它們形成了機(jī)器人網(wǎng)絡(luò)或僵尸網(wǎng)絡(luò)。
而比特幣等加密貨幣,則是DoS攻擊一個(gè)特別有利可圖的目標(biāo)。理論上,期貨市場(chǎng)和保證金交易允許攻擊者做空一種加密貨幣,通過(guò)壓低該貨幣的價(jià)格來(lái)獲取利潤(rùn)。而競(jìng)爭(zhēng)加密貨幣,以及擔(dān)心加密貨幣對(duì)金融主權(quán)影響的政府,則是其他潛在的攻擊者。
然而,據(jù)我們所知,在實(shí)際操作中,并沒(méi)有人對(duì)重要的加密貨幣進(jìn)行過(guò)成功的拒絕服務(wù)攻擊。
原因就是區(qū)塊鏈協(xié)議的去中心化特性。在區(qū)塊鏈中,并沒(méi)有可攻擊的中心服務(wù)器。操作區(qū)塊鏈的機(jī)器被稱為礦機(jī),它們會(huì)完全復(fù)制區(qū)塊鏈數(shù)據(jù)。雖然對(duì)個(gè)別機(jī)器的攻擊是已知發(fā)生過(guò)的,但幾臺(tái)機(jī)器的完全關(guān)閉(甚至是控制),對(duì)整個(gè)系統(tǒng)的可用性而言幾乎沒(méi)有什么影響。
更有趣的事實(shí):比特幣的點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)是為了抵御攻擊而構(gòu)建的,它吸取了僵尸網(wǎng)絡(luò)的教訓(xùn)。
事實(shí)上,已知針對(duì)比特幣這類區(qū)塊鏈的DoS攻擊是非常昂貴的。中本聰提出的比特幣協(xié)議依靠工作量證明機(jī)制(PoW)來(lái)保證安全,礦工只有證明他們?cè)谙到y(tǒng)外花費(fèi)了資源(即計(jì)算能力)才能創(chuàng)建區(qū)塊。只有當(dāng)系統(tǒng)中的大部分計(jì)算能力表現(xiàn)適當(dāng)時(shí),才能維護(hù)區(qū)塊鏈的安全。因此,攻擊者要進(jìn)行DoS攻擊,其擁有的計(jì)算能力就要比其他參與者的總和都要高,即51%攻擊。對(duì)于主要的加密貨幣來(lái)說(shuō),51%攻擊對(duì)于大多數(shù)實(shí)體而言都是非常昂貴的。
這類攻擊在2018年底Bitcoin ABC和Bitcoin SV之間的“哈希戰(zhàn)爭(zhēng)”中有過(guò)嘗試,但成功是有限的。
BDoS的提出
我們發(fā)現(xiàn),中本聰協(xié)議的固有特性,會(huì)使其暴露在明顯更便宜的DoS攻擊當(dāng)中,我們利用了區(qū)塊鏈協(xié)議依賴于安全激勵(lì)的事實(shí)。在區(qū)塊鏈中,參與者(礦工)因參與加密貨幣挖礦而獲得獎(jiǎng)勵(lì)。當(dāng)這些激勵(lì)措施不再促進(jìn)良好行為時(shí),這個(gè)體系就會(huì)處于危險(xiǎn)之中。我們將這種攻擊稱為區(qū)塊鏈DoS(BDoS),它利用了礦工的理性,使得他們違反規(guī)則要比遵循規(guī)則更有利可圖。
為了充分發(fā)揮效力,攻擊者需要讓礦工們意識(shí)到這種攻擊,以及意識(shí)到這種行為會(huì)增加他們的利潤(rùn)。而這種策略行為顯然沒(méi)有在挖礦軟件中預(yù)先編程。因此,我們認(rèn)為,這種攻擊并不會(huì)帶來(lái)迫在眉睫的風(fēng)險(xiǎn),因?yàn)榈V工們?cè)诿鎸?duì)攻擊時(shí),必須重新規(guī)劃挖礦設(shè)備以最大化其利潤(rùn)。
這種攻擊的存在,也許并不令人驚訝,它確實(shí)是Bryan Ford和Rainer B?hme提出的理論的一種表現(xiàn),他們認(rèn)為,從理性主體的角度分析系統(tǒng)的效用是有限的,因?yàn)橥庠诘募?lì)是無(wú)法與拜占庭行為進(jìn)行區(qū)分的。
下面我們將概述這種BDoS攻擊的機(jī)制。但首先,對(duì)于不熟悉中本聰大陸的人們來(lái)說(shuō),讓我們先從背景開(kāi)始講起。
背景
絕大多數(shù)加密貨幣都在使用中本聰為比特幣提出的區(qū)塊鏈協(xié)議。在中本聰共識(shí)區(qū)塊鏈中,系統(tǒng)中的所有交易都放在區(qū)塊當(dāng)中,并形成一個(gè)不斷增長(zhǎng)的數(shù)據(jù)鏈。礦工們通過(guò)新交易組成的新區(qū)塊來(lái)擴(kuò)展這條鏈,并將其發(fā)布給所有其他系統(tǒng)參與者。區(qū)塊生產(chǎn)的速度,是通過(guò)要求礦工在他們的區(qū)塊中包含工作量證明(密碼難題的解決方案)來(lái)調(diào)節(jié)的。(而沒(méi)有PoW的區(qū)塊在定義上是無(wú)效的)為了補(bǔ)償?shù)V工們的努力,生產(chǎn)區(qū)塊就會(huì)伴隨一些固定的獎(jiǎng)勵(lì)(例如,當(dāng)前比特幣的固定區(qū)塊獎(jiǎng)勵(lì)是12.5 BTC)。如果礦工誠(chéng)實(shí)挖礦,那么他們就會(huì)被激勵(lì)來(lái)延長(zhǎng)區(qū)塊鏈,并獲得相應(yīng)的獎(jiǎng)勵(lì)。
由于礦工遍布全球,偶爾會(huì)有兩個(gè)或更多的礦工同時(shí)生產(chǎn)區(qū)塊,而這些區(qū)塊有相同的父塊,這導(dǎo)致的結(jié)果就是分叉,也就是鏈出現(xiàn)了多個(gè)分支。而要確定哪條鏈?zhǔn)侵麈?,中本聰提出的?guī)則是:最長(zhǎng)鏈就是主鏈,所有礦工都應(yīng)該延長(zhǎng)這個(gè)最長(zhǎng)鏈,而與主鏈分離的區(qū)塊以及它們的回報(bào)都會(huì)被忽略。
為了避免失去獎(jiǎng)勵(lì),礦工們一旦在最新區(qū)塊的header中接收到它的元數(shù)據(jù),它們就開(kāi)始對(duì)它進(jìn)行挖礦。這樣就避免了在舊區(qū)塊上浪費(fèi)挖礦資源,增加了挖取下一個(gè)區(qū)塊的機(jī)會(huì)。這通常不是好的做法,并引起了很多安全研究者的關(guān)注。在輕量級(jí)客戶端使用簡(jiǎn)化支付驗(yàn)證(SPV)協(xié)議進(jìn)行部分區(qū)塊鏈驗(yàn)證之后,這種基于區(qū)塊頭的挖礦方法便被應(yīng)用了,并被稱為SPV挖礦。
攻擊
我們提出的BDoS攻擊,通過(guò)操縱對(duì)理性礦工的獎(jiǎng)勵(lì),從而可使區(qū)塊鏈停止運(yùn)行。
攻擊者會(huì)使系統(tǒng)處于一種狀態(tài),在這種狀態(tài)下,理性礦工的最佳行動(dòng)就是停止挖礦。
為了誘導(dǎo)這種狀態(tài)和相應(yīng)的證明,攻擊者生成一個(gè)區(qū)塊,并只發(fā)布其區(qū)塊頭。而給定一個(gè)區(qū)塊頭,一個(gè)理性的礦工有三種可能的行動(dòng):
其可以延長(zhǎng)主鏈,然后忽略區(qū)塊頭;
其可以擴(kuò)展這個(gè)區(qū)塊頭(SPV挖礦);
其可以停止挖礦,既不消耗算力,也不贏得獎(jiǎng)勵(lì);
如果理性礦工遵循選項(xiàng)1并擴(kuò)展主鏈,找到并廣播一個(gè)新的區(qū)塊,那么攻擊者礦工將使用其相對(duì)較高的連接性(如自私挖礦)并傳播與區(qū)塊頭BA相對(duì)應(yīng)的完整區(qū)塊。這會(huì)導(dǎo)致兩組礦工之間的競(jìng)爭(zhēng),其中一組先接收到攻擊者的區(qū)塊數(shù)據(jù),另一組則先接收到理性礦工的區(qū)塊。
在一定概率下,理性礦工會(huì)輸?shù)舯荣?,區(qū)塊Bi永遠(yuǎn)不會(huì)被包含在主鏈當(dāng)中。與“無(wú)攻擊”情況相比,這會(huì)降低在最后一個(gè)完整區(qū)塊上挖礦的預(yù)期回報(bào)。
如果理性礦工遵循選項(xiàng)2并成功地?cái)U(kuò)展了攻擊者的區(qū)塊頭BA,則攻擊者就不會(huì)發(fā)布完整的區(qū)塊BA。這導(dǎo)致理性礦工的區(qū)塊永遠(yuǎn)不會(huì)包含在主鏈當(dāng)中,從而導(dǎo)致該區(qū)塊的預(yù)期回報(bào)為零。
因此,如果“無(wú)攻擊”設(shè)置中的原始盈利能力不是太高,在這兩種情況下,攻擊者都可以確保誠(chéng)實(shí)的礦工最終會(huì)賠錢。因此,BDoS攻擊者的威脅,意味著誠(chéng)實(shí)礦工最好是放棄,而不是選擇挖礦,即選擇第三個(gè)方案。正如電影《戰(zhàn)爭(zhēng)游戲》中所說(shuō)的那樣,“唯一能贏的途徑,就是不參與?!?/p>
BDoS攻擊在什么樣的條件下能成功
我們現(xiàn)在解釋BDoS攻擊者的成功條件是什么。具體來(lái)說(shuō),我們考慮對(duì)于特定的理性礦工i,無(wú)論其他參與者的行為如何,其停止挖礦要比繼續(xù)挖礦更有利可圖。答案取決于三個(gè)因素:首先,如果攻擊者持有的算力足夠多,那么攻擊將成功;其次,如果礦工i的算力足夠少,那么他將成功;最后,如果礦工i一開(kāi)始利潤(rùn)不高,那么他將成功;
礦工i的盈利因素是,如果沒(méi)有發(fā)生攻擊,其在挖礦作業(yè)投入的每一美元投資的回報(bào)。
下面的圖片顯示,對(duì)于不同攻擊者大?。╔軸)和礦工大小(不同曲線)的成功攻擊的最大收益率。
在我們的分析中,我們使用了一個(gè)稱為收益因子的屬性,它代表每美元投資的回報(bào)。這取決于挖礦設(shè)備以及電力成本,以及相關(guān)加密貨幣的價(jià)格。
舉個(gè)具體的例子,如果最大的礦工持有著全網(wǎng)算力的20%,那么一個(gè)擁有全網(wǎng)20%算力的攻擊者,就可以激勵(lì)所有的礦工在其盈利系數(shù)低于1.37時(shí)停止挖礦。
目前,對(duì)于比特幣而言,在電價(jià)為0.05美元/千瓦時(shí)的情況下,比特大陸S17 Pro礦機(jī)的收益因子接近2,而S9 的收益因子接近1。如果幣價(jià)大幅下降,攻擊者將能夠激勵(lì)現(xiàn)有的礦工停止挖礦,導(dǎo)致比特幣網(wǎng)絡(luò)完全停止運(yùn)行。
此外,比特幣區(qū)塊獎(jiǎng)勵(lì)預(yù)計(jì)將在2020年減半,這相應(yīng)會(huì)降低礦工的盈利能力。
兩種幣模型
請(qǐng)注意,我們的模型是保守的,在某種意義上低估了攻擊者的機(jī)會(huì)。到目前為止,我們假設(shè)一個(gè)礦工在利潤(rùn)為0的情況下可以繼續(xù)挖礦或停止挖礦。然而,加密貨幣礦工通常會(huì)將挖礦工作轉(zhuǎn)移到第二種加密貨幣上,甚至是暫時(shí)性的。如果兩種幣的初始盈利能力(在攻擊前)是相似的,那么在攻擊發(fā)生時(shí),切換到另一種幣上,幾乎就是能盈利的。這意味著在這種情況下,我們稱之為兩種幣模型的攻擊威脅,甚至要比我們上面分析所顯示的還要高。事實(shí)上,兩種幣模型更符合現(xiàn)實(shí)場(chǎng)景。例如,有證據(jù)表明,礦工們經(jīng)常會(huì)在BTC和BCH之間進(jìn)行轉(zhuǎn)換工作,這取決于盈利率。
緩解措施以及披露責(zé)任
我們沒(méi)有租用挖礦設(shè)備來(lái)進(jìn)行攻擊,也沒(méi)有做空比特幣然后跑去躲避,而是遵循安全研究的最佳做法,這經(jīng)歷了一段負(fù)責(zé)任的披露期。我們向受影響的主要加密貨幣的開(kāi)發(fā)人員發(fā)出了攻擊警報(bào),并討論了緩解措施。
我們建議對(duì)共識(shí)規(guī)則進(jìn)行一個(gè)小的修改,這樣礦工們就可以對(duì)區(qū)塊header在body在之前某個(gè)閾值時(shí)間(比如1分鐘)以上的區(qū)塊給予較低的優(yōu)先級(jí)。
這將增加攻擊者輸?shù)魠^(qū)塊傳播競(jìng)賽的機(jī)會(huì),因此可降低BDoS攻擊的有效性。
不幸的是,這一對(duì)策并不是根本性的。正如我們?cè)谡撐闹兴忉尩模粽呖梢允褂?a href="http://www.1cnz.cn/v/" target="_blank">智能合約或零知識(shí)(ZK)證明來(lái)證明其找到了一個(gè)區(qū)塊(而不是發(fā)布區(qū)塊頭)。使用這些技術(shù),就會(huì)使得區(qū)塊傳播競(jìng)賽中的攻擊者區(qū)塊與理性礦工區(qū)塊之間無(wú)法被區(qū)分,從而使緩解技術(shù)無(wú)效。
BDoS攻擊的另一個(gè)可能解決方案,是使用叔塊獎(jiǎng)勵(lì)機(jī)制,正如以太坊采用的方案。叔塊獎(jiǎng)勵(lì)機(jī)制將獎(jiǎng)勵(lì)挖到非主鏈(但與主鏈直接相連)區(qū)塊的礦工。如果使用了叔塊獎(jiǎng)勵(lì)機(jī)制,理性的礦工在BDoS攻擊中停止挖礦的的機(jī)會(huì)要低得多,因?yàn)榧词蛊漭數(shù)袅吮荣?,它也?huì)得到獎(jiǎng)勵(lì)(相當(dāng)于以太坊完整區(qū)塊獎(jiǎng)勵(lì)的7/8)。不過(guò),這是一個(gè)折衷方案,因?yàn)槭鍓K會(huì)降低抵御自私挖礦攻擊的安全性。
結(jié)論
BDoS對(duì)中本聰共識(shí)區(qū)塊鏈而言是一種威脅,因?yàn)樗试S攻擊者使用遠(yuǎn)低于之前攻擊的算力執(zhí)行拒絕服務(wù)攻擊。我們已經(jīng)展示了攻擊者如何扭曲激勵(lì)機(jī)制,并引導(dǎo)追求利潤(rùn)的礦工停止挖礦活動(dòng)。我們提出的緩解措施很容易實(shí)施(不需要網(wǎng)絡(luò)分叉),但只會(huì)影響特定的BDoS攻擊。如果沒(méi)有更有力的緩解措施,中本聰共識(shí)區(qū)塊鏈的活躍性,就取決于礦工在收入損失的情況下是否愿意遵守協(xié)議,即利他主義。
責(zé)任編輯;zl
評(píng)論
查看更多