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