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