如何在Aergo区块链中实现DPoS
扫描二维码
随时随地手机看文章
每个区块链协议都使用一个共识算法来维护一个区块链。区块链场景中最著名的是来自比特币的中本共识(Nakamoto consensus),它基于工作量证明(Proof of Work, PoW)。它只以概率的方式获得最终结果,从而实现了很大程度的分散,其中多个分支可以相互竞争,并随着时间的推移逐渐演变为一个分支。另一个极端是源于传统拜占庭协议(BA)。它们通过限制分散化的程度来保证即时的块结果。
Aergo的DPoS共识主要是介于上述两者之间的中间地带。它将生成区块的特殊权利委托给一组经过选举产生的区块生产者(BPs),同时允许在有限范围内进行重组。根据PoS共识和只保留有限数量的BPs,它解决了性能问题以及基于功率共识中发现的过度能耗问题。
本文详细介绍了在Aergo区块链中实现的DPoS。在本文的剩馀部分中,除非另有说明,否则“DPoS”指在Aergo区块链中实现的DPoS。
Aergo上的DPoS
块生产
在DPoS中,只有有限数量?节点,称为有源组件生产商(BPs),允许生成模块。它们是通过利益相关者之间的投票过程选出的。时间被均匀地划分为槽,对于每个槽,最多生成一个块。活动BPs通过投票得分在这些插槽上进行调度,并轮流生成区块。
为了简单起见,让我们考虑一个BPs活动的例子,它们分别是按投票得分递减顺序排列的A、B、C和D。块间隔是1秒。如果一切正常,区块链将继续执行,如图1所示。
图1:正常生产情况下的块生产;
每个盒子里的字母是块的制造者。这里,每个BP每4秒生成一个块。但是,当前一个块没有及时接收到时,下一个BPs应该生成它。例如,假设A生成块“1”,然后B在生成块“2”之前崩溃。在这种情况下,C应该来生成块“2”,而不是B来生成块2。
图2:当B崩溃时阻塞生产
由于B没有与槽“1”、“5” 碰撞对应的块,使得块在时间上分布不均匀;块“1”和块“2”之间的时间间隔大约是正常块(1s)的两倍(2s)。
分叉
另一方面,DPoS允许像比特币一样进行分叉和重组。假设B由于网络故障而与其他BPs断开连接。即使在这种情况下,B和其他(A、C、D)也不会停止块生产。它们各自管理自己的区块链,如图3所示。
图3:分叉由网络分割引导;B和(A, C, D)相互断开
注意主链上的槽“1”和“5”是空的,因为(A, C, D)网络分裂没有接收到B产生的块。
B管理的下链是侧链,因为它比另一条短;当主链的高度达到7时,侧链的高度仍然只有3。因此,根据最长链规则,一旦网络问题解决,主链的块被发送到B, B就知道它的链比另一个短。最后,它将遵循主链(重组)。
终结: 最后一个不可逆块
如果一个块连接到一个区块链,它可以被看作是铸造块本身。在此基础上,提出了最后不可逆块(LIB)的概念。一旦一个块变成了一个库,任何超出它的重组都是被禁止的。因此,保证了库和之前的块的终结性。在正常情况下,除了初始引导期外,库会不断更新到更高的数字。
从技术上讲,库的确定分为两个阶段:
1. 当大多数(⅔+)BPs附加了区块链,其中第一个可以自由的被提出。
2. 当从另一个大多数BPs中添加块时,所提议的库最终成为一个终结库。
最初,一个集团的投票范围没有限制。换句话说,连接到链的块被认为是为块本身和所有父块投票。然而,后来改变是避免冲突的LIBs³。在修改后的版本中,BP X生成的块只确定了BP X最后生成的块之后的范围。
图4:最后一个不可逆块
如图4所示,确定在一个4 BPs的案例中。这是一个4 BPs的DPoS网络案例;它的多数票是3票。在这种情况下,在决定自由民主党的每个阶段,分别需要3个基点的赞成票才能达成共识。因此,如图3所示,当块“3”连接到链(第1阶段)时, 块“1”就成为一个被提议的LIB。然后,当添加块“5”时(第二阶段),块“1”最终被提升到一个LIB。在正常情况下,一旦一个块被最终确定为一个库,每当连接一个新块时,库的高度就会继续增加1;一个新的块伴随一个新的库。
押注、投票及选举
活跃的BPs由Aergo用户选出。尽管用户限制为每天1票,但参与投票的人可以自由地投给多个候选人(最多30人)。此选举方案如图5所示。在这里,在“700”处的BPs是根据在“600”(而不是“700”)处收集的排名来选择的。它的目的是降低重组所导致的不必要政权更迭的可能性,因为过去的区块比最近的区块更不可能进行重组。
图5。BPs的选举计划
到目前为止,通过一个由4BPs组成的简单系统示例,我们已经解释了DPoS的工作原理。它的主要成分是:
· 由有限数目的选出的BPs
· 只有在有限的块范围内才能进行重组。
前者保证了区块生产的快速性和稳定性,而后者则保证了只要大多数BPs处于正常运行状态,区块具有绝对终结性。通过它们,DPoS可以在交易结束程度适中的情况下实现高性能。这种性能和最终结果之间的平衡是我们选择DPoS作为Aergo 主网共识的最重要因素之一。