區(qū)塊鏈的 “前世今生”
如今,區(qū)塊鏈已成為一個熱門詞匯。在一系列新興的分布式賬本技術(shù)中,區(qū)塊鏈已成為全球最豐富,發(fā)展最快的分布式網(wǎng)絡(luò),例如比特幣,以太坊等,它們是可用于交易和資產(chǎn)交換的可信賴媒介。自2009年推出比特幣以來,區(qū)塊鏈技術(shù)在其價值、可行性、普及度等方面都經(jīng)歷了許多起伏。但是,到2020年,區(qū)塊鏈的可行性已通過各種開創(chuàng)性的用例和技術(shù)得到證明。
回溯過去幾千年的發(fā)展歷程,賬本已經(jīng)成為貿(mào)易的中心,賬本被用作各種資產(chǎn)記錄的保存載體,例如記錄商品、貨幣和財(cái)產(chǎn)的交換。分布式賬本作為這個概念的擴(kuò)展,其本質(zhì)是可以在多個站點(diǎn)、地理區(qū)域或機(jī)構(gòu)之間共享的資產(chǎn)存儲載體。網(wǎng)絡(luò)中的所有參與者都有相同的副本,對賬本的任何更改都會反映給所有人。分布式賬本也已經(jīng)存在了數(shù)千年,第一個實(shí)現(xiàn)是羅馬帝國使用的銀行系統(tǒng),該系統(tǒng)允許人們參與其整個地區(qū)的交易。
九十年代開始,這些思想進(jìn)一步擴(kuò)展到了數(shù)字領(lǐng)域。1991年,一家冰淇淋廠提出了使用許多分散但相互關(guān)聯(lián)的共享賬本副本的概念。Stornetta與Haberto合作開發(fā)了一種密碼安全的存檔,可以在不泄露記錄內(nèi)容的情況下驗(yàn)證記錄。這種機(jī)制使協(xié)作創(chuàng)建數(shù)字分布式賬本的能力遠(yuǎn)遠(yuǎn)超過了基于紙張的賬本。這項(xiàng)早期工作促使了分布式賬本技術(shù)DLT概念的提出,DLT被定義為在沒有中央管理員或集中式數(shù)據(jù)存儲的情況下,在多個站點(diǎn)、國家或機(jī)構(gòu)中復(fù)制、共享和同步數(shù)據(jù)的共識技術(shù)。其中,Distributed Ledger Technology(DLT)各個部分定義如下:
- Distributed:分布式反映了其分散而非集中的特性;
- Ledger:賬本代表了記錄的數(shù)據(jù)庫;
- Technology:技術(shù)定義了用于同步數(shù)據(jù)的協(xié)議,以便數(shù)據(jù)庫可以以分散的方式運(yùn)行,而無需中央機(jī)構(gòu)對其進(jìn)行管理。
就像文中提到的那樣,DLT和區(qū)塊鏈經(jīng)常被用作同義詞,但實(shí)際上,區(qū)塊鏈?zhǔn)荄LT的一種特殊類型,它包含自己的一組規(guī)則和功能,包括將交易組織成一條由區(qū)塊組成的鏈條。區(qū)塊鏈定義了實(shí)現(xiàn)DLT的特定方式,而DLT通常具有更廣泛的范圍和靈活的結(jié)構(gòu)。
像DLT一樣,區(qū)塊鏈?zhǔn)且环N分布式賬本,無需交易中心即可永久存儲不可變也不可否認(rèn)的交易記錄。區(qū)塊鏈中的算法將若干個交易組合形成一個個的區(qū)塊,并將每個區(qū)塊添加到現(xiàn)有的區(qū)塊序列中,顧名思義,形成一個鏈。與傳統(tǒng)的數(shù)據(jù)庫架構(gòu)相反,區(qū)塊鏈要求參與者之間形成共識,新的信息被收集到區(qū)塊中并使用哈希加密簽名鏈接到前面的區(qū)塊后。此過程確保可驗(yàn)證性,因?yàn)樵诓桓墓V档那闆r下無法對信息進(jìn)行操作,并且每個哈希值均構(gòu)成該信息的一部分,被認(rèn)為是唯一代表數(shù)據(jù)內(nèi)容的數(shù)字指紋。
網(wǎng)絡(luò)上的每個節(jié)點(diǎn)都維護(hù)賬本的共享副本,并且為了進(jìn)行同步,需要一個對等網(wǎng)絡(luò)以及一種共識算法來確保在節(jié)點(diǎn)之間添加和復(fù)制區(qū)塊。有一種共識算法稱為工作量證明(Proof of Work, PoW),參加該過程的是稱為礦工的特殊節(jié)點(diǎn),將此證明過程稱為挖礦。在PoW中,礦工通過解決一個復(fù)雜的數(shù)學(xué)難題來相互競爭,第一個解決難題的人是獲勝的礦工。獲勝的礦工驗(yàn)證新交易,將其記錄在區(qū)塊鏈上,并通過數(shù)字令牌獲得獎勵。但是,交易的記錄過程一般很慢,通常需要花費(fèi)幾秒鐘來添加一個塊,比特幣就使用PoW機(jī)制。雖然區(qū)塊鏈作為比特幣背后的技術(shù)而聞名,但現(xiàn)在有數(shù)百種不同的區(qū)塊鏈提供了超越加密貨幣的多種功能。
此外,PoW是專為開放的公共網(wǎng)絡(luò)而設(shè)計(jì)的,因此通常不適合大多數(shù)企業(yè)的應(yīng)用。特別是對于國防部的情況,網(wǎng)絡(luò)是私有且安全的,就可以使用除PoW之外的其他更有效的共識算法,這些算法不需要使用加密貨幣或令牌。例如,流行的Quorum企業(yè)區(qū)塊鏈中使用了權(quán)威證明、拜占庭容錯或基于Raft的共識,每秒可實(shí)現(xiàn)數(shù)千筆交易。
公鏈或私鏈?
區(qū)塊鏈可以是公共的(公鏈)也可以是私有的(私鏈)。顧名思義,公鏈不提供訪問許可要求,因此該網(wǎng)絡(luò)是完全公開的,就像比特幣一樣。與私鏈相比,公鏈往往分散得多,并且運(yùn)行速度也較慢。
現(xiàn)在大多數(shù)的區(qū)塊鏈?zhǔn)撬芥?,需要訪問權(quán)限才能參與,通常著重于兩個主要方面:誰可以加入網(wǎng)絡(luò)?以及誰有權(quán)訪問哪些交易?通常,私鏈的所有者可以定義誰可以參與網(wǎng)絡(luò),還可以定義誰可以訪問網(wǎng)絡(luò)中的哪些內(nèi)容。有關(guān)私鏈的信息通常僅由其批準(zhǔn)的成員進(jìn)行驗(yàn)證。
對于私鏈,有許多不同的方法可以定義誰有權(quán)訪問什么。在更高級別上,可以使用現(xiàn)有的身份驗(yàn)證和授權(quán)機(jī)制來確定誰可以訪問網(wǎng)絡(luò)以及每個用戶可以訪問網(wǎng)絡(luò)的哪些內(nèi)容。但是,網(wǎng)絡(luò)本身可以定義更精細(xì)的粒度。例如,Quorum在節(jié)點(diǎn)層面和事務(wù)層面定義許可。它使用網(wǎng)絡(luò)許可來定義哪些節(jié)點(diǎn)可以連接到指定節(jié)點(diǎn),以及該指定節(jié)點(diǎn)可以連接到哪些節(jié)點(diǎn),這樣可以確保僅列出的節(jié)點(diǎn)成為網(wǎng)絡(luò)的一部分。其次,Quorum所謂的安全區(qū)加密技術(shù)對有效負(fù)載/事務(wù)進(jìn)行加密,以使其僅對網(wǎng)絡(luò)的一個子集專用。
錢包和密碼簽名
大多數(shù)區(qū)塊鏈?zhǔn)褂缅X包的概念,最初以這種方式命名是因?yàn)樗鎯α艘粋€特殊的密鑰,該密鑰可以訪問加密貨幣。但是,現(xiàn)在即使是在不使用加密貨幣的網(wǎng)絡(luò)上,仍然使用錢包,并且該錢包包含標(biāo)識網(wǎng)絡(luò)上用戶/錢包的加密憑據(jù),并且允許用戶簽名交易,從而使每筆交易都可識別。一個簡單的錢包可以使用非對稱密鑰系統(tǒng)生成。這些系統(tǒng)有兩個密鑰:可以共享的公共密鑰和保密的私有密鑰。對于區(qū)塊鏈,它們構(gòu)成了錢包的基礎(chǔ),該錢包使用了這兩個密鑰和一個派生密鑰,即地址。它包含:
- 私鑰:不能公開的密鑰;
- 公鑰:可以公開的密鑰;
- 網(wǎng)絡(luò)上的地址:通常是利用公鑰的哈希碼生成的。由于哈希碼是單向函數(shù),因此不可能從該地址反推出公鑰。
每個區(qū)塊鏈中的交易都有一個可以通過數(shù)字簽名來識別的所有者,該數(shù)字簽名是使用錢包中的私鑰和交易內(nèi)容創(chuàng)建的。從技術(shù)上講,數(shù)字簽名是使用用戶的私鑰對交易內(nèi)容的哈希碼進(jìn)行加密。這提供了一種既可以標(biāo)識事務(wù)的創(chuàng)建者,又可以驗(yàn)證事務(wù)內(nèi)容尚未更改的機(jī)制。實(shí)際上,在區(qū)塊鏈中,此哈希碼驗(yàn)證執(zhí)行兩次,每個事務(wù)一次,每個區(qū)塊一次。
在區(qū)塊鏈上存儲大數(shù)據(jù)?
如上所述,在區(qū)塊鏈上存儲數(shù)據(jù)可確保其完整性和不可否認(rèn)性。但是,如果數(shù)據(jù)很大,該怎么辦?大數(shù)據(jù)將使得區(qū)塊鏈迅速膨脹,使其昂貴且效率低下。解決這個問題的方案是使用所謂的脫鏈數(shù)據(jù)。脫鏈數(shù)據(jù)允許將數(shù)據(jù)的指紋或哈希碼存儲在鏈上,并將數(shù)據(jù)存儲在外部存儲介質(zhì)中。哈希碼是一種加密機(jī)制,可以為任何大小的文件生成一個固定大小的指紋。因此以這種方式,實(shí)際上可以確保兩個文件永遠(yuǎn)不會生成相同的指紋,意味著哈希碼唯一地表示文件的內(nèi)容。
因此,如果我們將文件的哈希碼存儲在區(qū)塊鏈上,然后將該文件存儲在另一存儲介質(zhì)中,則可以確保兩件事:
- 文件的內(nèi)容自存儲以來不會被更改:因?yàn)槿绻桓牡脑挘4a將與外部存儲的文件不匹配;
- 標(biāo)識存儲外部文件的用戶:因?yàn)槊抗P交易都是由用戶使用其錢包進(jìn)行簽名的。
脫鏈?zhǔn)歉檯^(qū)塊鏈上外部文件或數(shù)據(jù)集的絕佳策略,因?yàn)樗梢宰畲蟪潭鹊販p少了鏈上的存儲,同時為外部數(shù)據(jù)提供了不可否認(rèn)的審計(jì)線索。這意味著可以將區(qū)塊鏈與現(xiàn)有數(shù)據(jù)和系統(tǒng)無縫使用,極大地保證數(shù)據(jù)的完整性和可追蹤性,并且可以跨越不同的數(shù)據(jù)系統(tǒng)和應(yīng)用程序聚合數(shù)據(jù)的多個副本。
就在幾年前,我們拋棄Web 2.0(即Google和Facebook等“大技術(shù)”公司)的想法幾乎是不切實(shí)際的。但是分布式共識協(xié)議的出現(xiàn)使對等交易可以取代依靠中央機(jī)構(gòu)來保存或傳輸數(shù)據(jù)的方式。比特幣和以太坊證明了這一概念,并為未來的發(fā)展提供了極大的可能性。
注:本文翻譯自《POTENTIAL USES OF BLOCKCHAIN BY THE U.S.DEPARTMENTOF DEFENSE》