屢屢被提及拜占庭將軍問題,究竟和比特幣是什麼關係?
拜占庭將軍問題是區塊鏈領域的常見術語,也是密碼學的核心問題。
拜占庭將軍問題(Byzantine Generals Problem),是由萊斯利·蘭波特(?Leslie Lamport)在其論文《分散式系統一致性問題(Distributed Consensus)》中提出的分散式對等網路通信容錯問題。
在區塊鏈中文詞典中,對這一問題是這樣描述的:拜占庭將軍問題是指「在存在消息丟失的不可靠信道上,試圖通過消息傳遞的方式達到一致性是不可能的」。因此,在系統中存在除了消息延遲或不可送達的故障以外的錯誤,包括消息被篡改、節點不按照協議進行處理等問題,將會潛在地會對系統造成針對性的破壞。
這或許聽起來有些晦澀難懂,接下來,我們用喜羊羊和灰太狼的例子來講述一下什麼是「拜占庭將軍問題」。
拜占庭將軍問題
假設某一天,灰太狼抓走了慢羊羊村長,為了村長的安危,羊村中的5隻小羊需要進攻狼堡,營救村長。
在這裡我們假設這5隻小羊的作戰能力是均衡的,他們分別駐守在狼堡外的5個戰略地點,只能通過信使互相聯繫,而且只有他們其中的至少4隻一起行動,才有可能成功營救村長。
為了簡化問題,我們將小羊們的行動策略限定為進攻或撤離兩種。為了表示民主性,他們決定通過投票,根據多數性原則來達成一致策略,決定進攻還是撤離。
在投票過程中,每隻小羊都需要通過信使,將自己的投票信息傳遞給其他5隻小羊,這樣每隻小羊都可以根據收到的消息,結合自己的選擇,根據少數服從多數的原則,達成一致的共識,選擇進攻或者撤退。
但問題是,在他們的隊伍可能存在叛徒,有一隻小羊可能已經被灰太狼策反了。
假設被策反的小羊收到了兩票進攻,兩票撤退的消息,此時,他只要給投票進攻的兩隻小羊傳遞進攻的消息,給投票撤退的兩隻小羊傳遞撤退的消息,那麼就會出現兩隻小羊進攻,兩隻小羊撤退的情況,這就破壞了隊伍的協同性,營救行動就會失敗。
並且,由於小羊們的消息需要信使傳遞,因此,被策反的小羊極有可能偽造信件,假裝其他小羊的身份傳遞假的消息。
即使所有的小羊都是忠誠的,也依然存在著信使被灰太狼替換,甚至截殺(雖然動畫片里不會發生)的情況。
在以上這幾種種情況下,如果忠誠的小羊仍遵循了票數的大多數原則,營救村長的任務就會失敗。
所以,由於這些風險的存在,導致每隻小羊都會小心行事,不敢輕易相信其他小羊的消息,從而影響總體的行動。
這就是拜占庭將軍問題。
比特幣的出現
將這個故事映射到計算機系統,我們可以將小羊看作計算機的節點,將信使看作通信系統:拜占庭將軍問題的核心就是如何在可能存在不可靠節點和不可靠通信的情況下交換信息,達成共識。
而且根據科學家們對這個問題的研究,假如叛徒的數量大於等於1/3,那麼拜占庭將軍問題將不可解。
這個問題在1982年被提出,但直到2008年中本聰(Satoshi?Nakamoto)提出比特幣,才得到一定程度的解決。
我們可以看到,拜占庭將軍問題有本質性的問題有兩個:「一致性」和「正確性」問題。而它之所以難解,其中有兩個重要的原因:
1、 信息不加密,容易被破解,冒充和偽造;
2、節點惡意行為影響共識的成本很低;
那麼,比特幣的底層技術是如何解決拜占庭問題的呢?
非對稱加密技術
比特幣網路可以將節點發送的信息進行加密,即使用非對稱加密技術保護節點發出的信息。
這種技術有三個特點:
·消息傳送的私密性
·能夠確認身份
·簽名不可偽造、篡改
由於區塊鏈網路是去中心化的,信息在每個節點上是共享的,因此,降低了由於信息不透明導致的向不同節點傳遞不同信息的可能性。
另外,非對稱加密演算法的加密和解密使用不同的兩個密鑰:"公開密鑰"(公鑰)和"私有密鑰"(私鑰),這解決了節點信息被篡改,泄露,偽造的問題。
拜占庭容錯
比特幣網路增加了信息發送的成本,並規定,在一段時間內,只有一個節點可以傳播信息。
這個成本指的就是工作量證明——POW(Proof Of Work)機制,所謂的信息發送,也就是我們所說的挖出比特幣後在區塊上進行的廣播。 在這個機制下,只有第一個完成證明(挖出比特幣)的節點才能廣播區塊。
而這個方案的具體實施,就是根據的拜占庭容錯演算法。
拜占庭容錯是區塊鏈技術中的一種共識演算法。
拜占庭容錯演算法的基本想法可以用一句話來描述:系統中任何人都是不可靠的,當一個人收到其他人的消息後,不需要立即做出判斷,而是把自己收到的消息再傳遞給另外的人,這樣,消息在各個成員之間就是透明的(如A發給B進攻,B就將自己的想法連同A的想法一起發給C,C就可以看到A,B兩個人的信息)。因為系統中誠實的節點占多數,所以每個人根據總信息對比後進行判斷,最終出現差錯的可能性就會大大降低。
根據研究,如果系統中有 N個節點,那只有不誠實節點的數量F達到F=(N-1)/3時,才會影響系統的正常運行。
比特幣網路上擁有超過30,000個節點,攻擊這些節點進行作惡所需付出的算力和成本是非常高的。所以,即使系統中存在惡意的節點,但是只要大多數節點是好的,就完全有可能實現去中心化的共識(Consensus)。
這似乎也解釋了為什麼挖礦不是資源浪費——畢竟建立信任的成本不是0。
可以說,比特幣提供了一個拜占庭將軍問題解決方案,而這個方案,可以推廣到任何核心問題是分散式網路上缺乏信任的領域。
(作者:BABEL貝寶,內容來自鏈得得內容開放平台「得得號」;本文僅代表作者觀點,不代表鏈得得官方立場)
※加密資產自動交易機器人策略與獲利方式
※BitFlyer將下調最大槓桿交易倍率至4倍
TAG:鏈得得APP |