科普:为什么说EOS的DPoS不容易造成分裂式分叉?

在币圈中,分叉是我们常常听到的一个词,币圈两大主流币比特币和以太坊都经历了一定次数的分叉。但在币圈,并不是所有的币都会分叉,有的币就几乎不会分叉,这是为什么呢?

聪明的你一定想到了,这是由于他们所使用的共识机制不同。我们都知道PoW和PoS在遭受一定的网络破坏情况下会产生分叉,而DPoS却具有终结性(永不分叉)的特点。今天就让我们一起来看一下,这到底是什么意思。

首先,我们来了解一下什么是DPoS算法,DPoS主要分为两个部分:

首先,由利益相关者投票选举出一组区块生产者。

然后,区块生产者按轮次调度生产。

同Pow一样,在DPoS中,最终胜出的规则仍然是最长链胜出。任何时候,当一个诚实节点看到一个有效的最长链,它就会从当前分叉上切换到最长链,从而使最长链越来越长。但与Pow和Pos不同,DPoS在大多数网络条件下仍能稳健运行,我们以常见的一些网络攻击来进行举例说明。

001 区块生产过程

正常生产过程中,区块生产者按照一定的时间间隔依序轮流出块,任何出块人在非轮次时间外生产的区块均被视为无效块,因而只要每个出块人按时出块,就会产生最长的有效链。

在面临少数节点的恶意分叉攻击时,由于少数节点的出块速度小于多数节点,因而诚实的多数节点将的生成最长链,使分叉无效。

此外,网络中断是很多区块链网络都会面临的一个挑战。在DPoS网络中,发生网络中断的情况下,可能会出现每个分叉上都只有少数出块人的情况,但是,在网络连通后,每个分叉上的出块人都会自觉切换到最长链,形成最长链,终止分叉。

002 投票监督过程

DPoS机制中,一个很重要的机制时多出了一个监督的职位。这一机制非常像我国的人民代表大会制度,人民选出人大代表,人大代表为人民服务,当人民发现某个人大代表不能很好履行职责时,可以将其淘汰出局。在DPoS中,利益相关方(代币持有者)可通过投票淘汰非诚实出块人,选出诚实的出块人,从而保证网络的稳健运行。

比如,当网络中出块人数量不足时,网络的利益相关方可通过投票选出一组新的出块人,恢复网络的参与度,新的出块人所形成的链由于网络参与度最高将会形成最长链。同样,当多个出块人同时分叉时,也可以通过投票将作恶者替换出局,由诚实节点决定的链将形成最长链。

另一方面,由于DPoS系统中区块生产者的个数是事先选定且确定的,为了防止出块人之间相互认识进而作弊,每经过一轮出块,系统都会对出块顺序进行重新整合,并通过这种洗牌保证最终只有一个分叉成为最长链。

003 常见的DPoS项目

DPoS共识机制是最早BM在比特股项目上提出,用来提升区块链项目的效率。DPoS认为,并不是所有的项目都需要绝对的去中心化,因而在DPoS机制中,通过对去中心化的折衷换来了系统效率的提升。

比特股BTS是最早使用DPoS共识机制的项目,在BTS中,由见证人负责区块生产,受托人负责对网络参数进行修正。EOS是又一个更广为人知的DPoS项目,它由利益相关方共同选出21个候选者用来负责区块生产,最终能够达到百万TPS。除此之外,Steem、Asch等也都使用了DPoS共识机制。

004 总结

经过理论和实践的证实,在常见的自然网络破坏下,DPoS都能够保证最终只有一个最长链分叉会胜出,甚至在大多数区块生产者都出现问题时,仍能继续工作,并通过投票淘汰作恶的出块人,恢复网络的参与度。DPoS算法在BTS、Steem以及EOS等网络上的多年成功稳定运行也证实了其自身的安全性和可靠性。因此,我们常说,DPoS是安全无分叉的。

声明:文首发于白话区块链,有部分增改。


你可能感兴趣的:(科普:为什么说EOS的DPoS不容易造成分裂式分叉?)