當前位置:首頁 » 區塊鏈知識 » 區塊鏈將軍打仗

區塊鏈將軍打仗

發布時間: 2025-03-16 10:38:30

『壹』 拜占庭將軍問題與區塊鏈

1982年,圖靈獎得主萊斯利·蘭伯特提出拜占庭將軍問題,探討了分布式系統中節點故障下的共識達成。這一難題隨著區塊鏈技術的發展,愈發引人關注。本文將通過通俗易懂的方式,解析這一問題背後的共識協議。

想像一下,兩位將軍需共同決定進攻時間,但通信途徑受阻。這個簡單的「兩個將軍問題」揭示了在分布式環境中,信息傳遞的不確定性可能導致共識無法達成。FLP定理指出,在非同步通信中,無法保證一致性。

然而,工程師們並未放棄,他們通過調整策略,如增加信使數量,確保至少一部分信息能傳遞,或多次嘗試直到聯系成功,從而在實際操作中找到解決方案。拜占庭將軍問題的復雜版本則涉及更多將軍和復雜策略,但關鍵是叛徒數量不能超過總人數的1/3,否則共識無法達成。

傳統的方法如口頭協定和書面協定都有局限性,口頭協定難以追蹤來源,書面協定依賴於中心化權威。區塊鏈技術的出現,通過非對稱加密和工作量證明(PoW)演算法,解決了這些問題,實現了去中心化的信任網路,確保了消息的不可篡改和來源的可追溯。

總的來說,區塊鏈技術巧妙地解決了拜占庭將軍問題,展示了在分布式系統中達成共識的強大能力,為未來的信任網路奠定了基礎。這個過程雖有挑戰,但通過技術創新,我們找到了一個接近完美的解決方案。

『貳』 五分鍾了解共識機制

