美文网首页
拜占庭容错算法

拜占庭容错算法

作者: 程序员不务正业 | 来源:发表于2018-09-13 10:47 被阅读28次

PBFT:

PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。

 拜占庭容错算法不需要发行加密货币,但是只能用于私有链或者联盟链,需要对节点的加入进行权限控制;不能用于公有链,因为公有链中所有节点都可以随意加入退出,无法抵挡女巫攻击(sybil attack)
安全性:

在R>=3f+1的前提下,系统能保持安全性和活性。R为总结点数,f为错误节点数。

角色分工

replica(副本)所有参与的节点,总数为R
primary(主节点):负责将来自client的请求排好序,然后发给所有的备份节点。
backup(备份节点):接收并检查主节点的排序信息,如果主节点作恶可以进行换选。

其中主节点的选举方法是:p = v mod R ,其中v是系统的view编号,每次换选时发生view change,view编号+1。

quorums(法定人数)

quorums有两个重要的属性:
Intersection: 任意两个quorums至少有一个共同的并且正确的replica

Availability: 总是存在一个没有faulty replicas的quorum

如果一个replica把信息写给一个quorum,并让该quorum来存储信息,在收到每一个quorum中的成员的确认反馈后,那么我们可以认为该replica的信息已经被可靠的保存在了这个分布式系统中。这是强的约束,当然还有一个weak certificates:就是至少f+1个节点来共同存取信息,这样至少有一个正确的replica存到了这份信息。

相关文章

  • Tendermint 共识算法

    介绍 分布式一致性算法一般可以分为两类:拜占庭容错和非拜占庭容错。非拜占庭容错算法如 Paxos, Raft 等在...

  • 区块链共识机制

    非拜占庭问题,采用帕克斯算法和RUFT算法;拜占庭问题,采用拜占庭容错算法,进一步发展了优化PBFT算法。PBFT...

  • 细说区块链共识机制之PBFT

    PBFT意为实用拜占庭容错算法,这个算法是卡斯特罗和利斯科夫在1999年提出来的。解决了原始拜占庭容错算法效率不高...

  • PBTF共识机制

    简介 实用拜占庭容错 (Practical Byzantine Fault Tolerance, PBFT) 算法...

  • CBFT共识机制

    简介 CBFT(Concurrent Byzantine Fault Tolerance) 并行拜占庭容错算法,从...

  • 拜占庭容错算法

    PBFT: PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。...

  • 2018-07-20小白学区块链——拜占庭容错

    前文我们谈了算力51%的问题,比特币网络为了解决这个问题,设计者中本聪引用了拜占庭容错算法。在谈拜占庭容错之...

  • 区块链核心技术:拜占庭共识算法之PBFT

    PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法。该...

  • 什么是NEO的dBFT共识机制?Tokenview

    dBFT又被称为“授权拜占庭容错”机制,是一种在NEO区块链内部实现的保证容错的共识算法,其主要目的在于解决拜占庭...

  • 浅读共识算法

    PBFT(拜占庭容错实用算法) 拜占庭问题:拜占庭将军问题是一个协议问题,拜占庭帝国军队的将军们必须全体一致的决定...

网友评论

      本文标题:拜占庭容错算法

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