區(qū)塊鏈之我見09

圖片發(fā)自簡書App

? ? ? ? ? 古老的“拜占庭將軍問題” 02

接上篇

拜占庭將軍問題”并非如傳說中那樣颅眶,源于公元5世紀(jì)的東羅馬戰(zhàn)場寥院,而是產(chǎn)生于1982年一位美國計算機(jī)科學(xué)家的頭腦當(dāng)中掰盘。

因此欠橘,我們不會使用任何1982年之前的案例來描述這個問題在古老年代的意義矩肩,因?yàn)樵偻白匪荩⑽凑嬲嘈?yán)肅地被提出并加以審視黍檩。 在原始的戰(zhàn)爭年代,將軍與將軍始锚、將軍與下屬間只能采用原始的方式——“出行靠走刽酱,通訊靠吼”的口頭傳輸。這對應(yīng)蘭伯特論文提出算法中的第一部分的口頭消息算法瞧捌,簡稱OM(m)算法棵里。

這種情形,真?zhèn)魏茈y辨別姐呐,只有當(dāng)叛徒的總數(shù)不超過將軍總數(shù)的1/3殿怜,成為一個特殊的“拜占庭容錯系統(tǒng)”時,才能在很大的消息驗(yàn)證代價后曙砂,實(shí)現(xiàn)最終的一致行動头谜。這個結(jié)果非常令人驚訝,如果將軍們只能發(fā)送口頭消息麦轰,除非超過2/3的將軍是忠誠的乔夯,否則該問題無解砖织。尤其是款侵,如果只有三個將軍,其中一個是叛變者侧纯,那么此時無解新锈。但這樣的錯誤,這樣的有意眶熬、無意的“叛徒”卻可能經(jīng)常出現(xiàn)妹笆。無論是我們把“叛變的將軍”替換成以下哪種,該問題都成立娜氏。

? 一個出故障的拳缠,向其他計算機(jī)不停發(fā)出不同錯誤信息的服務(wù)器;

? 一份為獲取暴利而做出來的金融票據(jù)贸弥;

? 一份失效的醫(yī)療糾紛合同窟坐;

? 一份含混不清的保單;

? 一個可以發(fā)出消息,做出行動的錯誤信息節(jié)點(diǎn)哲鸳。

而這里臣疑,每一個錯誤節(jié)點(diǎn)可以做任意事情:不響應(yīng);發(fā)送錯誤信息徙菠;對不同節(jié)點(diǎn)發(fā)送不同決定讯沈;不同錯誤節(jié)點(diǎn)聯(lián)合起來攻擊其他節(jié)點(diǎn)等。沒準(zhǔn)會出現(xiàn)比這更嚴(yán)重婿奔、更荒謬的錯誤缺狠。

如果說“叛變的拜占庭將軍”是我們社會中各種類型的信息節(jié)點(diǎn)的隱喻,那么“拜占庭將軍問題”所描述的情景萍摊,這樣一個進(jìn)攻/撤退命令極難驗(yàn)證真?zhèn)蔚闹惺兰o(jì)戰(zhàn)場儒老,則無疑是我們當(dāng)今越發(fā)缺乏中心化的、難以判別信息與產(chǎn)生信任的社會的極度悲觀的隱喻记餐。

構(gòu)造出一個完美的驮樊、可以解決問題的“拜占庭容錯系統(tǒng)”是一個不小的挑戰(zhàn)。而且構(gòu)造出來以后片酝,其是否真的有效囚衔,能否經(jīng)得起時間的考驗(yàn)與各方的質(zhì)疑,這些都關(guān)乎著這個系統(tǒng)未來的命運(yùn)與其創(chuàng)造群體的聲譽(yù)雕沿。 2008年冬季练湿,美國MIT(麻省理工學(xué)院)的密碼學(xué)及密碼學(xué)政策戰(zhàn)略的郵件討論組中,一位澳大利亞的企業(yè)家James A Donald(詹姆斯·A. 唐納德)就對一位聲稱構(gòu)造出了一個點(diǎn)對點(diǎn)的审轮、不需要第三方權(quán)威認(rèn)證的e-cash(電子現(xiàn)金)支付系統(tǒng)提出了質(zhì)疑肥哎。

而他的理由就是:對方設(shè)計的P2P系統(tǒng)不能夠解決“拜占庭將軍問題”。 在郵件中他挑剔地說道:“我們的確真的非常非常需要這個系統(tǒng)疾渣,但我所擔(dān)憂的并不是信任的問題篡诽,而是如何獲取一個全局共享的圖景,借由此點(diǎn)而獲取一致性的問題榴捡。每個人都知道X杈女,這并不足夠。

我們需要讓每個人都知道‘每個人都知道X’吊圾。而每個人都知道‘每個人都知道X’就是‘拜占庭將軍問題’中达椰,分布式的數(shù)據(jù)處理最難解決的問題。尤其是當(dāng)X是非常龐大的數(shù)據(jù)時……”言下之意项乒,他并不清楚或不確信這個去中心化的系統(tǒng)啰劲,如何解決拜占庭將軍的難題。 僅僅在一天之后檀何,他就收到了原作者的回復(fù)蝇裤,一封簡潔趁尼、優(yōu)雅的郵件解釋了在這個系統(tǒng)中,破解“拜占庭將軍問題”的算法猖辫。

