區塊鏈與密碼學全民課堂:區塊鏈基礎技術大剖析之共識演算法(二)

買賣虛擬貨幣
導語:本課堂用通俗易懂的系列內容為大家呈現區塊鏈與密碼學領域相關知識。這裡有知識也有故事,從感興趣到有樂趣,全民課堂等你來學。這個系列中的課程內容首先從比特幣著手進行入門介紹,再延伸至區塊鏈的相關技術原理與發展趨勢,然後深入淺出地依次介紹在區塊鏈中應用的各類密碼學技術。歡迎大家訂閱本公眾號,持續進行學習。【本課堂內容全部選編自PlatON首席密碼學家、武漢大學國家網路安全學院教授、博士生導師何德彪教授的《區塊鏈與密碼學》授課講義、教材及網際網路,版權歸屬其原作者所有,如有侵權請立即與我們聯絡,我們將及時處理。】2.4.5 共識演算法(二)新一期圖學院來啦,這一期我們繼續共識演算法的學習,講述在共識演算法中獨特的存在——BFT類演算法和結合可信環境的共識演算法。BFT類演算法
無論是PoW類演算法還是Po*類演算法,其中心思想都是將所有節點視作競爭對手,每個節點都需要進行一些計算或提供一些憑證來競爭出塊的權利(以獲取相應的出塊好處)。BFT類演算法則採取了不同的思路,它希望所有節點協同工作,透過協商的方式來產生能被所有(誠實)節點認可的區塊。這就是我們俗話說的:有事好商量。拜占庭容錯問題最早由Leslie Lamport 等學者於1982年在論文《The Byzantine Generals Problem》中正式提出,主要描述分散式網路節點通訊的容錯問題。從20世紀80年代起,提出了很多解決該問題的演算法,這類演算法被統稱為BFT演算法。實用拜占庭容錯(Practical BFT,PBFT)演算法是最經典的BFT演算法,由 Miguel Castro和 Barbara Liskov 於1999年提出。PBFT演算法解決了之前BFT演算法容錯率較低的問題,且降低了演算法複雜度,使BFT演算法可以實際應用於分散式系統。那麼為什麼叫拜占庭問題呢?拜占庭是東羅馬帝國的首都,位於如今的土耳其的伊斯坦布林。由於當時拜占庭羅馬帝國國土遼闊,軍隊之間分隔很遠,軍隊之間只能靠信差傳訊息。然而,當發生戰爭時,必須所有的拜占庭軍隊達成一致共識,才能決定是否去攻打敵人,任意部分軍隊攻打敵軍,都無法取勝。如果軍隊中出現叛徒或間諜,左右各軍隊將軍的決定,達成的共識可能不代表大多數人意見。這時,在已知有間諜的情況下,其餘忠誠的將軍在不受叛徒的影響下如何達成一致的協議,就是“拜占庭將軍問題”。拜占庭問題是一個協議問題,拜占庭軍隊必須全體一致決定是否攻擊敵軍。問題是:
· 軍隊之間分隔遠,無法同時一起商議,只能透過信使。· 信使或將軍有可能存在叛徒,干擾共識過程。叛徒可以任意行動達到以下目標:· 迷惑部分將軍,使他們無法做出決定。· 欺騙將軍,採取相反決定,如將軍們不希望進攻,但叛徒促成進攻行動。叛徒只要完成任意目標,都代表攻擊行動的結果失敗。

看似是一部諜戰片,其背後卻有深刻的數學原理。Leslie Lamport 證明了在將軍總數n大於3m ,背叛者為m 或者更少時,忠誠的將軍可以達成命令上的一致。

BFT類演算法一般有完備的安全性證明,能在演算法流程上保證在群體中惡意節點數量不超過三分之一時,誠實節點的賬本保持一致。然而,這類演算法的協商輪次也很多,協商的通訊開銷也比較大,導致這類演算法普遍不適用於節點數目較大的系統。業界普遍認為,BFT演算法所能承受的最大節點數目不超過100。目前BFT演算法被廣泛用於以PoS為基礎的共識演算法組合中,代表基礎設施有以太坊2.0、PlatON等。

結合可信環境的共識演算法

可信計算是在計算和通訊系統中廣泛使用基於硬體安全模組支援下的可信計算平臺,以提高系統整體的安全性。

早期可信計算的研究主要以國際可信計算工作組TCG(Trusted Computing Group)為主。可信計算最核心的就是TPM硬體晶片,其TPM(Trusted Platform Module)1.2規範是比較經典的,大多數廠家的晶片都以TPM1.2為標準,該規範已經升級到TPM 2.0。

國內對應的是TCM(Trusted Computing Module)晶片,可以參考“可信計算密碼支撐平臺功能與介面規範”,而且已經成為國家標準,即GB/T 29829-2013。

隨著可信計算的發展,可信平臺模組不一定再是硬體晶片的形式,特別是在資源比較受限的移動和嵌入式環境中,可信執行環境(TEE,Trusted Execution Environment)的研究比較熱,如基於ARM TrustZone、智慧卡等可以實現可信計算環境。

2013年,Intel推出SGX(Software Guard Extensions)指令集擴充套件,旨在以硬體安全為強制性保障,不依賴於韌體和軟體的安全狀態,提供使用者空間的可信執行環境,透過一組新的指令集擴充套件與訪問控制機制,實現不同程式間的隔離執行,保障使用者關鍵程式碼和資料的機密性與完整性不受惡意軟體的破壞。

可信執行環境是一類能夠保證在該類環境中執行的操作絕對安全可信、無法被外界干預修改的執行環境,它與裝置上的普通作業系統(Rich OS)並存,並且能給Rich OS提供安全服務。可信執行環境所能夠訪問的軟硬體資源是與Rich OS完全分離的,從而保證了可信執行環境的安全性。利用可信執行環境,可以對區塊鏈系統中參與共識的節點進行限制,很大程度上可以消除惡意節點的不規範或惡意操作,從而能夠減少共識演算法在設計時需要考慮的異常場景,一般來說能夠大幅提升共識演算法的效能。但其也有劣勢,效能的提升會削弱隱私保護的能力。

關於共識演算法的知識就講到這裡啦,下節課我們繼續解析區塊鏈基礎技術,將登場的是對區塊鏈具有顛覆性的技術——智慧合約。敬請期待!同學們可以關注PlatON公眾號,持續學習哦。我們下節課見啦。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;