關於數據庫和區塊鏈,總會有很多的困惑。區塊鏈其實是一種數據庫,因爲他是數字賬本,並且在區塊的數據結構上存儲信息。數據庫中存儲信息的結構被稱爲表格。但是,區塊鏈是數據庫,數據庫可不是區塊鏈。他們雖然都是存儲信息的,但是設計卻完全不同,所以不可以互換。而且,這兩者存在的目標也不同,所以對於很多人來說,他們不是很清楚爲什麼區塊鏈是需要的,以及爲什麼數據庫更適合存儲某些數據。首先,我們來看看數據庫和區塊鏈之間的區別。

數據庫

傳統數據庫是用來存儲信息的數據結構。這包含能夠用來製作支持各類商業,金融和管理決定的報告,所需要的數據。政府也會使用數據庫來存儲大型數據,可以會有幾百萬個記錄。數據庫從文件分級系統開始,提供了最基本的信息獲取和存儲功能。然後,數據庫使用相關的模型,通過將多個數據庫進行相關,可以有更多複雜的方式來獲得數據。存儲在數據庫中的信息可以使用管理系統來進行管理。簡單的數據庫被存儲在數據行列中,被稱爲表格。表格中包含不同領域,用來定義不同記錄的種類,存儲數據被稱爲屬性。每個領域包含列和航,代表存儲的記錄。

1*rV5d77C8m4m7qRSXzRLOmw

數據庫是被管理員可以修改,管理和控制的。數據庫總是會有管理員,並且可以完全控制數據庫。他們可以創建,刪除,修改數據庫中的任何記錄。他們能優化數據庫的性能和大小。越大的數據庫就會有更慢的性能,所以管理員可以使用方法來優化。管理員也可以把這個身份轉給別人。例如,管理員可以把身份轉給另外的用戶,讓他們來進行數據庫備份。但是,問題也會有,例如服務器跨了,唯一的方法就是從備份恢復。數據庫也是遞歸的,也就是說你可以回去重複某個任務,或者說刪除任務。如果信息已經備份,那麼管理員就會刪除之前的記錄和其他過期信息。比如你在現在數據庫寫入了“John Smith”,現在需要更新住址。但是現在已經有“John Smith”的備份了,所以你可以通過現有數據庫的新地址進行更新。

1*zsf5RQBQ3PUNPlxnXvaeVg

數據庫可以通過服務器架構來實現。這是因爲計算機需要連接服務器,它們管理數據庫,從而可以獲得信息和存儲的數據。最初地時候,數據庫客戶端使用 ODBC 連接,這是由管理員設定的,然後連接到數據庫。這個客戶端軟件然後就會運行,來完成加密連接,但是必須要有權限才能進入。這個權限能夠被管理員設置,或者用戶通過密碼也可以進入。這就是爲什麼用戶賬號會被創造,可以讓認證的用戶進入,同時拒絕那些沒有認證的。現在大多數系統,都會使用網頁接口。但是對於私人信息,還是需要認證,但是公開數據庫就可以很容易地通過網頁進入。

我們可以看出,數據庫需要足夠的控制,這會讓它高度中心化。同時,這也是需要允許的,也就是說需要管理員來設定如何讓用戶進入。在生產環境下,DB 管理員需要設定只讀權限,他們也需要給用戶設定更新和寫入的權限。傳統數據庫的中心化會保證系統的安全和信任。很多數據庫都會在私人網絡下運行,同時背後是大公司的防火牆。其他也有數據庫是基於雲服務器。但是他們仍然是需要管理員來控制他們。

區塊鏈

