亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

當(dāng)前位置:主頁 > 區(qū)塊鏈 > 區(qū)塊鏈技術(shù) > 詳解拜占庭容錯(cuò)算法

什么是拜占庭容錯(cuò)算法?PBFT、FBA和dBFT有什么區(qū)別?

2023-07-28 08:42:19 | 來源: | 作者:佚名
這篇文章主要介紹了什么是拜占庭容錯(cuò)算法?PBFT、FBA和dBFT有什么區(qū)別?的相關(guān)資料,需要的朋友可以參考下本文詳細(xì)內(nèi)容介紹

拜占庭容錯(cuò)算法是一種在分布式系統(tǒng)中實(shí)現(xiàn)故障恢復(fù)的算法,它是由拜占庭將軍問題衍生出來的。拜占庭將軍問題是一個(gè)經(jīng)典的分布式系統(tǒng)問題,它描述了一群分散在不同地點(diǎn)的將軍,需要通過信使來傳遞消息,從而達(dá)成一個(gè)共同的決策。然而,這些將軍中可能有一些是叛徒,他們會(huì)故意發(fā)送錯(cuò)誤或不一致的消息,以破壞其他忠誠將軍的一致性。因此,拜占庭容錯(cuò)算法的目標(biāo)是在一個(gè)存在故障或惡意節(jié)點(diǎn)的非信任環(huán)境中,保證系統(tǒng)中的大多數(shù)節(jié)點(diǎn)能夠達(dá)成一個(gè)正確的共識(shí)。

拜占庭容錯(cuò)算法有多種版本,每種版本都有各自的優(yōu)缺點(diǎn)和適用場景。本文將介紹三種比較常見和重要的拜占庭容錯(cuò)算法:實(shí)用拜占庭容錯(cuò)(PBFT),聯(lián)邦拜占庭協(xié)議(FBA)和授權(quán)拜占庭容錯(cuò)算法(dBFT)。

實(shí)用拜占庭容錯(cuò)(PBFT)

實(shí)用拜占庭容錯(cuò)(PBFT)是一種基于投票的拜占庭容錯(cuò)算法,它由Miguel Castro和Barbara Liskov在1999年提出,是第一個(gè)在實(shí)際系統(tǒng)中可行的拜占庭容錯(cuò)算法。PBFT可以在失效節(jié)點(diǎn)不超過總節(jié)點(diǎn)數(shù)1/3的情況下保證消息傳遞的正確可靠。PBFT主要用于私有鏈或許可鏈,因?yàn)樗枰A(yù)先確定參與共識(shí)的節(jié)點(diǎn)集合,也就是說,節(jié)點(diǎn)的身份是事先知道的。PBFT的優(yōu)點(diǎn)是高交易通量和吞吐量,但缺點(diǎn)是通信開銷大,擴(kuò)展性差。

PBFT是一種狀態(tài)機(jī)副本復(fù)制算法,即服務(wù)作為狀態(tài)機(jī)進(jìn)行建模,狀態(tài)機(jī)在分布式系統(tǒng)的不同節(jié)點(diǎn)進(jìn)行副本復(fù)制。每個(gè)狀態(tài)機(jī)的副本都保存了服務(wù)的狀態(tài),同時(shí)也實(shí)現(xiàn)了服務(wù)的操作。所有的副本在一個(gè)被稱為視圖的輪換過程中運(yùn)作。在某個(gè)視圖中,一個(gè)副本作為主節(jié)點(diǎn)(leader),其它的副本節(jié)點(diǎn)作為備份節(jié)點(diǎn)(backup)。主節(jié)點(diǎn)通過隨機(jī)算法選出,用來負(fù)責(zé)與提案的客戶端通信。

