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