共識層
- 一丶概述及拜占庭將軍問題
- 二丶區塊鏈共識
- 三丶基本流程
- 四丶PoW共識
一丶概述及拜占庭將軍問題
(一)共識機制是區塊鏈技術的基礎和核心
(二)共識機制決定參與節點以何種方式對某些特定的資料達成一致,共識機制可以分為經典分布式共識機制和區塊鏈共識機制
(三)經典共識是確定性共識,即網路中的節點要么達成共識,要么不達成共識,如如經典的拜占庭將軍問題
(四)信任解決問題: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根后繼續搜索

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/232089.html
標籤:區塊鏈
上一篇:世上只有一種一致性演算法,那就是Paxos ,所有其它一致性演算法都是Paxos演算法的不完整版!
下一篇:Leetcode CLI小技巧
