作者:听风 / 来源:白话区块链
在区块链世界中,分叉是我们常常听到的一个词,比特币和以太坊都经历了一定次数的分叉。但是,并不是所有的币都会分叉,有的币就几乎不会分叉.
例如,DPoS 就具有不容易分叉的特点。这到底是什么意思,今天就让我们一起来看一下。
什么是 DPoS 算法
首先,我们来了解一下什么是 DPoS 算法,DPoS 主要分为两个部分:
(1)由利益相关者投票选举出一组区块生产者;
(2)区块生产者按轮次调度生产。
同 PoW 一样,在 DPoS 中,最终胜出的规则仍然是最长链胜出。任何时候,当一个诚实节点看到一个有效的最长链,它就会从当前分叉上切换到最长链,从而使最长链越来越长。
但与 PoW 和 PoS 不同,DPoS 在大多数网络条件下仍能稳健运行,我们以常见的一些网络攻击来进行举例说明。
02
区块生产过程
正常生产过程中,区块生产者按照一定的时间间隔依序轮流出块,任何出块人在非轮次时间外生产的区块均被视为无效块,因而只要每个出块人按时出块,就会产生最长的有效链。
在面临少数节点的恶意分叉攻击时,由于少数节点的出块速度小于多数节点,因而诚实的多数节点将生成最长链,使分叉无效。
网络中断是很多区块链网络都会面临的一个挑战,在发生网络中断的情况下,可能会出现每个分叉上都只有少数出块人的情况。但是,在网络连通后,每个分叉上的出块人都会自觉地切换到最长链,形成最长链,分叉就到此为止。
03
投票监督过程
DPoS 机制中,一个很重要的机制是多出了一个监督的职位。这一机制非常像我国的人民代表大会制度,人民选出人大代表,人大代表为人民服务,当人民发现某个人大代表不能很好履行职责时,可以将其淘汰出局。在 DPoS 中,利益相关方(Token 持有者)可通过投票淘汰非诚实出块人,选出诚实的出块人,从而保证网络的稳健运行。
比如,当网络中出块人数量不足时,网络的利益相关方可通过投票选出一组新的出块人,恢复网络的参与度,新的出块人所形成的链由于网络参与度最高将会形成最长链。同样,当多个出块人同时分叉时,也可以通过投票将作恶者替换出局,由诚实节点决定的链将形成最长链。
另一方面,由于 DPoS 系统中区块生产者的个数是事先选定且确定的,为了防止出块人之间相互认识进而作弊,每经过一轮出块,系统都会对出块顺序进行重新整合,并通过这种洗牌保证最终只有一个分叉成为最长链。
04
小结
在常见的自然网络破坏下,DPoS 都能够保证最终只有一个最长链分叉会胜出,甚至在大多数区块生产者都出现问题时,仍能继续工作,并通过投票淘汰作恶的出块人,恢复网络的参与度。
目前,DPoS 算法已经在一些区块链项目上运行多年,证明了其自身的安全性和可靠性。因此,我们常说,DPoS 是安全不容易分叉的。
你认为 DPoS 共识机制是否丢失了区块链去中心化的特性?为什么?