在深入讨论拜占庭共识优势之前,先快速了解一下拜占庭共识对
区块链有哪些关键功能改进。
1.安全性:如果网络中2/3的活跃受托人诚实地遵循协议行事,则两个富有争议的区块无法在区块链上达成终结性。
2.活性:即使1/3活跃受托人离线,新区块仍可在区块链上达成终结性。
3.问责制:如果一名受托人违反了共识协议,他/她将为自己行为负责。
以上便是拜占庭共识具有的三个高级特性。它能迅速地从分叉中恢复过来,快速地达成区块链终结性。三个特性都需要深入了解,如果你乐意的话,可以了解LIP以及拜占庭共识研究论文。本文重点是介绍拜占庭的实现细节。
在拜占庭共识算法中,每个节点不仅维护区块链,还维护其他内存元数据,以便根据算法规则验证区块链。部分内存元数据还将保存在区块链上,以防节点奔溃时可以重建内存数据集。我们另外针对区块增加的属性是受托人锻造的前一区块高度以及锻造区块时的最大预投票高度。与此同时,每个节点都将追求终结高度,因此在恢复区块链的情况下,已被终结的区块无法再逆转。
支持区块民主投票
在Lisk生态系统中,投票并不是什么新鲜事——投票是任何DPoS共识算法的基础。LSK代币持有者可以给受托人投票,然后,根据得票多少,系统选出得票最高的受托人锻造新一轮区块。之前,投票系统仅仅用于给受托人投票,引入拜占庭共识算法后,投票系统不再仅用于投票了。每个受托人将给区块投上一票,不同的是受托人投的票由各个节点自身维护和保留。只有少数计算出来的属性会公布在网络上,并非公布到整个投票账本上。拜占庭数学公式和协议确保各个节点正确地投票。
与其他投票系统的基本规则一致,受托人只能在给特定高度的区块投票一次。因为同一高度不能存在两个区块,受托人只能投给一个区块。这个过程叫做预投票,收集了2/3选票的区块合格进入下一轮投票。
第二轮投票叫做预提交,规则与上面类似,受托人可以预提交一个区块,只能提交一次,获得2/3预投票的区块达到合格线。在第二轮中,获得2/3预提交的区块具有终结性。具有最高预提交数的区块最终确定为区块链的高度。低于终结性区块高度的区块也将具有最终性,且不可逆转。
其他一些规则:
1.如果受托人没有参与这轮投票,就不能进行预投票或预提交。目的是防止垃圾投票。因此在受托人激活时,我们会跟踪投票轮情况。
2.一个受托人不能参与3轮投票,提高整个系统性能。
版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。