區塊鏈和分布式資料庫有什麼本質不同?

時間 2021-05-11 23:46:02

1樓:極客時間

簡單來說,你真的可以把區塊鏈拿來做分布式資料庫用,但它同時還可以用來做點別的。這就好比一台膝上型電腦,你可以把它當 U 盤使,存放各種檔案,扛著東奔西走(不嫌累的話)。但它還可以是一台電腦,打打遊戲看看電影,不在話下。

分布式資料庫,顧名思義,就是把資料庫分布式地部署在不同的機器(也可被稱作「節點」)之上。這個定義從表面上看,確實和區塊鏈中「全節點儲存所有區塊的模式」,其所能實現的效果是一致的。這也是我在前面提到的:

區塊鏈可以用來做分布式資料儲存的原因。

可是雖然功能相仿,但被用於做資料儲存的區塊鏈和實際中的分布式資料庫還是有一些明顯的區別。

兩者的設計初衷完全不同

分布式資料庫是分布式計算在資料庫上的實踐,為的是降低成本並同時提公升效率,所以各節點之間是互信的。而區塊鏈設計的初衷,則完全是為了解決不信任的問題。區塊鏈的這種設計理念也就使得其效率遠低於常規的分布式資料庫。

2. 兩者各節點儲存的資料量可能不同

區塊鏈中全節點上的資料一定是所有資料的全量備份,而分布式資料庫中的節點則未必。典型的比如 Hadoop 中的 HDFS,各節點中只儲存了全量資料的一部分。這樣既可以充分有效地發揮各個分布式節點的效能,又有利於提高後續查詢的並行效率。

3. 兩者維護資料的主體數量也可能不同

除非是自己搭建的個人鏈(這可真夠閒的),區塊鏈中各個節點是歸屬於不同主體的,因此區塊鏈是由多個主體共同維護的一套資料記錄。而實際運用的分布式資料庫,大多數情況下只有乙個主體,出於安全或效能的原因,將資料分布式儲存。

雖然把區塊鏈當作分布式資料庫有其天然的不足,但在對資料運算處理的功能上,區塊鏈又有它獨特的優勢。

區塊鏈具有對資料運算的能力

區塊鏈裡有乙個叫「指令碼」的功能特性,即在資料寫入之初時可以設定後續資料變更的條件——當且僅當條件滿足時,資料變更將被自動觸發。這使得區塊鏈相對於分布式資料庫增加了資料處理的能力,它並不只是一台儲存裝置,還是一台運算裝置。

2. 區塊鏈具備架設鏈上應用的能力

既然具備了運算功能,區塊鏈上自然就可以執行程式了。早兩年網路賭博就曾大量往區塊鏈上遷移,利用的就是這個特點。賭徒將賭本放入區塊鏈中,並設定輸贏規則,開盤後系統自動執行該規則。

由於區塊鏈是分布式系統,理論上任何人都無法作弊,公平公正公開,開創了網路賭博之文明先河。近兩年區塊鏈上的各種應用開始井噴式增長,發票、合同、溯源、跨境都是不錯的方向。

3. 區塊鏈擁有成為超級網路的潛力

區塊鏈的「野望」還不僅與此,乙個分布式系統具備了執行程式的能力,其最終的發展方向相信已經不言自明了。IPFS 是被寄予厚望的下一代網路傳輸協議,其分布式網路特點有望讓人人都成為站點,從此再無中心化。在這個過程中,區塊鏈將會發揮怎樣的作用現在還無人可以預料,但創新不止,探析不止。

鏈圈不死,資料永生。

編輯 | Bora.Don

2樓:秘猿科技

瀉藥區塊鏈聽起來有一點點像資料庫,但又不一樣,區別就在於,它是利用區塊鏈和密碼學技術,讓這個資料庫儲存的東西是可證明的、能達成共識的

3樓:非對稱科技

最大的不同就是owner的歸屬,也就是本質不同。