PBFT共識(shí)過程可以分為四個(gè)階段:預(yù)準(zhǔn)備(pre-prepare),準(zhǔn)備(prepare),提交(commit)和回復(fù)(reply)。具體流程如下:

  • 客戶端向主節(jié)點(diǎn)發(fā)送請(qǐng)求消息。
  • 主節(jié)點(diǎn)給請(qǐng)求消息編號(hào),并向所有副本節(jié)點(diǎn)廣播預(yù)準(zhǔn)備消息。
  • 每個(gè)副本節(jié)點(diǎn)收到預(yù)準(zhǔn)備消息后,檢查消息是否有效,并向所有副本節(jié)點(diǎn)廣播準(zhǔn)備消息。
  • 每個(gè)副本節(jié)點(diǎn)收到2f+1個(gè)有效的準(zhǔn)備消息后(包括自己發(fā)送的),進(jìn)入準(zhǔn)備狀態(tài),并向所有副本節(jié)點(diǎn)廣播提交消息。
  • 每個(gè)副本節(jié)點(diǎn)收到2f+1個(gè)有效的提交消息后(包括自己發(fā)送的),進(jìn)入提交狀態(tài),并執(zhí)行請(qǐng)求操作,并向客戶端發(fā)送回復(fù)消息。
  • 客戶端收到f+1個(gè)相同的回復(fù)消息后,認(rèn)為請(qǐng)求已經(jīng)完成,并返回結(jié)果。

其中f表示最大可能存在的失效或惡意節(jié)點(diǎn)數(shù)。通過這樣一個(gè)四階段過程,PBFT可以保證只要有超過2/3的正常節(jié)點(diǎn)達(dá)成一致,就可以抵抗少于1/3的失效或惡意節(jié)點(diǎn)的影響。

PBFT的一個(gè)典型應(yīng)用是Hyperledger Fabric,它是一個(gè)開源的企業(yè)級(jí)區(qū)塊鏈平臺(tái),支持智能合約和多種共識(shí)算法。Hyperledger Fabric在0.6版本中使用了PBFT作為默認(rèn)的共識(shí)算法,后來在1.0版本中改用了更靈活的可插拔的共識(shí)框架,但仍然保留了PBFT作為一種可選的共識(shí)算法。

聯(lián)邦拜占庭協(xié)議(FBA)

聯(lián)邦拜占庭協(xié)議(FBA)是一種基于拜占庭協(xié)議(BA)的拜占庭容錯(cuò)算法,它由David Mazieres在2015年提出,是一種適用于開放式的分布式系統(tǒng)的共識(shí)算法。FBA不需要預(yù)先確定參與共識(shí)的節(jié)點(diǎn)集合,而是允許每個(gè)節(jié)點(diǎn)自由選擇信任哪些節(jié)點(diǎn),并根據(jù)信任關(guān)系形成局部子集。FBA可以在失效或惡意節(jié)點(diǎn)不超過總節(jié)點(diǎn)數(shù)1/3的情況下保證消息傳遞的正確可靠。FBA的優(yōu)點(diǎn)是去中心化程度高,網(wǎng)絡(luò)擴(kuò)展性好,但缺點(diǎn)是安全性和活性依賴于信任圖的結(jié)構(gòu)。

FBA中的每個(gè)節(jié)點(diǎn)都有一個(gè)唯一的標(biāo)識(shí)符和一個(gè)公鑰,用來驗(yàn)證消息的簽名。每個(gè)節(jié)點(diǎn)都有一個(gè)自己選擇信任的節(jié)點(diǎn)集合,稱為準(zhǔn)同意集(quorum slice)。一個(gè)準(zhǔn)同意集表示該節(jié)點(diǎn)認(rèn)為必須達(dá)成一致的最小節(jié)點(diǎn)集合。一個(gè)準(zhǔn)同意集可以包含任意數(shù)量和任意類型的節(jié)點(diǎn),甚至包括自己。一個(gè)準(zhǔn)同意集不一定是固定的,可以隨著時(shí)間和情況而變化。一個(gè)準(zhǔn)同意集也不一定是對(duì)稱的,即A信任B不一定意味著B信任A。

