引言
這幾年,學(xué)術(shù)和產(chǎn)業(yè)界對(duì)區(qū)塊鏈的理解和應(yīng)用產(chǎn)生了大量誤區(qū),本人也在過(guò)去的文章中逐步澄清和重新定義。不過(guò),總覺(jué)得意猶未盡,沒(méi)有專門立題成章。最近由于正在設(shè)計(jì)分布式產(chǎn)業(yè)協(xié)作模型,每到區(qū)塊鏈技術(shù)運(yùn)用精妙之處,覺(jué)得需要有系列文章來(lái)逐一解釋這些誤解。希望通過(guò)本人的反復(fù)倡導(dǎo),可以為區(qū)塊鏈產(chǎn)業(yè)運(yùn)用提供更多的方案和定義。
這次我們首先討論“區(qū)塊鏈?zhǔn)枪蚕頂?shù)據(jù)庫(kù)”這個(gè)說(shuō)法到底有沒(méi)有問(wèn)題。在百度百科這樣描述區(qū)塊鏈:“區(qū)塊鏈?zhǔn)且粋€(gè)信息技術(shù)領(lǐng)域的術(shù)語(yǔ)。從本質(zhì)上講,它是一個(gè)共享數(shù)據(jù)庫(kù),存儲(chǔ)于其中的數(shù)據(jù)或信息,具有“不可偽造”“全程留痕”“可以追溯”“公開(kāi)透明”“集體維護(hù)”等特征。”可以說(shuō)大部分認(rèn)為區(qū)塊鏈?zhǔn)且环N共享數(shù)據(jù)庫(kù)的說(shuō)法,受百度百科影響比較大。
接下來(lái),我們就分析一下什么是共享數(shù)據(jù)庫(kù)?
一、什么是共享數(shù)據(jù)庫(kù)
本人通過(guò)“知網(wǎng)”搜索“共享數(shù)據(jù)庫(kù)”關(guān)鍵字,并未發(fā)現(xiàn)直接匹配的論文,更多是關(guān)于數(shù)據(jù)共享模式的相關(guān)論文;通過(guò)百度百科詞條搜索也沒(méi)有發(fā)現(xiàn)“共享數(shù)據(jù)庫(kù)”的概念描述,倒是有“共享存儲(chǔ)”(概念完全不一樣,感興趣可以自行搜索)??梢哉f(shuō),一直以來(lái)“共享數(shù)據(jù)庫(kù)”就不是學(xué)術(shù)和系統(tǒng)軟件實(shí)踐的概念,“共享數(shù)據(jù)庫(kù)”更多的是互聯(lián)網(wǎng)造詞的畸形產(chǎn)物之一。
這是因?yàn)?,無(wú)論從數(shù)據(jù)集成和共享模式分析,還是從數(shù)據(jù)庫(kù)分類分析看,“共享數(shù)據(jù)庫(kù)”都是一種偽命題。
首先,從數(shù)據(jù)庫(kù)的定義上看:“數(shù)據(jù)庫(kù)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù),是一個(gè)長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可共享的、統(tǒng)一管理的大量數(shù)據(jù)的集合”[1],也就是說(shuō)數(shù)據(jù)可共享本身就是數(shù)據(jù)庫(kù)的基礎(chǔ)功能之一,不需要額外使用區(qū)塊鏈技術(shù)來(lái)建立數(shù)據(jù)庫(kù)的數(shù)據(jù)共享能力。
其次,從數(shù)據(jù)庫(kù)分類看,目前常見(jiàn)分類按照數(shù)據(jù)結(jié)構(gòu)的組織不同,可分為:“關(guān)系型數(shù)據(jù)庫(kù)”和“NoSQL數(shù)據(jù)庫(kù)”;按照部署模式不同,可分為:“單機(jī)數(shù)據(jù)庫(kù)”和“分布式數(shù)據(jù)庫(kù)”等,也從未出現(xiàn)過(guò)按照數(shù)據(jù)共享程度分類的數(shù)據(jù)庫(kù)。
再者,從數(shù)據(jù)共享方式上看,業(yè)界常采用數(shù)據(jù)集成,實(shí)現(xiàn)把不同來(lái)源、格式、特點(diǎn)性質(zhì)的數(shù)據(jù)在邏輯上或物理上有機(jī)地集中,從而為企業(yè)提供全面的數(shù)據(jù)共享。通常采用聯(lián)邦式、基于中間件模型和數(shù)據(jù)倉(cāng)庫(kù)等方法來(lái)構(gòu)造數(shù)據(jù)集成的系統(tǒng),并且已有很多成熟的框架可以利用。
所以,無(wú)論是數(shù)據(jù)庫(kù)技術(shù),還是企業(yè)數(shù)據(jù)共享模式的發(fā)展都從未出現(xiàn)過(guò)“共享數(shù)據(jù)庫(kù)”這個(gè)概念,因?yàn)殚_(kāi)發(fā)數(shù)據(jù)庫(kù)軟件的初衷本質(zhì)上就是解決數(shù)據(jù)的組織、存儲(chǔ)、管理和共享的。
二、為什么會(huì)認(rèn)為區(qū)塊鏈?zhǔn)枪蚕頂?shù)據(jù)庫(kù)
上面講到“區(qū)塊鏈?zhǔn)且环N共享數(shù)據(jù)庫(kù)嗎?”是一種偽命題,因?yàn)閿?shù)據(jù)庫(kù)的使命之一就是提升數(shù)據(jù)的訪問(wèn)和共享便捷性。那我們?yōu)槭裁从羞@樣的定義呢?我猜測(cè),“區(qū)塊鏈?zhǔn)且环N共享數(shù)據(jù)庫(kù)”主要還是受一些通用底層區(qū)塊鏈平臺(tái)或產(chǎn)品的影響。
首先,大部分的公鏈平臺(tái),例如:Bitccoin、Ethereum、EOS等,本身并不是一個(gè)通用底層區(qū)塊鏈平臺(tái),他們都是以點(diǎn)對(duì)點(diǎn)資產(chǎn)交易為核心構(gòu)建區(qū)塊鏈相關(guān)技術(shù)的組合應(yīng)用,包括:加密技術(shù)、分布式技術(shù)、P2P數(shù)據(jù)傳輸、共識(shí)算法、鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)、博弈論等。技術(shù)的運(yùn)用是為點(diǎn)對(duì)點(diǎn)、安全、高效的資產(chǎn)交易達(dá)成服務(wù)的。所以在非資產(chǎn)處理的行業(yè)領(lǐng)域,例如:政務(wù)、工業(yè)、供應(yīng)鏈等,直接使用基于公鏈的區(qū)塊鏈技術(shù)往往會(huì)格格不入。由于公鏈平臺(tái)業(yè)務(wù)目的是明確的,所以大家不會(huì)去討論BitCoin是否是一個(gè)共享數(shù)據(jù)庫(kù)的問(wèn)題。
其次,在大部分已開(kāi)展聯(lián)盟鏈應(yīng)用的行業(yè)中,底層大量采用Apache Hyperledger系列平臺(tái),受Hyperledger的影響頗深。以Hyperledger核心的Fabric為例,F(xiàn)abric是一個(gè)業(yè)務(wù)目的不明確的通用區(qū)塊鏈平臺(tái)。從下圖可以看到Fabric的節(jié)點(diǎn)主要由智能合約(早期的Chaincode)和分布式賬本構(gòu)成。而節(jié)點(diǎn)中的數(shù)據(jù)主要由分布式賬本Ledger存儲(chǔ)。
Fabric 節(jié)點(diǎn)構(gòu)成 來(lái)源:Hyperledger Fabric技術(shù)白皮書(shū)[2]
而分布式賬本Ledger又主要由Blockchain和全局狀態(tài)構(gòu)成,全局狀態(tài)的更新被區(qū)塊中的交易Transactions觸發(fā)和決定。見(jiàn)下圖:
Fabric 賬本構(gòu)成 來(lái)源:Hyperledger Fabric技術(shù)白皮書(shū)[2]
由下圖可見(jiàn),分布式賬本Ledger中的全局狀態(tài)World State本質(zhì)確實(shí)是一種分布式的KV存儲(chǔ)模型,再配合分布式節(jié)點(diǎn)網(wǎng)絡(luò),就不難解釋為什么會(huì)認(rèn)為區(qū)塊鏈?zhǔn)且环N共享數(shù)據(jù)庫(kù)了。
Fabric 狀態(tài)模型 來(lái)源:Hyperledger Fabric技術(shù)白皮書(shū)[2]
上面已經(jīng)提到,F(xiàn)abric是一種業(yè)務(wù)目的不明確的通用區(qū)塊鏈平臺(tái),在Fabric的賬本模型Ledger中,其實(shí)和我們?nèi)粘@斫獾慕鹑谫~本并沒(méi)有直接關(guān)系,Ledger只是一種通用KV存儲(chǔ)模型,你可以存儲(chǔ)任意數(shù)據(jù)。在Fabric實(shí)際使用過(guò)程中,如果沒(méi)有領(lǐng)域模型驅(qū)動(dòng),F(xiàn)abric就真是一個(gè)分布式數(shù)據(jù)存儲(chǔ)架構(gòu)。
受這個(gè)因素影響,實(shí)際上我們?cè)趨^(qū)塊鏈行業(yè)應(yīng)用中,大量采用Fabric的全局狀態(tài)存儲(chǔ)World State,實(shí)現(xiàn)分布式存儲(chǔ)鏈。我在其他文章已經(jīng)反復(fù)強(qiáng)調(diào)了,如果把區(qū)塊鏈定位為分布式的數(shù)據(jù)存儲(chǔ)機(jī)制,那和目前常用的分布式數(shù)據(jù)庫(kù)相比沒(méi)有任何技術(shù)優(yōu)勢(shì),只是實(shí)現(xiàn)更復(fù)雜,效率更低而已。
三、數(shù)據(jù)的共享與數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)
通過(guò)上面的分析,也確實(shí)可以把以Fabric為代表的區(qū)塊鏈通用平臺(tái),定義為分布式數(shù)據(jù)存儲(chǔ)模型,但這種分布式存儲(chǔ)機(jī)制可以帶來(lái)數(shù)據(jù)共享和開(kāi)放嗎?這里有個(gè)誤區(qū),是我們片面的理解為,數(shù)據(jù)分布式可帶來(lái)數(shù)據(jù)的共享,但本文想強(qiáng)調(diào),數(shù)據(jù)是否共享與存儲(chǔ)結(jié)構(gòu)和部署模式無(wú)關(guān)。
數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和部署模式是物理模型,而數(shù)據(jù)的共享是業(yè)務(wù)模型。在當(dāng)下“數(shù)據(jù)即資產(chǎn)”以及個(gè)人隱私保護(hù)和商業(yè)數(shù)據(jù)安全得到民眾和輿論強(qiáng)化理解的當(dāng)下,決定數(shù)據(jù)是否共享的關(guān)鍵,不是數(shù)據(jù)如何存儲(chǔ)和部署,而是數(shù)據(jù)共享的業(yè)務(wù)必要性和多方參與者的利益是否得到平衡和保障。簡(jiǎn)單利用分布式存儲(chǔ)機(jī)制解決“信息孤島”問(wèn)題,顯然是異想天開(kāi)了。
而且,大部分“信息孤島”的問(wèn)題,恰恰是數(shù)據(jù)分散存儲(chǔ)和管理造成的,可以說(shuō)數(shù)據(jù)的分布式是現(xiàn)狀,而不是前景。解決數(shù)據(jù)分散造成的“信息孤島”問(wèn)題,首先要區(qū)分?jǐn)?shù)據(jù)主權(quán)關(guān)系。在單一數(shù)據(jù)主權(quán)(絕對(duì)數(shù)據(jù)主權(quán))下最高效的方法是數(shù)據(jù)集成,通過(guò)數(shù)據(jù)聯(lián)邦、數(shù)據(jù)中間件和數(shù)據(jù)倉(cāng)庫(kù)等方式實(shí)現(xiàn)數(shù)據(jù)的匯聚;在多方數(shù)據(jù)主權(quán)(相對(duì)數(shù)據(jù)主權(quán))關(guān)系下,則是通過(guò)法律強(qiáng)制或商業(yè)模式驅(qū)動(dòng),在合法合規(guī)的前提下讓數(shù)據(jù)在數(shù)據(jù)應(yīng)用相關(guān)方之間安全流動(dòng)。
在無(wú)法建立數(shù)據(jù)集成的環(huán)境下,例如:多方數(shù)據(jù)主權(quán)、集成成本和法律限制條件,確實(shí)可以采用區(qū)塊鏈技術(shù)建立數(shù)據(jù)可交易、可流動(dòng)、可監(jiān)管的可信數(shù)據(jù)共享網(wǎng)絡(luò)。但這時(shí)區(qū)塊鏈技術(shù)應(yīng)用重點(diǎn)恰恰不是分布式的數(shù)據(jù)存儲(chǔ),而是數(shù)據(jù)資產(chǎn)的交易。如果沒(méi)有建立數(shù)據(jù)資產(chǎn)交易模型,簡(jiǎn)單利用Fabric的全局狀態(tài),是無(wú)法實(shí)現(xiàn)數(shù)據(jù)共享的。
其實(shí),以Bitcoin為代表的經(jīng)典區(qū)塊鏈技術(shù),已經(jīng)證明了區(qū)塊鏈分布式節(jié)點(diǎn)中的數(shù)據(jù)存儲(chǔ)只是為了保障各節(jié)點(diǎn),可以本地化、高效的驗(yàn)證交易數(shù)據(jù)的真?zhèn)?,而不是為?shù)據(jù)共享為最終目的。
四、新技術(shù)驅(qū)動(dòng)總是先帶來(lái)啞鈴效應(yīng)
進(jìn)入互聯(lián)網(wǎng)Web2.0時(shí)代以來(lái),大量新技術(shù)、新概念、新名詞涌入產(chǎn)業(yè)界,從大數(shù)據(jù)、AI、5G、區(qū)塊鏈再到今年的量子計(jì)算,每一次的新技術(shù)和產(chǎn)業(yè)結(jié)合都避免不了在國(guó)內(nèi)產(chǎn)業(yè)圈出現(xiàn)技術(shù)認(rèn)知的“啞鈴效應(yīng)”,即:?jiǎn)♀彽囊活^是高度概念化、抽象化,而另一頭是高度的實(shí)例化和工具化。
區(qū)塊鏈技術(shù)的興起也是如此,一邊是從概念化和抽象化上刻畫(huà)區(qū)塊鏈?zhǔn)且环N去中心化,用網(wǎng)絡(luò)自治代替中心化系統(tǒng)的價(jià)值互聯(lián)網(wǎng);而另一邊則是將區(qū)塊鏈描述為共享數(shù)據(jù)庫(kù),一種分布式存儲(chǔ)工具。為什么會(huì)產(chǎn)生這樣的認(rèn)知呢?我想很大原因是,一種新技術(shù)的突然興起,往往只是被幾篇論文、幾個(gè)應(yīng)用場(chǎng)景點(diǎn)燃,但在廣泛領(lǐng)域的應(yīng)用型配套研究還未完全跟上,采用高度概念化、抽象化或?qū)嵗?、工具化的定義,總能在現(xiàn)實(shí)世界找到映射關(guān)系,這是一種低成本的解釋路徑。
可以說(shuō),新技術(shù)發(fā)展的啞鈴效應(yīng)是一個(gè)必然過(guò)程,但隨著新技術(shù)在領(lǐng)域?qū)嵺`中的知識(shí)積累和模型沉淀,將會(huì)不斷修正啞鈴的兩端,讓價(jià)值認(rèn)知更為平滑、實(shí)用。愛(ài)因斯坦說(shuō)過(guò):“你無(wú)法在制造問(wèn)題的同一思維層次上解決這個(gè)問(wèn)題”,看待新技術(shù)往往不能直接從現(xiàn)實(shí)事物中直接匹配和映射,而是需要以創(chuàng)新思維在應(yīng)用領(lǐng)域發(fā)展和完善新技術(shù)的定義和價(jià)值。
總結(jié):
區(qū)塊鏈技術(shù)在某種程度上確實(shí)可以充當(dāng)分布式數(shù)據(jù)庫(kù)或數(shù)據(jù)共享機(jī)制使用,但在實(shí)際應(yīng)用中與傳統(tǒng)數(shù)據(jù)集成框架相比,并無(wú)優(yōu)勢(shì)。同時(shí)由于采用分布式共識(shí)算法、P2P網(wǎng)絡(luò)傳輸和區(qū)塊數(shù)據(jù)結(jié)構(gòu)等技術(shù),系統(tǒng)復(fù)雜度更高、性能和可維護(hù)性更差。這么大的代價(jià)只是為了建立分布式一致性的存儲(chǔ)機(jī)制顯然是得不償失的,也沒(méi)有實(shí)際商業(yè)前途。利用區(qū)塊鏈技術(shù)需要關(guān)注分布式的對(duì)等、安全、公平的交易環(huán)境的搭建上,以優(yōu)化數(shù)據(jù)交易環(huán)境為前提,間接實(shí)現(xiàn)數(shù)據(jù)充分共享和利用。可以說(shuō)在數(shù)據(jù)共享領(lǐng)域,區(qū)塊鏈技術(shù)只是基礎(chǔ)條件之一,而不是絕對(duì)因素。在數(shù)據(jù)所有權(quán)分散的環(huán)境下,決定數(shù)據(jù)是否可以共享,最重要的是業(yè)務(wù)和商業(yè)模型的確立。
參考文獻(xiàn):
[1]百度百科
https://baike.baidu.com/item/數(shù)據(jù)庫(kù)/103728
[2]Apache hyperledger-fabric-readthedocs-io-en-release-2.0.pdf