码迷,mamicode.com
首页 > 编程语言 > 详细

PBFT算法的相关问题

时间:2018-04-02 14:23:56      阅读:707      评论:0      收藏:0      [点我收藏+]

标签:why   mit   body   gpo   理解   更改   传递   大于   基于   

PBFT(99、02年发了两篇论文)-从开始的口头算法(指数级)到多项式级

要求 n>3f

why:

  个人简单理解:注意主节点是可以拜占庭的,从节点对于(n,v,m)的投票最开始也是基于主节点给的(n,v,m)。那么N个中其实有f个拜占庭,以及f个可能被拜占庭节点影响的好节点(好节点可能没收到所有应答或者收到了来自拜占庭的错误应答,为什么不能超过f?因为超过f+1可以触发视图更改),所以最后只剩下N-2f,必须大于f(f个可能的来自拜占庭节点的决策)

 

  prepare阶段保障的是safety,确保至少有f+1个好节点收到了同样的(n,v,m)的投票,commit阶段其实为了保障liveness,保证至少f+1个好节点对于同样的(n,v,m)已经达到了确认提交,提交意味着执行,所以视图变更时,这些已经提交的操作必须传递到下一个视图,不然就得回滚(回滚是复杂的)。所以viewchange的quorum也是2f+1,保证了f+1个好节点与之相交至少存在1个好节点会正确传递上一视图的所有已提交信息,保证了liveness。

  所以quorum都是2f+1是因为这里面f个应答可能是来自拜占庭节点的

PBFT算法的相关问题

标签:why   mit   body   gpo   理解   更改   传递   大于   基于   

原文地址:https://www.cnblogs.com/zhang-qc/p/8692848.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!