FBA中所有節(jié)點(diǎn)的準(zhǔn)同意集構(gòu)成了一個(gè)信任圖(trust graph),信任圖反映了整個(gè)網(wǎng)絡(luò)中節(jié)點(diǎn)之間的信任關(guān)系。信任圖中存在一個(gè)特殊的子圖,稱為聯(lián)邦(federation),它滿足以下兩個(gè)條件:

  • 重疊性:對(duì)于聯(lián)邦中的任意兩個(gè)節(jié)點(diǎn)A和B,存在一個(gè)聯(lián)邦中的節(jié)點(diǎn)C,使得C屬于A和B的準(zhǔn)同意集。
  • 安全性:對(duì)于聯(lián)邦中的任意兩個(gè)節(jié)點(diǎn)A和B,不存在一個(gè)非聯(lián)邦中的節(jié)點(diǎn)C,使得C屬于A和B的準(zhǔn)同意集。

聯(lián)邦是FBA中達(dá)成共識(shí)所需要的最小條件,它保證了聯(lián)邦內(nèi)部的一致性和對(duì)外部的隔離性。聯(lián)邦中可能存在多個(gè)不相交或部分相交的子聯(lián)邦,每個(gè)子聯(lián)邦都可以獨(dú)立地達(dá)成共識(shí)。

FBA共識(shí)過程可以分為兩個(gè)階段:提名(nomination)和投票(balloting)。具體流程如下:

  • 提名階段:每個(gè)節(jié)點(diǎn)可以提出一個(gè)或多個(gè)候選值,并將其廣播給自己的準(zhǔn)同意集。每個(gè)收到候選值的節(jié)點(diǎn)都會(huì)將其轉(zhuǎn)發(fā)給自己的準(zhǔn)同意集,直到整個(gè)網(wǎng)絡(luò)都收到了所有候選值。每個(gè)節(jié)點(diǎn)會(huì)根據(jù)某種規(guī)則選擇一個(gè)候選值作為自己提名的值,并將其廣播給自己的準(zhǔn)同意集。如果一個(gè)節(jié)點(diǎn)收到了足夠多(至少f+1)相同提名值,并且該值也屬于自己提名過或收到過的候選值,則該值被認(rèn)為是可接受的值(accepted value),并進(jìn)入下一個(gè)階段。
  • 投票階段:每個(gè)節(jié)點(diǎn)會(huì)根據(jù)自己的可接受值,生成一個(gè)投票消息,并將其廣播給自己的準(zhǔn)同意集。每個(gè)收到投票消息的節(jié)點(diǎn)都會(huì)將其轉(zhuǎn)發(fā)給自己的準(zhǔn)同意集,直到整個(gè)網(wǎng)絡(luò)都收到了所有投票消息。每個(gè)節(jié)點(diǎn)會(huì)根據(jù)某種規(guī)則選擇一個(gè)投票值作為自己確認(rèn)的值,并將其廣播給自己的準(zhǔn)同意集。如果一個(gè)節(jié)點(diǎn)收到了足夠多(至少2f+1)相同確認(rèn)值,并且該值也屬于自己確認(rèn)過或收到過的投票值,則該值被認(rèn)為是批準(zhǔn)的值(confirmed value),并進(jìn)入下一個(gè)階段。
  • 最終階段:每個(gè)節(jié)點(diǎn)會(huì)根據(jù)自己的批準(zhǔn)值,生成一個(gè)最終消息,并將其廣播給自己的準(zhǔn)同意集。每個(gè)收到最終消息的節(jié)點(diǎn)都會(huì)將其轉(zhuǎn)發(fā)給自己的準(zhǔn)同意集,直到整個(gè)網(wǎng)絡(luò)都收到了所有最終消息。如果一個(gè)節(jié)點(diǎn)收到了足夠多(至少2f+1)相同最終值,并且該值也屬于自己最終過或收到過的批準(zhǔn)值,則該值被認(rèn)為是共識(shí)的值(consensus value),并結(jié)束共識(shí)過程。

通過這樣一個(gè)三階段過程,F(xiàn)BA可以保證只要有超過2/3的正常節(jié)點(diǎn)達(dá)成一致,就可以抵抗少于1/3的失效或惡意節(jié)點(diǎn)的影響。