區塊鏈的技術底層是乙個沒有owner的分布式資料庫,但是區塊鏈不僅僅是資料庫。舉個不是很恰當的比喻那就是帝國主義和烏托邦的區別。

借用一下 @Vincent Zhang 的回答:

分布式資料庫各節點之間的關係是:信任,協作。

區塊鏈各節點之間的關係是:懷疑,制約。

從節點中可以看出,組織結構上,每個重要環節的節點產生作用的本身就是不同的。

或許技術創造的發展有相似之後,但是引領整個結構的作用是不同的,其本質也不同。

4樓:

傳統分布式資料庫:

沒個節點都是信任的,合作共同完成任務。

位元幣的區塊鏈:

節點之間是懷疑、監督。

乙個任務由乙個節點完成,其他節點負責監督。多數節點審核通過才算完成任務。

傳統分布式資料庫的目的是提公升效率,安全性另想辦法解決。

位元幣的區塊鏈是犧牲效率保證安全。

其他的區塊鏈如何運作不太了解,所以這裡特指位元幣的區塊鏈。

5樓:流浪位元

分布式資料庫還是中心化的儲存,管理麻煩,獲取資料容易。其只記錄資料狀態,不記錄資料過程。資料靠運營公司自身去維護。

區塊鏈算分布式儲存,概念還是有差別的。只要網路在,資料在,對企業來說資料不好獲取和統計。資料靠網路上的礦工處理,靠大礦廠維護。

若是某企業統一入口管理使用者使用區塊鏈產品,如數字貨幣交易平台,平台還是通過中心化儲存管理使用者資料,這又違背了區塊鏈的初衷。區塊鏈的初衷,比如數字貨幣,應該是全球人與人之間都可以轉賬數字貨幣,當然這風險、影響就非常大了,更何況是沒價值炒起來的幣。

6樓:維基鏈

兩者有本質的區別,具體如下:

1) 中心化vs去中心化:分布式資料庫是在中心化環境儲存和管理的。這裡講的中心化,不一定是物理上的中心化(因為有許多超大規模分布式資料庫可能在物理上都分布到了不同資料中心的機房)而更多是指資料庫的owner是同一家法人主體的(也可能是個人)。

而區塊鏈則不同,尤其我們說的公鏈都是開放性的,不同的個體或者個人大都可以去獲得並驗證區塊鏈裡面的資料。這樣也就是採取了去中心化的儲存和管理模式。

2) 資料儲存和管理的架構區別:分布式資料庫的產生大多是為了克服單台資料庫伺服器無法承載更大的資料量的儲存和計算時候,需要通過多台分片的資料庫來協作參與資料儲存和計算。通常有一主多從,或者多主多從資料庫的部署模式。

而區塊鏈的儲存這塊是按照塊來儲存,但是塊之間是用塊的雜湊值來關聯,即在當前塊裡面含有指向前一塊的雜湊值。這種做法,可以確保資料無限擴充套件,同時強關聯可回溯而且不可篡改。另外區塊鏈資料可以被分布在不同地方的節點來同步和儲存相同的資料。

3) 資料操作模式區別:分布式資料庫和一般資料庫一樣,有四種基本操作:CRUD (Create/Read/Update/Delete) 然而區塊鏈只能有CR兩種操作:

即建立新的塊和讀取塊資料。這樣可以保障區塊鏈資料一旦寫入再也無法篡改,只能不斷增加新的資料塊。這在財務記賬裡面非常常見,無非是在資料庫裡面是靠業務規則來實現這種約束,而在區塊鏈上面是靠密碼學和共識機制來約束了,所以後者更為可靠可信。

7樓:奧芯軟體方案

區塊鏈是一種共享的分布式資料庫技術。儘管不同報告中對區塊鏈的一句話介紹措辭都不相同,但以下4個技術特點是共識性的。

