
文章插圖
區(qū)塊鏈系統(tǒng)采用去中心化的設(shè)計(jì),網(wǎng)絡(luò)節(jié)點(diǎn)分散且相互獨(dú)立,所以由不同節(jié)點(diǎn)組成的系統(tǒng)之間必須依賴一個(gè)制度來維護(hù)系統(tǒng)的數(shù)據(jù)一致性,并獎(jiǎng)勵(lì)提供區(qū)塊鏈服務(wù)的節(jié)點(diǎn),以及懲罰惡意節(jié)點(diǎn) 。
這個(gè)制度的建立需要依賴一套方法和規(guī)則,即由誰取得一個(gè)區(qū)塊的打包權(quán)(或稱記賬權(quán)),并獲取該區(qū)塊的獎(jiǎng)勵(lì)或者怎樣界定誰是作惡者,讓他受到怎樣的懲罰,這套方法和規(guī)則便是共識(shí)機(jī)制 。
現(xiàn)在有多種共識(shí)算法在區(qū)塊鏈中使用,較為常用的有:工作量證明(Proof of Work,PoW)算法、權(quán)益證明(Proof of Stake,PoS)算法、股份授權(quán)證明(Delegated Proof of Stake,DPoS)算法、實(shí)用拜占庭容錯(cuò)(Practical Byzantine Fault Tolerance,PBFT)算法 。
1 PoW算法PoW算法是一種防止分布式服務(wù)資源被濫用、拒絕服務(wù)攻擊的機(jī)制 。
PoW算法要求節(jié)點(diǎn)進(jìn)行適量消耗時(shí)間和資源的復(fù)雜運(yùn)算,并且其運(yùn)算結(jié)果能被其他節(jié)點(diǎn)快速驗(yàn)算,以耗用時(shí)間、能源做擔(dān)保,以確保服務(wù)與資源被真正的需求所使用 。比特幣首次利用PoW算法來驗(yàn)證交易并向網(wǎng)絡(luò)廣播區(qū)塊,現(xiàn)在很多區(qū)塊鏈也采用PoW算法 。PoW算法已經(jīng)成為廣泛使用的共識(shí)算法 。
礦工進(jìn)行哈希運(yùn)算,此過程消耗算力,算出“正確的結(jié)果”,并向全網(wǎng)廣播,其他礦工或者普通節(jié)點(diǎn)同步區(qū)塊并校驗(yàn)是否正確 。
節(jié)點(diǎn)“挖礦”的過程
PoW算法中最基本的技術(shù)原理是使用哈希算法 。假設(shè)求哈希值Hash(r),若原始數(shù)據(jù)為r(raw),則運(yùn)算結(jié)果為R(Result) 。
R = Hash(r)
哈希函數(shù)Hash()的特性是,對(duì)于任意輸入值r,得出結(jié)果R,并且無法從R反推回r 。當(dāng)輸入的原始數(shù)據(jù)r變動(dòng)1比特時(shí),其結(jié)果R值完全改變 。在比特幣的PoW算法中,引入算法難度d和隨機(jī)值n,得到以下公式:
Rd = Hash(r+n)
該公式要求在填入隨機(jī)值n的情況下,計(jì)算結(jié)果Rd的前d字節(jié)必須為0 。由于哈希函數(shù)結(jié)果的未知性,每個(gè)礦工都要做大量運(yùn)算之后,才能得出正確結(jié)果,而算出結(jié)果廣播給全網(wǎng)之后,其他節(jié)點(diǎn)只需要進(jìn)行一次哈希運(yùn)算即可校驗(yàn) 。PoW算法就是采用這種方式讓計(jì)算消耗資源,而校驗(yàn)僅需一次 。
2 PoS算法PoS算法要求節(jié)點(diǎn)驗(yàn)證者必須質(zhì)押一定的資金才有挖礦打包資格,并且區(qū)域鏈系統(tǒng)在選定打包節(jié)點(diǎn)時(shí)使用隨機(jī)的方式,當(dāng)節(jié)點(diǎn)質(zhì)押的資金越多時(shí),其被選定打包區(qū)塊的概率越大 。
例如,某個(gè)節(jié)點(diǎn)擁有整個(gè)區(qū)塊鏈系統(tǒng)5%的股份,則這個(gè)節(jié)點(diǎn)在下一個(gè)出塊周期里,將有5%的概率打包出塊 。
節(jié)點(diǎn)通過PoS算法出塊的過程
節(jié)點(diǎn)通過PoS算法出塊的過程如下:普通的節(jié)點(diǎn)要成為出塊節(jié)點(diǎn),首先要進(jìn)行資產(chǎn)的質(zhì)押,當(dāng)輪到自己出塊時(shí),打包區(qū)塊,然后向全網(wǎng)廣播,其他驗(yàn)證節(jié)點(diǎn)將會(huì)校驗(yàn)區(qū)塊的合法性 。
3 DPoS算法DPoS算法和PoS算法相似,也采用股份和權(quán)益質(zhì)押 。
但不同的是,DPoS算法采用委托質(zhì)押的方式,類似于用全民選舉代表的方式選出N個(gè)超級(jí)節(jié)點(diǎn)記賬出塊 。
選民把自己的選票投給某個(gè)節(jié)點(diǎn),如果某個(gè)節(jié)點(diǎn)當(dāng)選記賬節(jié)點(diǎn),那么該記賬節(jié)點(diǎn)往往在獲取出塊獎(jiǎng)勵(lì)后,可以采用任意方式來回報(bào)自己的選民 。
這N個(gè)記賬節(jié)點(diǎn)將輪流出塊,并且節(jié)點(diǎn)之間相互監(jiān)督,如果其作惡,那么會(huì)被扣除質(zhì)押金 。
4 PBFT算法PBFT算法解決了拜占庭將軍問題 。
拜占庭是古代東羅馬帝國的首都,為了防御在每塊封地都駐扎一支由單個(gè)將軍帶領(lǐng)的軍隊(duì),將軍之間只能靠信差傳遞消息 。在戰(zhàn)爭(zhēng)時(shí),所有將軍必須達(dá)成共識(shí),決定是否共同開戰(zhàn) 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- 屬鼠的人2017年健康運(yùn)勢(shì),屬鼠人2017年健康運(yùn)勢(shì)詳解
- 屬鼠的人2017年財(cái)運(yùn),屬鼠人2017年財(cái)運(yùn)勢(shì)詳解
- 原生js發(fā)送post請(qǐng)求 js菜鳥教程
- 詳解爆能槍原理 電漿軌道炮怎么樣
- 山西水災(zāi)為何顯得信息滯后 具體是什么情況?詳解??!
- 山西洪澇災(zāi)害已致175萬余人受災(zāi) 具體是什么情況?詳解??!
- 專家:山西水災(zāi)受災(zāi)范圍比河南更大 具體是什么情況?詳解!!
- 綿陽通報(bào)4天參團(tuán)游未見九寨溝大門 具體是什么情況?詳解??!
- 臺(tái)風(fēng)登陸海南:暴雨下市民艱難行走 具體是什么情況?詳解??!
- 女子闖紅燈出示聯(lián)合國證件 具體是什么情況?詳解??!
