區塊鏈導論-第四章_第1頁
區塊鏈導論-第四章_第2頁
區塊鏈導論-第四章_第3頁
區塊鏈導論-第四章_第4頁
區塊鏈導論-第四章_第5頁
已閱讀5頁,還剩34頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

區塊鏈導論講師:第四章共識機制區塊鏈導論拜占庭容錯技術PoW共識機制PoS共識機制Contents4.14.24.34.44.5其他共識機制DPoS共識機制1區塊鏈導論4.1拜占庭容錯技術拜占庭容將軍問題問題:拜占庭帝國國土遼闊,每支軍隊的駐地分隔很遠,將軍們只能靠信使傳遞消息。拜占庭帝國在軍事行動中,通過將軍少數服從多數的集體投票策略選擇進攻或者撤退,如果有大部分將軍決定進攻,則采取進攻策略,反之選擇撤退策略。但是將軍或傳令官中如果出現叛徒,叛徒會通過傳播虛假命令影響其集體投票的結果或統一行動的計劃。怎樣使得將軍們能在一個有叛徒的非信任環境中建立對戰斗計劃的共識呢?2區塊鏈導論拜占庭容錯技術策略:將軍們預先制定一種方法或協議,使所有忠誠的將軍能夠達成一致,而且少數幾個叛徒不能使忠誠的將軍做出錯誤的計劃。3區塊鏈導論拜占庭將軍問題拜占庭容錯技術拜占庭容錯技術(BFT):來源于拜占庭將軍問題,廣泛應用于解決分布式系統容錯問題的技術,是由LeslieLamport提出的關于P2P網絡通信的基本問題:在不可靠信道上,通過消息傳遞的方式難以保證系統狀態的一致性。參與區塊鏈系統共識記賬的每一個網絡節點相當于將軍,節點之間的交易信息傳遞相當于信使,某些節點可能由于各種原因而產生錯誤的信息并傳達給其他節點。通常,這些發生故障節點被稱為拜占庭節點,而正常的節點即為非拜占庭節點。2區塊鏈導論拜占庭容錯技術拜占庭系統普遍采用的假設條件包括:(1)拜占庭節點的行為可以是任意的,拜占庭節點之間可以共謀;(2)節點之間的錯誤不相關;(3)節點之間通過異步網絡連接,網絡中的消息可能丟失、亂序并延時到達,但大部分協議假設消息在有限的時間里能傳達到目的地;(4)服務器之間傳遞的信息,第三方可以嗅探到,但是不能篡改、偽造信息的內容和驗證信息的完整性。5區塊鏈導論拜占庭容錯技術假設基于拜占庭容錯的P2P網絡系統是擁有N個節點的系統,則對于每一個請求,該系統需要滿足以下條件:(1)當非拜占庭節點有相同的輸入信息,則它們會產生同樣的結果;(2)如果輸入的信息通過驗證,非拜占庭節點必須接收這個信息,并輸出相應的結果。基于拜占庭容錯的P2P網絡系統的實際運作過程中,還需要假設整個系統中拜占庭節點不超過m(m<n/2)個,并且每個請求還需要滿足安全性和存活性兩個指標。(1)安全性:任何已經完成的請求都不能被更改;(2)存活性:能接受并且執行非拜占庭客戶端的正常請求。6區塊鏈導論區塊鏈導論4.2PoW共識機制PoW共識機制PoW共識機制:通過算力資源,計算出一個符合規則的隨機數,即可獲得記賬權。PoW的共識形成過程是俗稱的“挖礦”,每個參與競爭記賬權的節點稱為“礦工”,“挖礦”的過程就是各個“礦工”通過計算資源來競爭同一個難度具有可動態變化和調整的書寫問題,并且成功解決該數學問題的“礦工”將獲得區塊鏈的記賬權。7區塊鏈導論PoW共識機制以比特幣為例,在挖礦過程中,礦工需要不斷調整Nonce值,對區塊頭數據做雙重SHA-256哈希運算,使得結果滿足給定數量前導0的哈希值。其中前導0的個數,取決于挖礦難度,前導0的個數越多,挖礦難度越大,在每創建2016個區塊后將計算新的難度,此后的2016個區塊將使用新的難度。挖礦具體過程如下:獲取16進制的原始區塊數據,以80字節長度的區塊頭數據作為輸入;不斷變更區塊頭中的隨機數Nonce,對變更后的區塊頭數據做雙重SHA-256哈希運算,得到32字節長度的運算結果;將運算結果與當前難度值進行比較,如果小于目標難度,即挖礦完成;否則,挖礦失敗。8區塊鏈導論PoW共識機制挖礦難度計算過程如下:找到前2016個區塊的第一個塊,并計算生成這2016個區塊花費的時間,一般為14天;計算前2016個區塊的難度總和,即單個區塊的難度*總時間;計算新的難度,即2016個塊的難度總和/14天的秒數,得到每秒的難度值;同時要求新的難度,難度不低于參數定義的最小難度。該算法目的是通過對比實際出塊時間間隔和理想出塊時間間隔進行動態難度調整,同時使用難度上下限進行限制,防止難度變化過快9區塊鏈導論PoW共識機制優點體現在協議的相對公平性與安全性,節點挖出新區塊獲得記賬權及預設獎勵的概率與其算力占全網總算力的百分比具有一致性;相應地,攻擊者的算力需要占據全網50%以上的算力,才能同全網其它誠實節點競爭成功從而實施攻擊,工作量證明也一定程度地增加了攻擊的困難性。10區塊鏈導論PoW共識機制缺點資源消耗巨大是PoW共識機制最顯著的缺點,而且由于節點還需要一定的時間付出算力資源以作為工作量證明,完成特定隨機數的計算才能成功創建區塊,同時需要得到其他節點的驗證,降低了區塊鏈系統的效率,無法做到交易數據的實時確認。PoW共識算法不適合于私有鏈和聯盟鏈。11區塊鏈導論區塊鏈導論4.3PoS共識機制PoS共識機制PoS共識機制在2012年8月由極客SunnyKing發布的點點幣中首次實現。PoS共識機制是出自這個新型區塊鏈系統中的一種特殊交易形式,稱為幣權交易。在幣權交易中,規定貨幣所有者可以將其持有的貨幣發送給自己的賬戶,從而消耗幣齡獲得鑄幣的權限并獲取部分利息,也保證用戶在創建新區塊后幣齡歸零。PoS共識機制實質上是要求用戶證明自己擁有一定數量的數字貨幣的所有權,也就是“權益”。在實施權益證明機制的數字貨幣中,創建區塊的過程由于并不需要耗費大量算力,因此一般不叫“挖礦”而稱為“鑄幣”。12區塊鏈導論PoS共識機制PoS共識機制中還引入了“幣齡”的概念。幣齡是指貨幣數量與貨幣持有時間的乘積。PoS共識機制將主鏈定義為消耗幣齡高的鏈,每個區塊的交易都會將其消耗的幣齡提交給該區塊以作為區塊的積分,累計積分最高的即總消耗幣齡最大的區塊鏈。13區塊鏈導論PoS共識機制PoS共識機制與PoW共識機制相比,它具有以下優勢:PoS共識技術使PoW共識機制算力資源浪費的問題有所緩解。在權益證明系統中,區塊生成的概率和幣齡成正比,因此用戶不需要耗費大量的算力資源來搶奪鑄幣權,礦工們也不再需要消耗大量資源進行算力軍備競賽。由于掌握大量貨幣成為了攻擊者實施成功攻擊的必要條件,攻擊者對貨幣系統的攻擊代價大大提高,攻擊持續的難度也有所增加。貨幣所有者和利益相關人一般持有大量數字貨幣,他們會更傾向于維護區塊鏈數字貨幣系統的安全。14區塊鏈導論PoS共識機制PoS共識機制存在以下缺陷:基于權益證明機制的加密貨幣一般使用以下兩種方式對初始幣進行分發:一種是初期借用PoW機制進行挖礦;另一種是采用首次公開募股(InitialPublicOfferings,IPO)的方式。但是采用IPO的方式發行貨幣會使貨幣集中在開發者和少數人手中,使得貨幣系統缺乏信任基礎的。囤幣行為的自發形成,導致區塊鏈系統交易活躍性下降,同時掌握大量貨幣的用戶可能會直接壟斷記賬權。15區塊鏈導論區塊鏈導論4.4DPoS共識機制DPoS共識機制授權股權證明機制(DelegatedProofofStake,DPoS):是一種綜合完善PoW共識機制和PoS共識機制的新型共識算法。授權股權證明機制最主要的特點是引入了見證人(Delegate)這個概念。新的區塊由權益隨機投票選出的N名見證人選出。每個持有數字貨幣的用戶相當于擁有一個選票的選民,最終得票前N位的見證人即擔當代表,代表的數目N為至少有50%的節點認為已經充分去中心化的數量。見證人的候選名單每個維護周期(一般為1天)更新一次。見證人然后隨機排列,每個見證人按序有2秒的權限時間生成區塊,若見證人在給定的時間片不能生成區塊,區塊生成權限交給下一個時間片對應的見證人。16區塊鏈導論DPoS共識機制選出的代表擁有提出改變網絡參數的特權,包括交易費用、區塊大小、見證人費用和區塊區間。若大多數代表同意所提出的改變,用戶有兩周的審查期,這期間可以罷免代表并廢止所提出的改變。DPoS機制實質上是一種代議制共識,通過投票機制將所有用戶的權利集中到了少數人手中,形成一種有約束的中心化,這種中心化會大大加快交易的確認速度,確認時間縮短到秒級。但與中心化系統的弊端類似,記賬權利一旦集中,就不得不提防獲得代表權的用戶是否會為了自身利益而損害系統的公平公正,降低了信任基礎。17區塊鏈導論區塊鏈導論4.5其他共識機制Ripple共識機制Ripple(瑞波):是一種基于互聯網的開源支付協議,可以實現部分去中心化的貨幣兌換、支付與清算功能。在Ripple的網絡中,交易由客戶端(應用)發起,經過追蹤節點(TrackingNode)或驗證節點(ValidatingNode)把交易廣播到整個網絡中。下圖是Ripple的共識過程中節點交互示意圖。18區塊鏈導論Ripple共識節點交互示意圖Ripple共識機制Ripple的共識達成發生在驗證節點之間,每個驗證節點都預先配置了一份可信任節點名單(UniqueNodeList,UNL)。在名單上的節點可對交易達成進行投票。每隔幾秒,Ripple網絡將進行如下共識過程:1)每個驗證節點會不斷收到從網絡發送過來的交易,通過與本地賬本數據驗證后,不合法的交易直接丟棄,合法的交易將匯總成交易候選集(candidateset)。交易候選集里面還包括之前共識過程無法確認而遺留下來的交易。2)每個驗證節點把自己的交易候選集作為提案發送給其他驗證節點。19區塊鏈導論Ripple共識機制3)驗證節點在收到其他節點發來的提案后,如果不是來自UNL上的節點,則忽略該提案;如果是就會對比提案中的交易和本地的交易候選集,如果有相同的交易,該交易就獲得一票。在一定時間內,當交易獲得超過50%的票數時,則該交易進入下一輪。否則將留待下一次共識過程去確認。4)驗證節點把超過50%票數的交易作為提案發給其他節點,同時提高所需票數的閾值到60%,重復步驟3和步驟4,直至閾值達到80%。5)驗證節點把經過80%的UNL節點確認的交易正式寫入本地的賬本數據中,稱為最后關閉賬本(LastClosedLedger),即賬本最后(最新)的狀態。20區塊鏈導論Ripple共識機制Ripple共識算法的獨特之處在于他不是在全網一次性達成共識,而是在UNL子網中達成共識,算法的效率比PoW等匿名共識算法要高效。Ripple共識算法假設拜占庭節點數少于所有節點數的20%,需要任意兩個UNL間重合的節點數至少占最大URL節點數的20%。另外UNL中的任意節點串通作惡的概率需要小于20%。Ripple共識算法的拜占庭容錯(BFT)能力為(n-1)/5,即可以容忍整個網絡中20%的節點出現拜占庭錯誤而不影響正確的共識。21區塊鏈導論小蟻共識機制小蟻共識機制:基于小蟻共識機制的區塊鏈技術,是將實體世界的資產和權益進行數字化,通過點對點網絡進行登記發行、轉讓交易、清算交割等金融業務的去中心化網絡協議,可以被用于股權眾籌、P2P網貸、數字資產管理和智能合約等領域。小蟻共識機制使得運行小蟻協議的各節點能夠對當前區塊鏈狀態達成一致意見。通過股權持有人投票選舉,來決定記賬人及其數量;被選出的記賬人完成每個區塊內容的共識,決定其中所應包含的交易。22區塊鏈導論小蟻共識機制小蟻的記賬機制被稱為中性記賬。在中性記賬的共識機制下,記賬人只有選擇是否參與的權力,而不能改變交易數據,不能人為排除某筆交易,也不能人為對交易進行排序。小蟻的中性記賬區塊鏈可以做到:1)每15s產生一個區塊,優化后有望達到小于5s;2)單個記賬人不能拒絕包含某筆交易進入當前區塊;3)每個確認由全體記賬人參與,一個確認就是完全確認;4)結合超導交易機制,記賬人不能通過構造交易來搶先成交牟利。23區塊鏈導論小蟻共識機制小蟻股權持有人可以發起選舉記賬人交易,對所選擇數量的(1~1024個)候選記賬人進行投票支持。小蟻協議實時統計所有投票,并計算出當前所需記賬人的人數和記賬人名單。以區塊隨機數的生成來了解小蟻共識機制,每個區塊生成前,記賬人之間需要協作生成一個區塊隨機數。小蟻使用Shamir秘密共享方案(Shamir’sSecretSharingScheme,SSSS)來協作生成隨機數。24區塊鏈導論小蟻共識機制依據SSSS方案,可以將密文S生成N份密文碎片,持有其中的K份,就能還原出密文S。小蟻記賬人(假設為N+1個)之間通過以下3步對隨機數達成共識:1)自選一個隨機數,將此隨機數通過SSSS方案生成N份碎片,用其他N個記賬人的公鑰加密,并廣播。2)收到其他N個記賬人的廣播后,將其中自己可解密的部分解密,并廣播。3)收集到至少K份密文碎片后,解出隨機數;獲得所有記賬人的隨機數后,合并生成區塊隨機數。25區塊鏈導論小蟻共識機制在上述區塊隨機數生成的第一步的廣播中,記賬人還同時廣播其認為應該寫入本區塊的每筆交易的哈希值。其他記賬人偵聽到廣播后,檢查自己是否有該交易哈希值的對應數據,如沒有則向其他節點請求。當區塊隨機數產生后,每個記賬人合并所有第一步廣播中的交易(剔除只有哈希值但無法獲得交易數據的交易),并簽名。獲得2/3記賬人的簽名,則本區塊完成;否則,共識失敗,轉回隨機數共識的第一步,再次嘗試。26區塊鏈導論Algorand共識機制Algorand共識機制:“Algorand”一詞是由“algorithm(算法)”和“random(隨機)”兩個詞組合而成的,Algorand共識機制就是基于隨機算法的公共賬本協議。Algorand共識算法的核心機制是Micali教授開發的一個稱為BA*的拜占庭協議,并通過這個BA*協議對新區塊達成共識。BA*每次循環有3個子步驟,在每次循環后均有1/3以上的概率能達成共識。一旦“驗證者”對某一個新區塊達成共識,超過一半的“驗證者”再用自己的私鑰對該區塊進行電子簽名,該區塊就可以開始在Algorand網絡中傳播。27區塊鏈導論Algorand共識機制“Algorand共識算法的具體流程如下:(1)創建并不斷更新一個獨立參數,稱為“種子”。(2)在BA*每次循環中,基于當前“種子”參數構建并公布一個隨機算法,該隨機算法中的一個關鍵參數是用戶的私鑰。(3)每個用戶使用自己的私鑰運行系統公布的隨機算法,得到自己的憑證。憑證值滿足一定條件的用戶就是這一輪的“驗證者”,其中在第一個子步驟中憑證值最小的“驗證者”則稱為“領導者”,“領導者”的任務是在區塊生成階段創建區塊,“驗證者”的任務是對新區塊達成共識。他們需要組裝一個新區塊并連同自己的憑證一起對外發出。28區塊鏈導論Algorand共識機制“Algorand共識算法的具體流程如下:(4)在確認“領導者”的憑證后,所有“驗證者”將基于“領導者”組裝的新區塊運行拜占庭協議BA*。(5)拜占庭協議BA*相當于一個兩階段的投票機制。第一階段,“驗證者”對其收到的候選區塊運行分級共識協議,選出“驗證者”共識最多的候選區塊;第二階段,“驗證者”對第一階段選出的候選區塊,運行二元拜占庭協議(BinaryByzantineAgreement),即接受新區塊或接受空區塊。需要強調的是在每一階段中的每一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論