FBA的一個(gè)典型應(yīng)用是Stellar,它是一個(gè)開源的分布式支付網(wǎng)絡(luò),支持多種貨幣和資產(chǎn)的轉(zhuǎn)賬和交換。Stellar在2015年改用了FBA作為其共識(shí)算法,稱為Stellar共識(shí)協(xié)議(SCP)。SCP允許每個(gè)節(jié)點(diǎn)自由選擇信任哪些節(jié)點(diǎn),并根據(jù)信任關(guān)系形成聯(lián)邦。SCP可以在網(wǎng)絡(luò)中快速達(dá)成共識(shí),同時(shí)保證安全性和去中心化性。

授權(quán)拜占庭容錯(cuò)算法(dBFT)

授權(quán)拜占庭容錯(cuò)算法(dBFT)是一種基于委托權(quán)益證明(DPoS)的拜占庭容錯(cuò)算法,它由Erik Zhang在2016年提出,是一種適用于公有鏈或混合鏈的共識(shí)算法。dBFT不需要所有節(jié)點(diǎn)都參與共識(shí),而是由網(wǎng)絡(luò)中持有代幣的用戶通過投票選出一定數(shù)量(通常為21個(gè))的代表節(jié)點(diǎn)(delegate),代表節(jié)點(diǎn)負(fù)責(zé)驗(yàn)證交易和生成區(qū)塊。dBFT可以在失效或惡意節(jié)點(diǎn)不超過總代表節(jié)點(diǎn)數(shù)1/3的情況下保證消息傳遞的正確可靠。dBFT的優(yōu)點(diǎn)是低延遲,高吞吐量,節(jié)能環(huán)保,但缺點(diǎn)是中心化程度較高,代表節(jié)點(diǎn)可能存在壟斷或勾結(jié)。

dBFT中每個(gè)代表節(jié)點(diǎn)都有一個(gè)唯一的標(biāo)識(shí)符和一個(gè)公鑰,用來驗(yàn)證消息的簽名。每個(gè)代表節(jié)點(diǎn)都有一個(gè)角色:主節(jié)點(diǎn)(speaker)或者委員會(huì)成員(committee member)。主節(jié)點(diǎn)負(fù)責(zé)提出新區(qū)塊,并向其他代表節(jié)點(diǎn)廣播區(qū)塊消息。委員會(huì)成員負(fù)責(zé)驗(yàn)證新區(qū)塊,并向其他代表節(jié)點(diǎn)廣播簽名消息。主節(jié)點(diǎn)和委員會(huì)成員在每個(gè)區(qū)塊周期中輪換。

dBFT共識(shí)過程可以分為兩個(gè)階段:預(yù)備(prepare)和提交(commit)。具體流程如下:

  • 預(yù)備階段:主節(jié)點(diǎn)從交易池中選擇一批交易,并打包成新區(qū)塊,并向其他代表節(jié)點(diǎn)廣播區(qū)塊消息。每個(gè)收到區(qū)塊消息的代表節(jié)點(diǎn)都會(huì)檢查區(qū)塊是否有效,并向其他代表節(jié)點(diǎn)廣播簽名消息。如果一個(gè)代表節(jié)點(diǎn)收到了超過2/3的有效的簽名消息,則進(jìn)入下一個(gè)階段。
  • 提交階段:主節(jié)點(diǎn)收集所有的簽名消息,并將其附加到新區(qū)塊上,并向其他代表節(jié)點(diǎn)廣播最終區(qū)塊消息。每個(gè)收到最終區(qū)塊消息的代表節(jié)點(diǎn)都會(huì)驗(yàn)證區(qū)塊和簽名是否有效,并將區(qū)塊添加到自己的區(qū)塊鏈上,并向網(wǎng)絡(luò)中的普通節(jié)點(diǎn)廣播區(qū)塊。普通節(jié)點(diǎn)收到區(qū)塊后,也會(huì)驗(yàn)證區(qū)塊和簽名是否有效,并將區(qū)塊添加到自己的區(qū)塊鏈上。

通過這樣一個(gè)兩階段過程,dBFT可以保證只要有超過2/3的正常代表節(jié)點(diǎn)達(dá)成一致,就可以抵抗少于1/3的失效或惡意代表節(jié)點(diǎn)的影響。

