比特幣與拜占庭將軍問題——區(qū)塊鏈技術(shù):對(duì)未來產(chǎn)生影響最大的科技

Paste_Image.png

【TED】對(duì)未來產(chǎn)生影響最大的科技

何為拜占庭將軍問題

問題由來

拜占庭將軍問題(Byzantine failures)是由萊斯利·蘭伯特在1982年提出的點(diǎn)對(duì)點(diǎn)通信中的基本問題。作為分布式系統(tǒng)的先鋒科學(xué)家,蘭伯特當(dāng)時(shí)為NASA建立可靠穩(wěn)定的航天計(jì)算機(jī)系統(tǒng)的過程中遇到的容錯(cuò)性問題,就此而編出的拜占庭將軍問題,他因?yàn)樵诜植际较到y(tǒng)做出的杰出貢獻(xiàn)而獲得2013年圖領(lǐng)獎(jiǎng)——計(jì)算機(jī)界的諾貝爾獎(jiǎng)。

問題描述

拜占庭帝國(guó)國(guó)土遼闊,當(dāng)攻打敵人的時(shí)候,每個(gè)軍隊(duì)都分隔很遠(yuǎn),將軍之間只能靠信使傳消息。
在戰(zhàn)爭(zhēng)的時(shí)候,拜占庭軍隊(duì)內(nèi)所有將軍必須達(dá)成一致的共識(shí),決定是否去攻打敵人的陣營(yíng)。但是,軍隊(duì)可能有叛徒和敵軍間諜,左右將軍們的決定,擾亂軍隊(duì)的秩序,使達(dá)成的共識(shí)并不代表大多數(shù)人的意見。這時(shí),在已知有間諜的情況下,其余忠誠(chéng)的將軍在不受叛徒的影響下如何達(dá)成一致的協(xié)議,就是拜占庭將軍問題。將軍之間的聯(lián)絡(luò)通過信使,在這個(gè)問題中信使不會(huì)被截獲(信道可靠)

問題的可解性

  1. 叛徒數(shù)大于或等于1/3,拜占庭問題不可解
    如果有三位將軍,一個(gè)司令倆副官,如果其中一個(gè)副官是叛徒。當(dāng)司令發(fā)出進(jìn)攻命令時(shí),副官2可能告訴副官1,他收到的是“撤退”的命令。這時(shí)副官1收到一個(gè)“進(jìn)攻”,一個(gè)“撤退”,而無所適從。
    如果司令是叛徒。他告訴副官1“進(jìn)攻”,告訴副官2“撤退”。當(dāng)副官2告訴副官1,他收到“撤退”命令時(shí),副官1由于收到了司令“進(jìn)攻”的命令,而無法與副官2保持一致。
    正由于上述原因,在三模冗余系統(tǒng)中,如果有拜占庭故障,即叛徒數(shù)等于1/3,拜占庭問題不可解
  2. 用口頭信息,如果叛徒數(shù)少于1/3,拜占庭問題可解。
    這里說“少于1/3”表明,要對(duì)付一個(gè)叛徒,至少要用四模冗余。在四模中有一個(gè)叛徒,叛徒數(shù)是少于1/3的。所謂口頭信息,是指滿足三個(gè)條件:
    ①被發(fā)送的消息都能夠被正確的投遞
    ②接收者知道是誰發(fā)的(司令還是副官)
    ③沉默(不發(fā)信息)可以被檢測(cè)
    需要注意的是口頭協(xié)議并不會(huì)告知消息的上一個(gè)來源是誰。算法的中心思想很簡(jiǎn)單,就是司令把命令發(fā)給每一副官,各副官又將收到的司令的命令轉(zhuǎn)告給其他副官,遞歸下去,最后用多數(shù)表決。
    如果司令是忠誠(chéng)的,他送一個(gè)命令v給所有副官。
    若副官3是叛徒,當(dāng)他轉(zhuǎn)告給副官2時(shí)命令可能變成x。但副官2收到{v, v, x},多數(shù)表決以后仍為v,忠誠(chéng)的副官可達(dá)成一致。
    如果司令是叛徒,他發(fā)給副官們的命令可能互不相同,為x, y, z。當(dāng)副官們互相轉(zhuǎn)告司令發(fā)來的信息時(shí),他們會(huì)發(fā)現(xiàn),他們收到的都是{x,y,z},因而也取得了一致。
  3. 書面協(xié)議
    口頭協(xié)議的缺點(diǎn)是消息不能追本溯源,這使得口頭協(xié)議必須在四模冗余的情況下才能保證正確。但是,若能引入一種方法讓消息能夠追本溯源,情況會(huì)不會(huì)有所改變呢?這就是書面協(xié)議引入的靈感。
    我們?cè)诳陬^協(xié)議之上添加一個(gè)條件,使之成為書面協(xié)議
    (a)司令簽名不可偽造,一旦被篡改即可發(fā)現(xiàn),而叛徒的簽名可被其他叛徒偽造;(b)任何人都可以驗(yàn)證簽名的可靠性。
    書面協(xié)議的本質(zhì)就是引入了簽名系統(tǒng),接收者收到信息后,簽上自己的名字后再發(fā)給別人,這使得所有消息都可追本溯源。這一優(yōu)勢(shì),大大節(jié)省了成本,他化解了口頭協(xié)議中1/3要求,只要采用了書面協(xié)議,忠誠(chéng)的將軍就可以達(dá)到一致。這個(gè)效果是驚人的,相較之下口頭協(xié)議則明顯有一些缺陷,如遞歸復(fù)雜度等。其實(shí)書面協(xié)議的原理我也沒太懂,記住結(jié)論就好xd,即加上簽名可以形成一個(gè)消息鏈,能加快達(dá)成一致性計(jì)算且放寬條件。
  4. 在現(xiàn)實(shí)環(huán)境中書面協(xié)議任然存在問題
    在理想環(huán)境下書面協(xié)議可以很快得到唯一正確的結(jié)論。
    但是在現(xiàn)實(shí)環(huán)境中書面協(xié)議面臨兩個(gè)問題
    1)沒考慮傳輸信息的延遲時(shí)間,書面協(xié)議的簽名體系難以實(shí)現(xiàn)
    2)簽名消息記錄的保存難以擺脫一個(gè)中心化機(jī)構(gòu)而獨(dú)立存在。

