百度以太坊imtoken钱包下载手机版|bft算法

作者: 百度以太坊imtoken钱包下载手机版
2024-03-15 05:29:12

拜占庭容错算法BFT - 知乎

拜占庭容错算法BFT - 知乎首发于区块链+切换模式写文章登录/注册拜占庭容错算法BFT弹剑听潮​中国地质大学(北京) 工商管理硕士拜占庭容错,英文全称Byzantine Fault Tolerance,简称BFT。拜占庭错误:恶意节点,它为了阻挠真实信息的传递以及有效一致的达成,会向各个节点发送前后不一致的信息。能够处理拜占庭错误的这种容错性,就叫做拜占庭容错。拜占庭容错共识算法,就是假设区块链网络环境包括运行正常的服务器、故障的服务器和破坏者的服务器情况下,如何在正常的节点间形成对网络状态的共识。拜占庭容错共识算法的种类1. 实用拜占庭容错算法2. 授权拜占庭容错算法3. 联邦拜占庭协议这些算法在具体的实现形式上有所不同,但都有速度快、支持高并发、可扩展的特点,通常被用于私有链或者联盟链。实用拜占庭容错算法实用拜占庭容错算法,英文全称,Practical Byzantine Fault Tolerance,简称PBFT。Miguel Castro (卡斯特罗)和Barbara Liskov(利斯科夫)在1999年提出来的,解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。在超级账本Fabric0.6中主要使用的就是这种算法。它可以在失效节点不超过总节点数1/3的情况下保证消息传递的正确可靠。PBFT,本质上就是利用通信次数换取可靠性。每个命令的执行都需要节点间两两交互去核验消息,这产生了比较高的通信代价。PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。所有的副本在一个被称为视图的轮换过程中运作。在某个视图中,一个副本作为主节点,其它的副本节点作为备份节点。主节点通过随机算法选出,用来负责与提案的客户端通信。主节点选出后,客户端发送提案给主节点,主节点将客户端请求进行编号,然后发送预准备消息给所有的副本节点。每一个副本节点在收到来自主节点的预准备消息之后,都要检查消息的正确性,然后发送准备消息给除了自己以外的其他所有副本节点。同时它也会收到其他副本节点发来的准备消息。在收到消息后,副本节点对其他节点的准备消息进行验证,如果正确就将准备消息写入消息日志,集齐规定数量的准备消息之后,它就进入准备状态。副本节点进入准备状态后,在全网范围内广播commit消息,当副本节点集齐规定数量个验证过的commit消息后,就表示请求处理完毕,当前网络中的大部分节点已经达成共识,于是发送处理结果给客户端,运行客户端的请求。PBFT举例当节点数大于等于4个的时候,1个无效节点的存在并不会影响消息的传递。推广来说,当存在n个无效节点时,只要总节点数超过3n个,消息传递的正确性就能得到保证,这也是拜占庭算法的容错率。发布于 2020-07-04 11:49授权拜占庭容错算法区块链(Blockchain)节点​赞同 4​​添加评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录区块链+区块链知识及一

拜占庭容错算法BFT - 知乎

拜占庭容错算法BFT - 知乎首发于区块链+切换模式写文章登录/注册拜占庭容错算法BFT弹剑听潮​中国地质大学(北京) 工商管理硕士拜占庭容错,英文全称Byzantine Fault Tolerance,简称BFT。拜占庭错误:恶意节点,它为了阻挠真实信息的传递以及有效一致的达成,会向各个节点发送前后不一致的信息。能够处理拜占庭错误的这种容错性,就叫做拜占庭容错。拜占庭容错共识算法,就是假设区块链网络环境包括运行正常的服务器、故障的服务器和破坏者的服务器情况下,如何在正常的节点间形成对网络状态的共识。拜占庭容错共识算法的种类1. 实用拜占庭容错算法2. 授权拜占庭容错算法3. 联邦拜占庭协议这些算法在具体的实现形式上有所不同,但都有速度快、支持高并发、可扩展的特点,通常被用于私有链或者联盟链。实用拜占庭容错算法实用拜占庭容错算法,英文全称,Practical Byzantine Fault Tolerance,简称PBFT。Miguel Castro (卡斯特罗)和Barbara Liskov(利斯科夫)在1999年提出来的,解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。在超级账本Fabric0.6中主要使用的就是这种算法。它可以在失效节点不超过总节点数1/3的情况下保证消息传递的正确可靠。PBFT,本质上就是利用通信次数换取可靠性。每个命令的执行都需要节点间两两交互去核验消息,这产生了比较高的通信代价。PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。所有的副本在一个被称为视图的轮换过程中运作。在某个视图中,一个副本作为主节点,其它的副本节点作为备份节点。主节点通过随机算法选出,用来负责与提案的客户端通信。主节点选出后,客户端发送提案给主节点,主节点将客户端请求进行编号,然后发送预准备消息给所有的副本节点。每一个副本节点在收到来自主节点的预准备消息之后,都要检查消息的正确性,然后发送准备消息给除了自己以外的其他所有副本节点。同时它也会收到其他副本节点发来的准备消息。在收到消息后,副本节点对其他节点的准备消息进行验证,如果正确就将准备消息写入消息日志,集齐规定数量的准备消息之后,它就进入准备状态。副本节点进入准备状态后,在全网范围内广播commit消息,当副本节点集齐规定数量个验证过的commit消息后,就表示请求处理完毕,当前网络中的大部分节点已经达成共识,于是发送处理结果给客户端,运行客户端的请求。PBFT举例当节点数大于等于4个的时候,1个无效节点的存在并不会影响消息的传递。推广来说,当存在n个无效节点时,只要总节点数超过3n个,消息传递的正确性就能得到保证,这也是拜占庭算法的容错率。发布于 2020-07-04 11:49授权拜占庭容错算法区块链(Blockchain)节点​赞同 4​​添加评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录区块链+区块链知识及一

共识问题之三:拜占庭容错(BFT)共识算法的发展历程 - 知乎