dBFT的一個(gè)典型應(yīng)用是NEO,它是一個(gè)開源的智能經(jīng)濟(jì)平臺(tái),支持智能合約和多種資產(chǎn)的發(fā)行和管理。NEO在2016年采用了dBFT作為其共識(shí)算法,稱為NEO共識(shí)協(xié)議(NCP)。NCP允許網(wǎng)絡(luò)中持有NEO代幣的用戶通過投票選出21個(gè)共識(shí)節(jié)點(diǎn),共識(shí)節(jié)點(diǎn)負(fù)責(zé)驗(yàn)證交易和生成區(qū)塊。NCP可以在網(wǎng)絡(luò)中快速達(dá)成共識(shí),同時(shí)保證安全性和效率。

總結(jié)

拜占庭容錯(cuò)算法是一種在分布式系統(tǒng)中實(shí)現(xiàn)故障恢復(fù)的算法,它可以在存在失效或惡意節(jié)點(diǎn)的情況下保證系統(tǒng)中的大多數(shù)節(jié)點(diǎn)能夠達(dá)成一個(gè)正確的共識(shí)。拜占庭容錯(cuò)算法有多種版本,每種版本都有各自的優(yōu)缺點(diǎn)和適用場景。本文介紹了三種比較常見和重要的拜占庭容錯(cuò)算法:實(shí)用拜占庭容錯(cuò)(PBFT),聯(lián)邦拜占庭協(xié)議(FBA)和授權(quán)拜占庭容錯(cuò)算法(dBFT)。這三種算法分別適用于私有鏈或許可鏈,開放式的分布式系統(tǒng)和公有鏈或混合鏈。它們都可以在失效或惡意節(jié)點(diǎn)不超過總節(jié)點(diǎn)數(shù)1/3的情況下保證消息傳遞的正確可靠,但也有不同的性能,擴(kuò)展性,去中心化程度等方面的差異。拜占庭容錯(cuò)算法是分布式系統(tǒng)和區(qū)塊鏈技術(shù)中的一個(gè)重要研究領(lǐng)域,未來還有很多值得探索和改進(jìn)的空間。

以上就是什么是拜占庭容錯(cuò)算法?PBFT、FBA和dBFT有什么區(qū)別?的詳細(xì)內(nèi)容,更多關(guān)于詳解拜占庭容錯(cuò)算法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

聲明:文章內(nèi)容不代表本站觀點(diǎn)及立場,不構(gòu)成本平臺(tái)任何投資建議。本文內(nèi)容僅供參考,風(fēng)險(xiǎn)自擔(dān)!
Tag:容錯(cuò)算法   PBFT   fba   dBFT  

你可能感興趣的文章

