區塊鏈資料庫與現有資料庫系統之比較
區塊鏈可以看作是一個分散式資料庫系統,用於存儲和管理交易信息。資料庫中的每個記錄稱為區塊,包含了交易的詳細信息,以及指向前一個區塊和後一個區塊的鏈接。
這種資料庫能夠獲得基於全網共識為基礎的數據可信性,並且一旦信息經過驗證並添加至區塊鏈,就會永久存儲起來,單個節點上對資料庫的修改是無效的,具有極高的防篡改和可靠性。
由此可見,區塊鏈資料庫是以安全性為首要目標的。資料庫技術從關係型資料庫到非關係型資料庫,實現了從規範化數據到非規範化數據存儲和管理的轉變,是以各種數據的存儲管理的方便為主要目標。
傳統的SQL資料庫以表作為存儲數據的基本單位,NoSQL則以JSON、key-values及表等形式作為基本單位。但是在區塊鏈資料庫(如BigchainDB)中,數據是以資產作為存儲和管理的基本單位。資產可以表示任何實際對象,包括轎車、數據集等,這些資產按照一定方式註冊到區塊鏈資料庫系統中。
區塊鏈資料庫系統符合關係型資料庫的ACID,也符合NoSQL資料庫系統的BASE。在BASE理念中,基本可用是指系統在出現不可預知的故障時,允許損失部分可用性;軟狀態是指允許系統中的數據存在中間狀態,不過該中間狀態的存在並不會影響系統的整體可用性;最終一致性指的是所有的數據副本,在經過一段時間的同步之後,最終都能夠達到一致。
區塊鏈資料庫系統是典型的分散式系統,而分散式系統的CAP原理指出,一個分散式系統不能同時滿足一致性(Consistency)、可用性(Availability)和分區容錯性(Tolerance of network Partition)這三個需求,最多只能同時滿足兩個。對於區塊鏈資料庫系統而言,當一個新的區塊被部分節點接受時,如果用戶訪問的是還沒有更新的節點,那麼用戶獲取的數據是不一致的,所以從分散式數據系統的角度來看,區塊鏈系統是一個AP系統,也就是說,它保持了可用性和分區容忍性,不過放棄了一致性。
(根據網路資料彙編)
作者編著的《互聯網大數據處理技術與應用》專著(清華大學出版社,2017)、同名公眾號,專註於大數據技術的相關科學和工程知識傳播,同時也為讀者提供一些拓展閱讀材料。歡迎選用本書做大數據相關專業的教材,有相關教學資源共享。