五分鍾了解共識機制
什麼是共識機制?
「共識機制是區塊鏈的靈魂。」這是業內經常能聽到的一句話,共識機制在區塊鏈中的地位可想而知。那麼到底什麼是共識機制呢?我們不妨從拜占庭將軍問題說起。
拜占庭位於如今的土耳其的伊斯坦布爾,是東羅馬帝國的首都。由於當時拜占庭羅馬帝國國土遼闊,為了防禦目的,每個軍隊都分隔很遠,將軍與將軍之間只能靠信差傳消息。在戰爭的時候,拜占庭軍隊內所有將軍和副官必須達成一致的共識,決定是否有贏的機會才去攻打敵人的陣營。但是,在軍隊內有可能存有叛徒和敵軍的間諜,左右將軍們的決定又擾亂整體軍隊的秩序。在進行共識時,結果並不代表大多數人的意見。這時候,在已知有成員謀反的情況下,其餘忠誠的將軍在不受叛徒的影響下如何達成一致的協議,拜占庭問題就此形成。
拜占庭將軍問題是一個協議問題,拜占庭帝國軍隊的將軍們必須全體一致的決定是否攻擊某一支敵軍。問題是這些將軍在地理上是分隔開來的,並且將軍中存在叛徒。叛徒可以任意行動以達到以下目標:欺騙某些將軍採取進攻行動;促成一個不是所有將軍都同意的決定,如當將軍們不希望進攻時促成進攻行動;或者迷惑某些將軍,使他們無法做出決定。如果叛徒達到了這些目的之一,則任何攻擊行動的結果都是註定要失敗的,只有完全達成一致的努力才能獲得勝利。
而這個問題該如何解決?中本聰的理念給出了一個比較好的答案:不能讓所有人都有資格發信息,而是給發信息設置了一個條件:「工作量」,將軍們同時做一道計算題,誰先算完,誰才能獲得給其他小國發信息的資格。而其他小國在收到信息後,必須採用加密技術進行簽字蓋戳,以確認身份。然後再繼續做題,做對題的再繼續發消息……對這種先後順序達成共識的演算法,就是共識機制。
共識機制的作用
區塊鏈作為一種按時間順序存儲數據的數據結構,可支持不同的共識機制。在區塊鏈上,每個人都會有一份記錄鏈上所有交易的賬本,鏈上產生一筆新的交易時,每個人接收到這個信息的時間是不一樣的,有些想要干壞事的人就有可能在這時發布一些錯誤的信息,這時就需要一個人把所有人接收到的信息進行驗證,最後公布最正確的信息。
共識機制是區塊鏈技術的重要組件。它就像一本法典,維系著區塊鏈世界的正常運轉,使得區塊鏈技術自帶改善世界的光芒,也是讓區塊鏈得以被全世界逐步接受和認可的最大幕後功臣,它讓互聯網、陌生人之間,在沒有第三方作為信用背書的情況下發生的一切交易變成可能,它賦予了機械的代碼以人性和溫度。
共識機制的類別
目前的共識機制主要有POW、POS、DPOS、PBFT、dBFT、Pool驗證池。
POW,就是人們熟悉的比特幣挖礦,通過計算出一個滿足規則的隨機數,即獲得本次記賬權,發出本輪需要記錄的數據,全網其它節點驗證後一起存儲。可實現完全去中心化,節點自由進出。乾的越多,收的越多。
POS,權益證明,POW的一種升級共識機制,根據每個節點所佔代幣的比例和時間,以此等比例的挖礦難度,從而加快找隨機數的速度。持有越多,獲得越多
DPOS,股份授權證明機制,類似於董事會投票,持幣者投出一定數量的節點,代理他們進行驗證和記賬。
PBFT ,Practical Byzantine Fault Tolerance,實用拜占庭容錯演算法,是一種狀態機副本復制演算法,即服務作為狀態機進行建模,狀態機在分布式系統的不同節點進行副本復制,每個狀態機的副本都保存了服務的狀態,同時也實現了服務的操作。
dBFT,delegated BFT 授權拜占庭容錯演算法,由權益來選出記賬人,然後記賬人之間通過拜占庭容錯演算法來達成共識。
Pool驗證池,基於傳統的分布式一致性技術建立,並輔之以數據驗證機制,是目前區塊鏈中廣泛使用的一種共識機制。Pool驗證池不需要依賴代幣就可以工作,在成熟的分布式一致性演算法(Pasox、Raft)基礎之上,可以實現秒級共識驗證,更適合有多方參與的多中心商業模式。
現有共識機制存在問題
目前現有的共識機制都不算完美,在一些實際應用場景弊端很多。
A、計算能力浪費
在工作量證明機制POW中,猜數字最快的通常是電腦計算能力強的。超強的計算能級僅用來猜數字,實在是浪費。
B、權益向頂層集中
在權益證明機制POS中,token的余額越多的人獲得公示信息的概率越高,公示人會得到一定的token作為獎勵,如此持有token多的人會越來越多,少的人越來越少。
C、作惡成本低下
在靠算力與權益的的多少來獲得公示信息的權利的模式當中,當算力和權益向少數人集中之後,這些少數人如果想要做一些違反規則的事情是輕而易舉的;在PBFT中,由所有人投票,如果一個沒有任何token余額的人想要搗亂,那他幾乎是完全沒有利益損失。
D、對於真正的去中心化構成威脅
在工作量證明機制中,計算能力越強,獲得記錄權利的概率就越高。如果有人把很多人集中在一起來猜數字,把好多電腦的算力加在一起來用,那這些抱團的人就會更容易獲得公示信息的權利,發展到最後可能公示權就直接掌握在這些人手裡。
在權益證明機制POS中,權益越大的人獲得記錄權利的概率越高,而記錄的人就會有獎勵token ,這樣一來這些人就會越來越富有,貧富差距就會越來越大。持有token少的人幾乎都沒有話語權了。權利掌握在少數人手中,這有違區塊鏈去中心化理念。

