一种POS算法
Ouroboros的pos共识算法整个共识过程被分成每个epoch过程无线循环,这里分析一下每个epoch里干的事情,epoch里将按时间线分成n个slot,每个slot将独立工作,每个slot只能产生一个块,若这个块有问题,或者应该产出这个块的矿工
不在线,或者产出的块没有广播给大多数人,那么这个slot是当作废弃的,也就是会跳过这个slot的块。
每个slot对应的矿工
将通过一种随机算法(VRF可验证随机函数,这里不在过多解释VRF)从stakeholder(一组候选人)选出,该随机结果需要满足矿工
当前权益数量的概率分布,注:同一个slot可能选出不只一个矿工
,如图论文中的函数:
随机选择
每个epoch初始时都有一个随机种子,该随机种子的产生将获得前一个epoch的里所有的矿工
认可,以保证种子的独立性,最初的随机中可以通过创世来指定,由此每个epoch里的每个slot都将由预先选定的矿工
开始出块,当其中某个slot废弃时,下一个slot将继续出块(以自身的高度),并拥有一个块的最终确认周期,以完成区块的出块过程。
这里一直有个问题没有确定,如果每个slot以自身的高度出块,可能会分叉的概率,如果每个slot固定一个高度,可能会导致安全隐患(固定高度的slot停止出块)。