在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 業(yè)界動態(tài) > 比特幣和區(qū)塊鏈的學(xué)術(shù)譜系

            比特幣和區(qū)塊鏈的學(xué)術(shù)譜系

            作者: 時間:2018-02-13 來源:網(wǎng)絡(luò) 收藏

              溫斯頓·邱吉爾說過一句名言,大概意思是:你回首看得越遠(yuǎn),你向前也會看得越遠(yuǎn)。印證了這句話:的非凡和成功之處不在于它處于任何組件研究的前沿,而在于它整合了許多不相關(guān)領(lǐng)域的舊創(chuàng)意。

            本文引用地址:http://www.biyoush.com/article/201802/375814.htm

              本文回顧了的學(xué)術(shù)譜系,展示了其組合創(chuàng)新的典范。文章雖然很長,但著墨之處,句句都切中技術(shù)演進(jìn)中的關(guān)鍵點(diǎn)??v觀全文,如下圖目錄所示,讀者很容易建立比特幣技術(shù)路線的整體圖景。文章分別梳理總賬本,貨幣,礦工的技術(shù)路線,層層遞進(jìn),闡述這三個不同領(lǐng)域的技術(shù)積累如何匯集于比特幣這一神奇的創(chuàng)意。

              值得一提的是,關(guān)于分布式一致性和共識機(jī)制,目前主流的分布式技術(shù),包括各種云計算解決方案,都沒有直面拜占庭故障,那么基于大規(guī)模P2P網(wǎng)絡(luò)結(jié)構(gòu)的比特幣是如何解決這些問題呢?以及又是如何激勵節(jié)點(diǎn)參與共識呢?相信本文會給你精彩的答案!

              如果你已經(jīng)在媒體上看到過比特幣,并且對密碼學(xué)領(lǐng)域的學(xué)術(shù)研究有一定的了解,那么你可能會有如下的印象:從David Chaum開始(文獻(xiàn)10,12),幾十年來很多人對數(shù)字現(xiàn)金(digital cash)的努力研究,最終都沒有獲得商業(yè)上的成功。因為這些工作需要一個集中的銀行服務(wù)器來控制系統(tǒng),而沒有任何一家銀行愿意為其背書。隨著比特幣的出現(xiàn),提出了一種不需要銀行的去中心化加密貨幣(cryptocurrency)方案,數(shù)字現(xiàn)金(digital cash)終于大獲成功。比特幣的發(fā)明者,神秘的中本聰,并不是一個學(xué)術(shù)界的人,比特幣與早期的學(xué)術(shù)方案并無相似之處。

              *譯注:David Chaum,數(shù)字現(xiàn)金之父,早在1983年,在比特幣出現(xiàn)的25年前,David Chaum發(fā)明了數(shù)字現(xiàn)金(digital cash)。

              本文認(rèn)為,幾乎所有比特幣的技術(shù)組件都起源于20世紀(jì)80年代和90年代的學(xué)術(shù)文獻(xiàn)(見圖1)。 這并不是為了削弱中本聰?shù)某删停侵赋鏊驹诰奕说募绨蛏稀?事實上,通過追溯比特幣思想的起源,我們可以將中本聰洞察力的真正飛躍歸結(jié)為一個特定的,復(fù)雜的方式——一種組合創(chuàng)新(把底層組件整合在一起)的方式。這有助于解釋為什么比特幣花了這么長時間才被發(fā)明。已經(jīng)熟悉比特幣工作原理的讀者可以從這個歷史回溯中獲得更深入的了解(更多介紹,參考Arvind和Narayanan等人的Bitcoinand Cryptocurrency Technologies(文獻(xiàn)36)。 比特幣的思想文化史也可以作為一個展示學(xué)術(shù)界、外部研究者和從業(yè)者之間合作關(guān)系的研究案例,并且為這些不同的群體之間如何彼此合作獲益提供經(jīng)驗教訓(xùn)。

              *譯注:比特幣可謂組合式創(chuàng)新的典范。

              1 總賬本(The Ledger)

              如果你擁有安全的總賬本,那么將其用于數(shù)字支付系統(tǒng)的過程很簡單。例如,如果Alice通過PayPal給Bob 100美元,則PayPal從Alice的賬戶中扣除100美元,并將100美元存入Bob的賬戶。這大體上和傳統(tǒng)銀行業(yè)務(wù)中發(fā)生的事情差不多,雖然銀行的復(fù)雜業(yè)務(wù)之間并沒有一個共享的總賬本。

              總賬本的概念是理解比特幣的起點(diǎn)。它記錄了系統(tǒng)發(fā)生的所有事務(wù),并且對系統(tǒng)的所有參與者開放,并被他們信賴。比特幣將系統(tǒng)的支付記錄轉(zhuǎn)換為貨幣記錄。在銀行業(yè)務(wù)中,賬戶余額代表可以從銀行取出來的現(xiàn)金,但一個比特幣代表什么?就目前而言,比特幣代表包含固定價值的一次買賣(交易)。

              在互聯(lián)網(wǎng)這樣參與者之間可能互不信任的環(huán)境中,怎樣才能如何建立一個總賬本?讓我們從簡單的部分開始:數(shù)據(jù)結(jié)構(gòu)的選擇。這個數(shù)據(jù)結(jié)構(gòu)必須滿足一定的屬性要求——總賬本應(yīng)該是不可變的。更準(zhǔn)確地說,只能增加:可以添加新的交易,但不能刪除、修改或?qū)σ延薪灰字匦屡判?。除此之外,還需要一種方法來獲得總賬本狀態(tài)的密碼摘要。摘要是一個簡短的字符串,可以避免存儲整個總賬本。如果總賬本被篡改,所產(chǎn)生的摘要必然會發(fā)生變化,從而可以檢測到篡改。 需要這些屬性的原因是:與存儲在單個機(jī)器上的常規(guī)數(shù)據(jù)結(jié)構(gòu)不同,總賬本是由相互不信任的一組參與者共同維護(hù)的全局?jǐn)?shù)據(jù)結(jié)構(gòu)。 這與去中心化數(shù)字總賬本(decentralizing digital ledgers, 文獻(xiàn)7,13,21)的方法是不同的,在分布式數(shù)字總賬本中,參與者維護(hù)本地總賬本,并且由用戶查詢這些總賬本來解決沖突。

              1.1鏈?zhǔn)綍r間戳(Linked timestamping)

              比特幣的總賬本數(shù)據(jù)結(jié)構(gòu)有修改的借用了從1990年到1997年間由Stuart Haber和Scott Stornetta撰寫的一系列論文(他們1991年的論文還有另一個合著作者Dave Bayer,文獻(xiàn)5,22,23)。我們能夠知道這些歷史淵源是因為中本聰在他的比特幣白皮書(文獻(xiàn)34)中如此提及的。Stuart Haber和Scott Stornetta的主要工作是處理時間戳的文檔化——他們的目的是建立一個“數(shù)字公證”的服務(wù)。對于專利,商業(yè)合同和其他文件,人們可能希望確定該文件是在或不遲于某個時間點(diǎn)創(chuàng)建的。Stuart Haber和Scott Stornetta的文檔概念是非常泛化的,可以是任何類型的數(shù)據(jù)。他們確實提到金融交易是潛在的應(yīng)用,但這不是他們關(guān)注的焦點(diǎn)。

              Stuart Haber和Scott Stornetta方案的簡化版本中,文檔被不斷創(chuàng)建和廣播。每個文檔的創(chuàng)建者聲明一個創(chuàng)建時間(并簽名文檔)、文檔的時間戳和前一個廣播文檔。前一個廣播文檔已經(jīng)簽署了自己的前任,所以文檔形成了一個很長的倒退鏈。外部用戶不能改變時間戳的信息,因為它由創(chuàng)建者簽名;創(chuàng)建者也不能在不改變整個跟隨信息鏈的情況下改變時間戳的信息。因此,如果通過可信來源(例如,另一個用戶或?qū)iT的時間戳服務(wù))獲得鏈中的單個項目,那么該時刻之前的整個鏈?zhǔn)擎i定的,不可變,并且在時間上有序。進(jìn)一步,如果你認(rèn)為系統(tǒng)拒絕錯誤創(chuàng)建時間的文檔,則可以合理地保證文檔至少與其聲明一樣久遠(yuǎn)。Further, if you assume that the system rejects documents with incorrect creation times, you can be reasonably assured that documents are at least as old as they claim to be.無論如何,比特幣只是借用Stuart Haber和Scott Stornetta工作的數(shù)據(jù)結(jié)構(gòu),然后重新設(shè)計了安全屬性(通過增加工作量證明,本文稍后介紹)。

              *譯注:進(jìn)一步,如果你認(rèn)為系統(tǒng)拒絕錯誤創(chuàng)建時間的文檔,則可以合理地保證文檔至少與其聲明一樣久遠(yuǎn)。原文:Further, if you assume that the system rejects documents with incorrect creation times, you can be reasonably assured that documents are at least as old as they claim to be.

              在Stuart Haber和Scott Stornetta的后續(xù)文獻(xiàn)中,他們介紹了使這個數(shù)據(jù)結(jié)構(gòu)更加有效和高效的其他方案(其中一些在第一篇論文中有暗示)。首先,可以使用哈希而不是簽名來創(chuàng)建文檔之間的鏈接;因為哈希更簡單,計算速度更快。這樣的鏈接被稱為哈希指針。其次,不是單獨(dú)對文檔進(jìn)行線程化處理(如果幾乎同時創(chuàng)建多個文檔,效率可能會很低),它們可以分為批處理組或區(qū)塊,每個區(qū)塊中的文檔具有基本相同的時間戳。第三,在每個區(qū)塊內(nèi),文檔可以用一個哈希指針的二叉樹連接在一起,稱為Merkle樹,而不是一個線性鏈。順便提一下,在Stuart Haber和Scott Stornetta的第一篇論文發(fā)表的6年之后,即1991年,Josh Benaloh和Michael de Mare獨(dú)立地提出了這三個方案。

              1.2梅克爾樹(Merkle trees)

              比特幣本質(zhì)上使用Josh Benaloh和Michael de Mare在1991年和1997年提出的數(shù)據(jù)結(jié)構(gòu)(中本聰大概不了解Josh Benaloh和Michael de Mare的工作),圖2以簡化的形式表示。當(dāng)然,在比特幣中,交易取代了文檔。在每個塊的Merkle樹中,葉節(jié)點(diǎn)是交易,每個內(nèi)部節(jié)點(diǎn)由兩個指針組成。這個數(shù)據(jù)結(jié)構(gòu)有兩個重要的屬性。首先,最新塊的哈希作為摘要。對任何交易(葉節(jié)點(diǎn))的更改都需要將更改一直傳播到塊根,以及所有后續(xù)塊的根。因此, 如果你知道最新的哈希值,你可以從不受信任的來源下載余下的總賬本,并驗證是否改 變。 類似的觀點(diǎn)建立了數(shù)據(jù)結(jié)構(gòu)的第二個重要屬性 ——也就是說, 某人可以簡單有效地向你證明某個特定的交易包含在總賬本中。 這個用戶只須向你發(fā)送該交易塊中的少量節(jié)點(diǎn)(這是Merkle樹的特點(diǎn)),以及每個后續(xù)塊的少量信息。高效地證明事務(wù)的包含能力對于性能和可伸縮性是非常需要的。

              *譯注:Ralph Merkle,生于美國,計算機(jī)科學(xué)家,對于公開密鑰加密技術(shù)有重大貢獻(xiàn)。后來研究方向轉(zhuǎn)至于納米科技以及人體冷凍技術(shù)。

              便說一下,Merkle樹是由對稱密碼學(xué)的先驅(qū)Ralph Merkle命名。Ralph Merkle在1980年的論文(文獻(xiàn)33)中提出了這個想法。他的目標(biāo)應(yīng)用是生產(chǎn)數(shù)字簽名證書的公共目錄摘要。例如,當(dāng)一個網(wǎng)站向你提供一個證書時,它也可以提供證書顯示在全局目錄中的簡短證明。只要你知道證書目錄中Merkle樹的根哈希,就可以高效地驗證證明。 這個想法在密碼標(biāo)準(zhǔn)中是古老的,但它的力量只有在最近才被認(rèn)可。 它是最近實施的證書透明系統(tǒng)(文獻(xiàn)30)的核心。2015年的一篇論文提出了CONIKS,將Merkle樹應(yīng)用于端到端加密電子郵件的公鑰目錄(文獻(xiàn)32)。 對全局狀態(tài)的部分進(jìn)行高效的驗證是總賬本在新的加密貨幣(cryptocurrency) “以太坊(Ethereum)”中提供的關(guān)鍵功能之一。

              比特幣可能是Josh Benaloh和Michael de Mare數(shù)據(jù)結(jié)構(gòu)在真實世界中最著名的應(yīng)用實例,但它并不是第一個。至少有兩家公司 ——從90年代中期開始的Surety,從2007年開始的Guardtime ——用到了文檔時間戳服務(wù)。這些服務(wù)都有一個有趣的交集(An interesting twist)是Bayer, Haber, and Stornetta(文獻(xiàn)5)提到的一個想法,這個想法是在報紙上以廣告的形式定期刊登Merkle根。圖3顯示了由Guardtime發(fā)布的Merkle根。

              1.3拜占庭容錯(Byzantine fault tolerance)

              當(dāng)然,沒有中心權(quán)威的互聯(lián)網(wǎng)貨幣的要求更為嚴(yán)格。分布式賬本將不可避免地存在分叉,這意味著一些節(jié)點(diǎn)會認(rèn)為A塊是最新的塊,而其他節(jié)點(diǎn)會認(rèn)為B塊是最新的塊。這可能是因為攻擊者試圖破壞總賬本的操作;也可能僅僅是因為網(wǎng)絡(luò)延遲,不同的節(jié)點(diǎn)不知道對方的塊,偶爾會在同時產(chǎn)生塊。僅僅依靠鏈?zhǔn)綍r間戳解決分叉是不夠的,這由Mike在1998年的文章中證明(文獻(xiàn)26)。

              一個不同的研究領(lǐng)域——容錯分布式計算——已經(jīng)研究了這個問題,其中包括狀態(tài)復(fù)制(state replication)在內(nèi)的不同名稱。解決這個問題的方法是使一組節(jié)點(diǎn)以相同的順序應(yīng)用相同的狀態(tài)轉(zhuǎn)換——通常,精確的順序無關(guān)緊要,只要所有的節(jié)點(diǎn)都是一致的。對于數(shù)字貨幣(digital currency),要復(fù)制的狀態(tài)是一組余額,交易是狀態(tài)轉(zhuǎn)換。早期的解決方案,包括由圖靈獎得主Leslie Lamport于1989年(文獻(xiàn)28,29)提出的Paxos——當(dāng)通信信道不可靠時,少數(shù)節(jié)點(diǎn)可能會出現(xiàn)某些“realistic”的故障,例如永遠(yuǎn)離線或重新啟動,收到最初離線時發(fā)送的過時消息等——會考慮狀態(tài)復(fù)制。隨后,產(chǎn)生了大量的文獻(xiàn),主要是應(yīng)對更為復(fù)雜(敵對/不利)環(huán)境和針對效率的權(quán)衡(tradeoff)。

              一系列相關(guān)的工作研究了網(wǎng)絡(luò)大多可靠的情況(消息以有限的延遲傳遞),但是“錯誤”的定義被擴(kuò)展為處理與協(xié)議的任何偏離(any deviation)。這種拜占庭式的錯誤包括自然發(fā)生的錯誤以及惡意制造的行為。早在1982年(文獻(xiàn)27),Lamport與Robert Shostak和Marshall Pease發(fā)表了一篇論文:《拜占庭將軍問題》。之后在1999年,Miguel Castro和Barbara Liskov發(fā)表了一篇里程碑式的論文引入了PBFT(practical Byzantine fault tolerance)同時容納了拜占庭故障和不可靠的網(wǎng)絡(luò)(文獻(xiàn)8)。 與鏈?zhǔn)綍r間戳相比,有關(guān)容錯文獻(xiàn)的數(shù)量是巨大的,包括Paxos,PBFT和其他重要協(xié)議的數(shù)百種變體和優(yōu)化。

              中本聰在他最初的白皮書中沒有引用BFT的文獻(xiàn)或者使用它的語言。他使用了一些概念,將協(xié)議作為一種共識機(jī)制,并以攻擊者的形式以及節(jié)點(diǎn)加入和離開網(wǎng)絡(luò)的方式來考慮故障問題。 這與他明確聲明參考鏈?zhǔn)綍r間戳的文獻(xiàn)(包括工作量證明,下文討論)形成鮮明對比。 當(dāng)被問及關(guān)于比特幣與拜占庭將軍問題(一個需要BFT解決的思想實驗的關(guān)系)的郵件列表討論時,中本聰聲稱工作量證明鏈解決了這個問題(文獻(xiàn)35)。

              在接下來的幾年中,其他學(xué)者從分布式系統(tǒng)的角度研究了中本聰?shù)墓沧R機(jī)制——這仍然是一個正在進(jìn)行的工作。有些人表示,比特幣的屬性是相當(dāng)弱的(文獻(xiàn)43);而另外一些人則認(rèn)為,對于比特幣的一致性屬性來說(文獻(xiàn)40),BFT的觀點(diǎn)并不公平。另一種方法是定義已經(jīng)充分研究的性質(zhì)變體,并證明比特幣滿足它們(文獻(xiàn)19)。最近,這些定義大大加強(qiáng)了,以提供一個更為標(biāo)準(zhǔn)的一致性定義,且該定義為消息傳遞保留更多現(xiàn)實性假設(shè)(文獻(xiàn)37)。然而,所有這些工作都假設(shè)部分參與者的行為是“誠實”(例如,協(xié)議兼容)的,而中本聰則認(rèn)為,沒有必要盲目地假設(shè)行為是誠實的,因為行為是被激勵的。 對中本聰?shù)募罟沧R機(jī)制的全面分析并不適合過去的容錯系統(tǒng)模型。

              2 工作量證明(Proof of Work)

              幾乎所有的容錯系統(tǒng)都假定系統(tǒng)中的大多數(shù)或絕大多數(shù)(如超過一半或三分之二)的節(jié)點(diǎn)都是誠實和可靠的。在一個開放的對等網(wǎng)絡(luò)中,沒有節(jié)點(diǎn)的注冊,節(jié)點(diǎn)可以自由地加入和離開。因此,攻擊者可以創(chuàng)建足夠多的Sybils或sockpuppet節(jié)點(diǎn)來打破系統(tǒng)的一致性保證。Sybil攻擊是由John Douceur在2002年正式形式化,并借助于密碼學(xué)基礎(chǔ)設(shè)施——工作量證明——來化解它。

              2.1起源(The origins)

              為了理解工作量證明,我們來看看它的起源。今天被稱為工作量證明的第一次提出是由Cynthia Dwork和Moni Naor于1992年創(chuàng)建的。他們的目標(biāo)是阻止垃圾郵件。請注意,垃圾郵件,Sybil攻擊和拒絕服務(wù)都是大致類似的問題:與常規(guī)用戶相比,攻擊者通過網(wǎng)絡(luò)增大其影響力。工作量證明適用于三方防御。在Cynthia Dwork和Moni Naor的設(shè)計中, 電子郵件收件人只會處理那些附帶有證明——發(fā)件人執(zhí)行了適量計算工作——的電子郵件,即“工作量證明”。 計算工作量證明在普通計算機(jī)上可能需要幾秒鐘的時間。因此,對普通用戶來說不會造成任何困難,但是對于垃圾郵件發(fā)送者,在使用等效硬件的條件下,希望發(fā)送一百萬封電子郵件則需要幾周的時間,

              請注意, 工作量證明(也稱為難題解決)必須特定于電子郵件以及收件人。 否則,垃圾郵件發(fā)送者將能夠向同一個收件人發(fā)送多個郵件(或者向多個收件人發(fā)送相同的郵件),而成本和一對一發(fā)送是一樣的。第二個重要的特點(diǎn)是它應(yīng)該給收件人僅造成最小的計算負(fù)擔(dān);難題解決方案應(yīng)該是易于驗證的 ,無論他們計算多么困難。此外,Cynthia Dwork和Moni Naor認(rèn)為帶有后門的功能——這是中心權(quán)威機(jī)構(gòu)所知道的一個秘密——可以讓權(quán)威機(jī)構(gòu)在不做工作量證明的情況下解決問題。一個可能的應(yīng)用程序后門是為權(quán)威機(jī)構(gòu)開放一個發(fā)送郵件不產(chǎn)生成本的郵件列表。Cynthia Dwork和Moni Naor的提案包含三個滿足其性質(zhì)的候選難題,并啟動了整個研究領(lǐng)域,我們將再次回到這個主題。

              2.2哈希現(xiàn)金(Hashcash)

              一個非常類似的名為hashcash的想法是在1997年由當(dāng)時是cypherpunk社區(qū)的博士后研究員Adam Back獨(dú)立發(fā)明的。Cypherpunk社員是反政府和反中心機(jī)構(gòu)力量的活動家,并致力于通過密碼學(xué)推動社會和政治變革。Adam Back是注重實踐的人:他首先發(fā)布的是hashcash軟件,五年后的2002年才發(fā)布Internet草案(標(biāo)準(zhǔn)化文件)和論文(文獻(xiàn)4)。

              Hashcash比Cynthia Dwork和Moni Naor的想法簡單得多:它沒有后門,也不需要中心權(quán)威,它只使用哈希函數(shù)而不是數(shù)字簽名。 Hashcash基于一個簡單的原理:哈希函數(shù)在某些實際用途中表現(xiàn)為隨機(jī)函數(shù),這意味著找到哈希到特定輸出的輸入的唯一方法是嘗試各種輸入,直到產(chǎn)生期望的輸出為止。而且,找到哈希到任意一組輸出的輸入的唯一方法是再次逐個嘗試對不同的輸入進(jìn)行哈希。 所以,如果讓你嘗試找到一個輸出哈希值以10個零開始的輸入(二進(jìn)制),你將不得不嘗試大量的輸入,你會發(fā)現(xiàn)每個輸出從10個零開始的機(jī)會都是(1/2)^10,這意味著你將不得不嘗試(2)^10個輸入的順序,或大約1000個哈希計算。

              顧名思義,在hashcash中,Adam Back把工作量證明看作一種貨幣形式。在他的網(wǎng)站上,他把這種貨幣定位為David Chaum的DigiCash實現(xiàn)選擇之一——一個由銀行向用戶發(fā)放無法追蹤的數(shù)字現(xiàn)金(digital cash)的系統(tǒng)。他甚至在技術(shù)設(shè)計上做了一些權(quán)衡設(shè)計,使其顯得更像一種貨幣。后來,Adam Back評論認(rèn)為比特幣就是hashcash的直接擴(kuò)展。但是,hashcash并不是現(xiàn)金,因為它沒有防止雙重支出(雙花)的保護(hù)。Hashcash的令牌不能在對等同伴之間交換。

              同時,在學(xué)術(shù)領(lǐng)域中,研究人員發(fā)現(xiàn),除了垃圾郵件之外, 工作量證明還有很多應(yīng)用場景 ,例如防止拒絕服務(wù)攻擊(文獻(xiàn)25),確保網(wǎng)絡(luò)分析的真實性(文獻(xiàn)17),速率限制密碼在線猜測(文獻(xiàn)38)等。順便說一句,工作量證明這個詞是有由Markus Jakobsson和Ari Juels在1999年撰寫的一篇論文中首次提出來的,這篇論文也是到那時為止對這一研究的很好綜述(文獻(xiàn)24)。值得注意的是,這些研究人員似乎并不知道到hashcash,各自獨(dú)立地朝著基于哈希的工作量證明的方向匯集,這在Eran Gabber等人的論文以及Juels(文獻(xiàn)18)和Brainard(文獻(xiàn)25)的論文中都有提及(本文中使用的許多術(shù)語是在有關(guān)論文發(fā)表后很長時間才成為標(biāo)準(zhǔn)術(shù)語的)。

              側(cè)邊欄:Sybil-對抗網(wǎng)絡(luò)(Sybil-resistant networks)

              John Douceur在他關(guān)于Sybil攻擊的論文中提出,所有參與BFT協(xié)議的節(jié)點(diǎn)都需要解決hashcash難題。如果一個節(jié)點(diǎn)偽裝成N個身份,將無法及時解決N個難題,其偽造的身份將被清除。然而,惡意節(jié)點(diǎn)仍然可以獲得比只聲稱單一身份的誠實節(jié)點(diǎn)有更多的優(yōu)勢。2005年發(fā)布的后續(xù)文章(文獻(xiàn)1)中提出,誠實的節(jié)點(diǎn)應(yīng)該反過來模仿惡意節(jié)點(diǎn)的行為,并聲稱其計算能力能夠承擔(dān)的盡可能多的虛擬身份。 利 用這些虛擬身份執(zhí)行BFT協(xié)議,原來的假設(shè)“最多只有部分f節(jié)點(diǎn)故障”可以用“由故障節(jié)點(diǎn)控制的總計算能力的分?jǐn)?shù)至多為f ”來代替。 因此,不再需要驗證身份,并且開放的對等網(wǎng)絡(luò)可以運(yùn)行BFT協(xié)議,比特幣恰好使用了這個想法,但中本聰提出了一個進(jìn)一步的問題:什么激勵節(jié)點(diǎn)執(zhí)行昂貴的工作量證明計算呢?答案需要進(jìn)一步的飛躍:數(shù)字貨幣(digital currency)。

              2.3工作量證明和數(shù)字現(xiàn)金:雙環(huán)困境(Proof of work and digital cash: A catch-22)

              你可能知道,作為反垃圾郵件措施, 工作量證明沒有成功應(yīng)用于其發(fā)源的應(yīng)用。 一個可能的原因是不同設(shè)備解決難題的速度有巨大差異。這意味著垃圾郵件發(fā)送者可以用小額的投資來定制硬件,就可以將濫發(fā)垃圾郵件的速率提高幾個數(shù)量級。 在經(jīng)濟(jì)學(xué)中,對生產(chǎn)成本不對稱的自然反應(yīng)是進(jìn)行貿(mào)易——即,工作量證明的交易市場。 但是,這里就是一個 雙環(huán)困境 (catch-22),因為這將需要一個可以工作的數(shù)字貨幣(digital currency)。事實上,正是因為缺乏這樣的貨幣,導(dǎo)致了工作量證明使用的最大動機(jī)不足。這個問題的一個粗暴的解決辦法是宣布難題解決方案是現(xiàn)金,正如hashcash試圖做的那樣。

              *譯注:雙環(huán)困境,一般指互相抵觸之規(guī)律或條件所造成的無法脫身的困窘;或者是不合邏輯的或矛盾的問題。例如這就是一個相互矛盾的困窘:沒有人想要支持你除非你已經(jīng)成功了,但是如果沒有人支持,你怎么可能成功呢?

              在比特幣之前的兩篇文章中發(fā)現(xiàn)了更為清晰的方案來將難題解決作為現(xiàn)金來處理,文章分別描述了b-money(文獻(xiàn)13)和bit gold(文獻(xiàn)42)。這些方案提供時間戳服務(wù),用來簽署錢的創(chuàng)建(通過工作量證明),并且一旦創(chuàng)建了錢,就可以簽署轉(zhuǎn)賬。但是,如果服務(wù)器或節(jié)點(diǎn)之間出現(xiàn)總賬本不一致的情況,文章則沒有給出明確的解決辦法。依靠多數(shù)原則來決定似乎是兩位作者的文章的隱含之意,但是由于Sybil問題,這些機(jī)制并不是很安全,除非有一個gatekeeper控制網(wǎng)絡(luò)的進(jìn)入,或者Sybil對抗本身是通過工作量證明來實現(xiàn)的。

              3 組合創(chuàng)新(Putting it all together)

              通過了解所有這些貢獻(xiàn)了比特幣各種設(shè)計細(xì)節(jié)的前輩,你會體會到中本聰真正天才般的創(chuàng)新。在比特幣中,難題解決方案不能自我構(gòu)建成為現(xiàn)金,相反,他們只是用來保護(hù)總賬本。而工量作證明的解決是由專門的實體稱為礦工來完成的(雖然中本聰?shù)凸懒藢I(yè)采礦將如何實現(xiàn))。

              礦工們需要不斷地相互競爭,尋找下一個難題解決方案。每個礦工都要解決這個難題的一個稍微不同的變體,因此成功的機(jī)會與礦工控制的全球采礦能力的一部分成正比。解決難題的礦工貢獻(xiàn)了基于鏈?zhǔn)綍r間戳的總賬本的下一個批次,或者區(qū)塊(即下一個交易)。通過維護(hù)和交換總賬本,貢獻(xiàn)一個區(qū)塊的礦工將會獲得一個新挖到貨幣的一份獎勵。很有可能的是,如果一名礦工貢獻(xiàn)了一個無效的區(qū)塊或交易,將會被大多數(shù)其他貢獻(xiàn)下一區(qū)塊的礦工拒絕,從而使無效區(qū)塊的獎勵失效。這樣,由于金錢上的激勵,礦工們確保了彼此都遵循同樣的協(xié)議。

              比特幣巧妙地避免了困擾“工作量即現(xiàn)金(proof-of-work-as-cash)”機(jī)制的雙重支出(double-spending,雙花)問題,因為它避開了難題解決方案本身的價值。 事實上,比特幣實現(xiàn)了難題解決方案與經(jīng)濟(jì)價值的兩倍脫鉤:生產(chǎn)一個區(qū)塊所需的工作量是一個浮動參數(shù)(與全球采礦能力成正比),而且更進(jìn)一步每個區(qū)塊發(fā)放的比特幣數(shù)也不是固定的。 區(qū)塊獎勵(也就是新的比特幣是如何挖出的)每四年設(shè)定一半(在2017年,獎勵是12.5比特幣/塊,從最初50比特幣/塊減半而來)。比特幣包含了一個額外的獎勵計劃——即交易發(fā)起者向具有包含該交易的區(qū)塊的礦工支付交易費(fèi)用,并且期望由市場決定交易費(fèi)用和礦工的報酬。

              那么, 中本聰?shù)奶觳挪⒉皇潜忍貛诺娜魏螁蝹€組成部分,而是創(chuàng)造了一種復(fù)雜方式——把各種技術(shù)融合在一起為整個系統(tǒng)注入生命活力。 客觀的說, 時間戳和拜占庭協(xié)議的研究人員沒有觸及節(jié)點(diǎn)激勵問題,直到2005年,也沒有使用工作量證明來消除節(jié)點(diǎn)身份問題 。 反過來說, hashcash,b-money和bit gold的作者并沒有吸收共識/一致性算法的思想來解決雙重支出(雙花)問題 。在比特幣中,一個安全的總賬本才能防止雙重支出(雙花)問題,從而確保貨幣有價值。有價值的貨幣才能獎勵礦工,然后保證采礦力量的強(qiáng)度才能保證總賬本的安全。如果沒有足夠采礦力量,一個對手可能會占據(jù)全球50%以上的采礦能力,從而能夠比網(wǎng)絡(luò)的其他部分更快地生成數(shù)據(jù)塊,然后雙重支付交易,并有效地重寫歷史記錄,使得整個系統(tǒng)赤字。因此, 比特幣是自舉的,在總賬本,貨幣,礦工這三個組件之間有一個閉環(huán)的依賴關(guān)系。 中本聰面臨的挑戰(zhàn)不僅僅在于設(shè)計,而是能夠說服最初的用戶和礦工社區(qū)一起,面向未知的時代,縱身一躍:那個時候比薩的價格超過了10000比特幣,網(wǎng)絡(luò)的采礦能力還不到今天的萬億分之一。

              側(cè)邊欄:智能合約(Smart contracts)

              一個智能合約就是把數(shù)據(jù)放在一個安全的總賬本中,并將智能合約擴(kuò)展到計算。換句話說,它是一個公開指定程序正確執(zhí)行的共識協(xié)議。用戶可以調(diào)用智能合約程序中的功能,并服從程序指定的任何限制,并且功能代碼由礦工串聯(lián)執(zhí)行。用戶可以信任輸出而不必重做計算,并可以編寫自己的程序來處理其他程序的輸出。通過與加密貨幣(cryptocurrency)平臺相結(jié)合,智能合約尤其強(qiáng)大,因為上述程序可以處理資金——擁有,轉(zhuǎn)讓,銷毀,在某些情況下甚至可以打印。

              比特幣實現(xiàn)一種限制性編程語言作為智能合約。一個“標(biāo)準(zhǔn)”交易(即將貨幣從一個地址轉(zhuǎn)賬另一個地址的交易)就是用這種語言實現(xiàn)的簡短腳本。以太坊(Ethereum)提供更寬容和強(qiáng)大的語言。

              智能合約的想法是由Nick Szabo在1994年提出的(文獻(xiàn)41),因為可以類比于法律合同(智能合約比法律合同多了自動執(zhí)行的功能),所以命名為智能合約。Nick Szabo早就預(yù)見性(這個觀點(diǎn)已經(jīng)被Karen Levy (文獻(xiàn)31)和Ed Felten 所批評(文獻(xiàn)16))的提出了 智能合約作為數(shù)字現(xiàn)金協(xié)議的擴(kuò)展,并且認(rèn)識到拜占庭協(xié)議和數(shù)字簽名(等等)可以作為構(gòu)建模塊。 加密貨幣的成功使智能合約成為現(xiàn)實,對這個話題的研究也開始興起。例如,編程語言研究人員已經(jīng)調(diào)整了他們的方法和工具,以自動發(fā)現(xiàn)智能合同中的錯誤并寫出可校驗正確的智能合約。

              3.1公鑰即身份(Public keys as identities)

              本文基于這樣一個理解:一個安全的總賬本使創(chuàng)建數(shù)字貨幣(digital currency)更加容易。讓我們再回顧這個斷言。當(dāng)Alice希望支付Bob時,她將交易廣播給所有的比特幣節(jié)點(diǎn)。一個交易只不過是一個字符串:一個聲明“Alice希望支付給Bob一些錢”并由Alice簽名。最終,這個聲明被礦工記入總賬本,交易即成為現(xiàn)實。請注意,這個過程中并不要求Bob以任何方式參與。但是讓我們把注意力放在這次交易的缺席者:顯然缺席的是Alice和Bob的身份;相反,交易只包含他們各自的公鑰。 這就是比特幣的一個重要的概念:公鑰是系統(tǒng)中唯一的身份。 交易向公鑰傳入或者傳出價值,這個公約就稱為地址。

              *譯者注:從這個地址概念的引入,對比傳統(tǒng)的分布式系統(tǒng),中本聰?shù)膭?chuàng)新很巧妙。

              為了能夠“說出”一個身份,你必須知道相應(yīng)的密鑰。你可以隨時創(chuàng)建一個新的身份——方法是生成一個新的密鑰對——而不需要中心機(jī)構(gòu)或注冊機(jī)構(gòu)。你不需要申請用戶名或通知其他人你已選擇了特定的名稱——這是去中心化身份管理的概念——比特幣沒有指定Alice如何告訴Bob她的化名(Pseudonyms)是什么,這是系統(tǒng)外部的。

              與當(dāng)今大多數(shù)其他支付系統(tǒng)截然不同,這些想法相當(dāng)“古老”,可以追溯到數(shù)字現(xiàn)金(digital cash)之父David Chaum。實際上,David Chaum也對匿名網(wǎng)絡(luò)做了開創(chuàng)性的貢獻(xiàn),正是在這個背景下,他發(fā)明了這個“數(shù)字化名”( Digital Pseudonyms)這個創(chuàng)意。在他1981年的論文“Untraceable Electronic Mail, Return Addresses, and Digital Pseudonyms(文獻(xiàn)9)” 他說:“數(shù)字化名”是一個公鑰,用來驗證由相應(yīng)私鑰的匿名持有者是否取得簽名。

              現(xiàn)在, 只有通過公鑰才知道收件人是一個明顯的問題:無法將郵件路由到正確的計算機(jī)。 這導(dǎo)致了David Chaum方案的效率極低:匿名交易,不能消除。與集中支付系統(tǒng)相比,比特幣同樣效率極低:包含每個交易的總賬由系統(tǒng)中的每個節(jié)點(diǎn)維護(hù)。無論如何,比特幣選擇了安全而同時選擇了低效率,從而實現(xiàn)了“免費(fèi)”的匿名性(即公鑰作為身份)。David Chaum在1985年的論文(文獻(xiàn)11),把這些想法推進(jìn)了一步,他提出了一種基于普遍“化名”隱私保護(hù)電子商務(wù)愿景,以及數(shù)字現(xiàn)金(digital cash)背后的關(guān)鍵思想——“盲簽名(blind signatures)”。

              “公鑰即身份”的思想也存在于前面討論過的比特幣的先驅(qū)性質(zhì)的文獻(xiàn)中:b-money 和 bit gold。但是,大部分工作都建立在David Chaum的基礎(chǔ)上,而David Chaum自己后來的工作(包括電子現(xiàn)金)都偏離了這個想法。Cypherpunk社區(qū)對隱私保護(hù)的通訊和商務(wù)有濃厚的興趣,他們擁抱了他們稱之為nyms的“化名”。但對他們來說,nyms不僅僅是密碼身份(即公鑰),而是通常與公鑰相關(guān)的電子郵件地址。同樣,伊恩·戈德堡(Ian Goldberg)的論文——后續(xù)匿名通訊工作的基礎(chǔ)——贊成David Chaum的觀點(diǎn),但是認(rèn)為“化名”nyms應(yīng)該是人們?nèi)菀子涀〉挠米C書綁定的綽號。因此,比特幣被證明是David Chaum思想最成功的例子。

              4 (The Blockchain)

              到目前為止,本文沒有提到。如果你相信炒作,區(qū)塊鏈?zhǔn)潜忍貛诺闹饕l(fā)明??赡軙屇愦蟪砸惑@的是,中本聰壓根沒有提到這個詞。實際上,區(qū)塊鏈這個技術(shù)術(shù)語沒有標(biāo)準(zhǔn)的技術(shù)定義,但是被各方用來指稱與比特幣和總賬本有不同程度相似的系統(tǒng)。

              討論受益于區(qū)塊鏈的示例應(yīng)用程序?qū)⒂兄诔吻逶撔g(shù)語的不同用途。首先,考慮一個銀行財團(tuán)之間交易的數(shù)據(jù)庫后端,交易在每天結(jié)束時呈網(wǎng)狀結(jié)構(gòu),賬戶由中央銀行結(jié)算。這樣一個體系有少數(shù)的明確的各方,所以中本聰?shù)墓沧R將是矯枉過正的。也不需要區(qū)塊鏈上的貨幣,因為賬戶是以傳統(tǒng)貨幣計價的。另一方面,鏈?zhǔn)綍r間戳顯然是有用的,至少可以確保在網(wǎng)絡(luò)延遲的情況下實現(xiàn)一致的全局事務(wù)排序。狀態(tài)復(fù)制也是有用的:一家銀行會知道,其本地數(shù)據(jù)副本與中央銀行用來結(jié)算賬戶的數(shù)據(jù)是一樣的。這使銀行擺脫了目前必須執(zhí)行的代價高昂的協(xié)調(diào)過程。

              其次,考慮一個資產(chǎn)管理應(yīng)用程序,例如追蹤金融證券,房地產(chǎn)或任何其他資產(chǎn)所有權(quán)的文檔登記冊。使用區(qū)塊鏈可以提高互操作性,降低進(jìn)入門檻。我們希望有一個安全的全球文檔登記冊,最好能讓公眾參與。這本質(zhì)上是20世紀(jì)90年代和新千年時代的時間戳服務(wù)所提供的。公共區(qū)塊鏈提供了一個特別有效的方法來實現(xiàn)這一點(diǎn)(數(shù)據(jù)本身可能被存儲在鏈外,只有元數(shù)據(jù)存儲在鏈上)。其他應(yīng)用程序也受益于時間戳或“公告板”抽象,最顯著的是電子投票。

              讓我們繼續(xù)資產(chǎn)管理的例子。假設(shè)你想通過區(qū)塊鏈執(zhí)行資產(chǎn)交易,而不是僅僅保存交易記錄。如果資產(chǎn)本身在區(qū)塊鏈以數(shù)字形式發(fā)行,并且區(qū)塊鏈支持智能合約,則可以進(jìn)行交易。在這種情況下, 智能合約解決了確保只有在資產(chǎn)轉(zhuǎn)移時才進(jìn)行支付的“公平交換”問題。 更一般地說,智能合約可以對復(fù)雜的業(yè)務(wù)邏輯進(jìn)行編碼,只要所有必要的輸入數(shù)據(jù)(資產(chǎn),價格等)都在區(qū)塊鏈上表示出來。

              這種區(qū)塊鏈屬性與應(yīng)用程序的映射使我們不僅能夠欣賞其潛力,而且還能夠使我們注入極為需要的懷疑態(tài)度。首先,很多提議的區(qū)塊鏈應(yīng)用,特別是在銀行業(yè),并沒有使用中本聰?shù)墓沧R機(jī)制。相反,他們使用總賬本數(shù)據(jù)結(jié)構(gòu)和拜占庭協(xié)議(這些技術(shù),如前文所述,可以追溯到上個世紀(jì)90年代)。這就暗示了區(qū)塊鏈?zhǔn)且环N新的革命性技術(shù)。相反,圍繞區(qū)塊鏈的嗡嗡聲(buzz)已經(jīng)幫助銀行發(fā)起集體行動來部署共享總賬本技術(shù), 正如“石頭湯(stone soup)”的隱喻。 比特幣也是分散式賬本工作的一個非常明顯的概念證明,并且比特幣核心項目提供了一個便利的代碼庫,可以根據(jù)需要進(jìn)行調(diào)整。

              *譯注: 《石頭湯》是一本根據(jù)法國民間故事改寫的作品,但瓊·穆特把故事的場景設(shè)定在古代中國。三個和尚來到一個飽經(jīng)苦難的村莊,村民們長年在艱難歲月中煎熬,心腸變得堅硬,不愿接納任何人。可是,和尚們用煮石頭湯的方法,讓村民們不知不覺地付出了很多,明白了分享與幸福在真諦。

              瓊·穆特,美國圖畫書作家和畫家曾在日本學(xué)習(xí),醉心于日本和中國傳統(tǒng)文化。創(chuàng)作了很多具有東方哲學(xué)智慧的圖畫書,比如《禪的故事》。

              其次,有一個誤導(dǎo)性的說法:區(qū)塊鏈通常比傳統(tǒng)的文檔登記更安全。要明白為什么,必須把系統(tǒng)或平臺的整體穩(wěn)定性與終端安全(即用戶和設(shè)備的安全性)分開。誠然,區(qū)塊鏈的系統(tǒng)性風(fēng)險可能低于許多中心機(jī)構(gòu),但區(qū)塊鏈的端點(diǎn)安全風(fēng)險遠(yuǎn)遠(yuǎn)高于傳統(tǒng)機(jī)構(gòu)相應(yīng)的風(fēng)險。區(qū)塊鏈交易幾乎是即時的,不可逆轉(zhuǎn)的,而且在公共區(qū)塊鏈中,設(shè)計為匿名交易。在基于區(qū)塊鏈的股票登記中,如果用戶(經(jīng)紀(jì)人或代理人)失去對其私人密鑰的控制權(quán)——只要手機(jī)丟失或在計算機(jī)上安裝了惡意軟件——則用戶將喪失其資產(chǎn)。比特幣黑客、盜竊和詐騙的非凡歷史并不會給人們帶來多大的信心,據(jù)估計,至少有6%的比特幣在流通中被盜過一次(文獻(xiàn)39)。

              側(cè)邊欄:許可區(qū)塊鏈(Permissioned blockchains)

              雖然這篇文章強(qiáng)調(diào)私人和許可區(qū)塊鏈并沒有使用比特幣的大部分創(chuàng)新,但這并不意味著這個領(lǐng)域發(fā)生的有趣工作就很少。許可區(qū)塊鏈限制誰可以加入網(wǎng)絡(luò),寫交易或挖礦(區(qū)塊)。特別是, 如果礦工被限制在一個值得信賴的參與者名單,則可以放棄工作量證明,以利于更傳統(tǒng)的BFT方法。 因此,大部分的研究都是BFT算法的重生,并且可以提出如下問題:我們可以使用哈希樹來簡化共識算法嗎?如果網(wǎng)絡(luò)只能以某種方式出現(xiàn)故障呢?

              此外,圍繞身份和公共密鑰基礎(chǔ)設(shè)施,訪問控制以及存儲在區(qū)塊鏈上的數(shù)據(jù)的機(jī)密性等話題,還有一些重要的考慮因素。這些問題很大程度上不在公共區(qū)塊鏈中出現(xiàn),也沒有被傳統(tǒng)的BFT文獻(xiàn)所研究。

              最后,還有一項工程性工作是提高區(qū)塊鏈的吞吐量,并將其應(yīng)用于各種業(yè)務(wù):比如供應(yīng)鏈管理和金融技術(shù)。

              5 經(jīng)驗總結(jié)(Concluding Lessons)

              這里描述的歷史為從業(yè)人員和專業(yè)學(xué)者提供了豐富(和互補(bǔ))的經(jīng)驗教訓(xùn)。從業(yè)者應(yīng)該對革命性技術(shù)的主張持懷疑態(tài)度。如前文所示,比特幣中那些引起企業(yè)興奮的大多數(shù)想法,例如分布式賬本和拜占庭協(xié)議,可以追溯到20年以上。 認(rèn)識到你的問題可能不需要任何突破性創(chuàng)新——在研究論文中可以找到那些長期被遺忘的解決方案。

              學(xué)術(shù)界似乎有相反的問題,至少在這種情形下:抵制激進(jìn)的,外來的想法。比特幣白皮書的很多想法盡管都可以回溯其譜系,但比大多數(shù)學(xué)術(shù)研究更新穎。而且,中本聰不關(guān)心學(xué)術(shù)同行評議,也沒有完全把它與學(xué)術(shù)歷史聯(lián)系起來。因此在數(shù)年里,學(xué)術(shù)界幾乎完全忽視比特幣。許多學(xué)術(shù)團(tuán)體非正式地認(rèn)為,盡管比特幣事實上在實踐中運(yùn)行的很好,但比特幣不可能基于過去系統(tǒng)的理論模型和經(jīng)驗的來運(yùn)行。

              我們一再看到,研究文獻(xiàn)中的創(chuàng)意可能會逐漸被遺忘或被忽略,特別是如果這些想法是超越它們的時代,甚至在流行的研究領(lǐng)域之外。 從業(yè)者和專業(yè)學(xué)者都應(yīng)該回顧舊的創(chuàng)意,收集當(dāng)前系統(tǒng)的見解。 比特幣的非凡和成功之處不在于它處于任何組件研究的前沿,而在于它整合了許多不相關(guān)領(lǐng)域的舊創(chuàng)意。 要做到這一點(diǎn)并不容易,因為它需要彌合不同的術(shù)語,假設(shè)等,但這是創(chuàng)新的寶貴藍(lán)圖。

              從業(yè)者應(yīng)該能夠識別過度炒作的技術(shù)并因此受益。 識別技術(shù)炒作有一些指標(biāo):難以確定其技術(shù)創(chuàng)新;由于企業(yè)急于把自己的產(chǎn)品附加到流行趨勢上,所以難以確定所謂技術(shù)術(shù)語的含義;難以確定正在解決的問題;最后,要求技術(shù)解決社會問題或者制造經(jīng)濟(jì)/政治動蕩。

              相反,學(xué)術(shù)界卻難以推銷其發(fā)明。例如,不幸的是,最初的工作量證明研究人員沒有得到比特幣的信貸(credit for bitcoin),可能是因為這項工作在學(xué)術(shù)界以外并不為人所知。在學(xué)術(shù)界,諸如發(fā)布代碼和與從業(yè)者合作等活動沒有得到充分的獎勵。事實上, 迄今為止,學(xué)術(shù)工作量證明的原始分支仍然不承認(rèn)比特幣的存在! 與現(xiàn)實世界接觸不僅有助于獲得信貸(credit),而且還會減少輪子再造,并且是找到新創(chuàng)意。



            關(guān)鍵詞: 比特幣 區(qū)塊鏈

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