拜占庭問題與比特幣

什麼是拜占庭將軍問題

拜占庭問題源於1982年提出的虛擬模型,用來解釋一致性問題。拜占庭作為東羅馬帝國的首都,地域遼闊,在首都周邊有眾多將軍負責城防,將軍之間通過信使來傳遞消息,達成某些一致的決定。但由於將軍中存在叛徒,叛徒會想盡一切辦法干擾一致性的達成,甚至是達成叛徒想要的共識從而實現攻擊。

其本質內容是在存在消息丟失的不可靠信道上,試圖通過消息傳遞的方式達到一致性是不可能的。

拜占庭容錯演算法

比特幣網路增加了信息發送的成本,並規定,在一段時間內,只有一個節點可以傳播信息。這個成本指的就是工作量證明——POW(Proof Of Work)機制,所謂的信息發送,也就是我們所說的挖出比特幣後在區塊上進行的廣播。在這個機制下,只有第一個完成證明(挖出比特幣)的節點才能廣播區塊。而這個方案的具體實施,就是根據的拜占庭容錯演算法。拜占庭容錯是區塊鏈技術中的一種共識演算法。

非對稱加密貨幣技術

比特幣網路可以將節點發送的信息進行加密,即使用非對稱加密貨幣技術保護節點發出的信息。這種技術有三個特點:

·消息傳送的私密性

·能夠確認身份

·簽名不可偽造、篡改

由於區塊鏈網路是去中心化的,信息在每個節點上是共享的,因此,降低了由於信息不透明導致的向不同節點傳遞不同信息的可能性。另外,非對稱加密貨幣演算法的加密貨幣和解密使用不同的兩個密鑰:”公開密鑰”(公鑰)和”私有密鑰”(私鑰),這解決了節點信息被篡改,泄露,偽造的問題。

比特幣與拜占庭

比特幣網路上擁有超過30,000個節點,攻擊這些節點進行作惡所需付出的算力和成本是非常高的。所以,即使系統中存在惡意的節點,但是只要大多數節點是好的,就完全有可能實現去中心化的共識(Consensus)。

這似乎也解釋了為什麼挖礦不是資源浪費——畢竟建立信任的成本不是0。

可以說,比特幣提供了一個拜占庭將軍問題解決方案,而這個方案,可以推廣到任何核心問題是分散式網路上缺乏信任的領域。

案例理解拜占庭問題

假設將軍總數3,叛徒將軍數1.

提案人不是叛徒,提案人發送一個提案,叛徒收到後,回復不同的命令,對於第三個將軍就收到兩個相反的消息,也無法判斷出誰是叛徒,系統無法達成一致。

提案人是叛徒,發送兩個相反的提案給另外兩個,另外兩個收到兩個相反的消息,無法判斷究竟誰是叛徒,系統無法達成一致。

你可能還喜歡