區塊鏈是P2P的網絡架構。它并不需要中心化的數據庫,而是網絡所有的節點都會互相連接起來。所以,沒人可以控制所有的節點。區塊鏈上無需管理員。如果節點中有人欺詐呢?這會影響整個網絡嗎?理論上的答案是如果他們獲得大多數算力,那么就是可能的。理論上,如果有人可以控制51%的算力,就可以控制網絡。這需要非常多的計算資源,所以產生攻擊是非常昂貴的。使用計算資源挖礦是有利可圖的。能夠保證區塊鏈安全的本質就是去中心化,如果有人想修改區塊鏈上的任何信息,就需要其他人的幫助來驗證。這就會從主鏈中分割出新的鏈,并且只有比主鏈長才會有效。類似比特幣有幾千個節點,所以如果需要進行欺詐,就需要改變網絡中的所有節點。實際上,這是需要大量計算和電力的,也非常困難完成。這是一種監管的方式,為了保證沒人可以欺騙任何人。這就是為何區塊鏈是不可更改的。同時,由于轉賬信息任何人都能看到,因此這也是透明的。
這就是區塊鏈和數據庫,在底層架構上的區別。
區塊鏈和數據庫,何時應該用哪個?
數據庫由于很好的穩定性,對于企業網絡來說,是比較適合的。他們對于用戶來說,也更加友好,并且對于管理員和開發人員,也有很多支持性的管理系統。福布斯前500的企業都會使用數據庫來運行高端系統,從而處理大量的數據。數據庫可以擴容到幾百萬記錄,而且可以每秒處理幾千個轉賬。對于處理大量流量,例如零售,數據庫是最好的解決方案。區塊鏈不需要存儲大量的處理來進行分析,數據庫可以存儲更多的數據,并且由于不需要節點,處理速度也更快。你也不需要對于每個數據進行加密。通常,數據庫是不加密的,因為加密會讓數據庫增加很多冗余。傳統數據庫會通過授權來提高加密性。
非結構性數據是不需要區塊鏈的另個地方,這些更適合數據庫管理系統。數據不需要信任驗證,就好像商店每天的數據都會記錄在數據庫中。如果使用區塊鏈,來存儲私密信息,就會成本很高。只有某些公司才能知道的信息,例如社交安全和病歷都是存儲在數據庫中。能夠通過公開驗證系統使用的信息,都可以基于區塊鏈。這些個人信息能夠基于公鑰加密算法,來在區塊鏈上認證。
數據庫適合用于:
需要不停更新的數據,例如監控和傳感器
快速在線轉賬過程
私密信息(不能對公眾開放的)
需要快速處理的金融數據
不需要驗證的數據
存儲數據的應用
關系數據
區塊鏈的需求是建立信任和透明。簡單來說,它就是可以讓任何人獲得信息的公開賬本。它可以幫助B2B轉賬,例如供應鏈,貨品分布以及庫存去驗證信息。透明性可以幫助企業例如廣告業,通過建立廣告公司的更多驗證,從而最小化欺詐行為。區塊鏈,不是說大型數據記錄就會有更多的信息驗證。比特幣是區塊鏈首個成功部署,而且它也是作為價值轉移和支付轉賬驗證的系統。比特幣的成功也提出了雙花問題,可以讓用戶針對同個代幣花銷兩次。比特幣使用了能夠使用時間戳順序的來對轉賬進行驗證。這就同個讓系統同時處理轉賬,從而防止雙花,這會是按照時間順序來完成的。
有些項目正在研究區塊鏈的許可性系統,將他們應用到投票系統中。由于區塊鏈可以驗證身份以及誰來投票,其實就會很有意義。主要的目標是防止欺詐,所以區塊鏈可以保證信任的公平,一些區塊鏈不需要數字貨幣或者挖礦,例如企業級別的區塊鏈。在私有和可許可環境中,使用區塊鏈科技可以有新級別的系統,有時候也會和數據庫整合,完成混合系統。
數據庫管理員會發現,區塊鏈是不相關的。你不能在不同的區塊鏈和相關數據創建聯系。這就是這兩者重大的不同,所以當信息需要相關性的時候,區塊鏈就不適用于這些。
其他區塊鏈的應用,例如以太坊上的智能合約。這些更像是數據庫的存儲流程,其中觸發器可以用來執行代碼來處理轉賬。在以太坊網絡中,智能合約會在網絡中的所有節點運行代碼。以太坊和其他數字貨幣,例如EOS和NEO會使用區塊鏈作為他們的智能合約生態。這是區塊鏈和傳統數據庫區分的案例。
區塊鏈適合用于:
資金轉賬
價值轉移
可信數據的驗證(身份,信譽,信用等等)
公鑰驗證
去中心化APP
投票系統
關于區塊鏈和數據庫,還有很多可以討論。我們只是從技術角度,來發現其中的一些情況。其實數據庫和區塊鏈,并沒有誰比誰好。他們都有自己的目標,以及根據你想要處理數據的方法,來選擇不同的方案。