共识算法(BABE+GRANDPA)

共识算法(BABE+GRANDPA)

未命名文件

​ 传统的分布式系统采用的较常用的共识算法包括raft, paxos, PBFT等。

  • PBFT(practical byzantine fault tolerance)
    • 是相对比较简单且实用的算法。
    • 必须要指定一个委员会,只有委员会里的节点拥有投票权,不是开放式的。

而自从比特币后,出现了新的共识算法

  • 工作量证明 (Proof of Work) 的共识机制
    • 第一个去中心化的金融交易系统。
    • 工作量证明的去中心化程度很高,允许任何节点加入网络,
    • 主要问题是对算力和电力的消耗很高。
  • 权益证明(Proof of Stake)的共识机制
    • 是通过抵押代币来作为投票权,总的来说抵押的代币越多,投票权越大。
    • 权益证明只是允许任何节点的加入,保证了网络的开放性
    • 还需要搭配共识算法才能成为一个整体的去中心化共识。
      • 一般最常用的有两个类型: BFT(Byzantine Fault Tolerance)共识算法和链式(Chain based)共识算法。

​ BFT(Byzantine Fault Tolerance)共识算法是通过领导者提出下一个区块,其他节点通过投票来决定是否接受或者拒绝这个区块。比如PBFT, Tendermint, Hotstuff。它们的主要难点在于当领导节点作恶或者下线的时候,如何在委员会里选择下一个领导者。

​ 链式(Chain based)共识算法分为两个步骤: 出块(block proposal)和终结性(finality)。比如ouroboros, BABE(出块), Casper CBC(终结性), GRANDPA(终结性)。在substrate中,BABE和GRANDPA合在一起决定了如何出块以及如何选出最佳分支的过程。接下来主要讲解一下BABE和GRANDPA。

1.BABE算法

​ BABE是Blind Assignment for Blockchain Extension的缩写。简单来说,BABE把时间分为一个个epoch。每一个epoch又分为一个个的时间间隔(slot)。每一个slot里都会通过VRF(verifiable random function)从众多的节点中选出一部分有资格出块的节点(slot leader)。这里我们暂且称之为出块节点。每一个时间间隔 (slot) 选出的出块节点都可能不同,有可能多个,也可能一个都没有被选上。总体来说一个节点被选上的概率正比与它抵押的代币数量。在Substrate中,一个时间间隔大概是6秒钟。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值