問題的真正解決

真正解決這一難題的是名叫“中本聰”的人。
這個(gè)人就是大名鼎鼎的“比特幣”的發(fā)明者,比特幣圈內(nèi)的人都知道中本聰是一個(gè)“隱匿者”,一個(gè)愛收集火車模型的黑客天才。在正式宣告了比特幣的誕生之后,中本聰徹底銷聲匿跡。
他是如何解決的呢,我用一個(gè)老司機(jī)開車的模型來解釋。

一群喜歡開車的小伙伴希望選出老司機(jī)帶領(lǐng)大家一起開車。
限制條件是
1)他們必須在一個(gè)限定的時(shí)間內(nèi)選出老司機(jī)帶領(lǐng)大家去開車,否則就會(huì)被警察叔叔發(fā)現(xiàn)。
2)他們?cè)谝?guī)定時(shí)間內(nèi)只能選出一個(gè)老司機(jī),否則同一時(shí)刻選出了兩個(gè)老司機(jī)大家就不知道跟著哪個(gè)老司機(jī)開了。
怎么解決在同一時(shí)刻選出一個(gè)老司機(jī)呢,中本聰使用一個(gè)區(qū)塊鏈來解決這個(gè)問題。

工作量證明鏈(PoW)

工作量證明,簡(jiǎn)單理解就是一份證明,用來確認(rèn)做過一定量的工作。為什么要用工作量證明?因?yàn)椋O(jiān)測(cè)工作過程通常極為低效,而對(duì)工作結(jié)果的認(rèn)證則是一種非常高效的方式。比如他們?cè)谝?guī)定時(shí)間內(nèi)大家都去靠一個(gè)老司機(jī)證,一看到這個(gè)證就知道他是老司機(jī)了,而不用讓他開一把車測(cè)試一下。

