tokenpocket下载官网|bft是什么
什么是拜占庭容错(BFT)?
占庭容错(BFT)?交易所交易所交易超过1400种加密货币Startup发掘潜力新币,领取免费空投Ventures区块链 Web3.0 风投基金NFT寻找、创作专属于你的数字资产排行榜交易大神排行榜帮助中心最新公告平台最新公告,包括上新,活动,升级等推广ETH2.0升级以太坊The Merge已完成代理商代理商推荐返佣推荐官计划代理商初阶版邀请计划邀请好友,共享返佣机构和VIP服务机构和做市商专享服务学习和探索学院学习加密货币投资知识博客行业深度分析动态分享动态,发现价值直播每日行情分析直播社群随时随地与币友实时交流快讯最新行业消息点此开始课程文章全部山寨币比特币区块链DeFi以太坊元宇宙NFTs交易教程合约量化BRC-20GameFiDAO宏观钱包铭文技术行话研究院加入我们创作者招募校园大使视频创作者登录注册点此开始课程文章行话研究院创作者招募校园大使视频创作者语言及地区选择语言及地区简体中文EnglishTiếng Việt繁體中文EspañolРусский языкFrançaisDeutschPortuguês (Portugal)ภาษาไทยIndonesiaTürkçe日本語عربيУкраїнськаPortuguês (Brasil)登录登录注册点此开始课程文章行话研究院创作者招募校园大使视频创作者语言简体中文EnglishTiếng Việt繁體中文EspañolРусский языкFrançaisDeutschPortuguês (Portugal)ภาษาไทยIndonesiaTürkçe日本語عربيУкраїнськаPortuguês (Brasil)Learn什么是拜占庭容错(BFT)?什么是拜占庭容错(BFT)?中级Apr 05, 2023拜占庭容错(BFT)是在区块链网络中使用的一种容错共识机制,可让验证者之间快速达成安全可靠的协议。区块链什么是共识?什么是拜占庭容错(BFT)?拜占庭容错是如何工作的?拜占庭容错有什么优点?总结加密货币是在点对点网络上运行的去中心化数字资产,即系统的安全性和完整性由网络中的节点负责维护。这些网络面临的主要挑战之一是共识问题,即如何确保所有节点就系统状态达成共识。拜占庭容错(BFT)共识机制能帮助应对这一挑战。在本文中,我们将讨论什么是BFT、它是如何工作的以及它的优势。什么是共识?
共识,尤其是在加密货币中,是去中心化网络的重要组成部分。简单来说,共识是指网络中由个人或节点组成的一个群体就特定决策或交易达成一致的过程。在加密货币中,共识十分重要,因为它负责确保所有节点都同意系统状态,并且没有恶意行为者可以篡改网络。
由于种种原因,在去中心化网络中达成共识是一件不容易的事情。首先,去中心化网络中没有中央组织机构或决策者,因此节点之间很难建立信任。其次,网络中的节点可能在全球不同的地方并且具有不同的利益,因此很难就特定决策达成一致。最后,网络将容易受恶意行为者的攻击,他们破坏共识过程并操纵系统以谋取利益。
在去中心化网络中达成共识,面临的关键挑战之一是“拜占庭将军”问题。“拜占庭将军”是一个假设场景,其中一组将军必须就特定行动方案达成协议,但一些将军可能是背叛该团体的叛徒。在这种情况下,就必须确保所有忠诚的将军都同意采取一致的行动,以防止叛徒破坏系统。
在去中心化网络中,拜占庭将军问题被称为拜占庭容错(BFT)问题。BFT是指去中心化网络在存在恶意节点或故障的情况下仍能达成共识的能力,是区块链技术的重要组成部分,可确保所有节点就系统状态达成共识并确保交易的安全。
为能在去中心化网络中达成共识,人们已开发了不同的共识机制,其中包括工作证明 (PoW)、权益证明 (PoS) 和委托权益证明 (DPoS)。每种机制都各有利弊,能适用于不同的区块链应用程序。
在PoW中,矿工竞相解决复杂的数学问题,以验证交易并向区块链添加新区块。第一个解决问题的矿工能获得奖励,并可将区块添加到链中。然而,PoW需要大量的计算能力,因此耗能大且速度慢。
在PoS中,网络根据其持有的代币数量来选择验证者。这些验证着负责验证交易并向链中添加新块。与PoW相比,PoS能耗更低、速度更快,但容易受到持有大量代币的恶意行为者的攻击。
DPoS类似于PoS,但其负责验证交易并向链中添加新区块的验证者由持币者选举产生。DPoS比 PoW和PoS更快、更节能,但容易受到验证者之间串通舞弊的影响。
虽然这些共识机制各有优势,但它们可能不适合所有区块链应用程序,尤其是不适用于那些需要高级别安全性和可靠性的应用程序。此时,BFT就派上用场了,它提供了一种更强大、更安全的机制,能在去中心化网络中达成共识。
什么是拜占庭容错(BFT)?
拜占庭容错(BFT)是一种共识机制,能使去中心化网络在存在故障或恶意节点的情况下达成共识。 1982年,Leslie Lamport、Robert Shostak和Marshall Pease在他们题为《拜占庭将军问题》的论文中首次提出BFT。他们因拜占庭将军问题有感而作此论文。拜占庭将军是一种假设情况,假设将军们必须就特定的行动方案达成共识,但一些将军可能是背叛该组织的叛徒。
BFT的工作原理是,在特定决定或交易被视为有效之前,确保网络中的所有节点就该决定或交易达成共识。在基于BFT的系统中,所有节点相互通信并交换消息以达成协议。每个节点都有区块链或分类帐的副本,并在将交易添加到链之前验证交易。
为保证网络能够抵住故障或恶意节点,BFT需要一定数量的节点在决定或交易被视有效之前就其达成共识。这个数量被称为拜占庭容错阈值,会根据网络的大小和复杂性变化。例如,在具有3个节点的网络中,阈值可能是2,也即这两个节点必须就一项决定或交易达成一致才能被视为有效。
BFT可通过实用拜占庭容错(PBFT)、联邦拜占庭协议(FBA)和ByzCoin等多种方式实现。PBFT是一种基于BFT的共识机制,在许可区块链网络中获得广泛运用。PBFT的工作原理是,将节点划分为主节点、备份节点和副本节点等不同的角色。主节点负责收集交易请求并排序,然后发送给备份节点进行验证。备份节点验证交易后就会将交易的批准发送回主节点,然后主节点将批准的交易广播到副本节点以供执行。
FBA是一种基于BFT的共识机制,在去中心化系统(如Stellar和Ripple)中获得广泛运用。其工作原理是,允许节点对特定决策或交易进行投票。一旦一定数量的节点同意该决定,则该决定被视为是有效的。
ByzCoin也是一种基于BFT的共识机制,用于ByzCoin区块链网络。它的工作原理是,允许节点对特定交易或决策进行投票。一旦一定数量的节点就交易达成共识,则该交易被视为有效并被添加到区块链中。
拜占庭容错是如何工作的?
在拜占庭容错(BFT)系统中,验证器在确保网络达成共识方面发挥着至关重要的作用。在将交易和区块添加到区块链之前,验证者负责对其进行验证。这些验证器是根据某些标准(如网络中的声誉或权益)从网络节点中选出的。
选择出验证器后,块验证过程就开始了。在BFT中,块通过多步骤过程进行验证。首先,验证者提出一个区块,然后将其广播给其他验证者进行验证。每个验证者验证该块并将其验证的结果(批准或拒绝)广播给其他验证者。
为达成共识,一定数量的验证者必须批准该区块。该数量通常设置为网络中验证者总数的三分之二。若达到这个数量,该块将立即被视为有效并添加到区块链中。
BFT中的块验证过程具有容错能力,也即是说它能抵住错误或恶意验证器的存在。如果发现验证者是恶意的,则可将其从网络中删除,并选择新的验证者来替换它。
BFT提供的主要好处之一是最终性,即一旦某个块被添加到区块链中,它就不能被删除或更改。在其他共识机制(如POW)中,一旦以一定的置信度将块添加到链中,这些块就被视为是有效的;但如果恶意行为者获得了对网络的控制权,那么块就有可能被删除或更改,虽然这种可能性很小。然而,BFT消除了这中种可能性,旦某个块被添加到链中,它就是最终的并且不能更改。
为了在拜占庭容错中实现最终性,一个区块必须得到一定数量验证者的确认。区块被确认后,它就立即被视为是最终的并且不能更改。这为网络提供了高级别的安全性,让网络能适用于需要高级别信任和安全性的应用程序。
拜占庭容错有什么优点?
与其他共识机制相比,拜占庭容错(BFT)有多项优势,最显著之一是它能够快速可靠地达成共识。这使其能适用于需要快速交易处理时间和高可靠性的应用程序,例如金融交易和供应链管理。
BFT的另一个优势是它能够抵御恶意行为者的攻击。 BFT具有容错性,这意味着即使一定数量的验证者受到损害,它也可以继续运行。这赋予其高度安全性和抗攻击性,受到了需要高安全级别应用程序的欢迎。
BFT还具有高度可扩展性,即它能处理大量交易和用户。这是通过使用并行处理和分片技术实现的,这些技术允许网络同时处理多个事务。
BFT在现实世界中的用例有Ripple协议和Tendermint共识算法。Ripple使用BFT的一种变体,称为 Ripple协议共识算法(RPCA),以在其验证者之间达成共识。因此,Ripple每秒可处理数千笔交易,成为了世界上最快、最可靠的支付网络之一。
Tendermint是基于BFT的共识算法的另一个用例,被运用于多个区块链网络,包括Cosmos和Binance Smart Chain。Tendermint具有高度可扩展性,每秒能够处理数千个事务,因此适合在高流量应用程序中使用。
BFT还有一个实际用例,即Hyperledger Fabric区块链平台。Hyperledger Fabric使用BFT的修改版本——称为实用拜占庭容错 (PBFT)——来在其验证器之间达成共识。因此,Hyperledger Fabric成为需要高级别安全性和可扩展性的企业应用程序的热门选择。
总结
拜占庭容错是一种重要的共识机制,能帮助确保去中心化网络的安全性和完整性。在去中心化系统中,它具有处理拜占庭故障和达成共识的能力,是许多区块链的热门选择。随着加密货币的不断发展,拜占庭容错很可能仍然作为共识机制发展的重要组成部分存在。
作者: Matheus译者: cedar文章审校: Matheus、Edward* 投资有风险,入市须谨慎。本文不作为Gate.io提供的投资理财建议或其他任何类型的建议。* 在未提及Gate.io的情况下,复制、传播或抄袭本文将违反《版权法》,Gate.io有权追究其法律责任。相关文章中级浅谈合并:什么是以太坊2.0?一场可能影响整个加密生态的升级
Dec 14, 2022新手什么是冷钱包?快速了解什么是冷钱包,及其不同的类型和优势。Nov 21, 2022新手什麼是稳定币?稳定币是一种价格较为稳定的加密货币,价格往往与现实中的某种法定货币挂勾。稳定币在DeFi,乃至整个加密货币生态中都具有重要地位。Aug 16, 2023关于关于我们职业机会用户协议隐私政策费率标准媒体工具包100% 保证金Gate SAFUGate LabsGate VenturesGate Grants安全方案公告列表社群列表GT用户权益Gatechain日历法务合规问题产品加密货币行情ETH2.0升级法币交易币币交易永续合约杠杆代币Startup芝麻金融NFT跨链方案Gate PayMiniApp礼品卡ETH 2.0关于 USDGGate OTCGate CharityGate借记卡大数据服务建议反馈帮助中心提交工单上币申请智能合约安全开发者中心(API)官方验证渠道P2P商家招募P2P蓝V申请机构机构和VIP服务经纪商计划推荐官计划邀请首页代理商币圈币圈动态直播聊天室快讯未来事件博客Learn学院比特百科探索热门话题比特币减半如何购买GT如何购买Bitcoin如何购买Ethereum如何购买USDT如何购买DOGE如何购买加密货币加密货币价格预测芝麻金融余币宝财富管理定投理财ETH2.0 挖矿理财宝结构性理财双币宝抵押借币流动性挖矿云算力插槽竞拍简体中文简体中文EnglishTiếng Việt繁體中文EspañolРусский языкFrançaisDeutschPortuguês (Portugal)ภาษาไทยIndonesiaTürkçe日本語عربيУкраїнськаPortuguês (Brasil)技术支持商务洽谈法务合规Copyright © 2013-2024. All Right Reserved.新版反馈 建议反馈 日历 移动端电脑端Windows版 MacOS版 关于Gate.io职业机会用户协议费率标准LOGO 下载100% 保证金Gate Ventures合作伙伴产品ETH2.0升级法币交易Markets杠杆交易ETF永续合约财务中心跨链方案大数据成长学院服务上币申请Gate Grants开发者中心(API)大客户权益机构服务经纪商计划Influencers计划返佣计划代理商安全方案MiniApp如何买买GT买BTC买ETH买DOGE买XRP买SHIB买DOT更多技术支持商务洽谈法务合规Gate.io 版权所有 © 2013-2022
什么是 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? - 知乎首页知乎知学堂发现等你来答切换模式登录/注册拜占庭什么是 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添加评论分享收藏喜欢收起
拜占庭容错共识算法介绍 - 知乎
拜占庭容错共识算法介绍 - 知乎首发于区块链学习切换模式写文章登录/注册拜占庭容错共识算法介绍powervip计算机技术与软件专业技术资格证持证人1. 前言区块链的共识算法中,除了常见的工作量证明(PoW,Proof of Work)和权益证明(PoS,Proof of Stake)外,还有拜占庭容错(Byzantine Fault Tolerance, BFT)共识算法。拜占庭容错(Byzantine Fault Tolerance, BFT)共识算法是由拜占庭将军问题衍生出来的共识算法。拜占庭将军问题:拜占庭将军问题是Leslie Lamport在10世纪80年代提出的一个假想问题。拜占庭是东罗马帝国的首都,由于当时拜占庭罗马帝国国土辽阔,每支军队的驻地分隔很远,将军们只能靠信使传递消息。发生战争时将军们必须制订统一的行动计划。然而,这些将军中有叛徒,叛徒希望通过影响统一行动计划的制定与传播,破坏忠诚的将军们一致的行动计划。因此,将军们必须有一个预定的方法协议,使所有忠诚的将军够达成一致。而且少数几个叛徒不能使忠诚的将军做出错误的计划。也就是说,拜占庭将军问题的实质就是要寻找一个方法,使得将军们在一个有版徒的非信任环境中建立对战斗计划的共识。在分布式系统中,特别是在区块链网络环境中,也和拜占庭将军的环境类似,有运行正常的服务器(类似忠诚的拜占庭将军),还有故障的服务器,有破坏者的服务器(类似叛变的拜占庭将军),即拜占庭错误节点。共识算法的核心是在正常的节点间形成对网络状态的共识。2. 拜占庭容错共识算法的版本分类拜占庭容错共识算法有3种版本,每种版本都具有各自的优缺点。这些版本分别是:1) 实用拜占庭容错(PBFT,Practical Byzantine Fault Tolerance)2) 联邦拜占庭协议(FBA,Federated Byzantine Agreement)3) 授权拜占庭容错算法(dBFT,Delegated Byzantine Fault Tolerance)3. 各种拜占庭容错共识算法版本的优缺点下面来看看它们的优缺点:3.1 实用拜占庭容错(PBFT,Practical Byzantine Fault Tolerance)优点:高速、可扩展。缺点:通常用于私有网络和许可网络。采用者:Hyperledger Fabric、Ripple实用拜占庭容错PBFT是首个解决拜占庭将军问题的方案,当前已被 Hyperledger Fabric 采用。PBFT 使用了较少(少于 20 个,之后会稍有增加)的预选定将军数,因此运行非常高效。它的优点是高交易通量和吞吐量,但是不足之处在于是中心化的,并用于许可网络。使用拜占庭容错机制是一种采用“许可投票、少数服从多数”来选举领导者并进行记账的共识机制,该共识机制允许拜占庭容错,允许强监督节点参与,具备权限分级能力,性能更高,耗能更低,而且每轮记账都会由全网节点共同选举领导者,允许33%的节点作恶,容错率为33%。换句话说,PBFT假设区块链上总的节点数是3f+1个,那么网络中可以容忍整个网络中最多f个节点出现拜占庭错误而不影响正确的共识。这里简单对瑞波Ripple介绍一下:在Ripple的共识算法中,将军(验证者)是 Ripple 基金会预先选定的,即参与投票节点的身份是事先知道的,因此,算法的效率比PoW等匿名共识算法要高效,交易的确认时间只需几秒钟。当然,这点也决定了该共识算法只适合于权限链(Permissioned chain)的场景。Ripple共识算法的拜占庭容错(BFT)能力为(n-1)/5,即可以容忍整个网络中20%的节点出现拜占庭错误而不影响正确的共识。瑞波共识算法使一组节点能够基于特殊节点列表形成共识。初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由该俱乐部51%的会员投票通过。共识遵循这些核心成员的“51%权利”,外部人员则没有影响力。由于该俱乐部由中心化开始,它将一直是中心化的,而如果它开始腐化,股东们什么也做不了。与比特币及Peercoin一样,瑞波系统将股东们与其投票权隔开,因此,它比其他系统更中心化。顺便提一下,EOS公链除了使用DPoS(DPoS,Delegated Proof-of-Stake,授权权益证明)外,也使用了拜占庭容错来加速区块的确认。所以,在区块的确认时间上,EOS比起它的前身比特股要快很多,几秒内就可以完成区块的确认。3.2 联邦拜占庭协议(FBA,Federated Byzantine Agreement)优点:吞吐量、低交易开销和网络扩展性采用者:Stellar另一类拜占庭将军问题的解决方案是 FBA,已被 Stellar 等代币使用。FBA 的通用理念是每个拜占庭将军负责自身的链、消息一旦到来,通过排序建立事实。在 Stellar 中,任何人都可以成为验证者,需要用户选择去相信哪个验证者这里简单对恒星Stellar介绍一下:恒星Stellar项目是使用恒星共识(Stellar Consensus)来实现的。恒星共识是基于联邦拜占庭共识(FBA)。恒星共识协议(SCP,Stellar Consensus Protocol)提供了一种不依赖闭合系统实现准确记录金融交易而达成共识的方法。恒星共识协议(SCP) 具有一组可验证的安全属性,这些属性根据如何安全地保持活力而做了优化。一旦出现分区或不当行为节点,它将会终止网络过程,直至达成共识。SCP 同时具备四种属性:去中心控制、低延迟、灵活信任机制和渐进安全(Asymptotic security)。关于恒星项目的介绍,可以参考这篇文章:https://www.codercto.com/a/80941.html目前比较火的免费手机挖矿项目Pi Network是基于恒星共识协议(SCP)和联邦拜占庭协议(FBA)的算法进行开发(官网 https://minepi.com/#download,邀请码 powervip。关于Pi Network更多的资料可以参考这篇文章:https://bihu.com/article/1935912799网上相关的资料不是很详实,根据网上查到的资料和我个人的理解,实用拜占庭容错(PBFT)和联邦拜占庭协议(FBA)这2种共识算法的区别在于:PBFT是单邦制(可以理解为一个国家就是由一个邦组成),FBA是联邦制(可以理解为一个国家由多个联邦组成)。另外,PBFT的节点是预先选定或通过授权的。FBA是一个完全可以自由加入成为节点或退出节点的共识方式,每个邦内的白名单中节点(有记账和出块权的节点)通过投票选举产生(需要至少获得该联邦2/3节点的的同意)。因此,FBA比PBFT的去中心化程度更高,但是牺牲了一定的性能。如果要进一步验证上面的观点,最好的方法还是去查阅官方的文档甚至是代码。3.3 授权拜占庭容错算法(dBFT,Delegated Byzantine Fault Tolerance)优点:快速;可扩展。缺点:每个人都争相成为根链。其中可能存在多个根链。采用者:Neo授权拜占庭容错算法,简称 dBFT,是一种支持通过代理投票实现大规模参与共识的拜占庭容错共识算法。在国产第一条公链小蚁Neo中,令牌持有者可以通过投票选取其支持的 bookkeeper。之后,选定的 bookkeeper 组采用 BFT 算法达成共识,并生成新区块。Neo 网络中的投票是实时的,而非因人而异的。dBFT 可为具有个共识节点的共识系统提供f=n−13容错。这种容错也涵盖了安全性和可用性、不受将军和拜占庭错误影响,并且适合任何网络环境。dBFT 具有很好的最终性(finality),这意味着一旦最终确认,区块将不可分叉,交易将不可再撤销或是回滚。Neo 的 dBFT 机制生成一个区块需 15 到 20 秒钟。交易吞吐量测定约为 1000 TPS。这对于公共区块链而言,这是很好的性能。通过一定优化,dBFT 具有达到一万 TPSS 的潜力,这样就可支持大规模的商业应用。dBFT 中加入了数字身份技术,这意味着 bookkeeper 可以是真实的个人,也可以是某些机构。因此,dBFT 根据存在于其本身之中的司法判决,可以冻结、撤销、继承、检索和拥有代币兑换权。它有利于实现合规金融资产在 Neo 网络中的注册。Neo 网络从设计上,就是在必要时为此提供支持。同样是为了解决拜占庭将军问题,授权拜占庭容错机制,是一种在Neo区块链内部实现的保证容错的共识算法。在这个机制当中,存在两个参与者,一个是专业记账的“记账节点”,一个是系统当中的普通用户。普通用户基于持有权益的比例来投票决定记账节点,当需要通过一项共识时,在这些记账节点中随机推选出一名发言人拟定方案,然后由其他记账节点根据拜占庭容错算法,即少数服从多数的原则进行表态,如果超过66%的节点表示同意发言人方案,则共识达成;否则,重新推选发言人,重复投票过程。所以说,dBFT机制实际使用了一种迭代共识的方法来保证系统达成一致决定。然而,这种机制的缺点在于,当系统中有超过三分之一的记账节点停止工作时,整个区块链网络将无法提供正常的服务;当超过三分之一的节点联合作恶时,区块链将有可能发生分叉。参考文献:https://zhuanlan.zhihu.com/p/32585236https://blog.csdn.net/Blockchain_lemon/article/details/84801413https://blog.csdn.net/shangsongwww/article/details/89040823https://blog.csdn.net/weixin_43946212/article/details/109378449我的程序员主页:https://blog.csdn.net/powervip我的知乎: https://www.zhihu.com/people/powervip我的腾讯微云网盘:https://share.weiyun.com/5qT0TvG如果你觉得这篇文章写得还可以,请帮忙点个赞,谢谢!你的鼓励,我的动力!编辑于 2022-09-25 11:14拜占庭分布式系统共识机制赞同 27添加评论分享喜欢收藏文章被以下专栏收录区块链学习想了解和学习区块链,欢迎来
深入理解异步拜占庭共识 - 知乎
深入理解异步拜占庭共识 - 知乎首发于Decentralized Mind切换模式写文章登录/注册深入理解异步拜占庭共识背着超人飞铲屎官/区块链/Ph.D.区块链技术的兴起让人们开始关注拜占庭共识协议(以下简称 BFT 协议)。在种类繁多的 BFT 协议中,异步 BFT 协议的鲁棒性最强,能够应对极端的网络环境。然而如何设计一种高效的异步 BFT 协议一直是学术界和工业界面临的难题。一直到 2016 年 Andrew Miller 等人提出了 Honey Badger BFT(简称 HB-BFT)才让人们看到异步 BFT 协议可以落地的潜力。近期比较火的 Dumbo(中文名”小飞象“)在 HB-BFT 的基础上进一步优化,极大提高了共识速度。本文主要以 HB-BFT[1] 和 Dumbo[2] 为例,深入探讨异步拜占庭共识所涉及的关键技术。网络假设拜占庭共识协议的设计和工程实现很大程度上依赖于对底层网络的假设。主要的网络假设有:同步(synchronous)网络假设网络中的消息能够在一个已知的时间 Δ 内到达,这是一种非常理想的假设,实际的工程实践中很难保证这一假设成立。半同步(partially synchronous)网络假设在一个 GST(global stabilization time)事件之后,消息在 Δ 时间内到达。随着网络技术的发展,这种假设已经能符合我们生活中遇到多绝大多数网络情况,而且设计和实现这类协议的难度不高,因此很多常见的协议比如 Paxos、Raft、PBFT 等都是基于半同步网络假设设计的共识协议。这些协议虽然能够保证在任何网络情况下系统的一致性,但在异步网络下会丧失活性。异步(Asynchronous)网络只保证消息最终能到达,并没有到达时间的限制,这几乎涵盖所有网络情况。由此可见,异步 BFT 协议的鲁棒性最强,即使在极端网络条件下协议也不会丧失活性。我们将网络假设和容错模型作为两个维度可以将共识协议划分到下图所示的 6 个不同的象限,不同象限代表了不同的应用场景,最右下方的异步拜占庭场景对协议设计的要求最高。 之所以共识协议会出现这么多的分类都是为了绕过著名的 FLP 不可能定理: reaching consensus in full asynchrony with a single process crashing is impossible with a deterministic protocolFLP 定理从理论上证明了在纯异步环境下不可能存在一种确定性的共识协议。后世的研究者们为了绕过这个定理,不得不在两个方向上进行妥协:要么加强对网络的假设,要么引入随机源。半同步共识 vs 异步共识半同步共识协议就是基于第一种方法加强网络假设而设计的。这种方法可以让协议的设计相对简单,协议的关注点可以更多的放在安全性(safety),活性由 failure detector 来保证。比如在 PBFT 中,每个 replica 都要维护一个 timer,一旦 timeout 就会触发 view change 协议选举新的 leader。这里的 timer 就起到了一个 failure detector 的作用。由于半同步网络的假设存在,当网络恢复到同步之后,总能选出一个诚实的 leader,进而保证协议的活性。然而在异步环境下,failure detector 就会失去作用,可能导致无休止的 view change。除此之外,在工程实践中,即使底层网络能满足半同步假设的要求,但如何调节 timer 对协议的实际性能有非常大的影响。如果 timer 时间过短,那么可能导致 view change 频繁发生;如果时间过长,则可能导致网络从 partition 之后恢复较慢。异步共识协议则完全不需要考虑 timer 的设置。为了保证协议的活性,异步协议需要引入随机源,简单来说就是当协议无法达成共识的时候,借助上帝抛骰子的方式随机选择一个结果作为最终结果。Honey Badger BFT下面以 HB-BFT 为例,讨论一下异步拜占庭共识所涉及的核心技术。异步拜占庭共识由于协议设计比较复杂、通信复杂度比较高,很长一段时间都只停留在论文中,直到 2016 年 Andrew Miller 在 CCS 上发表 HB-BFT 才意味着异步拜占庭容错正式迈入可实用领域。HB-BFT 通过非常巧妙的设计将整体的通信复杂度降低到了接近于最优的 O(|B|),前提是区块所占带宽 |B| 足够大。HB-BFT 通过模块化的方式解决了拜占庭环境下的原子广播(Atomic Broadcast,ABC)问题,即如何保证在异步和拜占庭环境下,各个节点按相同顺序收到相同的消息。HB-BFT 首先将 ABC 分解成一个核心模块,异步共同子集(Asynchronous Common Subset,ACS)。之后将 ACS 分解成了 RBC(Reliable Broadcast) + ABA(Asynchronous Binary Agreement)两个子模块,并且分别针对这两个子模块找到了两个比较优化的实现,如下图所示。接下来我们讨论每个模块是如何实现的。HB-BFT首先,我们看 HB-BFT 是如何利用 ACS 实现 ABC 的。简单来说,每个节点都参与贡献一个区块的一部分,而 ACS 的作用就是决定哪些节点贡献的这一部分最终达成了共识。HB-BFT 的流程如下图所示。假如网络中一共有 10 个节点,每个节点维护了一个交易池作为接收来自客户端交易的缓冲池,每个区块包含 B = 100 个交易。每个节点首先从本地的交易池中选取前 100 个合法的交易,之后再从这 100 个交易中随机选择 100/10=10 笔交易作为自己的 proposal。这里之所以每个节点只选择 B/N 笔交易是为了降低通信复杂度,而之所以采用随机选取的方式,是为了降低每个节点选择重复交易的概率。通过一个共享公钥(阈值签名)将 proposal 加密,交易的内容直到共识结束后(收到了来自 f+1 个 share)才能被解密,从而防止了审查攻击(censorship attacks)。每个节点将加密后的 proposal 作为 ACS 模块的输入,输出就得到了一个“名单”,记录了有哪些节点提交的 proposal 成功得到共识。之后通过一系列的解密操作就得到了最终确认的区块。ACS (Asynchronous Common Subset)接下来我们讨论 HB-BFT 的核心——ACS 模块是如何实现的。ACS 可以被分解成 RBC(Reliable Broadcast) 和 ABA(Asynchronous Binary Agreement) 两个子模块。每个节点首先将本地的 proposal 通过 RBC 发送到其它节点,之后每个节点针对每个 RBC 的实例成功与否(0 或 1)执行一次 ABA。也就是说,每个节点都要并行运行 N 个 ABA 的示例(每个节点的 proposal 一个),每个 ABA 的输出 0 或 1 表示是否所有正确节点都认为这个 proposal 最终应该成为区块的一部分。ACS 的运行流程如下图所示。假如一共有 N=10 个节点(最多容忍 f=3 个拜占庭节点),以节点 P_1 为例。如果 P_1 收到来自 P_2 的 proposal(即 RBC2 成功),则 P_1 将 ABA2 的输入置为 1。当 P_1 收到 N−f 节点的 proposal 时,将其它所有的 ABA 的输入都置为 0。直到所有 ABA 运行结束,将所有输出为 1 的 ABA 的汇聚成一个集合作为 ACS 的最终输出。例如,针对节点 P_1,P_3,P_4,P_6,P_7,P_9,P_{10} 发布的 proposal 对应的 ABA 的结果如果是 1 的话,ACS 的最终输出可以是(1,3,4,5,6,7,9,10)。ACS 保证所有正确节点都得到相同的输出。下图展示了 ACS 在执行过程中的三种情况。在正常情况下,RBC1 结束比较早,相对应的 ABA1 的输入为 1(yes),其输出也是 1。第二种情况,RBC2 结束的比较慢,在相对应的 ABA2 开始的时候(其它 N-f 个 RBC 成功之后)RBC2 还未结束,ABA2 的输入为 0(No),但由于其它 N-f 个节点对于 ABA2 的输入为 1,最终 ABA2 的输出也是 1,同时保证节点能够最终收到 RBC2 的 proposal。第三种情况,RBC3 失败,当其它 N−f 个 RBC 成功之后,节点对 ABA3 的输入为 0,最终 ABA3 的输出也是 0。RBC (Reliable Broadcast)可靠广播 RBC 可以确保源节点能够可靠地将消息发送到网络中的所有节点。具体来说,RBC 主要有以下三个性质:一致性(Agreement)。任意两个正确节点都收到来自源节点的相同的消息。全局性(Totality)。只要有一个节点收到了来自源节点的消息,那么所有正确的节点最终都能收到这个消息。可信性(Validity)。如果源节点是正确的,那么所有正确的节点收到的消息一定与源节点发送的消息一致。抗拜占庭的 RBC 最早由 Bracha 于1987年首次提出,并得到了广泛应用,其消息传递的示意图如下。RBC 主要分成 Initiate、Echo、Ready 三个阶段,其中后两个阶段各经历一次 all-to-all 的广播,因此 Bracha 的 RBC 协议的通信复杂度是 O(N^2|v|) 。在这之后,Cachin 等人在 2005 年提出了基于纠删码的 RBC 实现,将通信复杂度降低到了 O(N∣v∣+λN2logN) 。HB-BFT 就是采用了这种优化的 RBC。当 |v| 远大于 \lambda N\log N 的时候,其通信复杂度可以近似表示为 O(N|v|) 。由于 |v|=|B|/N ,则 HB-BFT 整体的通信复杂度可以表示为 O(|B|) (|B|为整个区块的大小),也就是渐进于理论最优。HB-BFT 中采用了基于(N-2f,N)的纠删码模式,即将一个数据块进行编码后,可以将其分成 N 份,其中只要任意 N-2f 份组合可以恢复整个数据块。消息传递的模式仍然跟传统的 RBC 类似。ABA (Asynchronous Binary Agreement)异步二元共识就是要在异步环境下让所有节点对于 0 或 1 达成共识。在 HB-BFT 中,每个节点都会针对其他所有节点的 RBC 是否成功进行一次二元共识,也就是说,每轮共识都要并行地执行 N 个 ABA 的实例。ABA 主要满足下面几个性质:一致性(Aggreement)。所有节点的输出相同(要么都是 0,要么都是 1)。最终性(Termination)。如果所有正确节点都收到了输入,那么所有正确节点最终都会得到输出。可信性(Validity)。如果任意正确节点的输出是 b(0 或 1),那么至少有一个正确节点的输入是 b。ABA 的实现原理就是当节点无法达成一致的时候借助一个外部的随机源做决定。这个随机源就是 ABA 的核心组件(Common Coin,CC),我们也可以将 CC 理解成上帝掷骰子,只不过这个骰子只有 0 和 1 两个值。虽然只掷一次骰子可能还是无法达成共识,那么就不停掷,最终会出现所有人都达成一致的结果。Common Coin 有很多实现方案,HB-BFT 针对其模块化的设计,采用了基于阈值签名的 CC 方案。每个节点对一个共同的字符串进行签名并广播给其它节点,当节点收到来自其它 f+1 个节点的签名时,就可以将这些签名聚合成一个签名,并将这个签名作为随机源。HB-BFT 性能测试接下来我们看看 HB-BFT 的性能表现。作者们给出了 Python 版本的实现[3],节点部署在广域网,分布在五个大洲,每个交易大小为 250 字节,总结点数 N = 4f,其中 f 为故障节点数,不考虑拜占庭行为。我们首先看通信复杂度 vs batch 大小的实验结果,如下图所示。我们可以清楚地看到,当 batch size 逐渐增大的时候,每个节点的通信开销逐渐逼近线性增长。接下来我们看 HB-BFT 跟 PBFT 吞吐量的对比,如下图所示。我们可以看到在节点数为 8、16 的时候,两者差别不大,但随着节点个数增加,PBFT 的吞吐量有明显下降,而 HB-BFT 则几乎没有什么变化。这是由于 PBFT 是由 leader 将区块发布给其他节点,当节点数增加的时候,leader 的带宽逐渐成为瓶颈,而 HB-BFT 则不存在 leader 的概念,每个节点都贡献区块的一部分,因此吞吐量受网络规模影响不明显。最后我们来看 HB-BFT 的吞吐量-延迟表现情况,如下图所示。我们可以明显看到,随着网络规模增加,协议的基础延迟明显增加。当网络规模达到 104 个节点的时候,协议的基础延迟增加到 600s。之所以协议的延迟对网络规模这么敏感是因为在每轮共识中,每个节点都要运行 N 个 ABA 的实例,而每个 ABA 的实例都要校验 O(N^2) 个阈值签名,因此计算复杂度非常高,随着网络规模增加,首先到达瓶颈的是 CPU,而不是带宽。接下来将要介绍的 Dumbo 就是在这个发现的基础上对 HB-BFT 的延迟进行了优化。Dumbo: Faster Asynchronous BFT Protocols聊完了 Honey Badger BFT,我们下面来聊一聊它的继任者 Dumbo(小飞象)。小飞象协议是来自新泽西理工的唐强教授联合中科院和京东创新实验室共同完成的。经过对 HB-BFT 性能的详细分析,Dumbo 的作者们发现影响 HB-BFT 性能的一个瓶颈是 ABA。由于在每轮共识中每个节点都要运行 N 个 ABA 的实例,每个实例都要验证 O(N^2) 个阈值签名,这对 CPU 的消耗很大。如下图所示,RBC 的运行时间相比 ABA 几乎可以忽略不计,而且随着 N 增大,运行 ABA 所需要的时间越来越长。于是如何减少每轮共识中需要运行的 ABA 实例个数就是提高异步共识效率的关键。沿着这个思路,Dumbo 给出了两种解决方案,分别是 Dumbo1 和 Dumbo2。下面简单谈一下 Dumbo1 和 Dumbo2 的思路,具体细节和证明请看论文原文。Dumbo1 的思路非常简单(如下图所示):既然我们的目标是选取一个共同子集,那么为什么不选取一个由 k(k
什么是共识?
共识,尤其是在加密货币中,是去中心化网络的重要组成部分。简单来说,共识是指网络中由个人或节点组成的一个群体就特定决策或交易达成一致的过程。在加密货币中,共识十分重要,因为它负责确保所有节点都同意系统状态,并且没有恶意行为者可以篡改网络。
由于种种原因,在去中心化网络中达成共识是一件不容易的事情。首先,去中心化网络中没有中央组织机构或决策者,因此节点之间很难建立信任。其次,网络中的节点可能在全球不同的地方并且具有不同的利益,因此很难就特定决策达成一致。最后,网络将容易受恶意行为者的攻击,他们破坏共识过程并操纵系统以谋取利益。
在去中心化网络中达成共识,面临的关键挑战之一是“拜占庭将军”问题。“拜占庭将军”是一个假设场景,其中一组将军必须就特定行动方案达成协议,但一些将军可能是背叛该团体的叛徒。在这种情况下,就必须确保所有忠诚的将军都同意采取一致的行动,以防止叛徒破坏系统。
在去中心化网络中,拜占庭将军问题被称为拜占庭容错(BFT)问题。BFT是指去中心化网络在存在恶意节点或故障的情况下仍能达成共识的能力,是区块链技术的重要组成部分,可确保所有节点就系统状态达成共识并确保交易的安全。
为能在去中心化网络中达成共识,人们已开发了不同的共识机制,其中包括工作证明 (PoW)、权益证明 (PoS) 和委托权益证明 (DPoS)。每种机制都各有利弊,能适用于不同的区块链应用程序。
在PoW中,矿工竞相解决复杂的数学问题,以验证交易并向区块链添加新区块。第一个解决问题的矿工能获得奖励,并可将区块添加到链中。然而,PoW需要大量的计算能力,因此耗能大且速度慢。
在PoS中,网络根据其持有的代币数量来选择验证者。这些验证着负责验证交易并向链中添加新块。与PoW相比,PoS能耗更低、速度更快,但容易受到持有大量代币的恶意行为者的攻击。
DPoS类似于PoS,但其负责验证交易并向链中添加新区块的验证者由持币者选举产生。DPoS比 PoW和PoS更快、更节能,但容易受到验证者之间串通舞弊的影响。
虽然这些共识机制各有优势,但它们可能不适合所有区块链应用程序,尤其是不适用于那些需要高级别安全性和可靠性的应用程序。此时,BFT就派上用场了,它提供了一种更强大、更安全的机制,能在去中心化网络中达成共识。
什么是拜占庭容错(BFT)?
拜占庭容错(BFT)是一种共识机制,能使去中心化网络在存在故障或恶意节点的情况下达成共识。 1982年,Leslie Lamport、Robert Shostak和Marshall Pease在他们题为《拜占庭将军问题》的论文中首次提出BFT。他们因拜占庭将军问题有感而作此论文。拜占庭将军是一种假设情况,假设将军们必须就特定的行动方案达成共识,但一些将军可能是背叛该组织的叛徒。
BFT的工作原理是,在特定决定或交易被视为有效之前,确保网络中的所有节点就该决定或交易达成共识。在基于BFT的系统中,所有节点相互通信并交换消息以达成协议。每个节点都有区块链或分类帐的副本,并在将交易添加到链之前验证交易。
为保证网络能够抵住故障或恶意节点,BFT需要一定数量的节点在决定或交易被视有效之前就其达成共识。这个数量被称为拜占庭容错阈值,会根据网络的大小和复杂性变化。例如,在具有3个节点的网络中,阈值可能是2,也即这两个节点必须就一项决定或交易达成一致才能被视为有效。
BFT可通过实用拜占庭容错(PBFT)、联邦拜占庭协议(FBA)和ByzCoin等多种方式实现。PBFT是一种基于BFT的共识机制,在许可区块链网络中获得广泛运用。PBFT的工作原理是,将节点划分为主节点、备份节点和副本节点等不同的角色。主节点负责收集交易请求并排序,然后发送给备份节点进行验证。备份节点验证交易后就会将交易的批准发送回主节点,然后主节点将批准的交易广播到副本节点以供执行。
FBA是一种基于BFT的共识机制,在去中心化系统(如Stellar和Ripple)中获得广泛运用。其工作原理是,允许节点对特定决策或交易进行投票。一旦一定数量的节点同意该决定,则该决定被视为是有效的。
ByzCoin也是一种基于BFT的共识机制,用于ByzCoin区块链网络。它的工作原理是,允许节点对特定交易或决策进行投票。一旦一定数量的节点就交易达成共识,则该交易被视为有效并被添加到区块链中。
拜占庭容错是如何工作的?
在拜占庭容错(BFT)系统中,验证器在确保网络达成共识方面发挥着至关重要的作用。在将交易和区块添加到区块链之前,验证者负责对其进行验证。这些验证器是根据某些标准(如网络中的声誉或权益)从网络节点中选出的。
选择出验证器后,块验证过程就开始了。在BFT中,块通过多步骤过程进行验证。首先,验证者提出一个区块,然后将其广播给其他验证者进行验证。每个验证者验证该块并将其验证的结果(批准或拒绝)广播给其他验证者。
为达成共识,一定数量的验证者必须批准该区块。该数量通常设置为网络中验证者总数的三分之二。若达到这个数量,该块将立即被视为有效并添加到区块链中。
BFT中的块验证过程具有容错能力,也即是说它能抵住错误或恶意验证器的存在。如果发现验证者是恶意的,则可将其从网络中删除,并选择新的验证者来替换它。
BFT提供的主要好处之一是最终性,即一旦某个块被添加到区块链中,它就不能被删除或更改。在其他共识机制(如POW)中,一旦以一定的置信度将块添加到链中,这些块就被视为是有效的;但如果恶意行为者获得了对网络的控制权,那么块就有可能被删除或更改,虽然这种可能性很小。然而,BFT消除了这中种可能性,旦某个块被添加到链中,它就是最终的并且不能更改。
为了在拜占庭容错中实现最终性,一个区块必须得到一定数量验证者的确认。区块被确认后,它就立即被视为是最终的并且不能更改。这为网络提供了高级别的安全性,让网络能适用于需要高级别信任和安全性的应用程序。
拜占庭容错有什么优点?
与其他共识机制相比,拜占庭容错(BFT)有多项优势,最显著之一是它能够快速可靠地达成共识。这使其能适用于需要快速交易处理时间和高可靠性的应用程序,例如金融交易和供应链管理。
BFT的另一个优势是它能够抵御恶意行为者的攻击。 BFT具有容错性,这意味着即使一定数量的验证者受到损害,它也可以继续运行。这赋予其高度安全性和抗攻击性,受到了需要高安全级别应用程序的欢迎。
BFT还具有高度可扩展性,即它能处理大量交易和用户。这是通过使用并行处理和分片技术实现的,这些技术允许网络同时处理多个事务。
BFT在现实世界中的用例有Ripple协议和Tendermint共识算法。Ripple使用BFT的一种变体,称为 Ripple协议共识算法(RPCA),以在其验证者之间达成共识。因此,Ripple每秒可处理数千笔交易,成为了世界上最快、最可靠的支付网络之一。
Tendermint是基于BFT的共识算法的另一个用例,被运用于多个区块链网络,包括Cosmos和Binance Smart Chain。Tendermint具有高度可扩展性,每秒能够处理数千个事务,因此适合在高流量应用程序中使用。
BFT还有一个实际用例,即Hyperledger Fabric区块链平台。Hyperledger Fabric使用BFT的修改版本——称为实用拜占庭容错 (PBFT)——来在其验证器之间达成共识。因此,Hyperledger Fabric成为需要高级别安全性和可扩展性的企业应用程序的热门选择。
总结
拜占庭容错是一种重要的共识机制,能帮助确保去中心化网络的安全性和完整性。在去中心化系统中,它具有处理拜占庭故障和达成共识的能力,是许多区块链的热门选择。随着加密货币的不断发展,拜占庭容错很可能仍然作为共识机制发展的重要组成部分存在。
作者: Matheus译者: cedar文章审校: Matheus、Edward* 投资有风险,入市须谨慎。本文不作为Gate.io提供的投资理财建议或其他任何类型的建议。* 在未提及Gate.io的情况下,复制、传播或抄袭本文将违反《版权法》,Gate.io有权追究其法律责任。相关文章中级浅谈合并:什么是以太坊2.0?一场可能影响整个加密生态的升级
Dec 14, 2022新手什么是冷钱包?快速了解什么是冷钱包,及其不同的类型和优势。Nov 21, 2022新手什麼是稳定币?稳定币是一种价格较为稳定的加密货币,价格往往与现实中的某种法定货币挂勾。稳定币在DeFi,乃至整个加密货币生态中都具有重要地位。Aug 16, 2023关于关于我们职业机会用户协议隐私政策费率标准媒体工具包100% 保证金Gate SAFUGate LabsGate VenturesGate Grants安全方案公告列表社群列表GT用户权益Gatechain日历法务合规问题产品加密货币行情ETH2.0升级法币交易币币交易永续合约杠杆代币Startup芝麻金融NFT跨链方案Gate PayMiniApp礼品卡ETH 2.0关于 USDGGate OTCGate CharityGate借记卡大数据服务建议反馈帮助中心提交工单上币申请智能合约安全开发者中心(API)官方验证渠道P2P商家招募P2P蓝V申请机构机构和VIP服务经纪商计划推荐官计划邀请首页代理商币圈币圈动态直播聊天室快讯未来事件博客Learn学院比特百科探索热门话题比特币减半如何购买GT如何购买Bitcoin如何购买Ethereum如何购买USDT如何购买DOGE如何购买加密货币加密货币价格预测芝麻金融余币宝财富管理定投理财ETH2.0 挖矿理财宝结构性理财双币宝抵押借币流动性挖矿云算力插槽竞拍简体中文简体中文EnglishTiếng Việt繁體中文EspañolРусский языкFrançaisDeutschPortuguês (Portugal)ภาษาไทยIndonesiaTürkçe日本語عربيУкраїнськаPortuguês (Brasil)技术支持商务洽谈法务合规Copyright © 2013-2024. All Right Reserved.新版反馈 建议反馈 日历 移动端电脑端Windows版 MacOS版 关于Gate.io职业机会用户协议费率标准LOGO 下载100% 保证金Gate Ventures合作伙伴产品ETH2.0升级法币交易Markets杠杆交易ETF永续合约财务中心跨链方案大数据成长学院服务上币申请Gate Grants开发者中心(API)大客户权益机构服务经纪商计划Influencers计划返佣计划代理商安全方案MiniApp如何买买GT买BTC买ETH买DOGE买XRP买SHIB买DOT更多技术支持商务洽谈法务合规Gate.io 版权所有 © 2013-2022
从0到1搞懂拜占庭容错共识机制 - 简书
搞懂拜占庭容错共识机制 - 简书登录注册写文章首页下载APP会员IT技术从0到1搞懂拜占庭容错共识机制BTCUP关注赞赏支持从0到1搞懂拜占庭容错共识机制共识机制堪称区块链的核心。我们知道,EOS、Hyperledger以及Stellar等著名的项目,都采用了BFT(拜占庭容错)共识机制,那么,BFT到底是什么鬼?和其它共识机制相比,又有什么优势和特点呢?1、什么是共识机制?所谓共识机制,就是区块链中的节点,其中包括诚实节点和恶意的节点,就如何写入一个区块达成共识。我们以最熟悉的比特币为例,因为有比特币的奖励,所以矿工们都会争夺每十分钟一次的记账权。公平起见,比特币采用了PoW(工作量)证明的共识机制,也就是通过增加算力来增加获得记账权的概率。PoW的容错性是50%,也就是说只要超过一半的节点是诚实的,就可以保证区块链数据的有效性。不过,PoW存在出块慢、吞吐量小、耗电大的局限,因此PoS、BFT等共识机制也在不断被广泛应用。2、BFT的原理下面,我们先回到中世纪的西方世界。想象一下,强大的拜占庭帝国的几支部队在一个敌人的城市之外扎营,每支部队都由自己的将军指挥,将军只能通过信使互相沟通。在观察敌人后,他们必须决定共同的行动计划。然而,其中一些将军可能是叛徒,试图阻止忠诚的将军达成协议。将军必须决定何时攻击这座城市,但他们需要大部分军队同时进行攻击才有胜算。协同进攻方能取胜,不协同进攻将会失败
为了取得战斗的胜利,将军们必须有一个算法来保证:(a)所有忠诚的将军采取同一行动计划;(b)少数叛徒不能使忠诚的将军采取不良计划。忠诚的将军们都会按照算法所说的去做,但叛徒可以做任何他们想做的事情。无论叛徒做什么,算法都必须保证上述条件(a)。忠诚的将军不仅应该达成协议,而且应该就合理的计划达成一致。在此我们将这个寓言放到区块链中:故事中的“将军”是参与运行区块链(数据库)分布式网络的各方,他们来回进行通讯的信使就是通过网络进行通信的方式。 “忠诚将军”的集体目标是攻占敌军----写入一个大家公认的区块记录。在我们的寓言中,有效的信息将是决定支持攻击的正确机会。对于忠诚的区块链参与者而言,他们有兴趣确保区块链(数据库)的完整性,从而确保只接受正确的信息。另一方面,叛变的将军将是任何试图伪造区块链(数据库)信息的一方,他们的潜在动机有很多种:可能是试图花费他实际上并不拥有的数字货币,或者是不想履行之前已经签署和提交的智能合同中所述义务等等。区块链的力量在于它需要在一个分布式的网络中、其中可能或者肯定有“恶意节点”----如同拜占庭将军们所处的境地,也能达成正确的共识。各种计算机科学家已经从寓言中概述了拜占庭将军问题的一些潜在解决方案,用于在区块链系统中建立共识的实用拜占庭容错算法(PBFT),是那些潜在的解决方案之一。简单地说,PBFT的作用如下:每个“将军”维持一个内部状态(持续的特定信息或状态),当“将军”接收消息时,它们将消息与其内部状态结合使用,以运行计算或操作。这种计算反过来告诉这个“将军”如何思考有关信息。然后,在达成关于新消息的个人决定之后,这个“将军”再与系统中所有其他“将军”共享该决定,最后根据所有将军提交的全部决定,确定共识决定。算法的研究结果显示,当“叛变将军”少于将军总数的三分之一时,“忠诚将军”将可以做出正确的决定并达成一致。下面我们看这个例子,一共三个将军,其中一个是发令将军A、两个是普通将军B和C。当A告诉B攻击而告诉C撤退时,B和C互相发送消息,因为他俩都是忠诚的,都将如实转发A的消息。这样B和C都不能弄清楚到底谁是叛徒----因为不确定A是叛徒、或者是否另一个普通将军可能伪造了据称来自A的信息。可以证明,如果n是将军总数,而t是其中的叛徒数量 ,那么只有当n> 3t并且通信是同步的时候,拜占庭将军问题才能得到解决。3、结论与最传统的PoW共识机制相比,PBFT有以下优势:1、效率高PBFT要求所有节点之间的两两通信,因此这种通信机制要求节点数量不能太多,通常是几十个,在这种模式下,节点达成一致的速度更快,延时更低。2、吞吐量高节点数量的控制,使PBFT网络不用像大型PoW网络那样,受限于处理能力最低的节点;因此带来全网吞吐量的大幅提升。3、节能无须使用工作量证明的耗电模式,因此更加节能环保。所谓有得必有失,相对而言,PBFT又有以下劣势:1、可扩展性及去中心化程度较弱由于节点数量的限制,因此可扩展性较弱;同时节点需要选举、或者许可,不像PoW节点那样可以自由加入,去中心化程度较弱。2、容错性较低PoW网络的容错性是50%,也就是须防范51%攻击;而PBFT容错性只有三分之一,也就是34%的恶意节点即可发起攻击。
表 共识算法对比
来源:中国信息通信研究院,2018 年8 月
最后再附上目前业内主流的共识算法对比表。由于行文仓促,其中难免有不完备之处,欢迎留言进行探讨。若大家感兴趣,后续还将继续推出更深度的分析。祝您国庆假期愉快!参考文献:https://blockonomi.com/practical-byzantine-fault-tolerance/本文首发于:币投财经作者:币投研究院 李辉转载请注明出处。 ©著作权归作者所有,转载或内容合作请联系作者 人面猴序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...沈念sama阅读 147,654评论 1赞 315死咒序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...沈念sama阅读 63,039评论 1赞 262救了他两次的神仙让他今天三更去死文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...开封第一讲书人阅读 98,302评论 0赞 216道士缉凶录:失踪的卖姜人 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...开封第一讲书人阅读 41,934评论 0赞 189港岛之恋(遗憾婚礼)正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...茶点故事阅读 49,864评论 1赞 265恶毒庶女顶嫁案:这布局不是一般人想出来的文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...开封第一讲书人阅读 39,277评论 1赞 183城市分裂传说那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...沈念sama阅读 30,818评论 2赞 281双鸳鸯连环套:你想象不到人心有多黑文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...开封第一讲书人阅读 29,579评论 0赞 175万荣杀人案实录序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...沈念sama阅读 33,001评论 0赞 221护林员之死正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...茶点故事阅读 29,670评论 2赞 225白月光启示录正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...茶点故事阅读 31,029评论 1赞 236活死人序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...沈念sama阅读 27,453评论 2赞 219日本核电站爆炸内幕正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...茶点故事阅读 31,927评论 3赞 214男人毒药:我在死后第九天来索命文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...开封第一讲书人阅读 25,745评论 0赞 9一桩弑父案,背后竟有这般阴谋文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...开封第一讲书人阅读 26,238评论 0赞 174情欲美人皮我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...沈念sama阅读 34,041评论 2赞 238代替公主和亲正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...茶点故事阅读 34,186评论 2赞 241推荐阅读更多精彩内容深度长文:区块链共识机制转载声明:本文来自微信公众号:火龙果园长,仅供学习交流,禁止用于商业用途,转载需关注公众号取得文章作者同意。 写在...火龙果园长阅读 7,176评论 0赞 18量子学派之区块链课程第四章《区块链的共识机制——从拜占庭共识谈起》读书笔记第四章 区块链的共识机制:从拜占庭共识谈起 · 本文由【区块链研习社】优质内容计划支持,更多关于区块链的深度好文,...丁涌阅读 615评论 0赞 1一位步履蹒跚的老爷爷走进了我的瑜伽课堂昨天中午上课,开课前几分钟,一位老爷爷缓缓走进了瑜伽教室。 从外表来看应该60多岁,身上穿了件长袖的灰色外套,和一...悦己读书小贝阅读 398评论 0赞 3爸爸的花儿已经过去一个星期了,荡荡看了一眼手机,没有一个电话,连骚扰电话都懒得骚扰他的电话。 “嘿,你看看这些花儿,还没...叫卡夫卡的少年阅读 116评论 0赞 0在沃尔玛看书的时光源于知乎上看到的一个问题,有个人提问:“你在这个城市做过最孤独的一件事?”,我想起了07年底08年初那段岁月。 那...haapy等雪阅读 381评论 0赞 2评论0赞1515赞16赞赞赏更
Buy/Sell Bitcoin, Ether and Altcoins | Cryptocurrency Exchange | Binance
Buy/Sell Bitcoin, Ether and Altcoins | Cryptocurrency Exchange | Binance
Error 403 Forbidden - This request is blocked.
For security reasons you can't connect to the server for this app or website at this time.
It maybe that you have too many requests or the illegal request payload is identified as an attack.
Please try again later.
一文看懂区块链中的拜占庭容错(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
拜占庭问题与算法 | 区块链技术指南
题与算法 | 区块链技术指南区块链技术指南搜索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)。在某个视图中,客户端将请求拜占庭容错算法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添加评论分享喜欢收藏申请转载文章被以下专栏收录区块链+区块链知识及一