1.去中心化(Decentralized):圖1的左側描述了當今金融系統的中心化特徵,右側描述的是正在形成的去中心化金融系統,其沒有中介機構,所有節點的權利和義務都相等,任一節點停止工作都會不影響系統整體的運作;

2.去信任(Trustless):系統中所有節點之間無需信任也可以進行交易,因為資料庫和整個系統的運作是公開透明的,在系統的規則和時間範圍內,節點之間無法欺騙彼此;

3.集體維護(Collectively Maintain):系統是由其中所有具有維護功能的節點共同維護的,系統中所有人共同參與維護工作;

4.可靠資料庫(Reliable Database):系統中每乙個節點都擁有最新的完整資料庫拷貝,修改單個節點的資料庫是無效的,因為系統會自動比較,認為最多次出現的相同資料記錄為真。

位元幣、以太坊、DECENT這些專案的區塊鏈都是具備這些特點的。

8樓:兔子妹

區塊鏈技術的資料共享是乙個分布式的記賬簿,交易記錄具備多個副本,因此首先要解決分布式資料儲存的問題。

通俗的說,在技術上,區塊鏈的本質就是分布式資料庫。

9樓:幣勝課

區塊鏈是一種共享的分布式資料庫技術。儘管不同報告中對區塊鏈的一句話介紹措辭都不相同,但以下4個技術特點是共識性的。

1. 去中心化(Decentralized):圖1的左側描述了當今金融系統的中心化特徵,右側描述的是正在形成的去中心化金融系統,其沒有中介機構,所有節點的權利和義務都相等,任一節點停止工作都會不影響系統整體的運作;

2. 去信任(Trustless):系統中所有節點之間無需信任也可以進行交易,因為資料庫和整個系統的運作是公開透明的,在系統的規則和時間範圍內,節點之間無法欺騙彼此;

3. 集體維護(Collectively Maintain):系統是由其中所有具有維護功能的節點共同維護的,系統中所有人共同參與維護工作;

4. 可靠資料庫(Reliable Database):系統中每乙個節點都擁有最新的完整資料庫拷貝,修改單個節點的資料庫是無效的,因為系統會自動比較,認為最多次出現的相同資料記錄為真。

位元幣、以太坊、DECENT這些專案的區塊鏈都是具備這些特點的。

而分布式資料庫系統通常使用較小的計算機系統,每台計算機可單獨放在乙個地方,每台計算機中都可能有DBMS的乙份完整拷貝副本,或者部分拷貝副本,並具有自己區域性的資料庫,位於不同地點的許多計算機通過網路互相連線,共同組成乙個完整的、全域性的邏輯上集中、物理上分布的大型資料庫。

10樓:

之前我們 CTO 王濤也針對這個Topic在 BTA大會上做了sharing

去中心化資料庫:傳統IT與區塊鏈的未來融合形式_巴位元_服務於區塊鏈創新者

其中,也從資料庫行業「老司機」的角度來進行了對比。

不同點:

1)功能架構

如圖所示

黃色部分是區塊鏈和資料庫架構都擁有的功能。白色的部分是目前資料庫獨有的功能。

SQL我們再上文也有提及,資料庫的SQL能力是實現其通用性的重要部分,SQL對於之後區塊鏈的開發模式固定下來很重要。

索引管理這塊,在資料庫中主要是提公升資料管理和資料查詢的效能效率的,當具體的應用場景出現,效能將成為下一階段需要提公升的重要部分。因此,儲存的資料的索引就成為很重要的組成了。

在機制上,區塊鏈和資料庫的主要區別就如以下幾點:

2)一致性

區塊鏈的設計思想,與傳統資料庫設計思想最大的不同就在於多活,也就是去中心化這個體系下所帶來的一致性模型的區別。

傳統的關係型資料庫遵循ACID強一致模型,寫入的記錄立刻可以讀到。而一些新型分布式資料庫採用最終一致性,也就是BASE模型,寫入的資料暫時不一定讀到,但是最終一定會存在。