任何一個(gè)想做老司機(jī)的人都用自己的計(jì)算機(jī)通過各種輸入求解一個(gè)哈希散列,這個(gè)哈希散列是一個(gè)壓縮的信息,里面包含了已經(jīng)拿到老司機(jī)證的名單等信息。由于這個(gè)計(jì)算比較困難,一般至少10分鐘才能產(chǎn)生答案。比如某時(shí)刻一個(gè)司機(jī)計(jì)算出了666這個(gè)結(jié)果,于是他拿到了老司機(jī)證,然后他把自己的名字放入老司機(jī)證名單里,這時(shí)下一個(gè)老司機(jī)證可能就變成了777,于是他把這個(gè)消息向所有老司機(jī)傳播,每個(gè)收到消息的司機(jī)就開始重新計(jì)算,由于計(jì)算至少要十分鐘,所以可能5分鐘內(nèi)所有司機(jī)都收到新的老司機(jī)名單的輸入,下一個(gè)10分鐘內(nèi)又會(huì)產(chǎn)生一個(gè)777的老司機(jī)。大家就可以根據(jù)這個(gè)老司機(jī)名單來一個(gè)個(gè)的帶大家愉快的開車了。

區(qū)塊鏈:一句話解釋區(qū)塊鏈就是一個(gè)去中心化的信任機(jī)制。

再詳細(xì)點(diǎn):區(qū)塊鏈?zhǔn)侵竿ㄟ^去中心化和去信任的方式集體維護(hù)一個(gè)可靠數(shù)據(jù)庫(kù)的技術(shù)方案。

再多說一點(diǎn):區(qū)塊鏈技術(shù)就指一種全民參與記賬的方式。所有的系統(tǒng)背后都有一個(gè)數(shù)據(jù)庫(kù),你可以把數(shù)據(jù)庫(kù)看成是就是一個(gè)大賬本。那么誰來記這個(gè)賬本就變得很重要。目前就是誰的系統(tǒng)誰來記賬,微信的賬本就是騰訊在記,淘寶的賬本就是阿里在記。但現(xiàn)在區(qū)塊鏈系統(tǒng)中,系統(tǒng)中的每個(gè)人都可以有機(jī)會(huì)參與記賬。在一定時(shí)間段內(nèi)如果有任何數(shù)據(jù)變化,系統(tǒng)中每個(gè)人都可以來進(jìn)行記賬,系統(tǒng)會(huì)評(píng)判這段時(shí)間內(nèi)記賬最快最好的人(老司機(jī)),把他記錄的內(nèi)容寫到賬本(老司機(jī)名單),并將這段時(shí)間內(nèi)賬本內(nèi)容發(fā)給系統(tǒng)內(nèi)所有的其他人進(jìn)行備份。這樣系統(tǒng)中的每個(gè)人都了一本完整的賬本。這種方式,我們就稱它為區(qū)塊鏈技術(shù)。

區(qū)塊鏈解決了三大痛點(diǎn)

  1. 去中心:多個(gè)中心化的系統(tǒng),使得系統(tǒng)風(fēng)險(xiǎn)下降。沒有中心的本質(zhì)就是人人都是中心。
  2. 安全:區(qū)塊鏈可以解決安全傳輸問題,解決信息化聯(lián)網(wǎng)去中心化信任問題,構(gòu)建出價(jià)值互聯(lián)網(wǎng),顛覆社會(huì)組織與生產(chǎn)方式。
  3. 信任:由于區(qū)塊鏈內(nèi)每個(gè)節(jié)點(diǎn)掌握各個(gè)節(jié)點(diǎn)信息,系統(tǒng)內(nèi)交易批準(zhǔn)取決于所有節(jié)點(diǎn)共識(shí)性原則,規(guī)則對(duì)于所有節(jié)點(diǎn)公平且強(qiáng)制,并且,隨著交易增多,每個(gè)節(jié)點(diǎn)內(nèi)同步更新的鏈條愈發(fā)變長(zhǎng),愈發(fā)難以被篡改。這個(gè)真的很贊!

