当前位置:首页 > 知识 >

aeternity上哪个平台运行波卡运行原理系列(四)BABE共识简述

BABE是目前Kusama、Edgeware等网络使用的一种共识算法,用于确定区块的生成顺序。

概念定义: - Slot(槽):固定长度的时间区间,用于区块的生成。 - Epoch(时期):由多个Slot组成的时间段。 - VRF(可验证随机函数):一种私钥相关的随机函数,任何人可以通过公钥来验证。

解决的问题: - 引入随机性,使下一个出块验证者不可预测,从而实现出块的去中心化。

步骤: 1. 验证人使用自己的私钥生成VRF(随机数+Proof)。 2. 验证人计算SlotNo+EpochNo+随机数得到一个值,如果该值小于一个特定值,则获得出块机会。 3. 如果一个Slot存在以下情况:1. Slot没有任何验证者满足要求;2. Slot有多个验证者满足要求,则按照Aura顺序指定验证者出块,被称为次级Aura区块,优先级较低。 4. 每个Epoch根据最新的Staking情况 - 区块由Digest和Seal组成。 - Digest包含:Pre-digest(VRF输出和运行时处理的交易记录集合)和Post-digest(仅在Epoch切换时存在,输出混合随机值用于重新选择验证者集合)。 - Seal即节点的签名。

BABE的问题: - 在特定情况下,节点可以影响随机值,从而实现小概率的验证人顺序预测。 - 一个Slot可能存在没有BABE验证者或存在多个验证者的情况。

为了改进这些问题,出现了改良的Sassafras共识,详情可以查看TangWei的视频(链接:https://www.bilibili.com/video/BV1bz411z73k)。

猜你喜欢

微信二维码

微信