但是,區塊鏈,或者說去中心化資料庫的設計思路就存在明顯區別,也就是說任何操作不存在「永久確認」這個概念。即使類似位元幣,從核心原理上來看6個塊之前的內容也只是「基本不會被回退」。舉個極端的例子,如果中美之間廣域網出於什麼原因突然斷了三天,之後恢復的話位元幣一定會出現大規模分叉,這個期間如果有賬號同時在中美進行大額消費的話,想要恢復乙個主鏈則一定需要犧牲很大一部分人的交易才能實現回退。

那麼,既然在對等架構中沒有辦法保障強一致,那麼區塊鏈體系中的一致性則和傳統資料庫存在本質上的區別,從而引發後續一系列設計上的不同。歸根節底,在任何傳統主從架構的資料庫模型中,人們會想盡一切方法防止集群內出現「腦裂」,也就是同乙個集群裡面兩個節點都認為自己是主節點。但是這個問題在對等資料庫體系下時時刻刻都可能發生,而這種現象在區塊鏈裡面叫做分叉,這是和我們傳統資料庫一致性模型非常不同的地方。

3)鎖機制

其中,鎖機制可以說是區塊鏈與資料庫在保障資料一致性方面最大的區別。

所有研究過資料庫的同學不可能沒聽說過鎖。當我們做乙個事務的時候,提交之前所有該會話變更的記錄都要被鎖住,不能被其他會話所修改。

而去中心化資料庫,由於每個賬本節點操作本地資料,變更資訊會非同步地傳輸出去,因此根本不存在乙個全域性鎖能夠在記錄變更的時候通知其他人。因此,在無鎖的前提下,去中心化資料庫,也就是區塊鏈該怎樣保障資料一致呢?

位元幣使用的是UTXO結構,有點類似於資料庫的「樂觀鎖」的思路,也就是操作的時候不進行鎖定,只有在最後提交的過程中判斷記錄有沒有變化。

位元幣則是通過coin是否被花費的狀態來判斷是否存在交易衝突。而以太坊則是使用nonce作為每條記錄的遞增計數器來判斷是否存在針對某一賬戶的重複交易,實際上也是一種變相實現的行級鎖的機制。

4)安全機制其中對不同點的解釋其實很容易讓了解資料庫的同學理解到。

對於區塊鏈是分布式資料庫的說法,有疑惑,區塊鏈不支援常規資料庫的檢索的吧?

auxten Bitcoin 只是乙個賬本,算不上是資料庫,如果強行說 Bitcoin 是資料庫,那 csv 就可以算是結構化資料庫了。 dgon 首先樓主你的理解是對的,區塊鏈本身確實不支援你說的那種常規的資料庫檢索。但是,如果你想長期當節點的話 比如礦池主 可以把前面鏈裡的內容自己轉化成常規資料...

分布式資料庫,如hadoop cassandra mysql集群,主流是採用什麼儲存技術,DAS NAS還是SAN?

如果簡單的回答題主的問題,那麼答案是DAS。除了MySQL以外,其他的都是經典的分布式系統。這些分布式系統通常假定任何裝置都是不可靠的,演算法上會對資料做冗餘儲存,因此對介質本身的要求相對較低,DAS即可。MySQL相對特殊。一般而言,如果用MySQL,題主要用的是關聯式資料庫,且資料一般是比較重要...

分布式資料庫計算引擎對分布式儲存系統底座提出了哪些新的技術挑戰?

lemon wonder 我說一下HTAP情況,對於資料庫,TP主要是事務相關,一般底層儲存引擎使用行存,對於AP是分析性,對事務要求沒那麼高,一般用列存,要處理HTAP,那要做到行列混合儲存就很困難。對於儲存引擎,一種是外掛程式型,向MySQL中,SQL和儲存約定好介面,實現介面並直接使用。但是要...