區塊鏈技術資源分享
追尋中本聰先生的腳步
?

區塊鏈和普通數據庫的區別?區塊鏈數據庫公司@stakefish

原文標題:《區塊鏈是不是數據庫?》(A Database is not a Blockchain)
作者:cardanians.io
編譯:stakefish

區塊鏈具備傳統數據庫哪些無法實現的特性?

“分布式數據庫”、“分布式賬本”常被許多人理解為區塊鏈的另一個名字。很多時候,他們“看起來一樣”甚至“用起來也差不多”。
那么到底能不能把區塊鏈跟數據庫劃上等號?
來自Cardano社區的一篇文章以數據為關鍵詞探討了這個話題。stakefish提煉文中的主要觀點分享給社區,供大家尋找自己的答案。

人們常說區塊鏈就是一個又慢又貴的數據庫,可擴展性還不好。真是這樣嗎?

確實,區塊鏈永遠不會像傳統數據庫那樣快。然而,與數據庫相比區塊鏈更勝一籌,我們有必要了解這些優勢。

本文中,我們將從數據的角度來討論區塊鏈到底是什么,然后再來看看區塊鏈和數據庫之間最重要的區別。

“塊鏈”到“區塊鏈”

從數據角度來看,區塊鏈用一個個塊來存儲數據,是一個與“鏈表(Linked list)”非常類似的結構。鏈表是一個線性數據結構,入口點稱為鏈表頭。鏈表中每個元素都是一個單獨的對象,由數據和指針組成,最后一個塊的指針為空。

鏈表結構

鏈表結構

區塊鏈增加了一個功能來防止歷史數據被篡改。

1991年,Stuart Haber和W. Scott Stornetta兩位作者首次對以加密學為基礎的“塊鏈(chain of blocks)”進行研究,想要構建一個不能篡改文檔的時間戳系統。
1992年,Bayer、Haber和Stornetta將Merkle樹嵌入設計之中,將多個文檔證書收集到一個塊中,提高了塊鏈的效率。

密碼學為安全基礎的“塊鏈”結構

密碼學為安全基礎的“塊鏈”結構

要注意當時還沒有使用“區塊鏈(blockchain)”這個詞,而是使用了“塊鏈(chain of blocks)”,中本聰在比特幣白皮書中使用的也是“塊鏈”一詞。

如今,概念被再定義。許多項目和IT巨頭都在談論區塊鏈技術。我們已經知道最開始的區塊鏈實際上指的是密碼學為安全基礎的“塊鏈”的數據結構,后來,區塊鏈隨著人們的談論產生含義變化,區塊鏈一詞更廣泛的來表示相同數據結構的分布式網絡,更多的以“分布式賬本”被談起。

區別1:數據存取

只能“CR”、不能“UD”

常見的數據庫不使用“塊”,而是使用“表”。表是數據庫中以表格式保存的相關數據集合,由列和行組成。
在關系數據庫中,表是一組數據元素(值),使用垂直列(通過名稱可識別)和水平行的模型,形成行和列相交的單元格。表具有指定數量的列,但可以有任意數量的行。

數據表

數據表

人們可以在數據庫中對數據使用四種基本操作:創建、讀取、更新和刪除(CRUD)。

然而,區塊鏈只允許兩種操作:創建和讀取。

區塊鏈只能在區塊鏈的末尾附加一個完整的區塊(其中包含交易),添加后數據無法更新或刪除。數據庫允許人們不斷地更改甚至刪除過去存儲的數據。區塊鏈有意保持歷史數據不變并始終可用。

區別2:數據權限

“一組管理員”≠區塊鏈節點

除了“允許進行什么操作”,“誰來操作”也是看待區塊鏈和數據庫之間不同的另一個重要層面。

數據庫由一個或者一組管理員維護。管理員有權對數據做任何他想做的事情(CRUD四種操作)。管理者通常是大公司的雇員,必須遵守公司所有者制定的規則,會授予用戶有限的權力來創建、讀取、修改或刪除數據。

但是,即使用戶輸入了正確的數據,管理員還是可以修改或刪除它。如果對數據正確性存在爭議,用戶沒有或者僅掌握有限的修改權限,管理員總是比用戶擁有更多的權限。

區塊鏈中不存在修改和刪除權限數據的管理員。

網絡中的節點必須對任何要添加的數據達成一致。一旦添加了塊并得到確認,就沒人能輕易地更改歷史數據,而且人們總是可以通過區塊鏈對過去發生的事情進行證實。

區塊鏈取代了由管理員維護的單一服務器的方式,換以一組獨立節點,對添加的內容達成共識。

從直接參與者的角度來看,少數實體之間的私有區塊鏈可以看作是一個分布式、去中心化的系統。如果私有區塊鏈在單個公司中使用,那么雖然它有一些分布式系統的優勢,但仍然是中心化的解決方案。對于單個公司,數據庫可能是更好的選擇。

區別3:數據備份

“冗余數據庫”≠區塊鏈

傳統數據庫進行“數據復制”,主要是防止數據丟失,不能防止篡改歷史數據或管理員重寫數據。如果一個服務器接受了更改,而其他服務器沒有,還可能存在數據不一致的情況。

數據復制

數據復制

區塊鏈利用去中心化共識,簡潔的解決了上述問題。

一旦網絡中的所有或大多數節點同意添加一個新塊,數據就會寫入許多硬盤。即便生產新塊的節點在這一同步后立即崩潰,數據也總能在其他節點上確保安全,崩潰的節點隨后還能夠獲得關于所有區塊的有效版本。

數據在所有節點達成一致后被寫入所有磁盤

數據在所有節點達成一致后被寫入所有磁盤

