DPoS算法詳細(xì)介紹
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在區(qū)塊鏈?zhǔn)澜缰?,分叉是我們常常聽到的一個(gè)詞,比特幣和以太坊都經(jīng)歷了一定次數(shù)的分叉。但是,并不是所有的幣都會(huì)分叉,有的幣就幾乎不會(huì)分叉。
例如,DPoS 就具有不容易分叉的特點(diǎn)。這到底是什么意思,今天就讓我們一起來看一下。
1. 什么是 DPoS 算法
首先,我們來了解一下什么是 DPoS 算法,DPoS 主要分為兩個(gè)部分:
(1)由利益相關(guān)者投票選舉出一組區(qū)塊生產(chǎn)者;
(2)區(qū)塊生產(chǎn)者按輪次調(diào)度生產(chǎn)。
同 PoW 一樣,在 DPoS 中,最終勝出的規(guī)則仍然是最長鏈勝出。任何時(shí)候,當(dāng)一個(gè)誠實(shí)節(jié)點(diǎn)看到一個(gè)有效的最長鏈,它就會(huì)從當(dāng)前分叉上切換到最長鏈,從而使最長鏈越來越長。
但與 PoW 和 PoS 不同,DPoS 在大多數(shù)網(wǎng)絡(luò)條件下仍能穩(wěn)健運(yùn)行,接下來我們來進(jìn)行說明。
2. 區(qū)塊生產(chǎn)過程
正常生產(chǎn)過程中,區(qū)塊生產(chǎn)者按照一定的時(shí)間間隔依序輪流出塊,任何出塊人在非輪次時(shí)間外生產(chǎn)的區(qū)塊均被視為無效塊,因而只要每個(gè)出塊人按時(shí)出塊,就會(huì)產(chǎn)生最長的有效鏈。
在面臨少數(shù)節(jié)點(diǎn)的惡意分叉攻擊時(shí),由于少數(shù)節(jié)點(diǎn)的出塊速度小于多數(shù)節(jié)點(diǎn),因而誠實(shí)的多數(shù)節(jié)點(diǎn)將生成最長鏈,使分叉無效。
網(wǎng)絡(luò)中斷是很多區(qū)塊鏈網(wǎng)絡(luò)都會(huì)面臨的一個(gè)挑戰(zhàn),在發(fā)生網(wǎng)絡(luò)中斷的情況下,可能會(huì)出現(xiàn)每個(gè)分叉上都只有少數(shù)出塊人的情況。但是,在網(wǎng)絡(luò)連通后,每個(gè)分叉上的出塊人都會(huì)自覺地切換到最長鏈,形成最長鏈,分叉就到此為止。
3. 投票監(jiān)督過程
DPoS 機(jī)制中,一個(gè)很重要的機(jī)制是多出了一個(gè)監(jiān)督的職位。這一機(jī)制非常像我國的人民代表大會(huì)制度,人民選出人大代表,人大代表為人民服務(wù),當(dāng)人民發(fā)現(xiàn)某個(gè)人大代表不能很好履行職責(zé)時(shí),可以將其淘汰出局。在 DPoS 中,利益相關(guān)方(Token 持有者)可通過投票淘汰非誠實(shí)出塊人,選出誠實(shí)的出塊人,從而保證網(wǎng)絡(luò)的穩(wěn)健運(yùn)行。
比如,當(dāng)網(wǎng)絡(luò)中出塊人數(shù)量不足時(shí),網(wǎng)絡(luò)的利益相關(guān)方可通過投票選出一組新的出塊人,恢復(fù)網(wǎng)絡(luò)的參與度,新的出塊人所形成的鏈由于網(wǎng)絡(luò)參與度最高將會(huì)形成最長鏈。同樣,當(dāng)多個(gè)出塊人同時(shí)分叉時(shí),也可以通過投票將作惡者替換出局,由誠實(shí)節(jié)點(diǎn)決定的鏈將形成最長鏈。
另一方面,由于 DPoS 系統(tǒng)中區(qū)塊生產(chǎn)者的個(gè)數(shù)是事先選定且確定的,為了防止出塊人之間相互認(rèn)識(shí)進(jìn)而作弊,每經(jīng)過一輪出塊,系統(tǒng)都會(huì)對出塊順序進(jìn)行重新整合,并通過這種洗牌保證最終只有一個(gè)分叉成為最長鏈。
4. 小結(jié)
在常見的自然網(wǎng)絡(luò)破壞下,DPoS 都能夠保證最終只有一個(gè)最長鏈分叉會(huì)勝出,甚至在大多數(shù)區(qū)塊生產(chǎn)者都出現(xiàn)問題時(shí),仍能繼續(xù)工作,并通過投票淘汰作惡的出塊人,恢復(fù)網(wǎng)絡(luò)的參與度。
目前,DPoS 算法已經(jīng)在一些區(qū)塊鏈項(xiàng)目上運(yùn)行多年,證明了其自身的安全性和可靠性。因此,我們常說,DPoS是安全不容易分叉的。