? ? 一群拜占庭將軍酥泞,人手一臺電腦想用字符串模式匹配的方法,暴力破解國王的Wi-Fi密碼啃憎,當(dāng)然他們已經(jīng)事先獲取了組成密碼的字符串的長度芝囤。一旦他們開始模擬網(wǎng)絡(luò)發(fā)送數(shù)據(jù)包,他們必須在一個限定的時間內(nèi)完成破解工作辛萍,并清除服務(wù)器和電腦上的記錄悯姊,否則他們就會被發(fā)現(xiàn),那就麻煩了贩毕。

只有當(dāng)絕大多數(shù)將軍在同一時間發(fā)起攻擊和破解悯许,這樣才能有足夠的CPU(中央處理器)和計算能力在短時間內(nèi)完成破解工作。 他們并不特別在乎什么時候開始攻擊辉阶,只要他們?nèi)客饩秃谩?/p>

一開始的時候先壕,大家決定這樣搞:任何人覺得時機(jī)到了都可以宣布一個攻擊時刻。而且谆甜,不論是什么時候垃僚,只要是第一個被聽到的攻擊時刻,就將被確定為官方的攻擊時刻规辱。這樣的話問題又來了谆棺,因?yàn)榫W(wǎng)絡(luò)傳達(dá)有延遲和干擾,如果有兩個將軍差不多同一時間公布了兩個不同的攻擊時刻罕袋,那么有的人會最先聽到其中一個將軍發(fā)布的攻擊時刻改淑,而又有些人則會最先聽到另外一個將軍發(fā)布的攻擊時刻。

他們使用一個“工作量證明鏈”來解決這個問題浴讯。當(dāng)每個將軍接收到任何表達(dá)形式的第一個攻擊時刻時朵夏,他都會設(shè)置他的計算機(jī)來求解一個極其困難的“工作量證明”問題,對這個問題的解答是一個哈希(Hash)散列兰珍,里面也將包含著這次的攻擊時刻侍郭。

由于這個“工作量證明”問題询吴,非常難解掠河,一般而言,就算所有人收到這個問題后同時求解猛计,也至少需要10分鐘才能產(chǎn)生解答唠摹。

一旦一個將軍解出了“工作量證明”,他將會把這個算出來的“工作量證明”向整個網(wǎng)絡(luò)進(jìn)行傳播奉瘤,每一個接收到的人勾拉,將在他們當(dāng)前正在做的“工作量證明”計算的散列中附加上剛剛被求解出來的那個工作量證明煮甥。如果任何人正在計算他收到的其他的一個不同的攻擊時刻,他們將會轉(zhuǎn)向新的更新后的“工作量證明”計算當(dāng)中藕赞,因?yàn)樗F(xiàn)在的“工作量證明鏈”更長了成肘。

兩個小時后,將有一個攻擊時刻被散列在一個有12個“工作量證明”的鏈中斧蜕。每個將軍只要通過驗(yàn)證(這條工作鏈的)計算難度双霍,就能估算出平均每小時有多少CPU算力耗費(fèi)在這上面,也就會知道:這一定是在分配的時間段內(nèi)批销,絕大多數(shù)將軍的計算機(jī)共同協(xié)作才能生成的結(jié)果洒闸。

如果“工作量證明鏈”中展示出來的算力足夠強(qiáng)大,可以破解國王的Wi-Fi密碼均芽,那么他們就可以在一致同意的時間內(nèi)安全地展開攻擊丘逸。 同步、分布式數(shù)據(jù)庫和一個一致的掀宋、全局性的視野的問題如何解決深纲?“工作量證明鏈”就是答案。

我們可以看到這封郵件解決了下面幾個問題:

(1)引入一個困難的劲妙、需要10分鐘求解的工作量計算囤萤,限制了網(wǎng)絡(luò)中每個時刻中被提出的進(jìn)攻時刻數(shù)目。

(2)將所有求解出的“工作量證明”都逐一加入是趴,形成一個越來越長的鏈條涛舍,一個記錄著所有“參與著攻擊時刻哈希計算的將軍、計算的‘工作量證明’唆途、關(guān)于‘工作量證明’的計算的總體名錄”富雅。

(3)基于這條長鏈得出安全的進(jìn)攻時刻的答案。


圖片發(fā)自簡書App
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肛搬,一起剝皮案震驚了整個濱河市没佑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌温赔,老刑警劉巖蛤奢,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異陶贼,居然都是意外死亡啤贩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門拜秧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來痹屹,“玉大人,你說我怎么就攤上這事枉氮≈狙埽” “怎么了暖庄?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長楼肪。 經(jīng)常有香客問我培廓,道長,這世上最難降的妖魔是什么春叫? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任医舆,我火速辦了婚禮,結(jié)果婚禮上象缀,老公的妹妹穿的比我還像新娘蔬将。我一直安慰自己,他們只是感情好央星,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布霞怀。 她就那樣靜靜地躺著,像睡著了一般莉给。 火紅的嫁衣襯著肌膚如雪毙石。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天颓遏,我揣著相機(jī)與錄音徐矩,去河邊找鬼。 笑死叁幢,一個胖子當(dāng)著我的面吹牛滤灯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播曼玩,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼鳞骤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了黍判?” 一聲冷哼從身側(cè)響起豫尽,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎顷帖,沒想到半個月后美旧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡贬墩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年榴嗅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片震糖。...
    茶點(diǎn)故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡录肯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吊说,到底是詐尸還是另有隱情论咏,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布颁井,位于F島的核電站厅贪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏雅宾。R本人自食惡果不足惜养涮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望眉抬。 院中可真熱鬧贯吓,春花似錦、人聲如沸蜀变。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽库北。三九已至爬舰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寒瓦,已是汗流浹背情屹。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留杂腰,地道東北人垃你。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像喂很,于是被迫代替她去往敵國和親蜡镶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評論 2 355

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