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