『叄』 共識機制(一)拜占庭容錯系統

區塊鏈是一種分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。利用區塊鏈構造基於互聯網的去中心化賬本,首要問題是如何實現不同節點上的賬本數據的一致性和正確性,即如何達成共識。在20世紀80年代出現的分布式系統共識演算法,是區塊鏈共識演算法的基礎。

我們從基本的拜占庭容錯技術入手,逐步介紹適合於私有鏈/聯盟鏈和公有鏈的共識演算法。拜占庭將軍問題描述了一個假想的情境,10支軍隊圍攻一個敵國,需要在分散的包圍狀態下同時攻擊。由於叛徒的存在,這些將軍們需要找到一種分布式協議來建立戰斗計劃的共識。

問題實質是尋找一個方法,使得將軍們能夠在有叛徒的非信任環境中建立一致的戰斗計劃。條件定義是,一群將軍想要實現某一個目標(一致進攻或者一致撤退),但是單獨行動行不通,必須合作,達成共識;由於叛徒的存在,將軍們不知道應該如何達到一致。

只有「一致性」是不足以解決拜占庭將軍問題的,我們還需要提出一個「正確性」要求。正確性定義為每個忠誠的將軍都能夠讓別的將軍接收到自己的真實意圖,並最終一致行動。條件演進為一個發送命令的將軍要發送一個命令給其餘n-1個將軍,使得系統滿足一致性與正確性。

拜占庭容錯系統要解決分布式系統中存在惡意節點(即拜占庭節點)時,系統的一致性和正確性等問題。假設分布式系統擁有n台節點,並假設整個系統拜占庭節點不超過m台(n ≥ 3m + 1),拜占庭容錯系統需要滿足如下兩個條件。實用拜占庭容錯系統降低了拜占庭協議的運行復雜度,使拜占庭協議在分布式系統中應用成為可能。實用拜占庭容錯系統是一類「狀態機」拜占庭系統,要求系統所有節點共同維護一個狀態,所有節點採取的行動一致。

實用拜占庭容錯系統需要運行三類基本協議,主要關注支持系統日常運行的一致性協議。該協議要求來自客戶端的請求在每個服務節點上都按照一個確定的順序執行。一致性協議至少包含請求、序號分配、響應三個階段。假設故障節點個數為m個,而整個服務節點數為3m+1個。實用拜占庭容錯系統中服務節點分為兩類。協議的基本過程包括客戶端發送請求、主節點啟動三階段協議向各從節點廣播請求、客戶端等待響應,若有m+1個響應相同,則該響應即為運算的結果。

在 n ≥ 3m + 1 的情況下,一致性是可能解決的。實用拜占庭容錯系統能夠容納將近1/3的拜占庭節點。在區塊鏈應用中,實用拜占庭容錯系統適合於對強一致性有要求的私有鏈和聯盟鏈場景。在IBM主導的區塊鏈超級賬本項目中,實用拜占庭容錯系統是一個可選的共識協議。

參考資料:[1] 鄒均,張海寧,唐屹,李磊等. 區塊鏈技術指南[M].北京:機械工業出版社,2017

『肆』 拜占庭將軍很忙—《區塊鏈思維》第21塊

無論在鏈圈,還是在幣圈混,經常聽到一個名詞「拜占庭將軍問題」。

到底拜占庭是啥,拜占庭將軍怎麼啦,到處都被提及,這位將軍好忙啊!

先說拜占庭這個地方。很久很久以前的歐洲,建立在比中世紀還古老的時期,歷史上就是東羅馬帝國,跨越了千年的歷史期盼。

扯遠了,回到正題,什麼是拜占庭將軍問題。

拜占庭這個地方異常堅固,同時被十個獨立鄰邦環伺,分別有一位將軍,單獨攻城必敗,只有一半以上的將軍同時攻打才能破城。

