拜占庭問(wèn)題

故事梗概

拜占庭帝國(guó)即中世紀(jì)的土耳其剖踊,擁有巨大的財(cái)富庶弃,周圍10個(gè)鄰邦垂誕已久,但拜占庭高墻聳立蜜宪,固若金湯虫埂,沒(méi)有一個(gè)單獨(dú)的鄰邦能夠成功入侵。任何單個(gè)鄰邦入侵的都會(huì)失敗圃验,同時(shí)也有可能自身被其他9個(gè)鄰邦入侵掉伏。拜占庭帝國(guó)防御能力如此之強(qiáng),至少要有十個(gè)鄰邦中的一半以上同時(shí)進(jìn)攻澳窑,才有可能攻破斧散。

然而,如果其中的一個(gè)或者幾個(gè)鄰邦本身答應(yīng)好一起進(jìn)攻摊聋,但實(shí)際過(guò)程出現(xiàn)背叛鸡捐,那么入侵者可能都會(huì)被殲滅。

于是每一方都小心行事麻裁,不敢輕易相信鄰國(guó)箍镜。這就是拜占庭將軍問(wèn)題。

故事解剖

在拜占庭問(wèn)題中煎源,最重要的point就是:所有將軍如何達(dá)成一致攻打拜占庭的共識(shí)色迂,這當(dāng)中,可能出現(xiàn)的情況舉例如下:

  • 存在叛徒手销,欺騙其他將軍自己將采取行動(dòng)
  • 叛徒可能迷惑其他將軍歇僧,使他們接受的消息不一致(傳遞消息的過(guò)程)

用一個(gè)模型解釋一下:

假設(shè)只有3個(gè)人,A锋拖、B诈悍、C祸轮,三人中如果其中一個(gè)是叛徒。當(dāng)A發(fā)出進(jìn)攻命令時(shí)侥钳,B如果是叛徒适袜,他可能告訴C,他收到的是“撤退”的命令慕趴。這時(shí)C收到一個(gè)“進(jìn)攻”痪蝇,一個(gè)“撤退“,于是C被信息迷惑冕房,而無(wú)所適從躏啰。

如果A是叛徒。他告訴B“進(jìn)攻”耙册,告訴C“撤退”给僵。當(dāng)C告訴B,他收到“撤退”命令時(shí)详拙,B由于收到了司令“進(jìn)攻”的命令帝际,而無(wú)法與C保持一致。

正由于上述原因饶辙,在只有三個(gè)角色的系統(tǒng)中蹲诀,只要有一個(gè)是叛徒,即叛徒數(shù)等于1/3弃揽,拜占庭問(wèn)題便不可解脯爪。

可以看得出,只要叛徒的數(shù)量大于或等于1/3矿微,拜占庭問(wèn)題不可解

再度解剖拜占庭問(wèn)題

從技術(shù)上理解痕慢,拜占庭將軍問(wèn)題是分布式系統(tǒng)容錯(cuò)性問(wèn)題。加密貨幣建立在P2P網(wǎng)絡(luò)之上涌矢,是典型的分布式系統(tǒng)掖举,類比一下,將軍就是P2P網(wǎng)絡(luò)中的節(jié)點(diǎn)娜庇,信使就是節(jié)點(diǎn)之間的通信塔次,進(jìn)攻還是撤退的決定就是需要達(dá)成的共識(shí)如果某臺(tái)獨(dú)立的節(jié)點(diǎn)計(jì)算機(jī)拓機(jī)名秀、掉線或攻擊網(wǎng)絡(luò)搞破壞励负,整個(gè)系統(tǒng)就要停止運(yùn)行,那這樣的系統(tǒng)將非常脆弱泰偿,所以容許部分節(jié)點(diǎn)出錯(cuò)或搞破壞而不影響整個(gè)系統(tǒng)運(yùn)行是必要的這就需要算法理論上的支撐蜈垮,保證分布式系統(tǒng)在一定量的錯(cuò)誤節(jié)點(diǎn)存在的情況下耗跛,仍然保持一致性和可用性裕照。

而且,拜占庭將軍與兩軍問(wèn)題不同调塌,前者假定信差沒(méi)有問(wèn)題晋南,只是將軍出現(xiàn)了叛變等問(wèn)題;后者研究信差的通信問(wèn)題羔砾。

