HotStuff共识

HotStuff是BFT共识的变种,大致思路和其他类似,系统中有两种角色:leader和replica, leader由选举算法产生。

共识过程为leader发起proposal,replica对proposal投票,投票数达到quorum时,则共识达成。

但HotStuff有以下特点:

  1. leader收集投票,而不是每个节点都收集
  2. 门限签名,使用公钥一次验证投票集
  3. 三阶段投票
  4. 主动更换leader,每一轮共识后更换leader
  5. chained hotStuff,可以同时共识多个区块

1. 由leader收集投票

在PBFT中,每个节点都做了一次收集投票信息的工作,这就导致了整个算法的工作量是重复的(起码对于所有非拜占庭节点而言是重复的,而HotStuff仅由leader收集投票,对比如下:

2. 门限签名

门限签名中,每个节点有自己的私钥,由共同的公钥。由私钥签名投票,leader收集投票后,合成一个统一的签名,

这个最终的签名可以由一个公钥验证。

对比PBFT中,需要对每个投票的签名执行验证,而采用门限签名,只需要验证一次,就能证明了至少quorum个节点执行了投票。

3. 三阶段投票

共识流程:

  • New View阶段。replica向leader发送new view消息,包含replica自身最新状态,leader由此决定proposal
  • Prepare阶段。由leader提出proposa消息l(block),replica验证后发送prepare vote, leader收集prepare vote形成prepare-QC。QC(quorum certificate): 表示quorum个投票集合。
  • Precommit阶段。prepare-QC形成后,将其放入precommit消息中,由leader广播给replica。replica验证后发送precommit vote。 leader收集precommit vote形成precommitQC,也叫lockedQC
  • Commit阶段,leader把precommitQC放入commit消息中,广播给replica,replica验证后发送commit vote, leader收集commit vote形成commitQC
  • Decide阶段。leader把commitQC发送给replica,更新view,共识完成

其中投票阶段时prepare, precommit和commit,属于三阶段投票。

4. 主动更换leader

与pbft不同,hotstuff每一轮共识后,都会更换一个leader,提供更大的随机性和安全性

5. chained hotStuff

chained hotStuff是一种模式,前面的hotstuff流程是basic hotStuff,可以用chained hotstuff进一步提升效率。可以理解为并发共识。

在传统的共识流程中,下一次共识的开始,需要等待上一次共识完成,形成上一个finalized Block之后才可以,如下:

BlockN:prepare->precommit->commit -> BlockN+1:prepare->precommit->commit

BlockN+1需要等BlockN共识完,是出于安全考虑,但牺牲了性能。

可以大胆一点,在BlockN的prepare阶段结束之后,乐观认同BlockN提出的Prosal(Block)会被finalize,那么下一个leader就可以在这个还未finalized的Block基础之上,立即开始BlockN+1的共识,形成一个并发的共识模式,如下:

BlockN prepare->precommit->commit
BlockN+1 prepare->precommit->commit
BlockN+2 prepare->precommit->commit

这样一来,共识的速度就加快了,假如每一次投票的时间都差不多,那么BlockN达到commit阶段的时候,BlockN+2处于prepare阶段。

但问题也有的,如果BlockN的proposal有问题需要回滚,基于它的BlockN+1和BlockN+2都需要回滚。

但总体上来讲,回滚的概率是低的,这种乐观模式效率是提升的。

Ref



《 “HotStuff共识” 》 有 5 条评论

  1. buy generic lasix It is unlikely that the declines in mortality were caused by changes in the major risk factors for the disease

  2. Sir, if you poison the other party to death, then the other party will come and find how to manage hyperglycemia you where to get generic cytotec price This allows the patient to achieve peak blood plasma levels faster and maintain them for a longer length of time

  3. crixivan tylenol walgreens brand Researchers believe a crater may actually be the remains of an ancient supervolcano priligy in usa

  4. 42 NEOTAM Capsule Tablet 10mg 10 units 0 priligy buy Focus on whole foods, less fat, and more fruits and vegetables

  5. pqf64cd8e32f5ac7553c150bd05d6f2252bb73f68dpq 的头像
    pqf64cd8e32f5ac7553c150bd05d6f2252bb73f68dpq

    pq118a9989815489c24b81b160782015890ed2085epq

回复 pqf64cd8e32f5ac7553c150bd05d6f2252bb73f68dpq 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

About Me

一位程序员,会弹吉他,喜欢读诗。
有一颗感恩的心,一位美丽的妻子,两个可爱的女儿
mail: geraldlee0825@gmail.com
github: https://github.com/lisuxiaoqi
medium: https://medium.com/@geraldlee0825