對於區塊鏈的描述,我們會想到比特幣。但是也有很多在企業環境下運行的私有鏈。區塊鏈在 2009 年誕生,比特幣是基於它的第一個系統。在比特幣系統中,區塊鏈是不可更改的數字賬本,並且也是逐漸增長的加密分佈式數據庫。區塊鏈會在同等大小的區塊中存儲信息。每個區塊都會包含前個區塊的哈希信息,從而提供加密安全性。這個哈希的信息就是前個區塊中的數據和簽名,並且前個區塊的哈希會回到區塊鏈的首個區塊,被稱爲“創世區塊”。整個信息就會通過哈希通過,並且指向下個區塊的地址。區塊鏈數據結構,例如默克爾樹,是很有效地數據驗證方式。

1*a-4Vo2MS2YEMsSGSdD00wQ

爲了讓區塊能夠加入到區塊鏈上,整個過程中包含了博弈論。網絡中作爲節點的計算機被稱爲“礦工”,必須要競爭來從 nonce 中找出正確的數值。礦工必須要用計算資源來解決這個數值,而且這也需要計算機硬件。區塊鏈內置的協議,可以通過全網算力來得出解決難題的難易程度。這意味着如果有越多的礦工,解決問題的難度也就越高。這是因爲如果有更多礦工,網絡上就會有更多的計算資源,同時提高了哈希力,也就是 h/s。一旦礦工驗證了區塊,他們會因爲提供算力而獲得獎勵。這部分激勵就是推動節點來挖礦的動力,因爲他們會獲得交易費用和代幣。在比特幣中,這也被稱爲工作量證明算法。

就像我們看到的,區塊鏈使用去中心化的分佈式網絡。去中心化意味着網絡所有的節點都會存儲區塊鏈的備份。節點存儲全節點的備份,或者是挖礦,或者他們兩者都可以做到。沒有任何的管理員來驗證區塊轉賬。你需要能夠解決加密問題的礦工,但是這是基於全網算力的比例。一旦區塊被加入到鏈上,那麼這些信息就是不可改變以及透明的。區塊鏈轉賬是不可以逆轉的,這也意味着一旦驗證了區塊,他們就不能重複使用。區塊鏈是可以容錯的,因爲如果一個或者多個節點宕機,總是會有其他節點在運行區塊鏈。去中心化的另個優勢,就可以讓那些不認識或者不信任的人獲得透明性。區塊鏈會通過記錄轉賬來提高信任,並且提供加密安全算法來交易數據。

1*8r8KH51ZjQexca4u8gFaMA

區塊鏈是 P2P 的網絡架構。它並不需要中心化的數據庫,而是網絡所有的節點都會互相連接起來。所以,沒人可以控制所有的節點。區塊鏈上無需管理員。如果節點中有人欺詐呢?這會影響整個網絡嗎?理論上的答案是如果他們獲得大多數算力,那麼就是可能的。理論上,如果有人可以控制 51% 的算力,就可以控制網絡。這需要非常多的計算資源,所以產生攻擊是非常昂貴的。使用計算資源挖礦是有利可圖的。能夠保證區塊鏈安全的本質就是去中心化,如果有人想修改區塊鏈上的任何信息,就需要其他人的幫助來驗證。這就會從主鏈中分割出新的鏈,並且只有比主鏈長才會有效。類似比特幣有幾千個節點,所以如果需要進行欺詐,就需要改變網絡中的所有節點。實際上,這是需要大量計算和電力的,也非常困難完成。這是一種監管的方式,爲了保證沒人可以欺騙任何人。這就是爲何區塊鏈是不可更改的。同時,由於轉賬信息任何人都能看到,因此這也是透明的。

這就是區塊鏈和數據庫,在底層架構上的區別。

1*K6xWZrIXQNT4j2uULFWamA

區塊鏈和數據庫,何時應該用哪個?

數據庫由於很好的穩定性,對於企業網絡來說,是比較適合的。他們對於用戶來說,也更加友好,並且對於管理員和開發人員,也有很多支持性的管理系統。福布斯前 500 的企業都會使用數據庫來運行高端系統,從而處理大量的數據。數據庫可以擴容到幾百萬記錄,而且可以每秒處理幾千個轉賬。對於處理大量流量,例如零售,數據庫是最好的解決方案。區塊鏈不需要存儲大量的處理來進行分析,數據庫可以存儲更多的數據,並且由於不需要節點,處理速度也更快。你也不需要對於每個數據進行加密。通常,數據庫是不加密的,因爲加密會讓數據庫增加很多冗餘。傳統數據庫會通過授權來提高加密性。

