06.15 搞不懂區塊鏈?一個拜占庭將軍問題讓你輕鬆看懂區塊鏈技術原理

說到區塊鏈,可能很多人還會比較陌生,但提到比特幣,想必沒有人不知道,而區塊鏈就是比特幣的底層技術。

下面鏈知道就來為大家講解一下區塊鏈技術究竟是什麼原理?

區塊鏈技術(BT),又稱分佈式賬本技術,是由中本聰設計的一種互聯網數據庫技術。

其分佈式體現為:數據的分佈式存儲以及分佈式記錄。

其特點是:去中心化、去信任、公開透明、集體維護。

搞不懂區塊鏈?一個拜占庭將軍問題讓你輕鬆看懂區塊鏈技術原理

為了讓你們通俗點理解,在這裡結合著名的拜占庭將軍問題講解一區塊鏈技術的原理。

在拜占庭時代有一個非常富有強大的城邦,它的周圍被10個小城邦所包圍環繞,小城邦們覬覦大城邦的財富,所以意圖侵略它。但大城邦很強大,必須至少一半以上的小城邦聯合一起才能成功。

小城邦們聯合攻打大城邦的過程中會出現以下問題:

1、小城邦們之間是互相防範與對抗的;

2、萬一聯合軍隊中有一支或更多軍隊突然不幹了,那麼剩餘的軍隊就會導致攻打失敗,全軍覆沒,並被其他小城邦侵略;

3、小城邦們之間通訊的唯一途徑就是通過騎馬傳達信息,不可以聚眾開會。

一個小城邦通過信使在任意時間點騎馬到其他小城邦傳遞信息:我將在第四天早上6點進攻大城邦,你願意加入嗎?

如果收信人同意了,就會在信上蓋個章以示回應。然後將新合併了的信息傳遞給其他小城邦,最後的目標就是,在原始信息鏈上蓋上所有10個小城邦的圖章,在攻打時間上達成共識。

但在傳遞信息的時候有著嚴重的問題:10個城邦都要向除自己之外的其他9個城邦派出信使,那麼總共就有90次的信息傳輸,也就是每個城邦都會收到9個信息。但如果信裡都寫著不同的進攻時間,或者信使弄丟了信,或者有城邦同時答應了好幾個進攻時間,故意背叛發起人等等問題就會導致需要重新傳達信息。可見這個信息鏈傳輸系統非常矛盾。

搞不懂區塊鏈?一個拜占庭將軍問題讓你輕鬆看懂區塊鏈技術原理

區塊鏈技術的解決方案:

總結下來,拜占庭將軍問題的難點在於:在任意時間系統中可能會存在多個提案,這樣就很難在一個時刻對結果進行一致性確認。

而區塊鏈技術的pow共識算法解決了這個難題:

1、限制一段時間內提案的個數,只有擁有對應權限的節點才可以發起提案。

2、對應一次提案的結果不需要全部的節點馬上跟進,只需要在節點能搜尋到的全網絡中的所有鏈條中,選取最長的鏈條進行後續拓展就可以。這樣就能夠減少節點間垃圾消息和假消息的傳播。

同時,區塊鏈技術使用非對稱加密算法,對節點間的消息傳遞提供簽名技術支持,每個節點都有屬於自己的秘鑰(公鑰私鑰),唯一標識節點身份。使用非對稱加密算法傳遞消息,能夠保證消息傳遞的私密性,而且消息簽名不可抵賴,不可篡改。

由此,一個不可信的分佈式網絡變成了一個可信的網絡,所有的參與者可以在某件事在達成一致。

對於區塊鏈技術,我們驚歎於其創造的可能性,並將繼續創造無限可能性,正所謂:未來可期,未來以來。一起拭目以待吧!


分享到:


相關文章: