區(qū)塊鏈技術(shù)科普:什么是拜占庭將軍問題?
拜占庭是古代東羅馬帝國(guó)的首都,它曾經(jīng)是世界上最強(qiáng)大、最富有的城市之一。但是,由于地域廣闊,拜占庭經(jīng)常遭受外敵侵略和內(nèi)部叛亂。為了保衛(wèi)邊境,拜占庭派出了多支軍隊(duì),由不同的將軍指揮。將軍之間如何達(dá)成信息一致性成了最大問題。
而區(qū)塊鏈與拜占庭將軍問題有著密切的聯(lián)系。區(qū)塊鏈網(wǎng)絡(luò)是一種分布式網(wǎng)絡(luò),其節(jié)點(diǎn)就像拜占庭將軍一樣,需要在不可靠的網(wǎng)絡(luò)環(huán)境中達(dá)成交易和數(shù)據(jù)的共識(shí)。
兩軍問題
兩軍問題是拜占庭問題的一個(gè)特例。
兩軍問題及其無解性證明最早是由E.A. Akkoyunlu、K.Ekanadham和R.V.Huber于1975年在聯(lián)合發(fā)表的論文《網(wǎng)絡(luò)通信設(shè)計(jì)的約束與權(quán)衡》(Some Constraints and Trade-offs In The Design of Network Communications)中首次提出。
1978年,JimGray在《數(shù)據(jù)庫(kù)操作系統(tǒng)筆記》書中將這個(gè)問題正式命名為“兩軍問題” (Two General’s Problem)。原本是用來分析在一個(gè)不可靠的通信鏈路上試圖通過通信以達(dá)成一致是存在問題的,后來常被用于闡述分布式系統(tǒng)的一致性和共識(shí)問題。
問題定義
A國(guó)的兩支軍隊(duì),分別由兩個(gè)將軍領(lǐng)導(dǎo),正在準(zhǔn)備攻擊B國(guó)的一支軍隊(duì)。B國(guó)的這支軍隊(duì)被包圍在一個(gè)山谷里,A國(guó)的兩只軍隊(duì)A1和A2分別駐扎在山谷兩邊的山頭上,但從A1駐扎地到A2駐扎地,只有唯一的一條山道,且必須經(jīng)過山谷。同時(shí),B軍的數(shù)量和作戰(zhàn)能力比A1軍和A2軍的任意一支都要強(qiáng)(A軍知道,B軍不知道),A國(guó)的任意一支軍隊(duì)單獨(dú)去進(jìn)攻B軍,都會(huì)被B軍擊敗,從而讓B軍逃掉,但只要A1軍與A2軍聯(lián)合攻擊,就可以戰(zhàn)勝B軍。
問題:是否可以想出一種能讓A國(guó)的兩支軍隊(duì)的將軍達(dá)成同時(shí)攻擊約定的算法,該算法可包含發(fā)送和接收處理消息?
說答案:經(jīng)典的兩軍問題是無解的,不存在一個(gè)能確保A國(guó)·軍隊(duì)成功協(xié)商一致攻擊B國(guó)的協(xié)議。但在一定的容忍條件下,可以通過一種相對(duì)可靠的方式解決大多數(shù)問題,例如TCP協(xié)議中建立連接的“三次握手”機(jī)制。
拜占庭將軍問題
拜占庭將軍問題是由2013年度圖靈獎(jiǎng)得主萊斯利·蘭波特(Leslie Lamport)在1982年發(fā)表的論文《拜占庭將軍問題》(The Byzantine Generals Problem)中首次提出。拜占庭將軍問題描述了如何在存在惡意行為(如消息被篡改)的情況下實(shí)現(xiàn)分布式系統(tǒng)的一致性。
拜占庭帝國(guó)的幾支軍隊(duì)將敵城包圍,每支軍隊(duì)都由一名將軍指揮。拜占庭的軍隊(duì)之間只能通過通信兵相互傳達(dá)消息。在觀察敵情之后后,根據(jù)敵城的軍事力量,拜占庭將軍們都得出相同的結(jié)論,只有超過半數(shù)的拜占庭軍隊(duì)共同發(fā)起進(jìn)攻,才能攻破城池,取得勝利。
因此,所有的拜占庭軍隊(duì)必須制定一個(gè)聯(lián)合行動(dòng)計(jì)劃,要么共同進(jìn)攻,要么共同撤退。
但是,情報(bào)部門已經(jīng)知道這些拜占庭軍隊(duì)的將軍中存在叛徒,將試圖破壞忠誠(chéng)的將軍們達(dá)成一致的聯(lián)合行動(dòng)計(jì)劃。同時(shí),雖然拜占庭軍隊(duì)的通信兵一定能不被敵方截獲且確保送達(dá)消息,但是通信兵中也可能存在叛徒,可能在傳信過程中篡改或偽造消息,也可能丟失消息。
問題求解
如果將拜占庭問題中的攻城軍隊(duì)的將軍數(shù)量對(duì)應(yīng)為分布式系統(tǒng)的節(jié)點(diǎn)數(shù)量,可以將符合拜占庭問題條件的分布式系統(tǒng)稱為”拜占庭系統(tǒng)”,
在拜占庭系統(tǒng)中任意兩個(gè)節(jié)點(diǎn)之間的通信是保證可達(dá)的,可以得出以下結(jié)論:
對(duì)于一個(gè)拜占庭系統(tǒng),如果系統(tǒng)總節(jié)點(diǎn)數(shù)為Z,表示叛變將軍的不可靠節(jié)點(diǎn)數(shù)為X,只有當(dāng)Z≥3X+1時(shí),可由基于拜占庭客容錯(cuò)(BFT)類算法的協(xié)議保證系統(tǒng)的一致性。
在實(shí)際的系統(tǒng)中,一般把由于系統(tǒng)故障導(dǎo)致節(jié)點(diǎn)不響應(yīng)的情兄歸類為“非拜占庭錯(cuò)誤(Crash Fault)”,把節(jié)點(diǎn)偽造或篡改信息進(jìn)行惡意響應(yīng)的情況歸類為“拜占庭錯(cuò)誤(Byzantine Fault)”。
共識(shí)算法分類
區(qū)塊鏈系統(tǒng)是一種分布式系統(tǒng),特別是像比特幣、以太坊等公有鏈系統(tǒng),由大量高度分散且彼此不信任的網(wǎng)絡(luò)節(jié)點(diǎn)構(gòu)成,區(qū)塊鏈共識(shí)機(jī)制就是以共識(shí)算法為核心,確保區(qū)塊鏈系統(tǒng)就某個(gè)事物始終能達(dá)成數(shù)據(jù)一致且不產(chǎn)生分叉。
目前,根據(jù)共識(shí)算法容錯(cuò)類型的不同,可以將共識(shí)算法分為非拜占庭容錯(cuò)類(CFT,Crash Fault Tolerance)算法和拜占庭容錯(cuò)類(BFT,ByzantineFault Tolerance)算法。
非拜占庭容錯(cuò)類共識(shí)算法
對(duì)于分布式系統(tǒng),非拜占庭容錯(cuò)類共識(shí)算法能在節(jié)點(diǎn)發(fā)生系統(tǒng)故障或非計(jì)劃停機(jī)等非拜占庭錯(cuò)誤時(shí),確保整個(gè)分布式系統(tǒng)的可靠性;但是,當(dāng)系統(tǒng)中存在惡意節(jié)點(diǎn)偽造或篡改數(shù)據(jù)等行為時(shí),非拜占庭容錯(cuò)算法無法保證系統(tǒng)的可靠性。
因此,非拜占庭容錯(cuò)類共識(shí)算法主要用于實(shí)現(xiàn)封閉的、系統(tǒng)節(jié)點(diǎn)都受控的企業(yè)吸分布式系統(tǒng),如某企業(yè)構(gòu)建的內(nèi)部分布式應(yīng)用集群系統(tǒng)或分布式存儲(chǔ)系統(tǒng)。非拜占庭容錯(cuò)類共識(shí)算法中最有代表性的包括PaxoS算法與Raft算法。
拜占庭容錯(cuò)類共識(shí)算法
拜占庭容錯(cuò)類共識(shí)算法能允許分布式系統(tǒng)節(jié)點(diǎn)發(fā)生任何類型的錯(cuò)誤但錯(cuò)誤節(jié)點(diǎn)數(shù)量不超過一定比例時(shí),確保整個(gè)分布式系統(tǒng)的可靠性。簡(jiǎn)單的說,只要分布式系統(tǒng)的故障 (由于非拜占庭錯(cuò)誤或拜占庭錯(cuò)誤導(dǎo)致)節(jié)點(diǎn)數(shù)與系統(tǒng)總節(jié)點(diǎn)數(shù)相比,小于一定比例,拜占庭容錯(cuò)類共識(shí)算法就能保證分布式系統(tǒng)的可靠性。
由于像比特幣、以太坊等區(qū)塊鏈系統(tǒng)中,存在大量彼此不信任的網(wǎng)絡(luò)節(jié)點(diǎn),不排除有惡意節(jié)點(diǎn)企圖偽造或篡改系統(tǒng)數(shù)據(jù),因此,拜占庭容錯(cuò)類共識(shí)算法是區(qū)塊鏈共識(shí)機(jī)制主要采用的共識(shí)算法。拜占庭容錯(cuò)類共識(shí)算法中最有代表性的包括PBFT實(shí)用拜占庭容錯(cuò)算法、PoW工作量證明算法、PoS權(quán)益證明算法等。
以上就是區(qū)塊鏈技術(shù)科普:什么是拜占庭將軍問題?的詳細(xì)內(nèi)容,更多關(guān)于拜占庭將軍問題的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
你可能感興趣的文章
-
以太坊還能漲嗎?從技術(shù)和基本面幫你看懂真相
上一周以太坊實(shí)現(xiàn)26.4%的周漲幅, 一舉突破2800的壓力位, 沖刺至4000大關(guān)腳下,以太坊還能漲嗎?下文將從以太坊的基本面以及技術(shù)面價(jià)格走勢(shì)來分析過去一周以及今年以來的以太…
2025-07-28 -
區(qū)塊鏈究竟是什么?原理、應(yīng)用、投資風(fēng)險(xiǎn)以及未來趨勢(shì)解析
區(qū)塊鏈究竟是什么?區(qū)塊鏈簡(jiǎn)單說,就是一種建立在線上的去中心化的數(shù)位帳本技術(shù),能確保交易數(shù)據(jù)安全透明,且不可篡改,這種技術(shù)不僅應(yīng)用于比特幣,還被廣泛應(yīng)用于供應(yīng)鏈管…
2025-07-28 -
加密貨幣中鏈上與鏈下交易主要區(qū)別是什么?
加密領(lǐng)域的鏈上交易是指直接在區(qū)塊鏈上執(zhí)行的轉(zhuǎn)賬,鏈下交易最初繞過區(qū)塊鏈驗(yàn)證,最終確認(rèn)后再記錄在鏈上,從而提高速度并降低成本,鏈下流程的用戶允許受信任的第三方處理交…
2025-07-28 -
ChatGPT怎么用?ChatGPT AI 在加密交易中的5 個(gè)實(shí)際應(yīng)用案例
加密貨幣交易面臨獨(dú)特的挑戰(zhàn):海量的數(shù)據(jù)流、迅速的市場(chǎng)變動(dòng)和情緒決策陷阱,雖然技術(shù)分析和基本面研究依然至關(guān)重要,但現(xiàn)在許多交易者已經(jīng)開始利用像ChatGPT 這樣的AI 工具…
2025-07-28 -
什么是Linea?如何運(yùn)作?ConsenSys 推出的以太坊Layer-2 網(wǎng)絡(luò)?
什么是Linea?如何運(yùn)作?作為第二大公有區(qū)塊鏈,以太坊's 網(wǎng)絡(luò)仍然面臨著高昂的Gas 費(fèi)用、慢速交易速度和有限的吞吐量,尤其是在需求高峰時(shí),進(jìn)入Linea,一個(gè)由以太坊Layer-…
2025-07-28 -
什么是云算力?如何運(yùn)作?挖礦加密貨幣的簡(jiǎn)單指南
在不斷發(fā)展的加密貨幣世界中,挖礦長(zhǎng)期以來被視為推動(dòng)區(qū)塊鏈網(wǎng)絡(luò)的最基本過程之一,然而,隨著挖礦變得越來越具競(jìng)爭(zhēng)性和資源密集型,許多人開始轉(zhuǎn)向一種更為便捷的替代方案…
2025-07-28 -
TRON是什么?最快、最便宜的USDT網(wǎng)絡(luò)的構(gòu)建介紹
2025年7月,波場(chǎng)TRON掀起波瀾,其原生代幣TRX一度超越卡爾達(dá)諾的ADA,成為市值第九大的加密貨幣,這一里程碑不僅體現(xiàn)在波場(chǎng)TRON市值飆升至298億美元,還體現(xiàn)在該公司在納斯…
2025-07-28 -
什么是去中心化應(yīng)用 (dApp)?dApp的優(yōu)勢(shì)、缺點(diǎn)、用途是什么介紹
去中心化應(yīng)用程序dApps是在點(diǎn)對(duì)點(diǎn)P2P或區(qū)塊鏈網(wǎng)絡(luò)上運(yùn)行的軟件,而不是在單個(gè)服務(wù)器或集中式計(jì)算機(jī)上運(yùn)行,在區(qū)塊鏈技術(shù)和智能合約的支持下,dApp提供了增強(qiáng)的安全性、透明…
2025-07-28 -
Monad是什么?Monad主網(wǎng)發(fā)布日期和空投是什么時(shí)候?
Monad是一個(gè)高性能 Layer1區(qū)塊鏈,旨在徹底革新以太坊兼容性,Monad的主網(wǎng)發(fā)布日期為2025年9月30日,代幣指標(biāo)如下:MON的總發(fā)行量和最大發(fā)行量均為1000億,盡管 Monad Labs尚…
2025-07-27 -
正向合約和反向合約是什么??jī)烧哂惺裁磪^(qū)別?各有什么優(yōu)勢(shì)?
在永續(xù)合約市場(chǎng)中,合約一般分為正向合約和反向合約,正向合約在加密市場(chǎng)中也稱為USDT本位合約、穩(wěn)定幣合約,它以USDT為定價(jià)單位,而反向合約也稱為幣本位合約,反向合約則是…
2025-07-26