Quorum共识简析

本文介绍了Quorum共识协议的三种实现:IBFT、RAFT和Clique。IBFT基于PBFT,能容忍网络中一定数量的错误节点,通过预准备、准备和提交阶段达成共识。RAFT是一种易于理解和实现的共识算法,适用于联盟链。Clique则是基于认证的共识算法,利用椭圆曲线签名验证区块合法性。
摘要由CSDN通过智能技术生成

背景

区块链共识是指多个节点或代理在给定的时间点就区块链状态达成一致的能力。当涉及区块链上分散记录保存和验证的核心功能时,单独依靠信任来确保添加到账本的信息是正确的可能会存在问题。因为没有中央实体来进行仲裁,这种问题在去中心化网络中更为明显。

共识度量是可测量的数据,区块链网络的节点必须在该数据上达成一致,以便为每个块中包含的数据建立并保持一致。在区块链技术中,每次将新块添加到链中时,每个网络节点都会测量并批准一致性度量。

共识度量有多种形式,最重要的两种是基于风险的度量(PoS)和基于工作量的度量(PoW)。本文将讨论的Quorum共识协议都是授权证明(PoA)的实现,而PoA是PoS一致性算法的子集,主要由测试网和私有或联盟网络使用。

IBFT

Istanbul Byzantine Fault Tolerant即IBFT是基于PBFT,PBFT就是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法,解决了原始拜占庭容错算法效率不高的问题,关于拜占庭容错BFT感兴趣读者可自行了解。

IBFT继承PBFT共识的三个阶段:pre-prepare,prepare和commit,称之为预准备阶段、准备阶段和提交阶段。系统可以容忍N个validator节点的网络中F个节点错误,其中 N = 3F + 1。每一轮之前,validators会首先投票选出一个proposer,默认的选举方式是轮询。选出的proposer将会打包一个新的区块并附随pre-prepare消息广播出去,当接收到pre-prepare消息,validators会进入pre-prepared状态,然后广播prepare消息。这一步是为了确认所有的validators在同一个sequence和同一个round上工作。当接收到 2F + 1个prepare消息,validator就会进入prepared状态并广播commit消息。这一步是为了通知其它节点,它验证了新区块并且将会把新区块添加到了区块链中。最后,验证者们等待2F + 1个commit消息并进入 committed 状态,并把区块添加到区块链末尾。

1.1 共识状态

IBFT是一个状态机复制算法,每个验证者为了达成区块一致都维持一个状态机副本。
状态(States):

new round:proposer打包新区块,验证者等待 pre-prepare 消息
pre-prepared:验证者接收 pre-prepare 消息,广播 prepare 消息,然后等待 2F + 1 个 prepare 或 comm
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值