共识问题之三:拜占庭容错(BFT)共识算法的发展历程 - 知乎首发于DecentralizedNet切换模式写文章登录/注册共识问题之三:拜占庭容错(BFT)共识算法的发展历程Grivn​​浙江大学 计算机硕士在共识算法理论基础方面,1985 年,著名的 FLP 不可能定理[1]被提出。该定理证明,在异步网络的环境下,只要存在节点发生故障,就不可能存在具备最终确定性的共识算法。为了能设计出最终一致性的共识算法,1988 年,Dwork 与 Lynch 等人提出了半同步网络的模型[2],该模型提出一种界于同步网络与异步网络之间的网络模型。在半同步网络模型中,消息可以在能够预测的延迟内传播,但在某些情况下网络可能会发生波动,发生波动时共识可能会被阻塞,但是经过可预测的时间后,最终会恢复正常的共识状态,该时间长度被称为 GST(Global Stabilization Time)。1989 年,Lamport 提出了一个在部分副本宕机情况下仍能正常工作的主从备份算法[3],这就是最早的 Paxos。Paxos 最早保证了异步网络中分布式集群的安全性,并在同步状态时保证分布式系统活性。不过,基础的 Paxos 协议由于需要先竞选提案权,再对提案进行共识,在此期间存在发生活锁的风险,最终确定性没有得到保证。为了解决该问题,作者也同时提出了一种基于主从结构的 Multi-Paxos 方案。通过一轮基础的 Paxos共识,集群选择一个主节点主导后续的提交过程,只要主节点不发生宕机,后续的提案均由主节点发出。这样做,使得存在主节点的时间段内,系统能够满足最终确定性。后来的 ZAB、Raft 等共识算法,均为在 Multi-Paxos 的基础上进行的优化与改进。不过,Paxos 等共识算法只能解决分布式系统中的宕机问题,称为宕机容错(Crash Fault Tolerance,CFT)共识算法。此类共识算法无法应对节点主动的恶意行为,即不容拜占庭错误。1982 年,Lamport 等人[4]提出了著名的拜占庭将军问题,同时也提出两种解决该问题的思路,分别是基于口述消息与基于签名消息的拜占庭容错(Byzantine Fault Tolerance,BFT)共识算法。但是,由于这两种方案的通信复杂度很高(分别为 O(n^m) 与 O(nm) ,n 为总节点数量,m 为拜占庭节点数量),导致算法的使用难度较高。1999 年,Castro 和 Liskov 提出了 PBFT[5](Practical Byzantine Fault Tolerance)共识算法,并在 2002 年[6]对该算法进行了改进。PBFT 建立在半异步的网络假设下,通过主从备份的设计方式,将 BFT 共识算法的通信复杂度降低到 O(n^2) 。在 PBFT 中,节点分为主节点与从节点两种角色,提案由主节点发起,并经由全体节点共识才会被提交。完整的一次共识需要经过 pre-prepare、prepare、commit 三个步骤,对于每个提案,在各个节点经历 pre-prepared、prepared、committed 状态后,才会被最终提交。如果将主从节点之间的一次信息交互称为一轮,PBFT 共识需要经过两轮交互:pre-prepare 与 prepare为第一轮交互,由主节点在 pre-prepare 阶段向从节点广播提案,并由从节点在 prepare阶段广播消息以对这个提案进行确认;commit 为第二轮交互,主从节点都会广播消息以确认该提案可以被提交。在每轮交互中,都需要满足 Quorum 决议的最小投票数要求,才表示完成当前轮次的交互。在这个过程中,PBFT 主要用于防止参与者对集群安全性与活性的破坏,即,保证各个正确的节点都能够获得一致的状态,并且能够持续不断的提供共识服务。不过,由于需要考虑拜占庭容错问题,PBFT 进行主节点切换的子协议非常繁琐。该子协议主要用于主节点异常时切换主节点,并且保证在有拜占庭行为的情况下,集群不会因主节点切换而丧失活性。对于该流程的设计,PBFT 的作者先后在1999 年[5]与 2002 年[6]给出两种解决思路,无论哪种思路,都需要收集大量历史共识消息日志,并通过复杂的信息交互与消息校验以最终安全完成主节点切换。发生主节点切换时,在最优情况下,算法完成切换所需要的通信复杂度为 O(n^3) 。由于主节点切换子协议的高度复杂,在实现 PBFT 共识算法时,该流程的正确实现也最具挑战性。2008 年,随着比特币的出现,各种基于区块链的证明类共识算法相继被提出。通过基于哈希运算构建的块链式数据结构,区块链系统可以通过“最长链原则”来确认系统状态是否一致,即,通过最后一个区块的一致性来确定系统整体状态是否相同,降低了证明成本。同时,密码学相关技术也在进步,更多的计算资源与更高效的密码算法为计算机技术进步铺开道路。聚合签名,是一种用来将任意多个签名聚合成一个签名的变体签名方案。对于 (k, n) -聚合签名方案,意味着在总数为 n的集群中,只要由 k个人完成签名,即将它们聚合称一个有效的聚合签名。2018 年,基于半异步网络假设与主从备份的设计方式,结合块链式结构思想,使用聚合签名技术,Yin 等人提出了链式BFT 共识算法 HotStuff[7]。相比较 PBFT,HotStuff 的最主要贡献在于实现了线性主节点切换,该算法中,提案需要经过三轮交互才能够被提交,虽然增加了少许通信延迟,但是这样的设计方式简化了 PBFT 中复杂的主节点切换流程,也更便于工业化实现。此外,HotStuff 在共识算法中加入了聚合签名,使得在每轮主从节点的交互中,从节点只需要向当前轮次主节点单播消息,由主节点收集投票并聚合成为一个决议证书(Quorum Certificate,QC),再将 QC 其广播给从节点,从节点从过对 QC 进行校验就可以对当前轮次的 Quorum 决议进行验证。通过这种机制,将 BFT 算法的通信复杂度进一步降低到 O(n) ,更低的通信复杂度也让 HotStuff 具有更好的扩展性。 在半异步 BFT 共识算法的研究过程中,研究人员也尝试采用可信执行环境(TEE)来解决拜占庭攻击,从而将 BFT 问题简化为 CFT 问题,代表性的算法有 MinBFT[8]、cheapBFT[9]、FastBFT[10]等。相比较未使用 TEE 的 BFT 共识算法,由于只需要考虑宕机问题,容错阈值也会更高。节点的拜占庭行为主要通过伪造错误的消息从而破坏系统的安全性,应用 TEE 的共识算法通常使用 TEE 辅助进行消息处理,获取可信的逻辑时钟,以排除拜占庭行为,使得节点只可能出现宕机这一种错误情况。在此类共识算法中,FastBFT 通过 TEE 辅助实现了独特的共识思路,作者提出了一种树形结构的通信模式,将节点通信复杂度降低到 O(1) ,算法的扩展性进一步得到了提升。另外,FastBFT通过 TEE 辅助实现了基于异或运算的秘密分发与聚合方案,相比较聚合签名来说,该秘密信息聚合的速度得到提升。不过,由于恶意节点能够故意引发树形通信的成员更替,FastBFT 的运行依赖于相对稳定的集群环境,且基于 TEE 的共识算法的正确性均依赖于可信硬件,应用场景存在限制。半异步的 BFT 共识算法普遍有让人满意的性能表现,在有高容错要求的联盟链当中,常使用此类共识算法以满足容错需求。不过,半异步 BFT 共识算法都需要在 GST 假设下才能满足活性要求,在更加复杂的网络环境中,例如跨大洲部署的集群网络,很难获得稳定的通信延迟,半异步 BFT 共识算法的可靠性也会随之下降。为了在更复杂网络环境中完成共识,需要设计异步的 BFT 共识算法。FLP 不可能定理提出,如果存在错误节点,就无法在异步环境下构建确定性共识。半异步共识算法从网络假设上进行取舍,此外,研究人员发现,若通过概率性确定的方式,也可以绕开 FLP 不可能定理从而在异步网络中完成共识。2016 年,Miller 等人[11]提出了首个实用的异步 BFT 共识算法 HoneyBadgerBFT,通过引入多轮随机数的方式,使得各个节点在重复多轮的共识之后,可以获得较高概率一致的共识结果。另外,HoenyBadgerBFT 作为一种异步共识算法,不存在特定的主节点,每次共识中,各个节点都可以发起提案,每轮共识所提交的内容,由最终被选中提案共同组成。为了提高共识效率,各个节点会选择部分交易打包为提案切片,防止出现重复交易。不过,由于异步 BFT 共识算法需要经过多轮重复的共识轮次后,才能获得能够被提交的结果,因此具有更高的延迟,在广域网中尤为明显,部分场景中共识延迟会达到 1 分钟以上。2020 年,Dumbo[12]对 HoenyBadgerBFT 存在的问题进行针对性优化,揭示其性能受限的根源是大量随机化子模块调用导致的运行时间增加,大幅降低了算法延迟,使得异步 BFT 算法有了更高的实用价值。参考^Fischer M J, Lynch N A, Paterson M S. Impossibility of distributed consensus with one faulty process[J]. Journal of the ACM (JACM), 1985, 32(2): 374-382.^Dwork C, Lynch N, Stockmeyer L. Consensus in the presence of partial synchrony[J]. Journal of the ACM (JACM), 1988, 35(2): 288-323.^Lamport L. A simple approach to specifying concurrent systems[J]. Communications of the ACM, 1989, 32(1): 32-45.^Shostak R, Pease M, Lamport L. The byzantine generals problem[J]. ACM Transactions on Programming Languages and Systems, 1982, 4(3): 382-401.^abCastro M, Liskov B, et al. Practical byzantine fault tolerance[C]//OSDI: vol. 99: 1999. 1999: 173-186.^abCastro M, Liskov B. Practical Byzantine fault tolerance and proactive recovery[J]. ACM Transactions on Computer Systems (TOCS), 2002, 20(4): 398-461.^Yin M, Malkhi D, Reiter M K, et al. HotStuff: BFT consensus with linearity and responsiveness[C]// Proceedings of the 2019 ACM Symposium on Principles of Distributed Computing. 2019: 347-356.^Veronese G S, Correia M, Bessani A N, et al. Efficient byzantine fault-tolerance[J]. IEEE Transactions on Computers, 2011, 62(1): 16-30.^Kapitza R, Behl J, Cachin C, et al. CheapBFT: Resource-efficient Byzantine fault tolerance[C]// Proceedings of the 7th ACM european conference on Computer Systems. 2012: 295-308.^Liu J, Li W, Karame G O, et al. Scalable byzantine consensus via hardware-assisted secret sharing[J]. IEEE Transactions on Computers, 2018, 68(1): 139-151.^Miller A, Xia Y, Croman K, et al. The honey badger of BFT protocols[C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. 2016: 31-42.^Guo B, Lu Z, Tang Q, et al. Dumbo: Faster asynchronous bft protocols[C]//Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security. 2020: 803-818.编辑于 2022-05-31 10:47区块链(Blockchain)共识机制拜占庭​赞同 26​​1 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录DecentralizedNet区块链,Web3.0,NFT,去中心化互联网

共识算法系列:PBFT算法关键点综述、优缺点总结 - 知乎