多個備份數據庫也不能與區塊鏈具有同等的安全性。

“數據復制”意味著一個服務器向其他服務器發送數據以進行備份。

在存儲數據之前,服務器之間并沒有對儲存某個版本數據達成共識。

如果一個服務器發送了無效或錯誤的數據,其他服務器只是盲目地接收和存儲它(某種數據驗證仍然在發揮作用)。與此相反,在區塊鏈中,大多數節點在將一個塊存儲到區塊鏈之前必須達成一致意見。

區別4:數據傳輸

分布式系統≠去中心化方案

傳統數據庫采取主從式架構(client-server),這是一種軟件結構模型,由客戶端系統和服務器系統兩部分組成。它們通過計算機網絡或在同一臺計算機上通信。主從式架構的應用程序是由客戶端和服務器軟件組成的分布式系統,但還是以一個以服務器為中樞的中心化解決方案。

數據庫建立在服務器上。因此,如果只有一個服務器,那有可能造成所謂的單點故障。一旦服務器不能運行,所有的客戶端都不能與服務器通信,也就不能彼此通信。

從數據的角度看,所有的客戶端必須依賴于服務器,認為它誠實且做足了安全保障。

現在,很少看到只有一個服務器的網絡。在大多數情況下,網絡中有更多的冗余服務器。如果一個服務器崩潰或暫時不可用,則會有另一個服務器代為處理所有請求,但這只有在服務器之間已經復制數據的情況下才有可能。

如果向服務器發送交易或請求,數據將在給定時間內寫入一個數據庫,然后再將數據備份到其他數據庫。通常會有一些延遲,還有可能出現數據傳輸不一致的情況。

區別5:數據存儲

不可更改與價值證明

數據庫可以用于安全監控、信號提示、信息收集和授權等場景。許多數據庫以數據庫觸發器的形式提供有效的數據庫特性。在使用云數據庫時,數據通常只對少數人很重要,實現在數據庫系統中安全性就足夠了。用戶可以信任數據庫所有者,因為有法律等其他機制可以解決可能出現的問題。

當要求存儲不可改變的信息,比如證明狀態X在Z時點對用戶Y有效時,區塊鏈的優勢就體現出來了。它適合保存并證明所有權。

這就是為什么人們可以在區塊鏈上創建數字貨幣。這類信息不能被個人所改變,安全性必須很高。添加區塊的過程其實就是以一種免信任的方式為大量用戶添加許多X狀態的過程。

區塊鏈與傳統數據庫 - 區別與權衡

數據庫很強大,人們可以利用它實現幾乎所有想要的功能,但區塊鏈的特有功能,數據庫是做不到的。

讓我們回顧一下,看看傳統數據庫無法實現,區塊鏈具備的特性:

數據不可更改。區塊鏈本質上是一個去中心化分布式網絡,數據在達成一致后被同時寫入許多磁盤,改變歷史數據非常困難,幾乎不可能。主要區別在于是否以去中心化方式實現一個數據庫。

附加的安全數據。正如上一點談到的,只有在大多數實體同意的情況下,新塊才會被添加。因此,插入一些被認為無效的數據是不可能的。參與者必須嚴格遵守規則,更多的相互獨立的實體共同關注規則的執行。

沒有管理員。區塊鏈上沒有管理員這樣一個角色來掌握更改任何內容的權力。節點相互協商,共擔責任。區塊鏈具有免信任、抗刪除的特點。

沒有單點故障。這主要適用于PoSPoW共識機制。對于DPoS共識來講,當幾個節點同時不可用時,可能會出現問題。人們可以根據需求的不同,選擇用傳統數據庫或者區塊鏈技術。在采用區塊鏈時,通過選擇私鏈或公鏈,來實現不同程度的去中心化數據管理。很難實現高可擴展性并保持高度的去中心化。

數據必須分布在世界各地,因此必須考慮網絡延遲。達成全球共識需要一些時間。區塊鏈永遠不會像數據庫那樣有效,但它可以在免信任、去中心化和防止篡改歷史數據等方面提供保護。

去中心化的方式也同樣具備替代傳統互聯網巨頭的潛力,讓更多人掌握數據并從中受益。
原文標題:A Database is?not a Blockchain作者:cardanians.io編譯:stakefish

微信號:stakefish
功能介紹:

stake.fish全球分布式的團隊為項目與投資人提供最優質的staking經濟基礎設施服務,與廣大驗證節點和staking愛好者分享專業知識與見解,為社區的staking教育普及獻力。

stakefish由魚池創始人王純于2018年創立,團隊分布在北美、歐洲和亞洲等地,是全球領先的staking服務商。stakefish在EOS、Cosmos、Tezos、Kusama、OAN (Aion)、Loom、IRIS、BOS等網絡上運行驗證節點,同時也是Chainlink、Algorand、Storj等網絡的節點運營者。
stakefish提供staking及相關基礎設施技術服務,歡迎通過郵箱[email protected]與我們進行更詳細的業務溝通。


推薦閱讀:

區塊鏈是不是數據庫?分布式數據庫和區塊鏈技術的融合@區塊鏈大本營

神吐槽:

簡單來說就是傳統數據庫有增刪改查,四項基本功能。區塊鏈數據庫,只能增和查。

為企業和政府所用的區塊鏈技術就是加上一個阻斷技術,雖然不能刪除和改,但是可以屏蔽掉信息的顯示。

區塊鏈和普通數據庫的區別?區塊鏈數據庫公司

分享到:更多 ()
區塊鏈神吐槽

來評論吐槽 搶沙發

評論前必須登錄!

 

區塊鏈資源分享聯系我

區塊鏈資源分享聯系我首頁更多新聞
做滴滴代驾还是开滴滴那个赚钱