波卡特色的混合共识机制:BABE和GRANDPA
“波卡知识图谱” 是我们针对波卡从零到一的入门级文章,我们尝试从波卡最基础的部分讲起,为大家提供全方位了解波卡的内容,当然这是一项巨大的工程,也充满了挑战,然而我们希望通过这样的努力让大家能够正确认知波卡,也让不了解波卡的人方便快速掌握波卡相关知识, 今天是该栏目的第28期,波卡本质上是一个元协议,而波卡网络通常也会用到两个共识协议:BABE和GRANDPA。
波卡本质上是一个区块链元协议,它与几乎所有其他协议的做法都不同,在协议中很难改变的东西实际上非常少。
说到波卡的共识协议,会用到GRANDPA和BABE这两种协议,是一个混合共识的两个方面。 它们保证了波卡网络能够持续的出块并且不易分叉,也不会有延缓交易的风险 。 混合共识是一种在波卡中获得BABE(始终产生新块的能力)和GRANDPA(最终确定性)的好处的方法。通过结合这两种机制,就如同是波卡网络中的一种法律法规,只要按照规则就能保证中继链的稳定运行。
BABE
BABE(Blind Assignment for Blockchain Extension),是波卡的一种出块机制,中文名称是区块链扩展的盲分配,它是在验证者节点之间运行并确定新区块作者的区块生产机制。
BABE根据权益并使用波卡的随机循环为验证者分配区块。简单来说就是推动网络不断出块,确保网络向前运行发展 。
由于波卡的随机性机制,会使得多个验证者可能是同一插槽的候选者。或者是在某些时候,一个插槽可能是空的,导致出块时间不一致。
因此BABE也是每个插槽多重验证和没有验证者插槽两个问题的一种解决方案。 另外,SASSAFRAS(Semi Anonymous Assignees of Staked Assignees For Fixed Time Rhythmic Assignments for Slots)(又名SASSY BABE或BADASS BABE)是BABE的扩展,充当着恒定时间块生产协议,试图通过确保以时间常数间隔准确生成一个块来解决BABE的缺点。
GRANDPA
GRANDPA是为波卡中继链实现最终确定性的工具。只要2/3的节点是诚实的,并且可以在异步环境中处理1/5的拜占庭节点,它就可以在部分同步网络模型中工作。
它是一种链生成机制,可以快速确认一段时间内一段链的有效性,避免了链的分岔或回滚,保证网络有一个稳定的处理速度。
一个显著的区别是,GRANDPA在链上而不是块上达成协议,即使在长期的网络分区或其他网络故障之后,也大大加快了最终确定的过程 。
换句话说,只要超过2/3的验证者证明了包含某个区块的链,所有通向该区块的区块就会立即结束。
后记
BABE凭借提供确定性概率而单独使用,也可以和GRANDPA这样的最终确定性工具结合使用,波卡采用的就是这样的混合共识机制。
中继链作为波卡的核心节点,网络的稳定性和安全性对波卡而言是至关重要的因素。 从本质上来说,波卡网络的安全性事需要维持网络持续稳定的运行并保证网络不掉线,在持续出块的基础上减少硬分叉的情况。
混合共识机制不仅是避免出现分叉,还需要再出现分岔时,通过数据回滚来找寻问题的根源所在,其次在保证网络速度之后,也减少了延迟交易和被攻击的风险。