「力場 lichang.io」公鏈挖礦第一社區(qū)池户!
比特幣是全球性的礼预,在整個世界存在多個時區(qū)第步,每個時區(qū)之間都存在時間差,如果沒有一個絕對統(tǒng)一的時間喻频,這就給共識協(xié)議帶來了許多限制缩宜。也正是因為這些限制因素,導(dǎo)致許多專家學(xué)者都對是否能夠達成共識持有悲觀態(tài)度甥温,而且還有許多對于達成共識具備的不可能性結(jié)論也已經(jīng)被證實锻煌。其中一個最最經(jīng)典的案例就是拜占庭將軍問題,想必大家對這個問題都不陌生姻蚓,大概意思是:
拜占庭是東羅馬帝國的首都宋梧,它的軍隊分成多個師,每個師都由一個將軍統(tǒng)領(lǐng)狰挡。這些將軍通過信使進行交流捂龄,來達成一個共同作戰(zhàn)方案,有些將軍可能是叛徒加叁,想故意破壞這個過程倦沧,這會造成那些忠誠的將軍也無法達成一個統(tǒng)一的作戰(zhàn)計劃。解決這個難題的辦法就是讓那些忠誠的將軍在這樣的情況下達成統(tǒng)一作戰(zhàn)方案它匕,而避免那些叛徒對作戰(zhàn)方案的誤導(dǎo)展融。事實證明,如果叛徒數(shù)量超過1/3時豫柬,這個難題將無法克服告希,那些忠臣的計劃終會被叛徒們破壞扑浸。
還有一個更為微妙的關(guān)于不可能性的結(jié)論首量,就是著名的“Fischer-Lynch-Paterson(FLP)不可能原理”饼拍,該名稱以最初的三位作者而命名。大意是在網(wǎng)絡(luò)可靠兰吟,但允許節(jié)點失效(即便只有一個)的最小化異步模型系統(tǒng)中杭跪,不存在一個可以解決一致性問題的確定性共識算法仙逻。FLP 不可能原理告訴我們,不要浪費時間涧尿,去試圖為異步分布式系統(tǒng)設(shè)計面向任意場景的共識算法系奉。盡管有這些“不可能性結(jié)論”,還是有文獻談到了一些共識協(xié)議姑廉,比較著名的就是Paxos算法協(xié)議缺亮。Paxos算法做了一些妥協(xié),一方面桥言,Paxos算法能做到不產(chǎn)生不一致的結(jié)果萌踱;另一方面,Paxos算法所做的妥協(xié)是号阿,在一定條件下(雖然是不常見的情形)并鸵,該協(xié)議會死機卡住,從而無法繼續(xù)運行扔涧。
如何理解
要正確理解 FLP 不可能原理园担,首先要弄清楚“異步”的含義。在分布式系統(tǒng)中枯夜,同步和異步這兩個術(shù)語存在特殊的含義弯汰。
同步:是指系統(tǒng)中的各個節(jié)點的時鐘誤差存在上限,并且消息傳遞必須在一定時間內(nèi)完成湖雹,否則認(rèn)為失斢缴痢;同時各個節(jié)點完成處理消息的時間是一定的摔吏。因此同步系統(tǒng)中可以很容易地判斷消息是否丟失汤踏。
異步:意味著系統(tǒng)中各個節(jié)點可能存在較大的時鐘差異,同時消息傳輸時間是任意長的舔腾,各節(jié)點對消息進行處理的時間也可能是任意長的。這就造成無法判斷某個消息遲遲沒有被響應(yīng)是哪里出了問題(節(jié)點故障還是傳輸故障搂擦?)稳诚。不幸地是,現(xiàn)實生活中的系統(tǒng)往往都是異步系統(tǒng)瀑踢。
想要理解FLP 不可能性基本原理并不復(fù)雜扳还,員外給大家舉個例子:
三個人在不同房間才避,進行投票(投票結(jié)果是 0 或者 1)。彼此可以通過電話進行溝通氨距,但經(jīng)常有人會時不時睡著桑逝。比如某個時候,A 投票 0俏让,B 投票 1楞遏,C 收到了兩人的投票,然后 C 睡著了首昔。此時寡喝,A 和 B 將永遠無法在有限時間內(nèi)獲知最終的結(jié)果,究竟是 C 沒有應(yīng)答還是應(yīng)答的時間過長勒奇。如果可以重新投票预鬓,則類似情形可以在每次取得結(jié)果前發(fā)生,這將導(dǎo)致共識過程永遠無法完成赊颠。
FLP 原理實際上說明對于允許節(jié)點失效情況下格二,純粹異步系統(tǒng)無法確保共識在有限時間內(nèi)完成。即便對于非拜占庭錯誤的前提下竣蹦,包括 Paxos顶猜、Raft 等算法也都存在無法達成共識的極端情況,只是在工程實踐中這種情況出現(xiàn)的概率很小草添。
那么驶兜,這是否意味著研究共識算法壓根沒有意義?其實對于上面描述的例子應(yīng)該是最壞的情況了远寸,在現(xiàn)實應(yīng)用中發(fā)生的概率是無限小的抄淑。畢竟在學(xué)術(shù)研究中,就要做到盡可能的嚴(yán)密驰后,為的就是以防萬一肆资。實際應(yīng)用中如果某次共識失敗,再嘗試幾次灶芝,很大可能就成功了郑原。
理論會告訴你什么是不可能的;現(xiàn)實中則告訴你夜涕,付出一些代價犯犁,可以把它變成可行。FLP 不可能原理告訴大家不必浪費時間去追求完美的共識方案女器,而要根據(jù)實際情況設(shè)計可行的工程方案酸役。