科學(xué)家們的解決方法

  • 口頭信息(未了)

    即將軍們派人用口信傳遞信息负间,其實(shí)際含義是指:

    • 每個(gè)被發(fā)送的消息均可被正確投遞
    • 消息接受者知道消息是誰(shuí)發(fā)的
    • 不發(fā)消息可被檢測(cè)

    大白話就是,一個(gè)節(jié)點(diǎn)1發(fā)布消息姜凄,節(jié)點(diǎn)2-10都可以收到消息政溃,其他節(jié)點(diǎn)類似,一輪下來(lái)态秧,每個(gè)節(jié)點(diǎn)手上都會(huì)有10個(gè)信息(進(jìn)攻或者撤退)董虱,這時(shí)候只要叛徒數(shù)目小于一半,那么

  • 書(shū)面協(xié)議

    10個(gè)國(guó)家申鱼,每個(gè)國(guó)家都可以派人向各個(gè)國(guó)家派信愤诱,比如一起約定“某天早上六點(diǎn),大家一起進(jìn)攻拜占庭捐友,同意就簽個(gè)字”淫半。收到信的國(guó)家如果同意的話,就可以在原信上簽名蓋章匣砖。

    相比口頭協(xié)議科吭,實(shí)際說(shuō)的是在這個(gè)多人的將軍模型中加了了個(gè)隱含條件:

    • 將軍們能夠使用簽名技術(shù),簽名不可偽造脆粥,一旦篡改即可發(fā)現(xiàn)砌溺。
    • 同時(shí)任何人都可以驗(yàn)證簽名的可靠性。

    書(shū)面協(xié)議相比口頭協(xié)議变隔,所有的消息都是有記錄的规伐,解決了追根溯源的問(wèn)題。

    但是匣缘,簽名消息記錄的保存難以擺脫中心化的機(jī)構(gòu)猖闪。另外,倘若每個(gè)國(guó)家都各自向其他9個(gè)國(guó)家派出信使肌厨,在這個(gè)網(wǎng)絡(luò)即需要90次的傳輸才能完成一輪信息交流培慌,但是每個(gè)國(guó)家可能回饋不同的進(jìn)攻時(shí)間,在這種異步通信的條件下柑爸,要能協(xié)商一致是個(gè)大問(wèn)題吵护。

區(qū)塊鏈技術(shù)

終極解決方案到了——

如果10個(gè)將軍中的幾個(gè)同時(shí)發(fā)起消息,勢(shì)必會(huì)造成系統(tǒng)的混亂,造成各說(shuō)各的攻擊時(shí)間方案,行動(dòng)難以一致

誰(shuí)都可以發(fā)起進(jìn)攻的信息饼煞,但由誰(shuí)來(lái)發(fā)出呢?中本聰巧妙地在個(gè)系統(tǒng)加入了發(fā)送信息的成本雄坪,即:

  1. 一段時(shí)間內(nèi)只有一個(gè)節(jié)點(diǎn)可以傳播信息