非結構性數據是不需要區塊鏈的另個地方,這些更適合數據庫管理系統。數據不需要信任驗證,就好像商店每天的數據都會記錄在數據庫中。如果使用區塊鏈,來存儲私密信息,就會成本很高。只有某些公司才能知道的信息,例如社交安全和病歷都是存儲在數據庫中。能夠通過公開驗證系統使用的信息,都可以基於區塊鏈。這些個人信息能夠基於公鑰加密算法,來在區塊鏈上認證。

數據庫適合用於:
• 需要不停更新的數據,例如監控和傳感器
• 快速在線轉賬過程
• 私密信息(不能對公衆開放的)
• 需要快速處理的金融數據
• 不需要驗證的數據
• 存儲數據的應用
• 關係數據

區塊鏈的需求是建立信任和透明。簡單來說,它就是可以讓任何人獲得信息的公開賬本。它可以幫助 B2B 轉賬,例如供應鏈,貨品分佈以及庫存去驗證信息。透明性可以幫助企業例如廣告業,通過建立廣告公司的更多驗證,從而最小化欺詐行爲。區塊鏈,不是說大型數據記錄就會有更多的信息驗證。比特幣是區塊鏈首個成功部署,而且它也是作爲價值轉移和支付轉賬驗證的系統。比特幣的成功也提出了雙花問題,可以讓用戶針對同個代幣花銷兩次。比特幣使用了能夠使用時間戳順序的來對轉賬進行驗證。這就同個讓系統同時處理轉賬,從而防止雙花,這會是按照時間順序來完成的。

有些項目正在研究區塊鏈的許可性系統,將他們應用到投票系統中。由於區塊鏈可以驗證身份以及誰來投票,其實就會很有意義。主要的目標是防止欺詐,所以區塊鏈可以保證信任的公平,一些區塊鏈不需要數字貨幣或者挖礦,例如企業級別的區塊鏈。在私有和可許可環境中,使用區塊鏈科技可以有新級別的系統,有時候也會和數據庫整合,完成混合系統。

數據庫管理員會發現,區塊鏈是不相關的。你不能在不同的區塊鏈和相關數據創建聯繫。這就是這兩者重大的不同,所以當信息需要相關性的時候,區塊鏈就不適用於這些。

其他區塊鏈的應用,例如以太坊上的智能合約。這些更像是數據庫的存儲流程,其中觸發器可以用來執行代碼來處理轉賬。在以太坊網絡中,智能合約會在網絡中的所有節點運行代碼。以太坊和其他數字貨幣,例如 EOS 和 NEO 會使用區塊鏈作爲他們的智能合約生態。這是區塊鏈和傳統數據庫區分的案例。

區塊鏈適合用於:
• 資金轉賬
• 價值轉移
• 可信數據的驗證(身份,信譽,信用等等)
• 公鑰驗證
• 去中心化 APP
• 投票系統

關於區塊鏈和數據庫,還有很多可以討論。我們只是從技術角度,來發現其中的一些情況。其實數據庫和區塊鏈,並沒有誰比誰好。他們都有自己的目標,以及根據你想要處理數據的方法,來選擇不同的方案。

發文時比特幣價格 ¥48229.72

原文:https://hackernoon.com/databases-and-blockchains-the-difference-is-in-their-purpose-and-design-56ba6335778b
作者:Vince Tabora
編譯:nuszjj
稿源(譯):巴比特資訊(http://www.8btc.com/databases-and-blockchain) 版權聲明:
by
nc"
sa
作者保留權利。文章爲作者獨立觀點,不代表巴比特立場。

來源鏈接:www.8btc.com