IPSE跨链:BABE共识算法工作原理简析
当前,某一区块链网络自身的扩张和给体系下局部应用的大规模增长存在着矛盾,导致系统资源竞争加剧,这已经在目前EOS网络中资源(RAM和CPU)拥堵中得到体现。不仅是EOS,包括以太坊、比特币等区块链网络都存在此问题。
Polkadot提出了解决方案,它是一个可扩展的异构多链系统,目标是实现彼此孤立不互通的区块链网络之间形成互操作。Polkadot具备高扩展性,避免硬分叉,可以不断升级。
IPSE基于Substrate架构进行构建平行链(parachain),使用Polkadot系统架构中主要的关键结构转接桥(bridge)进行跨链通信。为保证IPSE平行链和Polkadot系统的中继链的状态一致性,利用了混合共识机制,分别是BABE和GRANDPA。
BABE共识算法
BABE(Blind Assignment for Blockchain Extension,"区块链扩展盲分配)是在验证人节点与决定谁是产生新区块之间的产生区块机制。BABE算法根据抵押和使用Polkadot随机性周期分配区块生产插槽给验证人。
Polkadot 的验证人将会参与在每次的抽奖去决定它们是否是该时隙的生产区块候选人。时隙是用时间作单位,长度为6秒。由于这种随机性机制,多个验证人可能是同一时隙的候选人。在其余时间,时隙可能为空导致区块时间不一致。
同一时隙多个验证人:当多个验证人在同一时隙也成为了区块生产侯选人,全部都会产生区块并广播到网络。不过,这种情况将是一种比赛。具体是哪个验证人先获胜,取决于网络拓扑和延迟,直到最终敲定并截断分叉为止。
时隙里没有验证人:当没有任何验证人在随机抽奖中达到足够低的资格进行生产区块时,时隙便会没有区块产生。不过会选择算法来避免这种情况,保持有验证人始终生成区块。
BABE还需要和GRANDPA配合,BABE负责出块,GRANDPA主要负责实现区块链之间(如平行链)的共识来确保区块的最终一致性。
注:需要指出的是BABE算法还在完善中,目前Web3基金会的Handan Kilinc Alper发布了最新的BABE介绍文档,对工作机制进行了详细的解释。
https://research.web3.foundation/en/latest/polkadot/BABE/Babe/