作者:聽風 / 來源:白話區塊鏈
在區塊鏈世界中,分叉是我們常常聽到的一個詞,比特幣和以太坊都經歷了一定次數的分叉。但是,并不是所有的幣都會分叉,有的幣就幾乎不會分叉.
例如,DPoS 就具有不容易分叉的特點。這到底是什么意思,今天就讓我們一起來看一下。
什么是 DPoS 算法

首先,我們來了解一下什么是 DPoS 算法,DPoS 主要分為兩個部分:
(1)由利益相關者投票選舉出一組區塊生產者;
(2)區塊生產者按輪次調度生產。
同 PoW 一樣,在 DPoS 中,最終勝出的規則仍然是最長鏈勝出。任何時候,當一個誠實節點看到一個有效的最長鏈,它就會從當前分叉上切換到最長鏈,從而使最長鏈越來越長。
但與 PoW 和 PoS 不同,DPoS 在大多數網絡條件下仍能穩健運行,我們以常見的一些網絡攻擊來進行舉例說明。
02
區塊生產過程
正常生產過程中,區塊生產者按照一定的時間間隔依序輪流出塊,任何出塊人在非輪次時間外生產的區塊均被視為無效塊,因而只要每個出塊人按時出塊,就會產生最長的有效鏈。
在面臨少數節點的惡意分叉攻擊時,由于少數節點的出塊速度小于多數節點,因而誠實的多數節點將生成最長鏈,使分叉無效。
網絡中斷是很多區塊鏈網絡都會面臨的一個挑戰,在發生網絡中斷的情況下,可能會出現每個分叉上都只有少數出塊人的情況。但是,在網絡連通后,每個分叉上的出塊人都會自覺地切換到最長鏈,形成最長鏈,分叉就到此為止。
03
投票監督過程
DPoS 機制中,一個很重要的機制是多出了一個監督的職位。這一機制非常像我國的人民代表大會制度,人民選出人大代表,人大代表為人民服務,當人民發現某個人大代表不能很好履行職責時,可以將其淘汰出局。在 DPoS 中,利益相關方(Token 持有者)可通過投票淘汰非誠實出塊人,選出誠實的出塊人,從而保證網絡的穩健運行。
比如,當網絡中出塊人數量不足時,網絡的利益相關方可通過投票選出一組新的出塊人,恢復網絡的參與度,新的出塊人所形成的鏈由于網絡參與度最高將會形成最長鏈。同樣,當多個出塊人同時分叉時,也可以通過投票將作惡者替換出局,由誠實節點決定的鏈將形成最長鏈。
另一方面,由于 DPoS 系統中區塊生產者的個數是事先選定且確定的,為了防止出塊人之間相互認識進而作弊,每經過一輪出塊,系統都會對出塊順序進行重新整合,并通過這種洗牌保證最終只有一個分叉成為最長鏈。
04
小結
在常見的自然網絡破壞下,DPoS 都能夠保證最終只有一個最長鏈分叉會勝出,甚至在大多數區塊生產者都出現問題時,仍能繼續工作,并通過投票淘汰作惡的出塊人,恢復網絡的參與度。
目前,DPoS 算法已經在一些區塊鏈項目上運行多年,證明了其自身的安全性和可靠性。因此,我們常說,DPoS 是安全不容易分叉的。
你認為 DPoS 共識機制是否丟失了區塊鏈去中心化的特性?為什么?