幣圈快訊

  • Glassnode:持有超1萬枚ETH的巨鯨加速增持

    2025-07-09 15:14
    金色財(cái)經(jīng)報(bào)道,據(jù)Glassnode數(shù)據(jù)顯示,持有至少1萬枚ETH的巨鯨正在加速增持,速度甚至超過了2022年中期ETH上漲95%之前的水平。截至本周一,這些巨鯨持有的ETH總量已從2024年10月的歷史低點(diǎn)3756萬枚回升至4106萬枚,增幅達(dá)9.31%。這一增速幾乎是2022年5月至9月期間的兩倍(當(dāng)時(shí)ETH價(jià)格從約1000美元漲至1950美元)。類似情況在2020年11月至2021年1月也曾出現(xiàn),當(dāng)時(shí)巨鯨持倉增加4%,ETH價(jià)格從460美元飆升至1220美元。歷史表明,巨鯨往往在市場全面啟動(dòng)前就開始積累。
  • Matrixport:以太坊2500美元仍應(yīng)被視為關(guān)鍵技術(shù)支撐位

    2025-07-09 15:14
    金色財(cái)經(jīng)報(bào)道,Matrixport發(fā)布今日?qǐng)D表稱,近期,以太坊價(jià)格展現(xiàn)出超出基本面預(yù)期的韌性。盡管以Gas費(fèi)用衡量的鏈上活躍度持續(xù)低迷,網(wǎng)絡(luò)整體熱度尚未明顯回升,但價(jià)格并未出現(xiàn)回調(diào),反而延續(xù)穩(wěn)健上行。我們認(rèn)為,這一走勢背后,主要由以下幾項(xiàng)結(jié)構(gòu)性因素所驅(qū)動(dòng):首先,部分機(jī)構(gòu)陸續(xù)將ETH納入金庫資產(chǎn),進(jìn)一步強(qiáng)化了其在資產(chǎn)配置體系中的“數(shù)字黃金”定位;其次,穩(wěn)定幣在以太坊網(wǎng)絡(luò)上的發(fā)行依舊活躍,持續(xù)為鏈上生態(tài)注入流動(dòng)性;與此同時(shí),美國《GENIUS法案》的推進(jìn),為以太坊在合規(guī)路徑和機(jī)構(gòu)參與方面帶來了中長期政策利好。疊加七月歷來的季節(jié)性強(qiáng)勢,以太坊當(dāng)前的價(jià)格結(jié)構(gòu)已不僅是市場慣性推動(dòng),更體現(xiàn)出基本面支撐與市場預(yù)期的共振。對(duì)于多頭持倉者而言,2,500美元仍應(yīng)被視為關(guān)鍵技術(shù)支撐位。
  • 數(shù)據(jù):持有超1萬枚以太坊的巨鯨加速增持

    2025-07-09 15:14
    ChainCatcher消息,據(jù)Glassnode數(shù)據(jù)顯示,持有至少1萬枚ETH的巨鯨正在加速增持,速度甚至超過了2022年中期ETH上漲95%之前的水平。截至本周一,這些巨鯨持有的ETH總量已從2024年10月的歷史低點(diǎn)3756萬枚回升至4106萬枚,增幅達(dá)9.31%。這一增速幾乎是2022年5月至9月期間的兩倍(當(dāng)時(shí)ETH價(jià)格從約1000美元漲至1950美元)。類似情況在2020年11月至2021年1月也曾出現(xiàn),當(dāng)時(shí)巨鯨持倉增加4%,ETH價(jià)格從460美元飆升至1220美元。歷史表明,巨鯨往往在市場全面啟動(dòng)前就開始積累。
  • Matrixport:以太坊逆勢走強(qiáng)站穩(wěn)2500美元,機(jī)構(gòu)配置與政策利好成關(guān)鍵支撐

    2025-07-09 15:10
    ChainCatcher消息,Matrixport分析師最新分析指出,以太坊近期展現(xiàn)出超預(yù)期的價(jià)格韌性。雖然鏈上活躍度持續(xù)低迷,Gas費(fèi)用未見明顯回升,但ETH價(jià)格仍保持穩(wěn)健上行態(tài)勢。 報(bào)告認(rèn)為,這一市場表現(xiàn)主要受三大因素推動(dòng):機(jī)構(gòu)投資者持續(xù)增持ETH,強(qiáng)化其作為"數(shù)字黃金"的資產(chǎn)屬性;以太坊網(wǎng)絡(luò)穩(wěn)定幣發(fā)行保持活躍,為生態(tài)提供充足流動(dòng)性;以及美國《GENIUS法案》的順利推進(jìn),為市場帶來中長期政策利好。此外,季節(jié)性行情因素與市場樂觀情緒的共振,進(jìn)一步鞏固了當(dāng)前的價(jià)格結(jié)構(gòu)。技術(shù)分析顯示,2500美元關(guān)口仍是多頭需要堅(jiān)守的關(guān)鍵支撐位。
  • 惠譽(yù):美國穩(wěn)定幣立法可能會(huì)解決一些關(guān)鍵信用風(fēng)險(xiǎn)并提高其使用率

    2025-07-09 14:58
    ChainCatcher消息,惠譽(yù):美國穩(wěn)定幣立法可能會(huì)解決一些關(guān)鍵信用風(fēng)險(xiǎn)并提高其使用率。(金十)
  • 查看更多