區(qū)塊鏈導(dǎo)論-第四章_第1頁
區(qū)塊鏈導(dǎo)論-第四章_第2頁
區(qū)塊鏈導(dǎo)論-第四章_第3頁
區(qū)塊鏈導(dǎo)論-第四章_第4頁
區(qū)塊鏈導(dǎo)論-第四章_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

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

溫馨提示

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

最新文檔

評論

0/150

提交評論