从传统服务端开发的角度来理解区块链共识算法. 为什么 pbft 是三分之二+1即2/3+1,paxos 是二分之一+1即1/2+1

  传统服务端开发人员对 paxos,zab,raft 可能更熟悉. zab 和 raft 本质上是两次选举.实际上这是拜占庭问题的简化版本,没有叛徒.但是通信通道可能被破坏.
   公开环境中拜占庭错误容忍(bft b fault tolerance)会有破坏分子,例如加密货币中的 double pay 问题.
   一言以蔽之,共识最好的设计是模块化,例如Notary,共识算法的选择与应用场景高度相关,可信环境使用paxos 或者raft,带许可的联盟可使用pbft ,非许可链可以是pow,pos,ripple共识等,根据对手方信任度分级,自由选择共识机制,这样才是真的最优.

   pbft( PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算算法 ):
consensus的效率至少有两方面,一是确认时间,一是scalability--网络节点数乃至dynamics。PBFT在permissioned setting确认时间不错,然而他的communication至少是节点平方,obvIoUsly很难支持大规模网络节点,即使是在permissioned setting。据同事试验,hyperledger上一百个节点目前就要完卵。。。
   
    PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法。该算法是Miguel Castro (卡斯特罗)和Barbara Liskov(利斯科夫)在1999年提出来的,解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。该论文发表在1999年的操作系统设计与实现国际会议上(OSDI99)。没错,这个Loskov就是提出著名的里氏替换原则(LSP)的人,2008年图灵奖得主。[2]
   为什么 pbft 是三分之二+1即2/3+1,paxos 是二分之一+1即1/2+1.  原因在于 pbft 中要考虑到其中的1/3是不可信的,所以必须要2/3+1的返回.  phil 自己悟出来的. [1]


作者:李启雷
链接:https://www.jianshu.com/p/fb5edf031afd
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



[0] 请教技术大牛,pbft是不是区块链目前最优的共识机制? https://www.zhihu.com/question/55794026
[1]
Reply:如果一个节点收到2f+1条commit消息,即可提交新区块及其交易到本地的区块链和状态数据库。https://www.jianshu.com/p/2383c7841d41
[2]
区块链核心技术: 拜占庭共识算法之PBFT https://www.jianshu.com/p/fb5edf031afd [3] PBFT算法 https://www.jianshu.com/p/2383c7841d41

相关文章

财联社10月10日讯(编辑 赵昊)当地时间周二(10月8日),美...
PANews 9月29日消息,币安前首席执行官赵长鹏在X平台发文称:...
凤凰网科技讯 3月11日,比特币报价突破71000美元,创历史新高...
赵长鹏 凤凰网科技讯 北京时间9月28日,据彭博社报道,美国当...
“前华人首富”赵长鹏的出狱时间或再提前。 Binance(币安)...
财联社5月24日讯(编辑 史正丞)当地时间周四盘后,根据一份...