區塊鏈和資料庫

雪花又一年發表於2018-04-16

本文由幣乎社群(bihu.com)內容支援計劃獎勵。

這是「區塊鏈技術指北」的第 15 篇文章。

如果對我感興趣,想和我交流,我的微訊號:Wentasy,加我時簡單介紹下自己,並註明來自「區塊鏈技術指北」。同時我會把你拉入微信群「區塊鏈技術指北」。BTW,李笑來老師也加入了我的知識星球,文末有加入方式。

個人認為區塊鏈只能借鑑傳統的資料庫技術,而無法將資料庫改造成區塊鏈。

首先我們簡單理解下區塊鏈和傳統資料庫。

區塊鏈技術是一種不依賴第三方、通過自身分散式節點進行網路資料的儲存、驗證、傳遞和交流的一種技術方案。因此,有人從金融會計的角度,把區塊鏈技術看成是一種分散式開放性去中心化的大型網路記賬薄,任何人任何時間都可以採用相同的技術標準加入自己的資訊,延伸區塊鏈,持續滿足各種需求帶來的資料錄入需要。

通俗一點說,區塊鏈技術就指一種全民參與記賬的方式。所有的系統背後都有一個資料庫,你可以把資料庫看成是就是一個大賬本。那麼誰來記這個賬本就變得很重要。目前就是誰的系統誰來記賬,微信的賬本就是騰訊在記,淘寶的賬本就是阿裡在記。但現在區塊鏈系統中,系統中的每個人都可以有機會參與記賬。在一定時間段內如果有任何資料變化,系統中每個人都可以來進行記賬,系統會評判這段時間內記賬最快最好的人,把他記錄的內容寫到賬本,並將這段時間內賬本內容發給系統內所有的其他人進行備份。這樣系統中的每個人都了一本完整的賬本。這種方式,我們就稱它為區塊鏈技術。

區塊鏈技術被認為是網際網路發明以來最具顛覆性的技術創新,它依靠密碼學和數學巧妙的分散式演演算法,在無法建立信任關係的網際網路上,無需藉助任何第三方中心的介入就可以使參與者達成共識,以極低的成本解決了信任與價值的可靠傳遞難題。

公有區塊鏈的所有資料都是公開的,任何人都可以查詢或者拿到交易記錄進行分析。

區塊鏈主要包含有五大類的技術:P2P 網路技術,共識演算法技術,塊鏈結構技術,智慧合約和密碼學。

而我們再來看資料庫。

資料庫,簡而言之可視為電子化的檔案櫃——儲存電子檔案的處所,使用者可以對檔案中的資料執行新增、擷取、更新、刪除等操作。所謂 “資料庫” 系以一定方式儲存在一起、能予多個使用者共享、具有儘可能小的冗餘度、與應用程式彼此獨立的資料集合。

第一,不管是 RDBMS、NoSQL 還是 NewSQL,都會提供一個 介面,供使用者進行資料的存取。也就是說資料是可以篡改的,這跟區塊鏈不可篡改的思想相悖。

第二,傳統企業或者網際網路企業之所以選擇資料庫,因為這些 資料是私有的,資料就是價值,資料就是競爭力。 企業資料庫儲存的資料是絕不會公開的,跟區塊鏈所倡導的公開思想完全背離。比如你在知乎提問、答題,這些資料都會給知乎帶來最大的價值,而不是給你帶來最大價值。因為這些資料是存在知乎的資料庫裡,只有具有相關許可權的人才會接觸到。他們會拿這些資料做什麼呢?出電子書、出實體書、出周邊、大資料分析等等,而這幾乎與你無關。也就是說,傳統資料庫是為企業最大化服務的,而不是使用者。

第三,傳統資料庫都是應用在 中心化 的公司或者機構,與區塊鏈去中心化的思想相悖。中心化意味著作惡的概率、被攻擊的可能性極高。

第四,部分傳統資料庫開源,還有相當大比例的資料庫都是閉源的。沒有開源的資料庫是由中心化的組織來維護程式碼,安全性和穩定性也是中心化組織來維護。這跟區塊鏈所倡導的開源思想相悖。一個開源的系統自然會存在問題,但是社群會以最快的速度進行修復。

第五,除了分散式資料庫有共識機制,其他的資料庫沒有完整的分散式協議應用,而分散式協議可以理解成區塊鏈裡的共識機制。大多數資料庫不具備共識機制。

第六,區塊鏈目前暫時沒有達到大規模應用的要求,目前也是區塊鏈技術的瓶頸,而資料庫目前完全可以支撐大規模高併發的場景。區塊鏈由於是一個分散式系統,想要實現高併發,關鍵點在於共識機制。

所以,傳統資料庫無法改造成區塊鏈。

區塊鏈可以借鑑傳統的資料庫技術有:

  • 分散式領域的 Paxos、Raft、Zab 共識協議
  • 傳統資料庫 Shard 方案與實現
  • 傳統資料庫資料組織演算法
  • 分散式事務模型

另外,關於分散式資料庫,可以看下 PingCAP 創始人劉奇作品 怎樣打造一個分散式資料庫。

原文釋出時間為:2018-01-04
本文作者:區塊鏈技術指北
本文來源:騰訊雲 雲+社群,如需轉載請聯絡原作者。


相關文章