區(qū)塊鏈(英語:Blockchain或Block chain)是一種分布式數(shù)據(jù)庫,大家可能都有所耳聞的比特幣,核心技術用的就是它。區(qū)塊鏈是一串使用密碼學方法相關聯(lián)產(chǎn)生的數(shù)據(jù)塊,每一個數(shù)據(jù)塊中包含了一次網(wǎng)絡交易的信息,用于驗證其信息的有效性和生成下一個區(qū)塊。用通俗的概念講,區(qū)塊鏈就是一本人人可記的賬。在一個公司或機構里,多數(shù)人只有看賬的份兒,而只有少數(shù)受過專業(yè)訓練的人,才有權提筆記賬。當然,區(qū)塊鏈并非傳統(tǒng)意義上的賬本,它在技術原理上有以下三個關鍵點:第一,去中心化。一個踐行區(qū)塊鏈技術的網(wǎng)絡中,其所涵蓋的每臺計算機均可讀取、添加記錄,從賬本這個角度講,他們就是共同記賬的人,而沒有權威人士從中指導、修正。第二,非對稱加密。別看這本賬人人可記,可若非局內(nèi)人,一定讀不懂。因為,在記賬過程中,每個人都遵從統(tǒng)一的加密規(guī)則,但讀取時,卻必須使用自己獨有的解密方式。因此,雖然每個人都保存著這本不斷更新的賬,但能讀懂的部分,卻僅限于自己能解密的那一塊,也就是與自己相關的那一部分。第三,時間印記。也就是時間戳(英語:Timestamp),是指字符串或編碼信息用于辨識記錄下來的時間日期。區(qū)塊鏈上的每一個區(qū)塊,是按照其所生成的時間按先后順序排列的,并經(jīng)過集體認證,確認成立。而且,之前的記錄是無法被修改的。就像在一本賬里,我們可以通過一個時間點之后的記錄,索引、驗證之前的內(nèi)容。而這些內(nèi)容一旦被確認,再行篡改就難上加難。
區(qū)塊鏈技術是維護一個不斷增長的數(shù)據(jù)記錄的分布式數(shù)據(jù)庫,這些數(shù)據(jù)通過密碼學的技術和之前被寫入的所有數(shù)據(jù)關聯(lián),使得第三方甚至是節(jié)點的擁有者難以篡改。區(qū)塊(block)包含有數(shù)據(jù)庫中實際需要保存的數(shù)據(jù),這些數(shù)據(jù)通過區(qū)塊組織起來被寫入數(shù)據(jù)庫。鏈(chain)通常指的是利用Merkle tree等方式來校驗當前所有區(qū)塊是否被修改,這一點用過Git的碼農(nóng)們早就熟悉了,回想一下如何修改Git的歷史記錄吧。
區(qū)塊鏈技術主要分為三大類,主要是公開、協(xié)作、私有。
公開區(qū)塊鏈(public blockchain)
例子:比特幣,Ethereum Frontier。公開區(qū)塊鏈上的數(shù)據(jù)所有人都可以訪問,所有人都可以發(fā)出交易等待被寫入?yún)^(qū)塊鏈。共識過程的參與者(對應比特幣中的礦工)通過密碼學技術以及內(nèi)建的經(jīng)濟激勵維護數(shù)據(jù)庫的安全。公開區(qū)塊鏈是完全的分布式。
亮點和痛點:公開區(qū)塊鏈完全分布式,具有比特幣的一切特點,然而需要有足夠的成本來維持系統(tǒng)運行,依賴于內(nèi)建的激勵。目前來看公開區(qū)塊鏈中只有比特幣算是足夠安全的,如果和比特幣的算法一樣,乙烷;沒有內(nèi)建獎勵,乙烷;容易集中算力攻擊(比如只要突擊掃貨大批顯卡之類),吃棗藥丸。公開區(qū)塊鏈上試圖保存的數(shù)據(jù)越有價值,越要審視其安全性以及安全性帶來的交易成本,系統(tǒng)擴展性問題。
協(xié)作區(qū)塊鏈(federated blockchain)
例子:Hyperledger以及德勤等會計所嘗試的審計系統(tǒng)。參與區(qū)塊鏈的節(jié)點是事先選擇好的,節(jié)點間很可能是有很好的網(wǎng)絡連接。這樣的區(qū)塊鏈上可以采用非工作量證明的其他共識算法,比如有100家金融機構之間建立了某個區(qū)塊鏈,規(guī)定必須67個以上的機構同意才算達成共識。這樣的區(qū)塊鏈上的數(shù)據(jù)可以是公開的也可以是這些節(jié)點參與者內(nèi)部。部分意義上的分布式。
亮點和痛點:協(xié)作區(qū)塊鏈可以做到很好的節(jié)點間的連接,只需要極少的成本就能維持運行,提供迅速的交易處理和低廉的交易費用,有很好的擴展性(但是擴展性隨著節(jié)點增加又會下降),數(shù)據(jù)可以有一定的隱私。開發(fā)者在共識下有能力更改協(xié)議,沒有比特幣hard fork的問題,但是這也意味著在共識下,大家可以一起篡改數(shù)據(jù)。協(xié)作區(qū)塊鏈也意味著這個區(qū)塊鏈的應用范圍不會太廣,缺少比特幣的網(wǎng)絡傳播效應。
私有區(qū)塊鏈(private blockchain)
例子:Eris Industries。參與的節(jié)點只有用戶自己,數(shù)據(jù)的訪問和使用有嚴格的權限管理。近期部分金融機構公布的內(nèi)部使用的區(qū)塊鏈技術大都語焉不詳,不過很可能都在這個范圍內(nèi)。 亮點和痛點:私有區(qū)塊鏈實際上是很迷惑的名詞,這樣的一個系統(tǒng)無非是傳統(tǒng)意義上的共享數(shù)據(jù)庫用上Merkle Tree等方式試圖說明其中的數(shù)據(jù)可校驗。這樣的數(shù)據(jù)庫早有成熟的解決方案, Merkle tree也只是很多成熟方案中的一種。這些項目很容易是“然并卵”。由于全是用戶說了算,里面的數(shù)據(jù)沒有無法更改的特性,對于第三方也沒有多大的保障。因此很多私有區(qū)塊鏈會通過依附在比特幣的方式存在,比如定期將系統(tǒng)快照記錄到比特幣中。