編輯導語:區塊鏈作為一項新興信息技術,越來越受到人們關注。區塊鏈存證技術的出現,不僅突破傳統電子證據運用痛點,其所具有不易篡改、去中心化存儲等技術特徵,與電子數據固證存證的需求相契合,被認為有著極大發展潛力。本文作者針對區塊鏈進行了解析,它真的是一種共享資料庫嗎?
一、引言
這幾年,學術和產業界對區塊鏈的理解和應用產生了大量誤區,本人也在過去的文章中逐步澄清和重新定義。
不過,總覺得意猶未盡,沒有專門立題成章。最近由於正在設計分散式產業協作模型,每到區塊鏈技術運用精妙之處,覺得需要有系列文章來逐一解釋這些誤解。
希望通過本人的反覆倡導,可以為區塊鏈產業運用提供更多的方案和定義。
這次我們首先討論「區塊鏈是共享資料庫」這個說法到底有沒有問題。
在百度百科這樣描述區塊鏈:「區塊鏈是一個信息技術領域的術語。從本質上講,它是一個共享資料庫,存儲於其中的數據或信息,具有「不可偽造」「全程留痕」「可以追溯」「公開透明」「集體維護」等特徵。」
可以說大部分認為區塊鏈是一種共享資料庫的說法,受百度百科影響比較大。
接下來,我們就分析一下什麼是共享資料庫?
二、什麼是共享資料庫?
本人通過「知網」搜索「共享資料庫」關鍵字,並未發現直接匹配的論文,更多是關於數據共享模式的相關論文;通過百度百科詞條搜索也沒有發現「共享資料庫」的概念描述,倒是有「共享存儲」(概念完全不一樣,感興趣可以自行搜索)。
可以說,一直以來「共享資料庫」就不是學術和系統軟體實踐的概念,「共享資料庫」更多的是互聯網造詞的畸形產物之一。這是因為,無論從數據集成和共享模式分析,還是從資料庫分類分析看,「共享資料庫」都是一種偽命題。
首先,從資料庫的定義上看:「資料庫是按照數據結構來組織、存儲和管理數據的倉庫,是一個長期存儲在計算機內的、有組織的、可共享的、統一管理的大量數據的集合」[1]。
也就是說數據可共享本身就是資料庫的基礎功能之一,不需要額外使用區塊鏈技術來建立資料庫的數據共享能力。
其次,從資料庫分類看,目前常見分類按照數據結構的組織不同,可分為:「關係型資料庫」和「NoSQL資料庫」;按照部署模式不同,可分為:「單機資料庫」和「分散式資料庫」等,也從未出現過按照數據共享程度分類的資料庫。
再者,從數據共享方式上看,業界常採用數據集成,實現把不同來源、格式、特點性質的數據在邏輯上或物理上有機地集中,從而為企業提供全面的數據共享。
通常採用聯邦式、基於中間件模型和數據倉庫等方法來構造數據集成的系統,並且已有很多成熟的框架可以利用。
所以,無論是資料庫技術,還是企業數據共享模式的發展都從未出現過「共享資料庫」這個概念,因為開發資料庫軟體的初衷本質上就是解決數據的組織、存儲、管理和共享的。
三、為什麼會認為區塊鏈是共享資料庫?
上面講到「區塊鏈是一種共享資料庫嗎?」是一種偽命題,因為資料庫的使命之一就是提升數據的訪問和共享便捷性,那我們為什麼有這樣的定義呢?
我猜測,「區塊鏈是一種共享資料庫」主要還是受一些通用底層區塊鏈平台或產品的影響。
首先,大部分的公鏈平台,例如:Bitccoin、Ethereum、EOS等,本身並不是一個通用底層區塊鏈平台,他們都是以點對點資產交易為核心構建區塊鏈相關技術的組合應用,包括:加密技術、分散式技術、P2P數據傳輸、共識演算法、鏈式數據結構、博弈論等。
技術的運用是為點對點、安全、高效的資產交易達成服務的。所以在非資產處理的行業領域,例如:政務、工業、供應鏈等,直接使用基於公鏈的區塊鏈技術往往會格格不入。
由於公鏈平台業務目的是明確的,所以大家不會去討論BitCoin是否是一個共享資料庫的問題。
其次,在大部分已開展聯盟鏈應用的行業中,底層大量採用Apache Hyperledger系列平台,受Hyperledger的影響頗深。
以Hyperledger核心的Fabric為例,Fabric是一個業務目的不明確的通用區塊鏈平台。從下圖可以看到Fabric的節點主要由智能合約(早期的Chaincode)和分散式賬本構成。而節點中的數據主要由分散式賬本Ledger存儲。
Fabric 節點構成 來源:Hyperledger Fabric技術白皮書[2]
而分散式賬本Ledger又主要由Blockchain和全局狀態構成,全局狀態的更新被區塊中的交易Transactions觸發和決定。見下圖:
Fabric 賬本構成 來源:Hyperledger Fabric技術白皮書[2]
由下圖可見,分散式賬本Ledger中的全局狀態World State本質確實是一種分散式的KV存儲模型,再配合分散式節點網路,就不難解釋為什麼會認為區塊鏈是一種共享資料庫了。
Fabric 狀態模型 來源:Hyperledger Fabric技術白皮書[2]
上面已經提到,Fabric是一種業務目的不明確的通用區塊鏈平台,在Fabric的賬本模型Ledger中,其實和我們日常理解的金融賬本並沒有直接關係,Ledger只是一種通用KV存儲模型,你可以存儲任意數據。
在Fabric實際使用過程中,如果沒有領域模型驅動,Fabric就真是一個分散式數據存儲架構。
受這個因素影響,實際上我們在區塊鏈行業應用中,大量採用Fabric的全局狀態存儲World State,實現分散式存儲鏈。
我在其他文章已經反覆強調了,如果把區塊鏈定位為分散式的數據存儲機制,那和目前常用的分散式資料庫相比沒有任何技術優勢,只是實現更複雜,效率更低而已。
四、數據的共享與數據存儲結構無關
通過上面的分析,也確實可以把以Fabric為代表的區塊鏈通用平台,定義為分散式數據存儲模型,但這種分散式存儲機制可以帶來數據共享和開放嗎?
這裡有個誤區,是我們片面的理解為,數據分散式可帶來數據的共享,但本文想強調,數據是否共享與存儲結構和部署模式無關。
數據的存儲結構和部署模式是物理模型,而數據的共享是業務模型。
在當下「數據即資產」以及個人隱私保護和商業數據安全得到民眾和輿論強化理解的當下,決定數據是否共享的關鍵,不是數據如何存儲和部署,而是數據共享的業務必要性和多方參與者的利益是否得到平衡和保障。
簡單利用分散式存儲機制解決「信息孤島」問題,顯然是異想天開了。
而且,大部分「信息孤島」的問題,恰恰是數據分散存儲和管理造成的,可以說數據的分散式是現狀,而不是前景。
解決數據分散造成的「信息孤島」問題,首先要區分數據主權關係。在單一數據主權(絕對數據主權)下最高效的方法是數據集成,通過數據聯邦、數據中間件和數據倉庫等方式實現數據的匯聚。
在多方數據主權(相對數據主權)關係下,則是通過法律強制或商業模式驅動,在合法合規的前提下讓數據在數據應用相關方之間安全流動。
在無法建立數據集成的環境下,例如:多方數據主權、集成成本和法律限制條件,確實可以採用區塊鏈技術建立數據可交易、可流動、可監管的可信數據共享網路。
但這時區塊鏈技術應用重點恰恰不是分散式的數據存儲,而是數據資產的交易。如果沒有建立數據資產交易模型,簡單利用Fabric的全局狀態,是無法實現數據共享的。
其實,以Bitcoin為代表的經典區塊鏈技術,已經證明了區塊鏈分散式節點中的數據存儲只是為了保障各節點,可以本地化、高效的驗證交易數據的真偽,而不是為數據共享為最終目的。
五、新技術驅動總是先帶來啞鈴效應
進入互聯網Web2.0時代以來,大量新技術,新名詞湧入產業界,從大數據、AI、5G、區塊鏈再到今年的量子計算。
每一次的新技術和產業結合都避免不了在國內產業圈出現技術認知的「啞鈴效應」,即:啞鈴的一頭是高度概念化、抽象化,而另一頭是高度的實例化和工具化。
區塊鏈技術的興起也是如此,一邊是從概念化和抽象化上刻畫區塊鏈是一種去中心化,用網路自治代替中心化系統的價值互聯網;而另一邊則是將區塊鏈描述為共享資料庫,一種分散式存儲工具。
為什麼會產生這樣的認知呢?我想很大原因是,一種新技術的突然興起,往往只是被幾篇論文、幾個應用場景點燃。
但在廣泛領域的應用型配套研究還未完全跟上,採用高度概念化、抽象化或實例化、工具化的定義,總能在現實世界找到映射關係,這是一種低成本的解釋路徑。
可以說,新技術發展的啞鈴效應是一個必然過程,但隨著新技術在領域實踐中的知識積累和模型沉澱,將會不斷修正啞鈴的兩端,讓價值認知更為平滑、實用。
愛因斯坦說過:「你無法在製造問題的同一思維層次上解決這個問題」,看待新技術往往不能直接從現實事物中直接匹配和映射,而是需要以創新思維在應用領域發展和完善新技術的定義和價值。
六、總結
區塊鏈技術在某種程度上確實可以充當分散式資料庫或數據共享機制使用,但在實際應用中與傳統數據集成框架相比,並無優勢。
同時由於採用分散式共識演算法、P2P網路傳輸和區塊數據結構等技術,系統複雜度更高、性能和可維護性更差。
這麼大的代價只是為了建立分散式一致性的存儲機制顯然是得不償失的,也沒有實際商業前途。
利用區塊鏈技術需要關注分散式的對等、安全、公平的交易環境的搭建上,以優化數據交易環境為前提,間接實現數據充分共享和利用。
可以說在數據共享領域,區塊鏈技術只是基礎條件之一,而不是絕對因素。在數據所有權分散的環境下,決定數據是否可以共享,最重要的是業務和商業模型的確立。
參考文獻:
【1】百度百科 https://baike.baidu.com/item/資料庫/103728
【2】Apache hyperledger-fabric-readthedocs-io-en-release-2.0.pdf
相關文章:
#專欄作家#
黃銳,人人都是產品經理專欄作家。高級系統架構設計師、資深產品經理、多家大型互聯網公司顧問,金融機構、高校客座研究員。主要關注新零售、工業互聯網、金融科技和區塊鏈行業應用版塊,擅長產品或系統整體性設計和規劃。
本文原創發佈於人人都是產品經理,未經許可,禁止轉載
題圖來自 Unsplash,基於 CC0 協議