區(qū)塊鏈技術(shù)的應(yīng)用價(jià)值

  1. 金融領(lǐng)域就是區(qū)塊鏈很好的應(yīng)用。比特幣成功背后的核心概念是一個(gè)用以維持一本全球性的總賬的去中心化協(xié)議,它被叫做區(qū)塊鏈。區(qū)塊鏈記錄著比特幣地址之間的交易,追蹤著每一個(gè)比特幣轉(zhuǎn)手的舉動(dòng)。這樣的追蹤確保了沒有人可以雙花(double-spend)一個(gè)幣,因?yàn)榭傎~使得一名用戶是否發(fā)送出了比他掙得的更多的比特幣變得太明顯。比特幣追蹤的特別方式,也使得交易記錄不可被變更;一旦一筆比特幣交易被處理并收錄進(jìn)了區(qū)塊鏈,攻擊者就很難逆轉(zhuǎn)那筆交易了,所以商戶可以在有信心交易不會(huì)被逆轉(zhuǎn)的情況下發(fā)出貨物。
  2. 在未來,的確還有可能出現(xiàn)這樣的情況,我們將不再使用現(xiàn)金買東西,也完全重新顛覆事物所有權(quán)的概念。即使互聯(lián)網(wǎng)已經(jīng)通過各種方式在各方面改變了我們的生活,但是從來沒有一種方法能夠真正的,在沒有中心化權(quán)威機(jī)構(gòu)的承認(rèn)下,讓你“擁有”某些數(shù)字產(chǎn)品。
  3. 中心化有各種弊端,比如安全性容易受到破壞,世界不斷有黑客攻破數(shù)據(jù)中心的報(bào)道。中心化處理成本高,如政府等中心機(jī)構(gòu)高成本卻做不好事情。又比如超級(jí)計(jì)算機(jī)資源昂貴,用無視低成本客戶端代替中心超級(jí)計(jì)算機(jī)可以省去資源成本。
  4. “區(qū)塊鏈”讓萬物真正互聯(lián)!
    比如,一臺(tái)洗衣機(jī)。如果沒有洗衣粉,會(huì)自動(dòng)通過傳感器、點(diǎn)對(duì)點(diǎn)的加密通訊協(xié)議,把洗衣粉自動(dòng)給你送過來加上。洗衣機(jī)可能會(huì)有一個(gè)數(shù)字錢包,洗衣粉送來之后,洗衣機(jī)就自動(dòng)把錢付給對(duì)方,所以機(jī)器與機(jī)器之間通過數(shù)字錢包就可以做金融交易
  5. 廣義上講去中心就是人人生來平等的哲學(xué)意義。這個(gè)世界目前是不平等的,窮富兩級(jí)分化很嚴(yán)重。英國(guó)脫歐等正在發(fā)生的事情說明此思想正在變革著世界。
  6. 類似滴滴、Uber、膜拜、airbnb等共享經(jīng)濟(jì)的思想已經(jīng)在改變世界了,只不過他們不是真正的共享,如果建立在區(qū)塊鏈技術(shù)上,完全可以沒有這些平臺(tái)同樣獲得相同的服務(wù)。

區(qū)塊鏈現(xiàn)在面臨的問題

目前區(qū)塊鏈還處于非常早期的階段,不僅尚未形成統(tǒng)一的技術(shù)標(biāo)準(zhǔn),而且各種技術(shù)方案還在快速發(fā)展中,主要還停留在原型設(shè)計(jì)階段。這既是后發(fā)國(guó)家的挑戰(zhàn),也是機(jī)會(huì)。

因?yàn)闆]有實(shí)踐經(jīng)驗(yàn),所以做區(qū)塊鏈帶來的成本和帶來的收益沒有可靠的驗(yàn)證。以區(qū)塊鏈?zhǔn)紫壬孀愕慕鹑陬I(lǐng)域?yàn)槔?。之前傳統(tǒng)的基礎(chǔ)設(shè)施投入已經(jīng)超過數(shù)萬億,要建立一套全新的金融架構(gòu)和基礎(chǔ)設(shè)施是需要有實(shí)際數(shù)據(jù)相支撐的。我們需要第一個(gè)吃螃蟹的人。
最后一個(gè)問題是產(chǎn)業(yè)變革和技術(shù)變革時(shí)期,任何領(lǐng)域的共性問題:區(qū)塊鏈行業(yè)極其缺乏人才,缺少大量既了解區(qū)塊鏈,又了解具體行業(yè)的人才,跨界的高級(jí)人才越來越重要。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容