十位將軍為了協調一致,在那個古老的時代,累死傳令兵,要麼飛鴿傳書(那時的歐洲比中國落後,好像沒有這個高速通信手段)。十位將軍相互通信一次就需要90次傳信,每位將軍都有各自的攻城計劃,要想達成統一就需要往復傳遞不知道多少次。

我們可以假設一個場景,一個桌子上坐著十位將軍,每個人各自說著自己的想法,同時聽其他九位的說法,但是信息的傳遞不是實時的,有快有慢,有早有晚。想明白了嗎?也就是說,這十位將軍如果想達成一致,理論上有可能,實際上他們的有生之年都實現不了,難怪拜占庭帝國經歷了千年也沒有被這十位將軍攻破。

中本聰這個神人,利用互聯網信息傳遞的及時性特點,引入時間戳可以明確知道「誰先說、誰後說」的特性,創造性地加入挖礦機制(就是用計算機算隨機數滿足一定難度才算成功)比拼各位將軍的智商來決定誰做本次進攻的統帥,使用非對稱加密保證信息傳輸的安全性等等手段融合到比特幣中,用實例說明自己破解了這個歷史難題「拜占庭將軍問題」。從而向世人證明解決60億人口的互信問題是有去中心化解決方案地。

幣圈和鏈圈的朋友很焦慮的另一個關鍵問題就是:這個圈子概念太TM多。除了這個「拜占庭將軍問題」,還有一個「拜占庭容錯」,這是什麼鬼?這兩個是一樣的嗎?這兩個是故意有一個被寫錯了嗎?還是說我的智商稅沒交夠?其實,你都說對了。

「拜占庭將軍問題」假設所有十個將軍都是好的,都想攻破拜占庭,只是達成共識很難,比特幣提供了好人達成共識的方案。

「拜占庭容錯」是說十個將軍可以很好地達成共識。但是,如果其中出了壞人,怎麼解決?

如果十個將軍中出現了壞人(叫叛徒也行),進攻計劃是否會永遠無法達成共識呢?

「拜占庭容錯」告訴大家,是可以達成地,並且,還能找出這些「叛徒」是誰。只是,10個將軍中叛徒的數量不能超過3個,超出了就無法「容錯」,也找不出這些叛徒是誰。對應的公式就是:3n+1。其中3n+1是將軍總數(區塊鏈的賬本/礦機總數),n是能夠「容錯」的「叛徒」(惡意記錯賬)總數。

對於十個將軍來說,最多容忍三個叛徒,多了就徹底沒戲啦。為了比特幣的容錯能力越來越強,就需要更多的節點,這樣才能容忍並找出更多的叛徒。懂了吧。

小結一下:拜占庭將軍問題是假設都是好人前提下如何達成共識,拜占庭容錯就是全網最多能夠容忍多少叛徒並且能找出他們。

請交智商稅到如下地址:

國稅BTC到Kcash:

地稅ETH及各種原生Token到 Imtoken:

不交稅的,祝你做「韭菜」一切順利 :D

熱點內容
狗狗幣btc38 發布:2025-03-16 15:09:04 瀏覽:869
幣圈519真相 發布:2025-03-16 15:07:23 瀏覽:919
幣圈現在什麼比較火 發布:2025-03-16 15:07:20 瀏覽:32
鑽石交易是數字貨幣嗎 發布:2025-03-16 14:57:52 瀏覽:460
幣圈中的交易量中M代表什麼 發布:2025-03-16 14:39:25 瀏覽:733
怎麼從TRX鏈上發行代幣 發布:2025-03-16 14:38:35 瀏覽:692
區塊鏈系統知識 發布:2025-03-16 14:21:20 瀏覽:179
幣圈一手資源 發布:2025-03-16 14:20:30 瀏覽:38
血污夜之儀式16比特幣怎麼用 發布:2025-03-16 14:20:26 瀏覽:534
顯卡挖礦都拒絕了 發布:2025-03-16 13:35:12 瀏覽:155