共识算法系列:PBFT算法关键点综述、优缺点总结 - 知乎首发于区块链技术切换模式写文章登录/注册共识算法系列:PBFT算法关键点综述、优缺点总结Sylarxx本文参考:Byzantine fault tolerance Practical Byzantine Fault Tolerance 区块链核心技术:拜占庭共识算法之PBFT 美图技术团队:raft和pbft算法 pbft算法理解 我们之前讨论过的Raft和Paxos,都是非常高效的算法,他们只支持CFT(Crash fault tolerance),只允许系统内节点宕机(crash),并不考虑系统内有作恶节点。但是对于开放区块链系统(公有链)来说,任何节点都可以加入这个网络中,那么就必须要考虑作恶节点的问题。对于这个问题Lamport老爷子就在他的论文中提出:拜占庭将军问题(Byzantine Generals Problem),是由Leslie Lamport在其同名论文中提出的分布式对等网络通信容错问题。在分布式计算中,不同的计算机通过通讯交换信息达成共识而按照同一套协作策略行动。但有时候,系统中的成员计算机可能出错而发送错误的信息,用于传递信息的通讯网络也可能导致信息损坏,使得网络中不同的成员关于全体协作的策略得出不同结论,从而破坏系统一致性。拜占庭将军问题被认为是容错性问题中最难的问题类型之一。BFT从上世纪80年代开始被研究,目前已经是一个被研究得比较透彻的理论,具体实现都已经有现成的算法。其中,PBFT是当中最著名的算法,PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法。该算法是Miguel Castro和Barbara Liskov在1999年提出来的,解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。简介首先,我们来说结论:PBFT在保证可用性和安全性(liveness & safety)的前提下,提供了(n-1)/3的容错性,意思就是如果系统内有n台机子,那么系统最多能容忍的作恶/故障节点为(n-1)/3个。(作恶节点可以不响应或者回应错误的信息)。网络上很多关于PBFT的文章都是抄来抄去,甚至有很多概念上的错误,所以最好还是推荐读PBFT的原文Practical Byzantine Fault Tolerance同时在这里推荐两篇我觉得写的比较好的文章:区块链核心技术:拜占庭共识算法之PBFT 美图技术团队:raft和pbft算法为了保证pbft算法的正确性,节点总数量n和作恶节点数量f必须满足n > 3f。至于原因,我们接着往下看。The resiliency of our algorithm is optimal: 3f + 1 is the minimum number of replicas that allow an asynchronous system to provide the safety and liveness properties when up to f replicas are faulty (see [2] for a proof). This many replicas are needed because it must be possible to proceed after communicating with n - f replicas, since f replicas might be faulty and not responding. However, it is possible that the f replicas that did not respond are not faulty and, therefore, f of those that responded might be faulty. Even so, there must still be enough responses that those from non-faulty replicas outnumber those from faulty ones, i.e., n - 2f > f. Thereforen n > 3f.对于原文的理解:假设作恶节点数量为f(注意:作恶节点可能不发送任何消息,也可能发送错误消息),那么为了保证一致性达成,系统内节点数量必须大于3。为什么呢?原文的意思是:因为我们知道有f个作恶节点,所以我们必须在n-f个状态复制机的沟通内,就要做出决定(为什么呢?因为我们在设计异步通信算法的时候,我们不知道那f个节点是恶意节点还是故障节点,这f个节点可以不发送消息,也可以发送错误的消息,所以在设计阈值的时候,我们要保证必须在n-f个状态复制机的沟通内,就要做出决定,因为如果阈值设置为需要n-f+1个消息,那么如果这f个作恶节点全部不回应,那这个系统根本无法运作下去)。在n-f个状态复制机的沟通内,就要做出决定。而且我们无法预测这f个作恶节点做了什么(错误消息/不发送),所以我们并不知道,这n-f个里面有几个是作恶节点,我们必须保证正常的节点大于作恶节点数。所以有 n-f-f > f,从而得出了n > 3f。这里顺便提供⽹上看到的⼀个证明,但原理也是一样的:Liveness要求,Q <= n-f; (Q是要进行选举的法定⼈数,系统要能保证正常跑着,不中断,法定 人数不能多于可以进行选举的人数n-f)。Safety要求,根据quorum intersection property: 2Q-n > f,(2个不同的提议情况如何达成一致,只 要有分别支持两个提议的人有交叉,而且交叉的是⼀个non-faulty节点,就能达成一致,这是2Q-n > 0的情况,PBFT容忍f个faulty节点,所以需要有f个non-faulty的交叉) n+f < 2Q <= 2(n - f) => f < n/3 => n > 3f。最⼩n为3f+1。要点分析为了避遍内容重复,关于PBFT的算法细节,推荐大家这三篇文章,可根据需求服用。(当然还是看原论文最好)Practical Byzantine Fault Tolerance(原论文) 区块链核心技术:拜占庭共识算法之PBFT 美图技术团队:raft和pbft算法我们直接来总结PBFT算法当中的一些要点:pre-prepare: 发送原本的消息m,让每个节点都获取原始消息prepare: 用Digest(m)去发送,如果一个节点收到2f+1个prepare消息,就认为“prepared”,说明已经有大部分节点认同了这个m。commit: 用Digest(m)去发送,如果一个节点收到2f+1个commit,那么就可以认为,就说明已经有大多数节点“执行”了这些m,这个阶段主要是为了View Change服务。prepare和commit阶段为何都要2f+1个节点反馈确认?(这2f+1并不一定是相同的)对于prepare和commit来说,节点需要在2f+1个状态复制机的沟通内就要做出决定,这是刚好可以保证一致性的,考虑最坏的情况:我们假设收到的有f个是正常节点发过来的,也有f个是恶意节点发过来的,那么,第2f+1个只可能是正常节点发过来的。(因为我们限制了最多只有f个恶意节点)由此可知,“大多数”正常的节点还是可以让系统工作下去的。所以2f+1这个参数和n>3f+1的要求是逻辑自洽的。还有网上的另一个证明,但是其实也是一个意思:某副本收到f+1个相同的反馈确认,如果这f+1个反馈中包含faulty节点发过来的消息,是不能作数的,因为faulty节点是墙头草,给副本i发送的消息和副本j发送的消息不一致(类⽐一下一个汉奸跟游击队说⾃己是爱国的,跟⻤子说⾃己是忠⼼的)。必须要2f+1个相同的反馈确认才能保证f+1个non-faulty节点正常,这时候即便f个faulty节点给不同⼈发不同消息也没关系,f+1个non-faulty节点已经形成了统一战线,他们在⼈数上已经多于那些墙头草了,可以达成⼀致了。因此,如果顺利的话,一个节点收到1个pre-prepare消息和2f个和prepare消息进入commit阶段,2f+1个commit消息后可以reply给client,client收到f+1个回复就可以确认提交成功。client为何只需要f+1个相同的回复就可确认?之前我们说,prepare和commit阶段为何都要2f+1个节点反馈,才能确认。client只需要f+1个相同的reply就可以了呢?我们还是来考虑最坏的情况,我们假设这f+1个相同的reply中,有f个都是恶意节点。所以至少有一个rely是正常节点发出来的,因为在prepare阶段,这个正常的节点已经可以保证prepared(m,v,n,i)为真,所以已经能代表大多数的意见,所以,client只需要f+1个相同的reply就能保证他拿到的是整个系统内“大多数正常节点“的意见,从而达到一致性。如果primary是恶意节点呢?对于一致性,我们可以这么看:如果prepared(m,v,n,i)为真,那么prepared(m’,v,n,j)一定是错误的,因为对于同一个提案我们不可能有两种结果,从而保证整个系统的一致性。假设primary节点是恶意的,那么意味着在replicas节点中⾄多有f-1个恶意的节点,prepared(m,v,n,i)为真,则证明有f+1个善意节点达成了了⼀致,prepared(m’,v,n,j)为真,意味着另外f+1个善意节点达成了一致,因为系统中只有2f+1个善意节点,因此最少有⼀个善意节点发送了两个冲突的prepare消息,这是不可能的。所以prepared(m,v,n,i)为真,那么prepared(m’,v,n,j)是错误的。总结特征/优点:通信复杂度O(n^2)。首次提出在异步网络环境下使用状态机副本复制协议,该算法可以工作在异步环境中,并且通过优化在早期算法的基础上把响应性能提升了一个数量级以上。作者使用这个算法实现了拜占庭容错的网络文件系统(NFS),性能测试证明了该系统仅比无副本复制的标准NFS慢了3%。使用了加密技术来防止欺骗攻击和重播攻击,以及检测被破坏的消息。消息包含了公钥签名(其实就是RSA算法)、消息验证编码(MAC)和无碰撞哈希函数生成的消息摘要(message digest)。适用于permissioned systems (联盟链/私有链),能容纳故障节点,也能容纳作恶节点。要求所有节点数量至少为3f+1(f为作恶/故障不回应节点的数量),这样才能保证在异步系统中提供安全性和活性。解决了原始拜占庭容错(BFT)算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。缺点:仅仅适用于permissioned systems (联盟链/私有链)。通信复杂度过高,可拓展性比较低,一般的系统在达到100左右的节点个数时,性能下降非常快。PBFT在网络不稳定的情况下延迟很高。如文中出现错误或歧义,欢迎指正!如有不全面的地方也欢迎补充!希望能和对区块链感兴趣的朋友多多交流,我的blog地址:编辑于 2019-10-28 16:45共识机制分布式系统区块链(Blockchain)​赞同 153​​71 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录区块链技术分享一些我对区块链技术的学

BFT-SMaRT共识算法 - 知乎

BFT-SMaRT共识算法 - 知乎首发于JD Chain学习探讨切换模式写文章登录/注册BFT-SMaRT共识算法David Zhaojust do it源码地址:https://github.com/blockchain-jd-com/bftsmart BFT-SMaRT是一个基于Java的开源库,为基于BFT的状态机复制算法提供了一套改善的解决方案;它实现了类似于PBFT的共识协议,但在无故障执行时具有更高的性能,且在拜占庭副本进行任意错误行为时能保证整体共识的正确性。另外BFT-SMaRt也是BFT类共识中第一个支持副本集合动态变更的库,用户可以根据自己的需要在不停机的情况下快速进行共识网络拓扑结构的更新。与PBFT不同,BFT-SmaRt库具有更好的模块化设计,实现了共识算法与状态机复制,状态传输,通信等模块的完全分离。BFT-SmaRt库还具有简单性,它把所有的复杂性都封装在简单的API中,程序员可以使用它来实现确定性的服务,客户端只需要使用简单的invoke方法即可向共识网络提交待共识的请求消息。常规的bft-smart共识算法如下图:JDChain在其基础上进行了局部优化,目前共识图如下:1) 广播:多个客户端向所有共识节点发起广播;2) 提议:通过Leader节点向其他节点发出提议(待排序消息);3) 回执:收到提议后向其它节点发送写消息;4) 预算:收到2f+1个写消息后,进行写账本预处理;5) 接受:至少2f+1个节点预处理结果一致,向其它节点广播接受提议的消息。6) 裁决:收到至少2f+1个节点的“接受提议”消息,则正式裁定此提议生效。7) 提交:将此提议写账本;8) 响应:将提议执行结果反馈给其对应的客户端(共识客户端)。编辑于 2020-10-26 15:52开源分布式计算JDChain​赞同 3​​3 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录JD Chain学习探讨JDChain非官方研

拜占庭问题与算法 | 区块链技术指南

