从基础概念讲起,区块链本质上是由交易驱动的确定性状态机,所谓共识就是认同一个确定性交易顺序并过滤掉无效交易。而DPOS是众多共识算法的一种,其优点是稳固、高效、安全,并经过了时间的验证。
DPOS由两部分构成:选出一组区块生产者和调度生产。选举过程由token持有者决定,选举出的生产者的表现会影响到整个网络的工作情况,进而影响到token持有者的利益。
这个系统需要2/3以上的节点是可靠的,基本规则是大家遵循最长的链。现实应用中节点数要达到至少21个,在这里我们以3个节点为例进行介绍。
正常情况下区块生产者按顺序进行生产,间隔时间是3s。没有人错失生产,如下便是最长的链(箭头指向前一个区块)。
当不超过1/3的节点有恶意或不能工作,而产生一个分叉时,如下图的B,这条分叉每9秒出一个块,而正常工作的节点每9秒出2个块。原因是按照A,B,C,A...的顺序,每个节点要等待相应时间才可以出块。根据最长链原则,系统依然能运行。
观察者需要一种方式能确定一个块是属于增长速度最长的链。这可以通过观察来自2/3+1多数块生产者的确认来决定。在下图中,区块B已被C和A所确认,这代表了2/3+1多数确认,由此我们可以推断没有其它链会比这个更长 —— 前提是2/3的生产者是诚实的。
DPOS因为是D(Delegated),即委托权益,token持有者当家做主,可以实现100%的参与度。这种动态选择机制,优胜劣汰,有助于共同维护网络的安全、健康和发展。除了理论上的论证,更是经受住了时间的考验。Bitshares运行了4年,Steemit也已运行了近2年,这期间经历了各种网络状况和软件问题,相信可以续写辉煌。


