想知道更多關於區塊鏈技術知識,請百度【鏈客區塊鏈技術問答社區】
鏈客,有問必答!!算法
我的認爲區塊鏈只能借鑑傳統的數據庫技術,而沒法將數據庫改形成區塊鏈。
首先咱們簡單理解下區塊鏈和傳統數據庫。
區塊鏈技術是一種不依賴第三方、經過自身分散式節點進行網路數據的存儲、驗證、傳遞和交流的一種技術方案。所以,有人從金融會計的角度,把區塊鏈技術當作是一種分散式開放性去中心化的大型網路記帳薄,任何人任什麼時候間均可以採用相同的技術標準加入本身的信息,延伸區塊鏈,持續知足各類需求帶來的數據錄入須要。
通俗一點說,區塊鏈技術就指一種全民參與記帳的方式。全部的系統背後都有一個資料庫,你能夠把資料庫當作是就是一個大帳本。那麼誰來記這個帳本就變得很重要。目前就是誰的系統誰來記帳,微信的帳本就是騰訊在記,淘寶的帳本就是阿裡在記。但如今區塊鏈系統中,系統中的每一個人均可以有機會參與記帳。在必定時間段內若是有任何數據變化,系統中每一個人均可以來進行記帳,系統會評判這段時間內記帳最快最好的人,把他記錄的內容寫到帳本,並將這段時間內帳本內容發給系統內全部的其餘人進行備份。這樣系統中的每一個人都了一本完整的帳本。這種方式,咱們就稱它爲區塊鏈技術。
區塊鏈技術被認爲是互聯網發明以來最具顛覆性的技術創新,它依靠密碼學和數學巧妙的分散式演算法,在沒法創建信任關係的互聯網上,無需藉助任何第三方中心的介入就可使參與者達成共識,以極低的成本解決了信任與價值的可靠傳遞難題。
公有區塊鏈的全部數據都是公開的,任何人均可以查詢或者拿到交易記錄進行分析。
區塊鏈主要包含有五大類的技術:P2P 網絡技術,共識算法技術,塊鏈結構技術,智能合約和密碼學。
而咱們再來看數據庫。
數據庫,簡而言之可視爲電子化的文件櫃——存儲電子文件的處所,用戶能夠對文件中的數據運行新增、截取、更新、刪除等操做。所謂 「數據庫」 系以必定方式儲存在一塊兒、能予多個用戶共享、具備儘量小的冗餘度、與應用程序彼此獨立的數據集合。
第一,不論是 RDBMS、NoSQL 仍是 NewSQL,都會提供一個 接口,供用戶進行數據的存取。也就是說數據是能夠篡改的,這跟區塊鏈不可篡改的思想相悖。
第二,傳統企業或者互聯網企業之因此選擇數據庫,由於這些 數據是私有的,數據就是價值,數據就是競爭力。 企業數據庫存儲的數據是毫不會公開的,跟區塊鏈所倡導的公開思想徹底背離。好比你在知乎提問、答題,這些數據都會給知乎帶來最大的價值,而不是給你帶來最大價值。由於這些數據是存在知乎的數據庫裏,只有具備相關權限的人才會接觸到。他們會拿這些數據作什麼呢?出電子書、出實體書、出周邊、大數據分析等等,而這幾乎與你無關。也就是說,傳統數據庫是爲企業最大化服務的,而不是用戶。
第三,傳統數據庫都是應用在 中心化 的公司或者機構,與區塊鏈去中心化的思想相悖。中心化意味着做惡的機率、被攻擊的可能性極高。
第四,部分傳統數據庫開源,還有至關大比例的數據庫都是閉源的。沒有開源的數據庫是由中心化的組織來維護代碼,安全性和穩定性也是中心化組織來維護。這跟區塊鏈所倡導的開源思想相悖。一個開源的系統天然會存在問題,可是社區會以最快的速度進行修復。
第五,除了分佈式數據庫有共識機制,其餘的數據庫沒有完整的分佈式協議應用,而分佈式協議能夠理解成區塊鏈裏的共識機制。大多數數據庫不具有共識機制。
第六,區塊鏈目前暫時沒有達到大規模應用的要求,目前也是區塊鏈技術的瓶頸,而數據庫目前徹底能夠支撐大規模高併發的場景。區塊鏈因爲是一個分佈式系統,想要實現高併發,關鍵點在於共識機制。
因此,傳統數據庫沒法改形成區塊鏈。
區塊鏈能夠借鑑傳統的數據庫技術有:
分佈式領域的 Paxos、Raft、Zab 共識協議
傳統數據庫 Shard 方案與實現
傳統數據庫數據組織算法
分佈式事務模型
另外,關於分佈式數據庫,能夠看下 PingCAP 創始人劉奇做品 怎樣打造一個分佈式數據庫。數據庫