题与算法 | 区块链技术指南区块链技术指南搜索Ctrl + K前言修订记录如何贡献区块链的诞生记账科技的千年演化分布式记账与区块链集大成者的比特币区块链的商业价值本章小结核心技术概览定义与原理技术的演化与分类关键问题和挑战趋势与展望认识上的误区本章小结典型应用场景应用场景概览金融服务征信管理权属管理与溯源资源共享物流与供应链物联网数字艺术品和 NFT其它场景本章小结分布式系统核心技术一致性问题共识算法FLP 不可能原理CAP 原理ACID 原则与多阶段提交Paxos 算法与 Raft 算法拜占庭问题与算法可靠性指标本章小结密码学与安全技术密码学简史Hash 算法与数字摘要加解密算法消息认证码与数字签名数字证书PKI 体系Merkle 树结构Bloom Filter 结构同态加密其它技术本章小结比特币 —— 初露锋芒的区块链比特币项目简介比特币诞生背景工作原理挖矿过程共识机制闪电网络侧链热门问题相关工具本章小结以太坊 —— 挣脱加密货币的枷锁以太坊项目简介核心概念主要设计相关工具安装客户端使用智能合约智能合约案例:投票本章小结超级账本 —— 面向企业的分布式账本超级账本项目简介社区组织结构顶级项目介绍开发必备工具贡献代码本章小结Fabric 安装与部署简介本地编译组件容器方式获取本地方式启动 Fabric 网络容器方式启动 Fabric 网络本章小结管理 Fabric 网络简介使用通道管理节点管理链上代码监听网络事件自动发现网络信息使用运维服务如何升级网络版本使用 SDK注意事项与最佳实践本章小结智能合约开发简介链码概念与结构示例一:信息公证示例二:交易资产示例三:数字货币发行与管理示例四:学历认证示例五:社区能源共享小结Fabric 架构与设计简介架构设计消息协议小结区块链服务平台设计简介IBM Bluemix 云区块链服务微软 Azure 云区块链服务使用超级账本 Cello 搭建区块链服务本章小结性能与评测简介Hyperledger Fabric v0.6小结附录术语常见问题Go 语言开发相关安装与配置 Golang 环境编辑器与 IDE高效开发工具依赖管理ProtoBuf 与 gRPC参考资源链接由 GitBook 提供支持拜占庭问题与算法拜占庭问题(Byzantine Problem)又叫拜占庭将军(Byzantine Generals Problem)问题,讨论的是在少数节点有可能作恶(消息可能被伪造)的场景下,如何达成共识问题。拜占庭容错(Byzantine Fault Tolerant,BFT)讨论的是容忍拜占庭错误的共识算法。两将军问题拜占庭问题之前,早在 1975 年,学术界就已经开始两将军问题的讨论(《Some constraints and tradeofis in the design of network communications》):两个将军要通过信使来达成进攻还是撤退的约定,但信使可能迷路或被敌军阻拦(消息丢失或伪造),如何达成一致?这是典型的异步双方共识模型,根据 FLP 不可能原理,这个问题不存在通用解。拜占庭问题拜占庭问题最早由 Leslie Lamport 等学者于 1982 年在论文《The Byzantine Generals Problem》中正式提出,是用来解释异步系统中共识问题的一个虚构模型。拜占庭是古代东罗马帝国的首都,由于地域宽广,假设其守卫边境的多个将军(系统中的多个节点)需要通过信使来传递消息,达成某些一致决定。但由于将军中可能存在叛徒(系统中节点出错),这些叛徒将向不同的将军发送不同的消息,试图干扰共识的达成。拜占庭问题即讨论在此情况下,如何让忠诚的将军们能达成行动的一致。一般分布式场景下,拜占庭需求并不多见,但在特定场景下会有较大意义。例如容易匿名参与的系统(如比特币),或是出现欺诈可能造成巨大损失的情况(金融系统)。问题的解决论文中指出,对于拜占庭问题来说,假如节点总数为 N,故障节点数为 F,则当 N >= 3F + 1 时,问题才能有解,由 BFT 算法进行保证。例如,N = 3,F = 1 时。若提案人不是叛变者,提案人发送一个提案出来,收到的叛变者可以宣称收到的是相反的命令。则对于第三个人(忠诚者)会收到两个相反的消息,无法判断谁是叛变者,则系统无法达到一致。若提案人是叛变者,发送两个相反的提案分别给另外两人,另外两人都收到两个相反的消息,无法判断究竟谁是叛变者,则系统无法达到一致。更一般的,当提案人不是叛变者,提案人提出提案信息 1,则对于合作者来看,系统中会有 N - F 份确定的信息 1,和 F 份不确定的信息(可能为 0 或 1,假设叛变者会尽量干扰一致的达成),N − F > F,即 N > 2F 情况下才能达成一致。当提案人是叛变者,会尽量发送相反的提案给 N - F 个合作者,从收到 1 的合作者看来,系统中会存在 (N - F)/2 个信息 1,以及 (N - F)/2 个信息 0;从收到 0 的合作者看来,系统中会存在 (N - F)/2 个信息 0,以及 (N - F)/2 个信息 1;另外存在 F − 1 个不确定的信息。合作者要想达成一致,必须进一步的对所获得的消息进行判定,询问其他人某个被怀疑对象的消息值,并通过取多数来作为被怀疑者的信息值。这个过程可以进一步递归下去。1980 年,Leslie Lamport 等人在论文《Reaching agreement in the presence of faults》中证明,当叛变者不超过 1/3 时,存在有效的拜占庭容错算法(最坏需要 F+1 轮交互)。反之,如果叛变者过多,超过 1/3,则无法保证一定能达到一致结果。那么,当存在多于 1/3 的叛变者时,有没有可能存在解决方案呢?设想 F 个叛变者和 L 个忠诚者,叛变者故意使坏,可以给出错误的结果,也可以不响应。某个时候 F 个叛变者都不响应,则 L 个忠诚者取多数既能得到正确结果。当 F 个叛变者都给出一个恶意的提案,并且 L 个忠诚者中有 F 个离线时,剩下的 L - F 个忠诚者此时无法分别是否混入了叛变者,仍然要确保取多数能得到正确结果,因此,L - F > F,即 L > 2F 或 N - F > 2F,所以系统整体规模 N 要大于 3F。能确保达成共识的拜占庭系统节点数至少为 4,此时最多允许出现 1 个坏的节点。拜占庭容错算法拜占庭容错算法(Byzantine Fault Tolerant)是面向拜占庭问题的容错算法,解决的是在网络通信可靠,但节点可能故障和作恶情况下如何达成共识。拜占庭容错算法最早的讨论可以追溯到 Leslie Lamport 等人 1982 年 发表的论文《The Byzantine Generals Problem》,之后出现了大量的改进工作,代表性成果包括《Optimal Asynchronous Byzantine Agreement》(1992 年)、《Fully Polynomial Byzantine Agreement for n>3t Processors in t+1 Rounds》(1998 年)等。长期以来,拜占庭问题的解决方案都存在运行过慢,或复杂度过高的问题,直到“实用拜占庭容错算法”(Practical Byzantine Fault Tolerance,PBFT) 算法的提出。1999 年,PBFT 算法由 Miguel Castro 和 Barbara Liskov 于论文《Practical Byzantine Fault Tolerance》中提出。该算法基于前人工作(特别是 Paxos 相关算法,因此也被称为 Byzantine Paxos)进行了优化,首次将拜占庭容错算法复杂度从指数级降低到了多项式(平方)级,目前已得到广泛应用。其可以在恶意节点不超过总数 1/3 的情况下同时保证 Safety 和 Liveness。PBFT 算法采用密码学相关技术(RSA 签名算法、消息验证编码和摘要)确保消息传递过程无法被篡改和破坏。算法的基本过程如下:首先,通过轮换或随机算法选出某个节点为主节点,此后只要主节点不切换,则称为一个视图(View)。在某个视图中,客户端将请求 发送给主节点(如果客户端发给从节点,从节点可以转发给主节点),主节点负责广播请求到所有其它从节点并完成共识。所有节点处理完成请求,将处理结果 返回给客户端。客户端检查是否收到了至少 f+1 个来自不同节点的相同结果,作为最终结果。主节点广播过程包括三个阶段的处理:预准备(Pre-Prepare)、准备(Prepare)和提交(Commit)。预准备和准备阶段确保在同一个视图内请求发送的顺序正确;准备和提交阶段则确保在不同视图之间的确认请求是保序的。预准备阶段:主节点为从客户端收到的请求分配提案编号,然后发出预准备消息 <,message> 给各从节点,主节点需要对预准备消息进行签名。其中 n 是主节点为这个请求分配的序号,message 是客户端的请求消息,digest 是消息的摘要。这一步的目的是为请求分配序号并通知其他节点,因此可以不包括原始的请求消息,可以通过其他方式将请求同步到从节点。准备阶段:从节点收到预准备消息后,检查消息(包括核对签名、视图、编号)。如消息合法,则向其它节点发送准备消息 ,带上自己的 id 信息,并添加签名。收到准备消息的节点同样对消息进行合法性检查。节点集齐至少 2f+1 个验证过的消息则认为验证通过,把这个准备消息写入本地提交消息日志中。这一步是为了确认大多数节点已经对序号达成共识,本节点已经准备好进行提交了。提交阶段:广播 commit 消息 并添加自己签名,告诉其它节点某个编号为 n 的提案在视图 v 里已经处于提交状态。如果集齐至少 2f+1 个验证过的 commit 消息,则说明提案被整个系统接受。PBFT 算法和 Raft 算法的过程十分类似。区别在于 PBFT 算法中并不假设主节点一定是可靠的,因此增加了额外的从节点之间的交互,当发现主节点不可靠时通过重新选举选出新的主节点。具体实现上还包括 checkpoint(同步节点状态和清理本地日志数据)、视图切换(重新选举主节点)等机制,读者可自行参考论文内容,在此不再赘述。拜占庭容错类的算法因为要考虑最恶意的存在“捣乱”者的情况,在大规模场景下共识性能往往会受到影响。新的解决思路拜占庭问题之所以难解,在于任何时候系统中都可能存在多个提案(因为提案成本很低),并且在大规模场景下要完成最终确认的过程容易受干扰,难以达成共识。2014 年,斯坦福大学的 Christopher Copeland 和 Hongxia Zhong 在论文《Tangaroa: a byzantine fault tolerant raft》中提出在 Raft 算法基础上借鉴 PBFT 算法的一些特性(包括签名、恶意领导探测、选举校验等)来实现拜占庭容错性,兼顾可实现性和鲁棒性。该论文也启发了 Kadena 等项目的出现,实现更好性能的拜占庭算法。2017 年,MIT 计算机科学与人工智能实验室(CSAIL)的 Yossi Gilad 和 Silvio Micali 等人在论文《Algorand: Scaling Byzantine Agreements for Cryptocurrencies》中针对 PBFT 算法在很多节点情况下性能不佳的问题,提出先选出少量记账节点,然后再利用可验证随机函数(Verifiable Random Function,VRF)来随机选取领导节点,避免全网直接做共识,将拜占庭算法扩展到了支持较大规模的应用场景,同时保持较好的性能(1000+ tps)。此外,康奈尔大学的 Rafael Pass 和 Elaine Shi 在论文《The Sleepy Model of Consensus》中探讨了在动态场景(大量节点离线情况)下如何保障共识的安全性,提出的 Sleepy Consensus 算法可以在活跃诚实节点达到一半以上时确保完成拜占庭共识。2018 年,清华大学的 Chenxing Li 等在论文《Scaling Nakamoto Consensus to Thousands of Transactions per Second》中提出了 Conflux 共识协议。该协议在 GHOST 算法基础上改善了安全性,面向公有区块链场景,理论上能达到 6000+ tps。2019 年,康奈尔大学和 VMWare 研究院的 Maofan Yin 等在论文《HotStuff: BFT Consensus with Linearity and Responsiveness》中对 PBFT 算法进行了改进:利用主节点来简化通信量,同时将视图切换与共识操作进行统一。值得一提的是,Facebook Libra 白皮书中采用了该成果。比特币网络在设计时使用了 PoW(Proof of Work)的概率型算法思路,从如下两个角度解决大规模场景下的拜占庭容错问题。首先,限制一段时间内整个网络中出现提案的个数(通过工作量证明来增加提案成本);其次是丢掉最终确认的约束,约定好始终沿着已知最长的链进行拓展。共识的最终确认是概率意义上的存在。这样,即便有人试图恶意破坏,也会付出相应的经济代价(超过整体系统一半的工作量)。后来的各种 PoX 系列算法,也都是沿着这个思路进行改进,采用经济博弈来制约攻击者。另外,由于要处理的场景比较苛刻,BFT 类算法的吞吐量往往不高。除了可以放宽约束外(例如通常情况下信任主节点,出现问题再回滚),还可以引入多个互不影响的主节点进行并行处理。上一页Paxos 算法与 Raft 算法下一页可靠性指标最后更新于2年前在本页两将军问题拜占庭问题问题的解决拜占庭容错算法新的解决思路这有帮助吗?在GitHub

