???? 拜占庭將軍問題應(yīng)該在剛學(xué)習(xí)區(qū)塊鏈知識的時(shí)候都碰到過,簡單來講就是,拜占庭帝國周圍的十個(gè)鄰邦國覬覦帝國龐大的財(cái)富,可是憑單獨(dú)的任何一個(gè)邦國都沒有辦法攻打下來,但是當(dāng)他們聯(lián)合起來攻打的時(shí)候就必定能勝利。可是在這個(gè)過程中存在著一個(gè)困擾:鄰邦的將軍不確定他們之中是否有叛徒?jīng)]叛徒可能擅自變更進(jìn)攻意向和時(shí)間,在這種情況下他們是否能夠找到一種分布式協(xié)議進(jìn)行遠(yuǎn)程協(xié)商來確保合作呢?
????? 常用解決拜占庭將軍問題的一般有兩種,口頭協(xié)議算法和書面協(xié)議算法。但這兩種思想都各有問題,口頭算法無法追根溯源,書面協(xié)議算法難成體系,效率低。所以,當(dāng)區(qū)塊鏈誕生之后,有人就提議用區(qū)塊鏈算法解決這個(gè)問題,也就是說,每個(gè)時(shí)間段,只有一位播報(bào)員能夠向各個(gè)城邦傳播攻打信息,避免了多人傳播導(dǎo)致混亂的可能。但是,我在閱讀的時(shí)候,卻覺得,區(qū)塊鏈算法來解決拜占庭問題并不是那么可靠。
????? 因?yàn)楹苊黠@,區(qū)塊鏈算法以及那兩個(gè)算法的解決方式明顯是建立在各個(gè)城邦都會遵從消息的指令的基礎(chǔ)之上的,也就是說消息信任問題。在這個(gè)過程中,當(dāng)叛徒超過三分之一,那么就無法攻打勝利。雖然區(qū)塊鏈保證了消息的確定性,但是它同樣無法追蹤消息來源,這不是重點(diǎn),主要是一個(gè)節(jié)點(diǎn)(電報(bào)員)傳播了一條全網(wǎng)信息的時(shí)候,各個(gè)城邦從什么地方才能表現(xiàn)出對信息的認(rèn)同,達(dá)成一致性。但是在真正的區(qū)塊鏈系統(tǒng)當(dāng)中,想要交易的雙方,是彼此有個(gè)確認(rèn)的形式的,也就是執(zhí)行力問題得到了保證,它會在用戶輸入一筆交易之后,自動按著編寫的流程走下去,直到完成交易。而顯然,人是無法像編程這樣,自覺遵行節(jié)點(diǎn)傳達(dá)的信息的。