區塊鏈通識——共識層

一丶概述及拜占庭將軍問題

(一)共識機制是區塊鏈技術的基礎和核心
(二)共識機制決定參與節點以何種方式對某些特定的數據達成一致,共識機制可以分爲經典分佈式共識機制和區塊鏈共識機制
(三)經典共識是確定性共識,即網絡中的節點要麼達成共識,要麼不達成共識,如如經典的拜占庭將軍問題
(四)信任解決問題:1980年Lamport提出,解決網絡中存在拜占庭節點(惡意或故障節點)


  • 拜占庭帝國想要進攻一個強大的敵人,爲此配出了10支軍隊去包圍這個敵人,這個敵人雖不比拜占庭帝國,但也足以抵禦5支常規拜占庭軍隊的同時襲擊
  • 基於一些原因,這10支軍隊不能集合在一起單點突破,必須在分開的包圍狀態下同時攻擊
  • 他們任一支軍隊單獨進攻都毫無勝算,除非有至少6支軍隊同時襲擊才能攻下敵國
  • 他們分散在敵國的四周,依靠通信兵相互通信來協商進攻意向以及進攻時間
  • 困擾這些將軍的問題是,他們不確定他們中是否有叛徒,叛徒可能擅自變更進攻意向或者進攻時間
  • 在這種狀態下,拜占庭將軍們能否找到一種分佈式的協議來讓他們能夠遠程協商,從而贏取戰鬥?
  • 這就是著名的拜占庭將軍問題
    在這裏插入圖片描述

二丶區塊鏈共識

(一)2008年,Nakamoto提出比特幣POW共識機制,使用工作量證明的方法解決拜占庭問題,保證有很大的概率共識不會被篡改,首次實現,驗證了一類大規模可使用的拜占庭容錯算法,共識機制進入區塊鏈共識時代
(二)目前區塊鏈共識根據准入機制可分爲兩大類

  • 一類是授權共識(primissioned consensus)機制,授權網絡中節點一般通過公鑰基礎設施(public keyinfrastructure,PKI)完成身份認證後,才能參與後續共識機制
  • 另一類是以比特幣爲代表的非授權共識(peimissionless consensus)機制,非授權網絡中,節點隨時加入和退出,節點數量動態變化且不可預知,非授權共識通過特定算法完成出塊者(block proposer)選舉,區塊生成和節點驗證更新區塊鏈等過程
  • 前者構成的鏈被稱爲聯盟鏈,後者構成的鏈被稱爲公鏈

三丶基本流程

(一)選主:選取出塊節點,==“出塊者”==是指區塊鏈中負責產生區塊的節點,又被稱爲記賬者

  • 單節點
  • 委員會(考慮女巫 攻擊)

(二)造塊:將一段時間內網絡中產生的交易數據打包放到當前區塊中

  • 區塊頭
  • 區塊體
  • 交易或者數據通常根據區塊容量,交易費用,交易等待時間等多種因素綜合排序

(三)驗證:廣播並驗證區塊
(四)上鍊:記賬節點將新區塊添加到主鏈,更新本地鏈

在這裏插入圖片描述

四丶PoW共識

(一)搜索當前時間段的全網未確認交易,並增加一個用於發行新比特幣獎勵的Coinbase交易形成當前區塊體的交易集合
(二)計算區塊體交易集合的Merkle根記入區塊頭,並填寫區塊頭的其他元數據,其中隨機數Nonce置零
(三)隨機數Nonce加1;計算當前區塊頭的雙SHA256哈希值,如果小於或等於目標哈希值,則成功搜索到合適的隨機數並獲得該區塊的記賬權;否則繼續步驟3直到任一節點搜索到合適的隨機數爲止
(四)如果一定時間內未成功,則更新時間戳和確認交易集合,重新計算Merkle根後繼續搜索
在這裏插入圖片描述



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章