它加入的成本就是”工作量“——節(jié)點(diǎn)必須完成一個(gè)計(jì)算工作才能向各城邦傳播消息屯蹦,當(dāng)然维哈,誰(shuí)第一個(gè)完成工作,誰(shuí)才能傳播消息登澜。(這也是工作量證明機(jī)制的意義:以檢驗(yàn)結(jié)果的方式證明你過(guò)去所做過(guò)了多少工作

  1. 比特幣有一個(gè)算法難度阔挠,會(huì)
    根據(jù)全網(wǎng)算力自動(dòng)調(diào)整,以保證網(wǎng)絡(luò)一直需要花費(fèi)10分鐘來(lái)找到一個(gè)有效的哈希值帖渠,并產(chǎn)生一個(gè)新區(qū)塊谒亦。

  2. 當(dāng)某個(gè)節(jié)點(diǎn)發(fā)出統(tǒng)一進(jìn)攻的消息后,各個(gè)節(jié)點(diǎn)收到發(fā)起者的消息必須簽名蓋章空郊,確認(rèn)各自的身份份招。中本聰在這里引用現(xiàn)代加密技術(shù)為這個(gè)信息簽名。

這種加密技術(shù)——非對(duì)稱加密狞甚,完全可以解決古代難以解決的簽名問(wèn)題:

  • 消息傳送的私密性
  • 能夠確認(rèn)身份
  • 簽名不可偽造锁摔、篡改
  1. 通過(guò)區(qū)塊鏈,使用一個(gè)共同賬本哼审。如果有一個(gè)叛徒(不誠(chéng)實(shí)節(jié)點(diǎn))修改了前面區(qū)塊的信息谐腰,計(jì)劃把錢(qián)全部劃歸自己所有,當(dāng)它廣播新區(qū)塊的時(shí)候涩盾,其他節(jié)點(diǎn)如何通過(guò)驗(yàn)證十气?如果大家手里沒(méi)有一份相同的賬本,肯定無(wú)法驗(yàn)證春霍,問(wèn)題就會(huì)陷入僵局砸西。基于P2P網(wǎng)絡(luò)的BT技術(shù)是成熟的址儒,同步一個(gè)總帳是很簡(jiǎn)單的事情芹枷。網(wǎng)絡(luò)中的節(jié)點(diǎn),在每個(gè)循環(huán)周期內(nèi)都是同步的莲趣,這讓每個(gè)節(jié)點(diǎn)(將軍)做決策的時(shí)候就有了共同的基礎(chǔ)鸳慈。

中本聰在設(shè)計(jì)比特幣時(shí),它采用了一種工作量證明機(jī)制叫哈闲。現(xiàn)金走芋,在一個(gè)交易塊這要找到一個(gè)隨機(jī)數(shù)绩郎,計(jì)算機(jī)只能用窮舉法來(lái)找到這個(gè)隨機(jī)數(shù),可以說(shuō)翁逞,能不能找到全靠運(yùn)氣嗽上,所以對(duì)于各個(gè)節(jié)點(diǎn)來(lái)說(shuō),這個(gè)世界上熄攘,只有隨機(jī)才是真正的公平,實(shí)現(xiàn)隨機(jī)的最好辦法是使用數(shù)學(xué)彼念,所有的將軍在尋找共識(shí)的過(guò)程挪圾,借助了大家都認(rèn)可的數(shù)學(xué)邏輯。

當(dāng)然了逐沙,憑什么要義務(wù)進(jìn)行計(jì)算工作哲思,那么肯定要有一個(gè)激勵(lì)機(jī)制:比特幣的獎(jiǎng)勵(lì)機(jī)制是每打包一個(gè)塊,目前是獎(jiǎng)勵(lì)25個(gè)比特幣吩案,而拜占庭將軍問(wèn)題的獎(jiǎng)勵(lì)機(jī)制可以是瓜分拜占庭獲得的利益棚赔。

如果又出現(xiàn)背叛怎么辦?

在這個(gè)分布式網(wǎng)絡(luò)里:

每個(gè)將軍都有一份實(shí)時(shí)與其他將軍同步的消息賬本徘郭。
賬本里有每個(gè)將軍的簽名都是可以驗(yàn)證身份的靠益。如果有哪些消息不一致,可以知道消息不一致的是哪些將軍残揉。
盡管有消息不一致的胧后,只要超過(guò)半數(shù)同意進(jìn)攻,少數(shù)服從多數(shù)抱环,共識(shí)達(dá)成(只要大多數(shù)是好人壳快,那么就可以實(shí)現(xiàn)共識(shí))。

區(qū)塊鏈上的共識(shí)機(jī)制主要解決由誰(shuí)來(lái)構(gòu)造區(qū)塊镇草,以及如何維護(hù)區(qū)塊鏈統(tǒng)一的問(wèn)題眶痰。

拜占庭容錯(cuò)問(wèn)題需要解決的也同樣是誰(shuí)來(lái)發(fā)起信息,如何實(shí)現(xiàn)信息的統(tǒng)一同步的問(wèn)題梯啤。

注:區(qū)塊鏈學(xué)習(xí)新人竖伯,若有不正確的地方,望指出

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末条辟,一起剝皮案震驚了整個(gè)濱河市黔夭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌羽嫡,老刑警劉巖本姥,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異杭棵,居然都是意外死亡婚惫,警方通過(guò)查閱死者的電腦和手機(jī)氛赐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)先舷,“玉大人艰管,你說(shuō)我怎么就攤上這事〗ǎ” “怎么了牲芋?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)捺球。 經(jīng)常有香客問(wèn)我缸浦,道長(zhǎng),這世上最難降的妖魔是什么氮兵? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任裂逐,我火速辦了婚禮,結(jié)果婚禮上泣栈,老公的妹妹穿的比我還像新娘卜高。我一直安慰自己,他們只是感情好南片,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布掺涛。 她就那樣靜靜地躺著,像睡著了一般疼进。 火紅的嫁衣襯著肌膚如雪鸽照。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天颠悬,我揣著相機(jī)與錄音矮燎,去河邊找鬼。 笑死赔癌,一個(gè)胖子當(dāng)著我的面吹牛诞外,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播灾票,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼峡谊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了刊苍?” 一聲冷哼從身側(cè)響起既们,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎正什,沒(méi)想到半個(gè)月后啥纸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡婴氮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年斯棒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了盾致。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡荣暮,死狀恐怖庭惜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情穗酥,我是刑警寧澤护赊,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站砾跃,受9級(jí)特大地震影響百揭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蜓席,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望课锌。 院中可真熱鬧厨内,春花似錦、人聲如沸渺贤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)志鞍。三九已至瞭亮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間固棚,已是汗流浹背统翩。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留此洲,地道東北人厂汗。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像呜师,于是被迫代替她去往敵國(guó)和親娶桦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容