前言:拜占庭容錯是區(qū)塊鏈領(lǐng)域的常見術(shù)語,它也是密碼學(xué)的核心問題。本文適合初學(xué)者閱讀。本文作者Demiro Massessi,是由“藍狐筆記”社群Dyna翻譯。
譯者注:本文簡化了“拜占庭將軍問題”中可能出現(xiàn)的多種數(shù)學(xué)模型,簡要指出拜占庭問題解決的核心是“盡管有破壞者存在,擁有最多算力的鏈即可認定為主鏈,因為做叛徒(發(fā)布虛假區(qū)塊)的成本和競爭難度非常大,以至于幾乎不可能?!庇捎趨^(qū)塊鏈的去中心化和自治屬性,如何在容許一定差錯的情況下讓眾多參與的節(jié)點達成共識并傳遞信息,這是一個核心問題,中本聰?shù)谝粋€做到了。
當(dāng)你開始深入了解區(qū)塊鏈時,會經(jīng)常聽到一個術(shù)語:拜占庭容錯(BFT)。如果你想弄清楚它,一個聽起來非常奇怪和神秘的術(shù)語,我們可以用一個故事來解釋。
1982年,一個叫做拜占庭將軍問題的數(shù)學(xué)問題被提出來。這里不詳細描述它背后的數(shù)學(xué)原理,本質(zhì)上,拜占庭將軍問題是一個關(guān)于兩個帝國之間一場戰(zhàn)爭的故事。
一個帝國置身于堅實的城墻里,另一個帝國的數(shù)位將軍包圍了這座城市,每個將軍都帶領(lǐng)著軍隊等候進攻。兩個帝國勢均力敵。
如果所有的將軍達成一致同時進攻,他們就有足夠的力量戰(zhàn)勝城墻里的帝國,從而贏得戰(zhàn)爭。
但是,不管出于什么原因,如果他們不能協(xié)調(diào)好同時發(fā)動進攻,哪怕只有一個將軍錯過了信息,他們的圍攻計劃將會失敗并輸?shù)暨@場戰(zhàn)爭。
拜占庭將軍問題探討了密碼學(xué)的一個關(guān)鍵領(lǐng)域,事實上,這是密碼學(xué)的核心,本質(zhì)是如何在一個某些人可能會“叛變”的環(huán)境中交換信息。
現(xiàn)在, 這些將軍們唯一的溝通方式就是派一個偽裝的信使,穿過城市給其他將軍傳遞信息。這里將會一直存在一個風(fēng)險。如果你是其中一個將軍, 你將從其中的一位信使那里得到一個消息,那么你怎么知道, 或者你怎么能夠比隨機決定有更大把握相信你得到的信息是可靠且沒有被篡改過的?
這也是1982年提出的一個假設(shè),直到2008年才得以解決。那一年匿名的中本聰(Satoshi Nakamoto)提出了一個解決辦法,這使得比特幣成為可能。
本質(zhì)上,解決方案是讓所有的將軍都盡可能擁有更多的數(shù)學(xué)家。
“當(dāng)我們談?wù)摪菡纪ト蒎e時,我們談?wù)摰氖菍④妭儽瘸菈?nèi)的帝國擁有更多的權(quán)限,更多的數(shù)學(xué)家,或更多的算力?!?/p>
所以, 如果我能雇更多的數(shù)學(xué)家, 那就意味著我可以越來越復(fù)雜地加密我通過城里傳遞的信息;但如果城外將軍們的權(quán)力平衡局面變得非常有利, 且他們可以使用的加密方法是如此復(fù)雜, 以至于城里的任何一位數(shù)學(xué)家真的沒有機會或非常小的機會,能夠在將軍們幾乎注意不到的足夠快的時間里,攔截消息,然后解密、改變內(nèi)容并重新加密。
這就是拜占庭容錯。
這也是現(xiàn)在我們看到的,大多數(shù)公共區(qū)塊鏈解決方案中使用的容錯機制,包括我之前提到的比特幣和以太坊,盡管以太坊正在過渡到權(quán)益證明系統(tǒng)(Proof of Stake)。
因此,說到區(qū)塊鏈,當(dāng)你聽到拜占庭容錯時,它表示的含義就是如果區(qū)塊鏈上的算力和哈希能力比鏈外的更強大,它就會變得安全。
比特幣是目前最大的區(qū)塊鏈網(wǎng)絡(luò), 擁有超過30,000個節(jié)點, Ethereum有超過16,000個節(jié)點, 它為我們提供了高度的安全性和不可變性。這些網(wǎng)絡(luò)上的算力非常強大, 以至于真的沒有多少機會,讓一個對手可以控制盡可能多的算力來攻擊該區(qū)塊鏈上的數(shù)據(jù)。
如果有人要這樣做,其背后的經(jīng)濟機會很可能是,他們將花費更多的錢來同時利用所有的算力,這可能是他們無法承受的。
關(guān)于這個問題,你會聽到很多關(guān)于51%攻擊的問題。最后, 我們可以說, 拜占庭容錯是密碼學(xué)的根源, 它只是單純研究我們?nèi)绾卧谟小皵硨Ψ胶蛺阂庑袨檎摺钡臅r候能夠安全地來回傳遞信息, 它是存在于區(qū)塊鏈中所有安全性和不可變性的基礎(chǔ)。