共識(shí)是分布式計(jì)算的一個(gè)基本問題。雖然大家都知道這個(gè)問題是無法解決的,但現(xiàn)有的協(xié)議是為了在各種假設(shè)下解決共識(shí)意見。今天,隨著區(qū)塊鏈的出現(xiàn),各種共識(shí)實(shí)現(xiàn)被提出,以使副本就更新分布式賬本的交易順序達(dá)成協(xié)議。然而,很少有工作致力于評(píng)估他們的安全水平。因此,現(xiàn)有協(xié)議有時(shí)會(huì)被誤解,而且通常不清楚在執(zhí)行過程中出現(xiàn)的問題是由于實(shí)現(xiàn)錯(cuò)誤還是更基本的設(shè)計(jì)問題。
比特幣(Bitcoin)和以太坊(以太坊)等工作驗(yàn)證區(qū)塊鏈在理論上和實(shí)踐上都已被證明容易受到雙重支出攻擊。在我的一篇研究論文《從區(qū)塊鏈共識(shí)到拜占庭共識(shí)》中,我已經(jīng)討論了主流的區(qū)塊鏈共識(shí)算法,并警告了在沒有準(zhǔn)確理解其共識(shí)算法所提供保證的情況下使用這些區(qū)塊鏈的危險(xiǎn)。
以太坊是最受歡迎的開放區(qū)塊鏈系統(tǒng)之一,這要?dú)w功于它所執(zhí)行的分布式應(yīng)用程序的巨大生態(tài)系統(tǒng)。但不幸的是,以太坊協(xié)議工作證明(PoW)是可分叉的,因?yàn)樗试S在鏈的同一索引中添加不同的塊。分叉可能會(huì)導(dǎo)致安全漏洞,比如在不被注意的情況下增加一倍的開銷。
因此,這種趨勢似乎在一種名為“權(quán)威證明”(PoA)的新協(xié)議中重用了拜占庭容錯(cuò)能力,這種協(xié)議旨在避免雙重支出,最近已集成到部署最廣泛的以太坊客戶機(jī) parity 和geth中,并被業(yè)界使用。
這些被稱為Aura和Clique的以太坊共識(shí)算法實(shí)現(xiàn)了PoA,因?yàn)樗鼈儗K的創(chuàng)建限制為一組固定的權(quán)威節(jié)點(diǎn)(稱為封閉器)。它們的目標(biāo)是解決眾所周知的拜占庭共識(shí)問題,即盡管存在拜占庭節(jié)點(diǎn),但一組固定的節(jié)點(diǎn)可以在一個(gè)獨(dú)特的塊上達(dá)成一致。PoA授予封閉器封塊的權(quán)限,該權(quán)限包括對(duì)塊進(jìn)行加密簽名。如果一組參與者允許,這組封閉器可能會(huì)隨著時(shí)間而改變,類似于所謂的社區(qū)區(qū)塊鏈。對(duì)于那些不愿意花費(fèi)大量CPU資源來換取用加密貨幣的回報(bào),但更愿意避免分叉以提高安全性的行業(yè)來說,PoA是PoW的一個(gè)有吸引力的替代方案。
由于這些原因,PoA最近在業(yè)界獲得了關(guān)注。Amazon Web Services通過內(nèi)置在geth中的Clique協(xié)議向客戶提供PoA。像Lavaa這樣的工業(yè)公司提出了一種跟蹤服務(wù)來防止欺詐偽造,這是在以太坊/Aura上進(jìn)行的實(shí)驗(yàn)。他們實(shí)現(xiàn)了一個(gè)旨在維護(hù)多租戶場景中的數(shù)據(jù)隱私和完整性的服務(wù)。微軟描述了如何在生產(chǎn)中部署以太坊/Aura。他們建議Azure客戶跨不同區(qū)域部署Aura協(xié)議,以提高服務(wù)的可用性。
然而,PoA協(xié)議提供的安全級(jí)別尚未評(píng)估,而且攻擊者是否會(huì)破壞數(shù)據(jù)完整性還不清楚。由于業(yè)界正在建立在這些協(xié)議的基礎(chǔ)上,以便在一個(gè)機(jī)構(gòu)聯(lián)盟中使用以太坊,因此評(píng)估它們的脆弱性變得至關(guān)重要。
在與悉尼大學(xué)(University of Sydney)和CSIRO的同事合作撰寫的一篇新論文《克隆對(duì)權(quán)威證明的攻擊》(The Attack of The Against Proof-of-Authority)中,我們探討了PoA共識(shí)協(xié)議的漏洞和對(duì)策。
本文表明,在特定條件下,PoA是不安全的。我們設(shè)計(jì)、實(shí)現(xiàn)和實(shí)驗(yàn)了一種攻擊,稱為克隆攻擊,針對(duì)以太坊/Aura和允許竊取數(shù)字資產(chǎn)的以太坊協(xié)議,并提出了減輕該漏洞的方法。
我們在私有測試網(wǎng)上部署了以太坊PoA的兩個(gè)版本,并對(duì)這兩個(gè)協(xié)議執(zhí)行了克隆攻擊。一方面,我們發(fā)現(xiàn)對(duì)于一個(gè)惡意的封閉器來說,Aura需要較少的拓?fù)渲R(shí),與Clique相比,它能夠以100%的成功率實(shí)現(xiàn)雙倍的開銷。另一方面,對(duì)Clique的攻擊速度大約快一倍,但根據(jù)惡意封隔器的拓?fù)渲R(shí),其成功率從60%到100%不等。因此,盡管以太坊最近引入了拜占庭容錯(cuò),但當(dāng)它在一個(gè)聯(lián)合體中使用時(shí),仍然非常容易受到網(wǎng)絡(luò)攻擊。
為了彌補(bǔ)這一缺陷,我們提出修改這兩種共識(shí)算法,并保持其安全。然而,為了應(yīng)對(duì)這一缺點(diǎn),我們引入了一些潛在的限制,活躍的派系算法。
作為一種應(yīng)對(duì)措施,我們提出了一個(gè)特別有前景的方案——Red Belly區(qū)塊鏈。它依賴于民主的BFT來解決bb0拜占庭共識(shí)問題。因?yàn)樗灰蕾嚞F(xiàn)成的算法,典型的拜占庭共識(shí)Red Belly區(qū)塊鏈已經(jīng)擴(kuò)展到超過100共識(shí)參與者和處理工作負(fù)載超過每秒60萬個(gè)交易,因此容忍一個(gè)潛在的更大數(shù)量的區(qū)塊鏈參與者發(fā)行交易和要求比其他區(qū)塊鏈好得多。與其他大型區(qū)塊鏈相比,Red Belly區(qū)塊鏈不需要任何工作量證明,因此可以實(shí)現(xiàn)快速沉降(通常在3秒內(nèi))。
評(píng)論
查看更多