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