一文看懂区块链中的拜占庭容错(BFT)机制

区块链中的拜占庭容错(BFT)机制MENU知识库返回explainCKBot·September 13, 20232 mins一文看懂区块链中的拜占庭容错(BFT)机制区块链技术是数字交易领域的突破性创新,在过去十年中受到了越来越多的关注。区块链是一种去中心化的分布式账本,记录了计算机之间大量的交易,且能够防止已确认的交易被篡改。区块链技术已经将数字交易的透明度和安全性提升到了一个崭新的水平,因此成为加密货币和各种其他应用的热门选择。

区块链技术的一个核心组成部分是共识机制,这是区块链网络中的节点就分布式账本的当前状态达成一致的方法。共识机制对于维护区块链的完整性和安全性至关重要,因为共识机制确保了所有交易都被准确地记录,并且所有节点都同意这些交易的有效性。

拜占庭容错(BFT)是共识机制中的一个关键特性,它使区块链网络能够在某些节点失效或出现恶意行为时仍然能够正常运行。本文将深入探讨拜占庭容错机制的复杂性,其在区块链技术中的应用,以及在维护去中心化系统的可靠性和安全性方面的重要性,同时提供更多关于不同类型拜占庭容错机制的介绍。

BFT 共识机制详解

拜占庭容错本身并不是一种共识机制,而是共识机制可能具备的一种特性。它是一个系统抵御 "拜占庭故障" 的能力,即系统组件以任意方式发生故障的情况。这个术语源自拜占庭将军问题(Byzantine Generals' Problem),用来说明在分布式网络中达成共识所面临的挑战。在这个场景中,拜占庭军队的几个师在计划围攻的城市外扎营。将军们必须就作战计划达成一致,但只能通过信使进行交流,而信使可能会背叛他们。因此问题的核心是要找到一种算法,确保将军们无论叛徒的行为如何,都能达成一致。

BFT 共识机制的工作原理是要求网络中一定比例的节点在交易被添加到区块链之前达成共识。这确保了即使某些节点存在恶意行为或故障,也无法影响网络的整体共识。BFT 共识机制在区块链网络中尤为重要,因为它提供了高度的安全性和可靠性。

BFT 在区块链中的角色

在区块链网络中,每个节点都可以被视为一个 "将军",它们需要就交易的有效性和区块链的状态达成共识。共识机制,比如比特币的工作量证明(PoW)或以太坊的权益证明(PoS),是确保所有节点就分布式账本状态达成一致的算法。如果共识机制具有拜占庭容错的特性,那么即使某些节点出现故障或不诚实行为,区块链也能继续正常运行。

拜占庭故障是指网络中的一个(或多个)节点由于错误或故意作恶而做出错误操作,并开始向其他节点发送错误或误导性信息。这可能会破坏共识的过程,导致节点之间对区块链的状态产生分歧。

在比特币这样的 PoW 系统中,拜占庭容错是通过挖矿过程实现的。矿工必须解决复杂的数学问题,才能向区块链添加新的区块。这一过程确保了即使某些节点采取恶意行为或提供错误信息,它们也无法主宰网络,因为大多数算力(诚实节点)会超过它们。

在以太坊这样的 PoS 系统中,拜占庭容错以不同的方式实现。以太坊根据节点持有的代币数量和愿意 "质押" 的代币数量来分配出块权和选择验证者。如果验证者试图玩弄系统或采取恶意行为,他们就会失去其质押的代币。这种经济损失的风险抑制了不良行为,有助于拜占庭容错。

值得注意的是,虽然 PoW 和 PoS 可以表现出拜占庭容错能力,但它们并不像其他一些共识机制(如实用拜占庭容错算法 PBFT)那样天生就具有拜占庭容错能力。下面将介绍不同种类的 BFT 共识机制。

BFT 共识机制的类型

BFT 共识机制有多种类型,每种都有其独特的功能和优点。以下是三种最常见的类型:

实用拜占庭容错(PBFT)算法: PBFT 是一种共识算法,旨在处理系统中的拜占庭故障。它的工作原理是要求三分之二的节点在将交易添加到区块链之前先达成一致。PBFT 以其高效和低资源消耗而闻名,因此成为了许多区块链网络的首选。

联邦拜占庭协议(FBA): FBA 是一种 BFT 共识机制,它允许网络中的每个节点选择一组它信任的其他节点,当足够多的受信任节点就交易达成一致时,就能达成共识。

简化拜占庭容错(SBFT): SBFT 是 BFT 共识机制的简化版本,旨在提高效率和可扩展性。它的工作原理是选出一个领导节点,由该节点提议将一个区块添加到区块链中,然后由其他节点投票决定是否接受该区块。

BFT 共识机制的用例和应用

BFT 共识机制在区块链和加密货币领域有着广泛的应用。例如,比特币的工作量证明(PoW)和以太坊的权益证明(PoS)共识算法就包含了 BFT 的元素,以提高安全性和效率。

除了加密货币之外,BFT 共识机制也被应用于企业区块链解决方案中。例如,Hyperledger Fabric(一种用于开发应用程序和解决方案的区块链框架)使用 PBFT 的变体作为其共识机制。这使得它能够高效、安全地处理大量交易。

BFT 共识机制的优缺点

BFT 共识机制有几大优点。首先,它们具有很高的安全性,因为它们可以容忍一定数量的故障节点或恶意节点,而不会损害网络的完整性。其次,它们非常高效,不需要像工作量证明(PoW)等其他共识机制那样的高计算能力。这使得它们更加环保且更具成本效益。

不过,BFT 共识机制也有其缺点,其中之一便是可扩展性。随着网络中节点数量的增加,达成共识所需的通信量也会增加,这可能会降低网络的运行速度。此外,BFT 共识机制的实施可能比较复杂,需要节点之间高度信任。

关于 BFT 共识机制的常见误解

关于 BFT 共识机制,有几个常见的误解值得探讨。其中一个误解是 BFT 只适用于小型网络。虽然 BFT 共识机制确实比其他类型的共识机制更难以扩展,但这并不意味着它们不适合大型网络。通过正确的设计和实施,BFT 共识机制可以有效地用于大规模区块链网络。

另一个常见的误解是 BFT 本身速度很慢。虽然与其他一些共识机制相比,BFT 确实需要更多的节点间通信,但这并不一定会使其速度变慢。BFT 共识机制的速度取决于多种因素,包括网络规模、故障节点的数量以及 BFT 算法的具体实现。

BFT 共识机制的未来

展望未来,BFT 共识机制可能会在区块链技术的未来发展中发挥至关重要的作用。随着对安全、高效、可扩展的区块链解决方案的需求不断增长,对 BFT 等强大共识机制的需求也将不断增长。

目前,BFT 共识机制领域的研发工作主要集中在提高可扩展性、减少通信开销和增强安全性等方面。这些进步可能为从大规模金融系统到去中心化社交网络等更广泛的应用中使用 BFT 共识机制开辟新的可能性。

这些发展对区块链行业的潜在影响是巨大的。通过实现更安全、高效和可扩展的区块链网络,BFT 共识机制可以为区块链技术在各经济领域的广泛应用铺平道路。

总结

总之,拜占庭容错是区块链技术中的共识机制所具备的一个重要属性。它为去中心化数字交易提供了所需的安全性和可靠性。虽然实施拜占庭容错会带来挑战,但目前的研发工作正在不断改进这些系统,使其更具可扩展性和效率。随着区块链行业的不断发展,拜占庭容错技术无疑将在塑造区块链行业的未来中发挥至关重要的作用。Table of contents:最近的文章:What are Privacy Coins, and How Do They Work?What are Wrapped Tokens in Cryptocurrency?The Ultimate Guide to Bitcoin Ordinals and Inscriptions分类:bitcoinaccount abstractionpopularconsensuseconomicsnodeeducationpownervosblockchainutxoscaling分享此文章:发现CKB挖矿钱包旅途WikiMedia Kit开发者文档Github区块浏览器生态系统CryptapeGodwokenNervina LabsTunnel Vision LabsAxon.bitMagickbase社区社区基金 DAONervos Talk ForumRFCs CKB 节点探针学习知识库MediumYoutube成为更大的一部分。订阅 Nervos 月度通讯,保持领先。©Nervos is an open-source project initiated by the Nervos Foundation. All Rights Reserv

软件所等提出首个完全实用的异步共识算法“小飞象拜占庭容错算法”----中国科学院

软件所等提出首个完全实用的异步共识算法“小飞象拜占庭容错算法”----中国科学院

PC / English / 联系我们 / 网站地图 /邮箱

加快打造原始创新策源地,加快突破关键核心技术,努力抢占科技制高点,为把我国建设成为世界科技强国作出新的更大的贡献。

——习近平总书记在致中国科学院建院70周年贺信中作出的“两加快一努力”重要指示要求

面向世界科技前沿、面向经济主战场、面向国家重大需求、面向人民生命健康,率先实现科学技术跨越发展,率先建成国家创新人才高地,率先建成国家高水平科技智库,率先建设国际一流科研机构。

——中国科学院办院方针

首页

组织机构

院况简介

院领导集体

机构设置

园区风采

科学研究

创新单元

科技专项

科技奖励

科技期刊

科研进展

成果转化

知识产权与科技成果转化网

工作动态

人才教育

中科院教育简介

中国科学技术大学

中国科学院大学

上海科技大学

工作动态

学部与院士

科学普及

中国科普博览

科普场馆

专题透视

工作动态

科普文章

科普视频

党建与科学文化

工作动态

反腐倡廉

文明天地

文化副刊

信息公开

信息公开规定

信息公开指南

信息公开目录

信息公开申请

信息公开年度报告

信息公开联系方式

首页

组织机构

科学研究

成果转化

人才教育

学部与院士

科学普及

党建与科学文化

信息公开

院况简介

  1949年,伴随着新中国的诞生,中国科学院成立。  作为国家在科学技术方面的最高学术机构和全国自然科学与高新技术的综合研究与发展中心,建院以来,中国科学院时刻牢记使命,与科学共进,与祖国同行,以国家富强、人民幸福为己任,人才辈出,硕果累累,为我国科技进步、经济社会发展和国家安全做出了不可替代的重要贡献。 更多简介 +

院领导集体

侯建国

张亚平

孙也刚

周 琪

汪克强

常 进

丁赤飚

严 庆

孙晓明

翟立新

机构设置

院机关

办公厅

学部工作局

前沿科学与教育局

重大科技任务局

科技促进发展局

发展规划局

条件保障与财务局

人事局

直属机关党委

国际合作局

科学传播局

监督与审计局

离退休干部工作局

派驻机构

中央纪委国家监委驻中国科学院纪检监察组

分院

沈阳分院

长春分院

上海分院

南京分院

武汉分院

广州分院

成都分院

昆明分院

西安分院

兰州分院

新疆分院

院属机构

研究单位

学校

管理与公共支撑单位

新闻出版单位

其他单位

共建单位

投资企业

四类机构

院级非法人单元

所级分支机构

境外机构

群团和其他组织

创新单元

创新单元

国家研究中心

国家重点实验室

国家工程研究中心

国家工程技术研究中心

国家科技资源共享服务平台

院工程实验室

重大科技基础设施

科技奖励

科技奖励

国家最高科学技术奖

国家自然科学奖

国家技术发明奖

国家科学技术进步奖

国家科学技术合作奖

中国科学院杰出科技成就奖

中国科学院国际科技合作奖

中国科学院科技促进发展奖

陈嘉庚科学奖

科技期刊

科技期刊

期刊导航

数字平台

期刊集群

期刊动态

科技专项

中国科学院院级科技专项体系包括战略性先导科技专项、重点部署科研专项、科技人才专项、科技合作专项、科技平台专项5类一级专项,实行分类定位、分级管理。

为方便科研人员全面快捷了解院级科技专项信息并进行项目申报等相关操作,特搭建中国科学院院级科技专项信息管理服务平台。了解科技专项更多内容,请点击进入→

科研进展/ 更多

理化所研制的全国产5吨/天氢液化器通过测试验收

沈阳自动化所等在生物制造与纳米机械分析领域获进展

合肥研究院等创制出套娃结构碳管阵列并构筑出小型化滤波电容器

科学家实现全脑光学接口虚拟现实和全脑闭环研究新范式

研究提出基于弱监督学习的冷冻电镜颗粒挑选新方法

柔性生理传感网络研究取得进展

工作动态/ 更多

“液固循环流化床双氧水直接氧化氯丙烯生产环氧氯丙烷新工艺”通过科技成果评价

山东肥城300MW先进压缩空气储能国家示范项目阵列化蓄热装置完成安装

生物质化学链气化技术项目签约

萃取法短流程生产钒电解液示范线稳定运行

青海盐湖所获批建设青海省盐湖化工产业专利导航服务基地

硼中子俘获治疗项目获第八届“创客中国”总决赛一等奖

尾矿固废资源利用3×185万吨/年流态化磁化焙烧项目签约

宁波材料所获首届浙江省知识产权奖发明专利一等奖

亚热带生态所与长江水电集团签订战略合作协议

金属所组织开展“福建行”科技成果对接活动

分子细胞卓越中心、上海科技大学和翼思生物医药达成合作协议

2023年中国科学院(河南)科技成果发布暨项目对接会开幕

中国科学技术大学(简称“中科大”)于1958年由中国科学院创建于北京,1970年学校迁至安徽省合肥市。中科大坚持“全院办校、所系结合”的办学方针,是一所以前沿科学和高新技术为主、兼有特色管理与人文学科的研究型大学。

中国科学院大学(简称“国科大”)始建于1978年,其前身为中国科学院研究生院,2012年更名为中国科学院大学。国科大实行“科教融合”的办学体制,与中国科学院直属研究机构在管理体制、师资队伍、培养体系、科研工作等方面共有、共治、共享、共赢,是一所以研究生教育为主的独具特色的研究型大学。

上海科技大学(简称“上科大”),由上海市人民政府与中国科学院共同举办、共同建设,由上海市人民政府主管,2013年经教育部正式批准。上科大秉持“服务国家发展战略,培养创新创业人才”的办学方针,实现科技与教育、科教与产业、科教与创业的融合,是一所小规模、高水平、国际化的研究型、创新型大学。

工作动态/ 更多

中国科学院院士姚檀栋获塞里格曼冰晶奖

中国科大教授郝记华获2024年F.W.克拉克奖

​中国科学院大学基础医学及长三角地区生命科学研究生学术论坛举办

全球气候变化下的水资源管理和研究生培养冬季学校开班

第八届植物分类研究高级研修班举办

中国科大学子在中国国际大学生创新大赛获佳绩

科普场馆/ 更多

中国科学院国家授时中心时间科学馆

中国科学院昆明动物研究所昆明动物博物馆

中国科学院合肥物质科学研究院合肥现代科技馆

中国科学院西双版纳热带植物园热带雨林民族文化博物馆

中国科学院动物研究所国家动物博物馆

中国科学院上海昆虫博物馆

工作动态/ 更多

上海天文台举办“与光同行”天文科普亲子活动

版纳植物园举办“2024雨林博物科学营”

2024年广州市中学生“英才计划”科技特训营开营

第五季《科学公开课》即将开讲

科普文章/ 更多

太阳打“喷嚏” 地球会怎样

量子,匪夷所思但不“高冷”

卫星也戴“眼镜”——偏振卫星

看宇宙间那一场场盛大的“烟花表演”

科普视频/ 更多

十年,科技创新再出发!

【院士说】群星闪耀时 总会照...

碳中和的创新发展机遇

专题透视/ 更多

科学环游记——2023寒假篇

核心舱成功发射 我们的空间站来...

助力碳达峰、碳中和,科普在行动

工作动态/ 更多

沈阳分院分党组召开扩大学习会

成都生物所党委召开2024年第1次支部书记例会

 南京天光所召开党委理论学习中心组党风廉政建设专题学习会

上海硅酸盐所召开党委理论学习中心组学习会

自动化所召开党委理论学习中心组学习会

云南天文台召开2023年度党支部书记述职考评暨支部党建工作交流会

文化副刊

诗 歌

书 画

摄 影

散 文

反腐倡廉/ 更多

地理资源所召开2024年度第一次纪委会议

广州分院召开分院纪检组成员、直属机关纪委委员会议

兰州分院纪检组、系统单位纪委召开学习研讨(扩大)会议暨纪监审工作会议

沈阳分院召开2023年度纪监审业务第四次交流会暨纪检组2023年度工作总结会

沈阳自动化所开展纪检干部专题培训

违纪违法举报

文明天地/ 更多

武汉植物园开展“春风如你 熠熠芳华” 主题活动

成都文献中心开展“赴春天之约 绽巾帼芳华” 科苑女性主题活动

深圳先进院举办"不负春色 绽放芳华"三八妇女节主题系列活动

新疆生地所开展“芳华悦己,奋勇逐光”主题春日活动

新疆理化所开展“煦暖巾帼心 熠熠芳华梦 奋进新征程“三八主题系列活动

信息公开工作信息

相关规定

信息公开指南

信息公开目录

其他规定

组织结构

工作机构

监督机构

年度报告

2022年度报告

2021年度报告

2020年度报告

2019年度报告

中国科学院学部

基本信息

学部概况

院士大会

院士信息

规章制度

院士章程

增选工作有关规定

其他工作规则与管理办法

工作进展

院士增选

咨询活动

学术科普

学部动态

学部出版物

咨询决策系列

学术引领系列

科学文化系列

其他出版物

陈嘉庚科学奖

机构概况

规章制度

通知公告

中国科学院院部

机构设置

基本情况

院领导集体

组织机构

年度统计与出版物

年度统计

出版物

规章制度

综合性政策文件

学部工作与科技智库

科研活动管理

人力资源管理

党的建设与群团工作

离退休工作

发展规划

专项规划

财政经费

预算决算

重大基建项目

重大采购

院级项目

科学研究

科研创新单元

科研装备

科研进展

成果转化

科技奖励

人事人才

人事任免

人才招聘

招生与培养

国际合作

国际组织

国际奖励

国际奖学金

科学传播

科普资源

科普知识

网站建设

首页 > 科研进展

软件所等提出首个完全实用的异步共识算法“小飞象拜占庭容错算法”

2021-02-18

软件研究所

【字体:大 中 小】

语音播报

  近日,中国科学院软件研究所研究员张振峰团队与美国新泽西理工学院(现悉尼大学副教授)唐强团队在区块链核心技术——拜占庭容错(BFT)共识研究中取得突破,提出首个完全实用的异步共识算法——小飞象拜占庭容错(DumboBFT)算法,研究成果以Dumbo: Faster Asynchronous BFT Protocols为题,发表于网络安全旗舰会议ACM CCS(第27届国际计算机与通信安全大会)。在异步BFT共识算法设计领域,我国此前未有重要研究成果在国际顶级会议上发表。

  拜占庭容错(BFT)共识算法是区块链的核心技术,也是确保区块链安全可靠运行、提升区块链扩展能力和运行性能的核心算法。BFT共识算法具有运行性能高、资源消耗低、易于部署等特点,广泛应用于国内外区块链系统中。异步BFT算法能够容忍网络通信故障、抵抗拜占庭敌手恶意攻击,是保障区块链在互联网环境下健壮运行的理想共识技术。

  如何设计高效的异步BFT共识算法,是密码学和分布式计算领域的著名难题。自上世纪80年代起,国内外学者先后对这一难题进行了探索。第一个接近实用的异步共识算法是在2016年提出的HoneyBadgerBFT算法,已被应用于蚂蚁链等区块链平台。为设计完全实用的异步共识算法,软件所于2015年开展小飞象拜占庭容错算法研究工作。该算法以独到视角对HoneyBadgerBFT算法进行分析,揭示其性能受限的根源是大量随机化子模块调用导致的运行时间增加,提出了全新的可证明可靠广播(provable reliable broadcast)原语,并给出了基于门限数字签名技术的高效构造方法,通过一种创新性的多值拜占庭共识应用,在容忍1/3的恶意节点的同时,突破了异步共识算法在性能上的设计挑战。

  在遍布全球四大洲的100个共识节点的测试网络中,小飞象拜占庭容错算法DumboBFT的确认延迟时间为24秒、不到HoneyBadgerBFT算法的1/20,交易吞吐量为每秒近1.8万笔、是HoneyBadgerBFT算法的9倍多。此外,软件所特别研究助理路远等人进一步提出了小飞象多值共识算法(Dubmo-MVBA),在消息数量、通信代价和运行时间等关键性能指标上均达到了渐进理论最优,回答了国际密码界关于“如何提升异步共识算法的关键性能指标”这一问题。小飞象共识算法的创造性突破,解决了异步共识算法设计的理论难题,在性能上大幅提升并超越了当前工业界采用的HoneyBadgerBFT,成为国际首个完全实用的异步共识算法,可为我国区块链基础设施建设提供强安全、高性能、可扩展的新一代核心技术。

图1.Dumbo BFT协议执行流程

图2.Dumbo BFT和HoneyBadger BFT在全球互联网中的实际性能对比

图3.Dumbo-MVBA协议和HoneyBadger BFT协议的渐近复杂度对比

  近日,中国科学院软件研究所研究员张振峰团队与美国新泽西理工学院(现悉尼大学副教授)唐强团队在区块链核心技术——拜占庭容错(BFT)共识研究中取得突破,提出首个完全实用的异步共识算法——小飞象拜占庭容错(DumboBFT)算法,研究成果以Dumbo: Faster Asynchronous BFT Protocols为题,发表于网络安全旗舰会议ACM CCS(第27届国际计算机与通信安全大会)。在异步BFT共识算法设计领域,我国此前未有重要研究成果在国际顶级会议上发表。  拜占庭容错(BFT)共识算法是区块链的核心技术,也是确保区块链安全可靠运行、提升区块链扩展能力和运行性能的核心算法。BFT共识算法具有运行性能高、资源消耗低、易于部署等特点,广泛应用于国内外区块链系统中。异步BFT算法能够容忍网络通信故障、抵抗拜占庭敌手恶意攻击,是保障区块链在互联网环境下健壮运行的理想共识技术。  如何设计高效的异步BFT共识算法,是密码学和分布式计算领域的著名难题。自上世纪80年代起,国内外学者先后对这一难题进行了探索。第一个接近实用的异步共识算法是在2016年提出的HoneyBadgerBFT算法,已被应用于蚂蚁链等区块链平台。为设计完全实用的异步共识算法,软件所于2015年开展小飞象拜占庭容错算法研究工作。该算法以独到视角对HoneyBadgerBFT算法进行分析,揭示其性能受限的根源是大量随机化子模块调用导致的运行时间增加,提出了全新的可证明可靠广播(provable reliable broadcast)原语,并给出了基于门限数字签名技术的高效构造方法,通过一种创新性的多值拜占庭共识应用,在容忍1/3的恶意节点的同时,突破了异步共识算法在性能上的设计挑战。  在遍布全球四大洲的100个共识节点的测试网络中,小飞象拜占庭容错算法DumboBFT的确认延迟时间为24秒、不到HoneyBadgerBFT算法的1/20,交易吞吐量为每秒近1.8万笔、是HoneyBadgerBFT算法的9倍多。此外,软件所特别研究助理路远等人进一步提出了小飞象多值共识算法(Dubmo-MVBA),在消息数量、通信代价和运行时间等关键性能指标上均达到了渐进理论最优,回答了国际密码界关于“如何提升异步共识算法的关键性能指标”这一问题。小飞象共识算法的创造性突破,解决了异步共识算法设计的理论难题,在性能上大幅提升并超越了当前工业界采用的HoneyBadgerBFT,成为国际首个完全实用的异步共识算法,可为我国区块链基础设施建设提供强安全、高性能、可扩展的新一代核心技术。  图1.Dumbo BFT协议执行流程  图2.Dumbo BFT和HoneyBadger BFT在全球互联网中的实际性能对比  图3.Dumbo-MVBA协议和HoneyBadger BFT协议的渐近复杂度对比  

更多分享

打印

责任编辑:阎芳

青藏高原所发现东古特提斯洋在昌都于晚三叠世早期闭合

遗传发育所利用非编码RNA揭示小麦多倍体形成与进化机制

扫一扫在手机打开当前页

© 1996 - 中国科学院 版权所有 京ICP备05002857号-1 京公网安备110402500047号 网站标识码bm48000002

地址:北京市西城区三里河路52号 邮编:100864

电话: 86 10 68597114(总机) 86 10 68597289(总值班室)

编辑部邮箱:casweb@cashq.ac.cn

© 1996 - 中国科学院 版权所有 京ICP备05002857号-1 京公网安备110402500047号 网站标识码bm48000002

地址:北京市西城区三里河路52号 邮编:100864

电话: 86 10 68597114(总机) 86 10 68597289(总值班室)

编辑部邮箱:casweb@cashq.ac.cn

© 1996 - 中国科学院 版权所有京ICP备05002857号-1京公网安备110402500047号网站标识码bm48000002

地址:北京市西城区三里河路52号 邮编:100864电话:86 10 68597114(总机)   86 10 68597289(总值班室)编辑部邮箱:casweb@cashq.ac.cn

什么是 BFT? - 知乎

什么是 BFT? - 知乎首页知乎知学堂发现等你来答​切换模式登录/注册拜占庭什么是 BFT?关注者4被浏览11,357关注问题​写回答​邀请回答​好问题​添加评论​分享​2 个回答默认排序小孔5176​ 关注BFT( Byzantine Fault Tolerance)称为 拜占庭容错。拜占庭容错技术是一类分布式计算领域的容错技术。拜占庭假设是对现实世界的模型化,由于硬件错误、网络拥塞或中断以及遭到恶意攻击等原因,计算机和网络可能出现不可预料的行为。拜占庭容错技术被设计用来处理这些异常行为,并满足所要解决的问题的规范要求。拜占庭将军问题拜占庭容错技术来源于拜占庭将军问题。 拜占庭将军问题是Leslie Lamport(2013年的图灵讲得住)用来为描述分布式系统一致性问题(DistributedConsensus)在论文中抽象出来一个著名的例子。拜占庭帝国想要进攻一个强大的敌人,为此派出了10支军队去包围这个敌人。这个敌人虽不比拜占庭帝国,但也足以抵御5支常规拜占庭军队的同时袭击。这10支军队在分开的包围状态下同时攻击。他们任一支军队单独进攻都毫无胜算,除非有至少6支军队(一半以上)同时袭击才能攻下敌国。他们分散在敌国的四周,依靠通信兵骑马相互通信来协商进攻意向及进攻时间。困扰这些将军的问题是,他们不确定他们中是否有叛徒,叛徒可能擅自变更进攻意向或者进攻时间。在这种状态下,拜占庭将军们才能保证有多于6支军队在同一时间一起发起进攻,从而赢取战斗?拜占庭将军问题中并不去考虑通信兵是否会被截获或无法传达信息等问题,即消息传递的信道绝无问题。Lamport已经证明了在消息可能丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的。所以,在研究拜占庭将军问题的时候,已经假定了信道是没有问题的.我们将拜占庭将军问题简化成了,所有忠诚的将军都能够让别的将军接收到自己的真实意图,并最终一致行动;而形式化的要求就是,“一致性”与“正确性”。一致性:每个忠诚的将军必须收到相同的命令值vi(vi是第i个将军的命令)正确性:如果第i个将军是忠诚的,那么他发送的命令和每个忠诚将军收到的vi相同。Lamport 对拜占庭将军的问题的研究表明,当 n > 3m 时,即叛徒的个数 m 小于将军总数的 n 的 1/3 时,通过口头同步通信(假设通信是可靠的),可以构造同时满足“一致性”和“正确性”的解决方法,即将军们可以达成一致的命令。拜占庭容错系统区块链网络的记账共识和拜占庭将军的问题是相似的。参与共识记账的每一个节点相当于将军,节点之间的消息传递相当于信使,某些节点可能由于各种原因而产生错误的信息传递给其他节点。通常这些发生故障的节点被称为拜占庭节点,而正常的节点即为非拜占庭节点。假设分布式系统拥有n台节点,并假设整个系统拜占庭节点不超过m台(n ≥ 3m + 1),拜占庭容错系统需要满足如下两个条件:所有非拜占庭节点使用相同的输入信息,产生同样的结果。在区块链系统中,可以理解为,随机数相同、区块算法相同、原账本相同的时候,计算结果相同。如果输入的信息正确,那么所有非拜占庭节点必须接收这个消息,并计算相应的结果。在区块链系统中,可以理解为,非拜占庭节点需要对客户的请求进行计算并生成区块。另外,拜占庭容错系统需要达成如下两个指标:安全性:任何已经完成的请求都不会被更改,它可以在以后请求看到。在区块链系统中,可以理解为,已经生成的账本不可篡改,并且可以被节点随时查看。灵活性:可以接受并且执行非拜占庭客户端的请求,不会被任何因素影响而导致非拜占庭客户端的请求不能执行。在区块链系统中,可以理解为,系统需要持续生成区块,为用户记账,这主要靠挖矿的激励机制来保证。在分析拜占庭问题的时候,假设信道是可信的。拓展开来,在拜占庭容错系统,普遍采用的假设条件包括:拜占庭节点的行为可以是任意的,拜占庭节点之间可以共谋;节点之间的错误是不相关的;节点之间通过异步网络连接,网络中的消息可能丢失、乱序并延时到达,但大部分协议假设消息在有限的时间里能传达到目的地;节点之间传递的信息,第三方可以嗅探到,但是不能篡改、伪造信息的内容和破坏信息的完整性。转自黎跃春区块链博客发布于 2018-06-11 16:37​赞同 8​​添加评论​分享​收藏​喜欢收起​WEB3研究院️专注于WEB3.0以及AIGC的科技财经类媒体

独家分享​ 关注证明者如何在Aleo BFT获取奖励?92 播放 · 1 赞同发布于 2023-05-11 10:56· 25 次播放​赞同 1​​添加评论​分享​收藏​喜欢收起​​

拜占庭容错(BFT)算法介绍-阿里云开发者社区

拜占庭容错(BFT)算法介绍-阿里云开发者社区

产品解决方案文档与社区权益中心定价云市场合作伙伴支持与服务了解阿里云联系我们4008013260售前咨询售后服务其他服务我要建议我要投诉备案控制台开发者社区首页探索云世界探索云世界云上快速入门,热门云上应用快速查找了解更多问产品动手实践考认证TIANCHI大赛活动广场活动广场丰富的线上&线下活动,深入探索云世界任务中心做任务,得社区积分和周边高校计划让每位学生受益于普惠算力训练营资深技术专家手把手带教话题畅聊无限,分享你的技术见解开发者评测最真实的开发者用云体验乘风者计划让创作激发创新阿里云MVP遇见技术追梦人直播技术交流,直击现场下载下载海量开发者使用工具、手册,免费下载镜像站极速、全面、稳定、安全的开源镜像技术资料开发手册、白皮书、案例集等实战精华插件为开发者定制的Chrome浏览器插件探索云世界新手上云云上应用构建云上数据管理云上探索人工智能云计算弹性计算无影存储网络倚天云原生容器serverless中间件微服务可观测消息队列数据库关系型数据库NoSQL数据库数据仓库数据管理工具PolarDB开源向量数据库热门Modelscope模型即服务弹性计算云原生数据库物联网云效DevOps龙蜥操作系统平头哥钉钉开放平台大数据大数据计算实时数仓Hologres实时计算FlinkE-MapReduceDataWorksElasticsearch机器学习平台PAI智能搜索推荐人工智能机器学习平台PAI视觉智能开放平台智能语音交互自然语言处理多模态模型pythonsdk通用模型开发与运维云效DevOps钉钉宜搭支持服务镜像站码上公益

开发者社区

人工智能

文章

正文

拜占庭容错(BFT)算法介绍

2018-07-15

3340

版权

版权声明:

本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《

阿里云开发者社区用户服务协议》和

《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写

侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

简介:

【原文作者:Jae Kwon,译者:郭光华】2011年比特币将世界的注意力引向到了区块链。但可惜的是,比特币版本的区块链不能解决区块链行业的很多问题。

【原文作者:Jae Kwon,译者:郭光华】

2011年比特币将世界的注意力引向到了区块链。但可惜的是,比特币版本的区块链不能解决区块链行业的很多问题。那是因为:

1、比特币的POW共识会浪费大量能源。

2、交易非常缓慢,一笔交易需要花一个小时甚至更长的时间。

3、没有什么激励机制来激励POW矿工忠于一条链,所以会导致升级很困难。

我们需要一种安全的共识,并且不会给我们的地球施加巨大的能源成本。这种方法就是基于拜占庭容错(BFT)的权益证明(POS )。我们称之为BFT-PoS。

在我们深入了解BFT-PoS之前,我们只需要知道拜占庭错误,而不需要知道拜占庭将军问题 的细节。 在分布式系统中,数据需要在数百或数千个节点上进行复制,而计算机时不时会网络中断或脱机,所以需要有一些容错机制或共识算法。那么如果这些节点的一部分失败,整个系统仍然需要达成共识。

标准的容错共识算法(如Raft 和Paxos)假设当一个节点出现故障时,它只是停止工作而不回复消息。谷歌,Facebook和一些现有的数据库产品已经在他们的防火墙内使用了这一系列的共识算法,使机器有故障产生时也能确保服务仍然可用。

但这些算法不适用于公有区块链,因为公有区块链中没有防火墙。任何拥有算力(PoW)或代币(PoS)的人都可以参与,甚至可以试图破坏网络。为了达成共识,我们需要拜占庭的容错能力。在拜占庭故障中,故障节点能以完全任意的方式运行。节点甚至可以串通来尝试作恶,并最大限度地发挥其破坏力。

因此,本质上,BFT共识算法的目的是在不信任网络(如万维网)中的节点间建立信任。 BFT不是什么新概念,该概念首先在Lamport,Shostak和Pease于1982年的一篇学术论文中引入 。但是Lamport等人只在同步环境中(所有的消息总是及时到达)演示了算法的理论可行性。 但在现实世界中,你不能真正地相信互联网能及时交付任何东西。

所以在1988年,Dwork,Lynch,Stockmeyer(DLS)提出了一种在大多数异步环境中工作的算法。 1999年晚些时候,米格尔·卡斯特罗和芭芭拉·里斯科夫提出了一个实用的解决方案,用于持续的BFT协商一致,这仍然是迄今为止最先进的BFT算法。

但长久以来,主流媒体忽视了这些创作。 没有人明白BFT在学术界和诸如IBM和DARPA之类的主要机构之外的重要性,直到2009年Bitcoin来临。比特币是第一个开放式去中心化应用程序,为全球货币帐本提供BFT共识,但对拜占庭式将军的问题采用了一种全新的解决方案:PoW。在PoW中,谁的算力最强,谁最有可能打包交易出块,获得该块交易费和新产生的比特币。今天,许多矿业公司在生产矿机,也有许多矿工正在加入矿池。

另一方面,PoS完全消除了PoW的能源依赖。在PoS中,矿工被替换为在系统中拥有股权的“验证者”。验证者不必投资昂贵的处理系统,但他们必须购买“股权代币”。任何普通笔记本电脑都足以解决计算。 Peercoin,BitShares,Nxt等已经使用了某种形式的PoS,而Ethereum正在计划于不久的将来进行PoS。然而,虽然PoS具有实际意义,但是很多人都反对使用PoS,声称这是不可能的。但这根本不是事实。使用BFT,您绝对可以保护PoS。只是我们还没有看到任何公有链实现了BFT-PoS。

虽然该理论可能难以解释或理解,但适当的BFT算法提供的最终结果很容易掌握。 与PoW区块链不同,BFT-PoS块链根本不分叉。对于双花攻击,除非1/3或更多的验证者协调进行此类攻击。而且,当1/3或更多的验证者确实导致双重花费攻击时,我们可以计算确定哪些验证者需要对攻击负责,进而可以摧毁它们的权益代币并将其从网络中剔除,就好像矿工联合起来控制整个链一样。

至今,包括POW算法在内,还没有哪种共识算法可以达到BFT-PoS的容错水平。 BFT-PoS表现非常出色。今天,在全球有几百个验证节点的公有链中,你可以在3s内轻松获得交易确认。这一“即时确认”的最佳容错阈值理论已经被tendermint证明。虽然随着验证节点的增加共识速度会变慢,但遵循着Nielsen定律(网络带宽和响应速度增长),每年都可以增加一定的节点,而性能不会变。

此外,BFT-PoS还将增加移动钱包的安全性。目前存在的移动钱包很少充分利用了比特币提供的安全性,因为没有人愿意等待一个小时才能确认交易。相反,大多数钱包只是假设转账的人不会双花。而且,虽然我们没有时间在这里进行深入研究,但高效的移动钱包协议或“轻客户端SPV”协议是未来区块链互操作性的关键。

虽然PoW在比特币方面表现很好,但代价昂贵,速度慢,环境不友好。现在最好的选择是BFT-PoS。它是一种持久、节能的解决方案,在异步环境中运行良好。最重要的是,由于BFT是计算机科学界最好和最聪明的开发机构证明安全的。

uiiuiiu

目录

热门文章

最新文章

为什么选择阿里云什么是云计算全球基础设施技术领先稳定可靠安全合规分析师报告产品和定价全部产品免费试用产品动态产品定价价格计算器云上成本管理解决方案技术解决方案文档与社区文档开发者社区天池大赛培训与认证权益中心免费试用高校计划企业扶持计划推荐返现计划支持与服务基础服务企业增值服务迁云服务官网公告健康看板信任中心关注阿里云关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务联系我们:4008013260法律声明Cookies政策廉正举报安全举报联系我们加入我们阿里巴巴集团淘宝网天猫全球速卖通阿里巴巴国际交易市场1688阿里妈妈飞猪阿里云计算AliOS万网高德UC友盟优酷钉钉支付宝达摩院淘宝海外阿里云盘饿了么© 2009-2024 Aliyun.com 版权所有 增值电信业务经营许可证: 浙B2-20080101 域名注册服务机构许可: 浙D3-20210002 京D3-20220015浙公网安备 33010602009975号浙B2-20080101-4