【摘要】 权威证明共识(又称PoA共识)规定,节点只有被授权以后才能参与区块链共识。一旦被授权之后,共识节点享有公平的记账权利。因此,他们无需投入巨大的资源去竞争记账权。此外,记账
权威证明共识(又称PoA共识)规定,节点只有被授权以后才能参与区块链共识。一旦被授权之后,共识节点享有公平的记账权利。因此,他们无需投入巨大的资源去竞争记账权。此外,记账权也和记账节点所拥有的数字资产无关。
从网络带宽使用效率的角度来看,权威证明是一种非常高效的共识算法。算法本身不会在决定由谁记账这个问题上消耗太多时间,从而能够让更多的带宽被用在传输交易数据上。因此,基于权威证明的区块链系统,在网络条件的允许范围内会达到较高的吞吐量(即TPS:每秒处理交易数)。
虽然权威证明共识有以上这些优点,并且已经在唯链区块链平台上正常运行了一年多的时间,该共识还是留有需要进一步改进的地方。首先,和以太坊一样,它缺乏有效的技术手段,阻止节点滥用获得的记账权,来暂时性地导致系统的不稳定。
但是和以太坊不同的是,权威证明可以保证任何节点在链上的作恶行为,都可以用来作为追究其责任的证据。另外,权威证明属于Nakamoto共识家族的一种,所以只能在概率上保证交易的安全性。在一些极端异步网络情况下(比如,网络被大范围的物理分割的情况下),我们可能需要额外的机制来保证区块链系统的一致性。
所以我们提出了下一代权威证明共识的方案来解决以上问题,以提供在区块链技术进一步发展中所需的安全性和稳定性,从而更好地支持唯链平台上日益增多的链上商业活动。简单来说,新的权威证明共识能够给我们带来:
· 对于区块和其包括的交易提供绝对的安全保证(absolute finality);
· 显著地减少系统不稳定风险 = 更加稳定的区块链服务;
· 更快收敛的概率安全保证(probabilistic finality)= 更快的交易确认时间。
我们的解决方案
在下一代权威证明共识里,我们通过引入两个全新的机制来解决现有的问题。
委员会背书(COMMITTEE-ENDORSING)机制
委员会背书机制从本质上来说,是改变现有生成一个新区块的方式。具体来说,该机制要求除当前记账节点外,有额外的节点参与到生成新区块的过程中。
在每一轮的共识里,都会随机从共识节点中选出几个节点组成一个委员会。在生成区块的过程中,委员会成员首先需要验证记账节点发出的新区块提案。在验证通过后,他们会在提案上签名,作为他们的正式背书。共识算法要求记账节点必须要收集到足够的委员会成员的背书,然后把其相关信息加入所要生成的新区块内。
我们在算法中使用可验证随机函数(VRF)来保证委员会是随机从节点里选出来的。可验证随机函数和哈希函数的作用非常类似,只是前者需要输入私钥来完成计算。
有了委员会背书机制后,记账节点如果想在当轮共识中破坏区块链系统,他必须联合一定数量的委员会成员来一起做这件事。但是根据可验证随机函数保证的随机性,记账节点只有在满足以下条件下才能这样做:
· 他必须要和其他共识节点同谋;
· 在这些同谋节点中,必须要有足够的节点被随机选为委员会成员。
以上这两个条件实际上使得记账节点很难做到利用他的记账权利生成不同的区块。换句话来说,系统的稳定性被干扰的概率被大大的降低。从中我们可以得到一个很重要的结论,那就是新共识算法能够让我们更快的到达令人满意的概率安全保证(比如,一笔交易被取消的概率小于0.0000001)。
区块最终性(BLOCK FINALITY)机制
区块最终性机制给予符合条件的区块绝对的安全保证。一旦一个区块获得了最终性,共识本身就保证了其在账本中不能被修改、替换或者移除。甚至当系统遭遇到极端异步网络情况时(比如网络被大规模物理分割的情况),算法也能保证其安全性。
一个区块为了能达到最终性,就必须被拜占庭容错(BFT)共识所确认。我们采用了Yin, et al. 提出的达成最终性的框架,该框架把BFT共识过程分为连续的三个阶段,每个阶段都要求超过2/3的节点达成共识。为了把该框架融入进权威证明共识,我们在每个区块内都加入了区块在达成最终性过程中的状态信息。
我们可以认为,当一个委员会成员背书一个区块时,该成员也同时确认了包含在该区块中的相关信息。所以,当我们发现一个区块的后继区块链中包含了超过2/3的共识节点(作为记账节点或委员会成员)时,我们就可以认为该区块完成了BFT共识中的一个阶段。另外,因为拜占庭容错是通过一系列区块上所达成,我们必须加入额外的规则来保证系统的一致性和活性。
*HotStuff, Yin, et al. : BFT Consensus in the Lens of Blockchain:https://arxiv.org/abs/1803.05069
我们可以看到,在达成拜占庭容错的过程中,系统不会要求超过2/3的节点同时在线响应,而只需记账节点和委员会成员能够及时响应。这样的机制能够减低因为节点不能及时响应而导致的服务延迟或者短暂不可用。
总结
下一代权威证明共识会引入
1. 委员会背书机制 - 该机制能够显著降低节点滥用记账权而导致系统服务不稳定的可能性,使得我们能够得到收敛速度更快的概率安全性保证;
2. 区块最终性机制 - 该机制给予符合条件的区块(及其包含的交易)绝对的安全保证。
我们提出的共识算法既能提供概率安全保证又能提供绝对安全保证。这样就给平台上的应用更多的安全保证选择。一般来说,安全保证要求的提升会导致应用的效率降低,反之亦然。新权威证明共识让企业能够自主地选择适合其应用的安全保证级别,从而优化应用的工作效率。
实施计划
下一代权威证明的实施、测试以及替换现有的共识算法,将会分阶段进行。我们预计未来将会有一条崭新的测试链上线,专门用来调试和测试新共识算法。另外,我们将会在不同的VeChain Improvement Proposals (VIPs)里公开算法细节。我会在以后的文章里详细介绍这些VIP。(老周)