拜占庭將軍問(wèn)題和比特幣之間有關(guān)系嗎
掃描二維碼
隨時(shí)隨地手機(jī)看文章
拜占庭將軍問(wèn)題是學(xué)習(xí)比特幣技術(shù)一個(gè)繞不開(kāi)的話(huà)題。下次聽(tīng)別人談起拜占庭,你也可以過(guò)去侃兩句啦。
什么是拜占庭將軍問(wèn)題?
拜占庭將軍問(wèn)題(Byzantine failures),是由計(jì)算機(jī)科學(xué)史上的傳奇人物萊斯利·蘭伯特提出的。主要針對(duì)點(diǎn)對(duì)點(diǎn)通信中的基本問(wèn)題——分布式系統(tǒng)一致性問(wèn)題。
是不是有種不明覺(jué)厲的感覺(jué)?完全聽(tīng)不懂?。?/p>
別著急,繼續(xù)往下看唄。
蘭伯特說(shuō):故事讓問(wèn)題變得受歡迎。所以,拜占庭將軍問(wèn)題,是蘭伯特在研究分布式系統(tǒng)容錯(cuò)性時(shí),編的一個(gè)故事:
拜占庭帝國(guó)想要進(jìn)攻一個(gè)無(wú)比強(qiáng)大的敵人,派出了10支軍隊(duì)去包圍這個(gè)敵人。由于這樣那樣的原因,這10支軍隊(duì)不能集合在一起進(jìn)攻,必須分開(kāi)駐扎,然后同時(shí)發(fā)起攻擊。
而這個(gè)敵人十分的強(qiáng)大,可以同時(shí)抵抗5支拜占庭軍隊(duì)的襲擊。拜占庭軍隊(duì)里的任何一支,想要單獨(dú)進(jìn)攻的話(huà),都毫無(wú)勝算。除非至少超過(guò)一半(即6支及以上的軍隊(duì))同時(shí)進(jìn)攻,才能打敗敵人。軍隊(duì)分散在敵人的四周,依靠通信兵來(lái)相互傳遞消息:商量“要不要進(jìn)攻”和“什么時(shí)候進(jìn)攻”。
(因?yàn)榇嬖谙G失的不可靠信道上,試圖通過(guò)消息傳遞來(lái)達(dá)到一致性,是不可能的。所以,在研究拜占庭將軍問(wèn)題的時(shí)候,我們已經(jīng)假定了信道是沒(méi)有問(wèn)題的。即所有的通信兵是靠譜的,沒(méi)有叛徒。)
那么問(wèn)題來(lái)了,如果將軍里有叛徒,那么這個(gè)叛徒將軍可能發(fā)送錯(cuò)誤消息。比如:告訴其中4只軍隊(duì)要進(jìn)攻,然后告訴另外5只軍隊(duì)不進(jìn)攻,然后只有4只軍隊(duì)同時(shí)進(jìn)攻,吃了敗仗。剩下5只軍隊(duì),也無(wú)法戰(zhàn)勝這個(gè)強(qiáng)大的敵人。最后拜占庭軍隊(duì)?wèi)?zhàn)敗。叛徒真的面黑心黑。
在這種狀態(tài)下,拜占庭將軍們,能不能找到一種分布式的協(xié)議,讓他們能夠遠(yuǎn)程協(xié)商,保證多于6支軍隊(duì)在同時(shí)發(fā)起進(jìn)攻?從而打贏(yíng)這場(chǎng)仗?
計(jì)算機(jī)科學(xué)中,有類(lèi)似的問(wèn)題,比如安全漏洞。
系統(tǒng)中的不同節(jié)點(diǎn),會(huì)對(duì)觀(guān)察者提供不同的信號(hào)。在不知道這些信息是否損壞的情況下,如何交換信息?
比特幣和拜占庭將軍問(wèn)題有什么關(guān)系?
比特幣解決了網(wǎng)絡(luò)中存在的拜占庭將軍問(wèn)題。
比特幣解決了分布式系統(tǒng)信息不一致的問(wèn)題。
眾所周知,比特幣是一個(gè)分散網(wǎng)絡(luò),一個(gè)個(gè)節(jié)點(diǎn),一個(gè)個(gè)礦工,就像包圍敵人的拜占庭將軍們。
而礦工記錄的區(qū)塊信息是否真實(shí)?會(huì)不會(huì)造假人?如何判斷?
作惡的礦工造假賬,就像混進(jìn)了軍隊(duì)里的的叛徒。他們會(huì)跟其他節(jié)點(diǎn)說(shuō),他們的假信息是真的,他們記的假賬也是真的。叛徒混了進(jìn)來(lái),會(huì)破壞整個(gè)比特幣網(wǎng)絡(luò)的真實(shí)性和有效性。
大神中本聰解決了這個(gè)問(wèn)題。
首先,大神在設(shè)計(jì)比特幣時(shí),采用了工作量證明機(jī)制(PoW)。礦工需要找到一個(gè)正確的隨機(jī)數(shù),才能記賬。而隨機(jī)數(shù)是大家認(rèn)可的數(shù)學(xué)邏輯,隨機(jī)嘛,誰(shuí)都控制不了。這樣,所有的礦工(將軍)達(dá)成共識(shí),投身于轟轟烈烈的挖礦事業(yè)中。
其次,造假成本高,真實(shí)有獎(jiǎng)勵(lì)。礦工挖礦,要耗費(fèi)越來(lái)越多的時(shí)間、電力、資源,造假成本太高。而新幣獎(jiǎng)勵(lì),也激勵(lì)著礦工真實(shí)記賬。
第三,每個(gè)節(jié)點(diǎn)(將軍)手里,都有一份實(shí)時(shí)與其他節(jié)點(diǎn)同步的賬本,而且賬本有時(shí)間戳加持,有簽名驗(yàn)證身份,如果誰(shuí)造假,可以非常清楚何人何時(shí)造假。
最后,當(dāng)意見(jiàn)不一致,只要大多數(shù)人(超過(guò)50%)的人同意,少數(shù)服從多數(shù),在分散式網(wǎng)絡(luò)中共識(shí)達(dá)成。只要好節(jié)點(diǎn)是大多數(shù),整個(gè)比特幣網(wǎng)絡(luò)的記賬就是真實(shí)的。
來(lái)源: 區(qū)塊鏈研習(xí)社