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