美文网首页区块链
共识算法4 (BFT)

共识算法4 (BFT)

作者: 李亚军_4a8a | 来源:发表于2018-03-19 21:41 被阅读0次

拜占庭将军问题(Byzantine Generals Problem),由Leslie Lamport、Robert Shostak和Marshall Pease,在其同名论文中提出(1982年)。拜占庭将军问题现在主要指分布式对等网络节点间的通信容错问题。在分布式网络中,不同的计节点通过交换信息达成共识。但有时候,系统中的成员节点可能出错而发送错误的信息,用于传递信息的通讯网络也可能导致信息损坏,也可能存在恶意节点或被黑客攻破的节点故意发送错误的信息,从而导致系统无法达成共识或者达成错误的共识。(参考:BFT Wikipedia

拜占庭将军问题提出后,有很多的算法被提出用于解决这个问题。这类算法统称拜占庭容错算法(BFT: Byzantine Fault Tolerance)。BFT从上世纪80年代开始被研究,目前已经是一个被研究得比较透彻的理论,具体实现都已经有现成的算法。

BFT算法中最典型的是PBFT(Practical BFT)。PBFT是由Miguel Castro和Barbara Liskov于1999年提出。PBFT算法解决了之前拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。PBFT在保证安全性和可用性的前提下,提供了 (n-1)/3 的容错性。(细节请参考:PBFT

PBFT之后,很多进一步提升性能或鲁棒性的BFT算法先后被提出,例如Zyzzyva、ABsTRACTs、Aardvark、RBFT等等。近几年,由于区块链的热度,无数针对区块链应用场景优化过的BFT算法也不断涌现出来。虽然目前PBFT已经不能说是最好的,或最适合区块链的BFT算法。但是PBFT已经足够好了,而且在实际应用中已经非常成熟。

在BFT共识机制中,网络中节点的数量和身份必须是提前确定好的。BFT共识机制无法做到PoW共识机制中实现的任何人都可以随时加入挖矿。另外,BFT算法无法应用到大量的节点,业内普遍认为100个节点是BFT算法的上限。所以BFT算法无法直接用于公有链,BFT算法适合的场景是私有链和联盟链。业内大名鼎鼎的联盟链Hyperledger fabric v0.6采用的是PBFT,v1.0又推出PBFT的改进版本SBFT。这里再顺便提一句,在可信环境下共识算法一般使用传统的分布式一致算法PAXOS或者RAFT。

公有链使用BFT的一个例外是NEO,NEO使用了DBFT(delegated BFT)共识机制。DBFT共识机制下投票选出7个共识节点。这些代理节点是通过静态选出的,并完全由项目方部署。这也是NEO被外界质疑过于中心化的原因。(参考:早期公有链明星项目-NEO

BFT算法和公有链合适的结合点在于基于BFT的PoS共识算法(BFT based PoS)。基于BFT的PoS共识算法要点有:一,网络节点通过锁定虚拟资产申请成为区块链系统的验证者(或矿工)。系统验证者的数量是动态变化的。二,系统从当前验证者中随机选择一个人作为区块提案人。三,系统验证者对区块提案进行投票表决,投票可能要进行多轮才能达成共识。每个人的投票比重与锁定的虚拟资产成比例。

基于BFT的PoS的典型例子是tendermint(Cosmos采用了tendermint作为共识核心)。

相关文章

  • 共识算法4 (BFT)

    拜占庭将军问题(Byzantine Generals Problem),由Leslie Lamport、Rober...

  • 2020-01-09 本体的VBFT共识算法

    概括 共识节点 共识候选节点 共识网络构建 随机节点完成共识 算法概述 VBFT算法可以认为是传统BFT算法在可验...

  • 区块链论文精读——Gosig: A Scalable and H

    简单来说:本文基于现有BFT类共识算法,提出了改进BFT协议Gosig,基于gossip协议设计并改进了共识协议流...

  • 003 - 共识算法-BFT

    转载于:黎跃春老师 什么是 BFT BFT( Byzantine Fault Tolerance)称为 拜占庭容错...

  • EOS的共识机制与区块生成

    在《EOSIO 技术白皮书》中,对 EOS 的共识机制 BFT-DPOS(拜占庭容错算法+权益委托共识机制)进行了...

  • VRF + BFT共识算法实现探索

    摘要 前文介绍的PBFT算法,是一种经典的联盟链BFT共识算法,在节点较少的情况下,性能比较高,安全性也比较好,但...

  • 初链学习

    初链的技术架构 混合共识 以fabric为首的很多联盟链采用bft类算法,例如pbft、rbft、cbft等等,这...

  • 区块链杂项

    区块链技术是一个对多种技术的组合创新,多种技术包括: 1、共识算法:POW/POS/DPOS/PBFT/BFT-R...

  • MIXIN,稳坐天枰的闪电网络?

    Mixin是什么? Mixin是基于BFT-DAG共识算法的新型公链,Mixin网络的基础是运行在可信执行环境上的...

  • EOS和ETH的区别

    共识算法不一样 PoW BFT-DPoS 秘钥丢失后,eth、btc无法找回,但是eos允许恢复私钥 eos增加了...

网友评论

    本文标题:共识算法4 (BFT)

    本文链接:https://www.haomeiwen.com/subject/zmyrqftx.html