我们知道,DaoliCloud区块链使用拜占庭容错(BFT)算法来实现(提出、代表执行,或反映)大多数矿工的激励性赚钱积极性。这是ByzCoin算法中的一个开放成员资格的BFT算法(见此文)。在这个BFT公式中,BFT服务器群是由一个接一个地添加到区块链上的块来识别,最新上链的块是最年轻的BFT服务器成员。在BFT服务器成员处于排队状态的情况下,可以有一种奖励算法激励他们以集体协作工作的方式快速达成共识。因此,我们命名这种新的BFT算法为DaoliCloud“激励-BFT”(I-BFT)。现在让我们来描述I-BFT算法的详细公式。
将排列的BFT服务器群组织成线性有序组,其顺序按一个接一个MicroBlock添加的区块链的顺序来定义。每一个组都包含一个奇数个数的BFT服务器。第一个工作组,称为 quorum-group-1 (这里quorum的意思为:一个集合里成员投票达到了最少多数情况),是一些服务器,这些服务器产生的MicroBlocks是最新被添加到区块链上的。该小组的每个成员使用“结果–随机–算法”以非交互方式选择一个KeyBlockTree,开始共识认证过程(见此文),对所选的KeyBlockTree进行数字签名,并广播输出签名结果。如果这个小组已经就认证一个唯一的KeyBlockTree达成了多数协议,那么整个I-BFT认证算法成功地完成了一个有效的认证输出。
否则,第二个工作组(名为 quorum-group-2)将开始继续进行认证工作,该工作组里的 BFT 服务器的年龄比quorum-group-1的服务器老。事实上,quorum-group-2 中的BFT服务器在早几个epoch时曾经是当时的quorum-group-1中BFT成员。与 quorum-group-1 的工作过程不同(组1中的服务器完全根据自己对Payload记录的正确性、公平性的判断以及从并行竞争者中选择中间大小的 KeyBlockTree),而quorum-group-2 服务器将一个接一个地按照被添加到区块链的年龄顺序逐个工作,最年轻的服务器最先开始工作。每个服务器还应尽量受到先前更年轻的服务器的正确和公平决策而做出了的签名的影响。如果一个服务器看到了早期若干个服务器形成了一个相对多数的共识决策是正确与公平的,则该服务器应该跟随这个所见到的早期若干个服务器已经做出的正确公平决策,添加自己对该正确公平决策予以同意的签名,使该添加的同意签名能够尽快让所见的相对多数共识变成绝对多数共识。这个后来的(老的) BFT 服务器同意早期签名结果的行为是我们设计的激励诱导协作。quorum-group-2 服务器的协作决策是明智的,因为这样做将增加其获得奖励的概率和份额。
这个过程可以继续下去。一旦就唯一认证达成多数协议, I – BFT 算法就完成了。该激励奖励策略可以设计为:算法完成的越早,对服务器在帮助达成协议方面的激励奖励越高。因此,从组– 2 开始, I – BFT 应迅速达成输出一个被多数I-BFT服务器协作共识同意的认证输出。一个事后的智能合约可以扫描 I – BFT 算法的输出结果,以相应地奖励激励币那些参与协作的服务器。奖励机制应该基于鼓励那些选择了最正确和最公平的 DB-Payload 记录文档,并快速形成了合作的原则。
极少数情况下,I – BFT 算法可能在用尽了quorum-group-n的努力(n为预先设置的数字)之后仍然无法达到一个被大多数服务器同意的认证。这种共识失败可能有一些原因,如参与并行竞争矿工不诚实,或这些 I – BFT 服务器偏偏就是不合作,等。无论如何,多亏了在 CR-Payroll 记录中排了序的“员工”作为后备劳动力,区块链将由这些后备劳动力继续正常运行,(见此文)。在下一篇文章中,我们将看到为什么 I – BFT 算法无法达到共识同意输出一个认证的情况是罕见的事件。
Copyright © 2020-2021 DaoliCloud Company. All rights reserved.