簡(jiǎn)單來說,你可以把區(qū)塊鏈拿來做分布式數(shù)據(jù)庫(kù)用,但它同時(shí)還可以用來做點(diǎn)別的。
這就好比一臺(tái)筆記本電腦,你可以把它當(dāng) U 盤使,存放各種文件,扛著東奔西走。但它還可以是一臺(tái)電腦,打打游戲看看電影,不在話下。
分布式數(shù)據(jù)庫(kù),顧名思義,就是把數(shù)據(jù)庫(kù)分布式地部署在不同的機(jī)器(也可被稱作“節(jié)點(diǎn)”)之上。
這個(gè)定義從表面上看,確實(shí)和區(qū)塊鏈中“全節(jié)點(diǎn)保存所有區(qū)塊的模式”,其所能實(shí)現(xiàn)的效果是一致的。這也是前面提到的:區(qū)塊鏈可以用來做分布式數(shù)據(jù)存儲(chǔ)的原因。
可是雖然功能相仿,但被用于做數(shù)據(jù)存儲(chǔ)的區(qū)塊鏈和實(shí)際中的分布式數(shù)據(jù)庫(kù)還是有一些明顯的區(qū)別。
1、設(shè)計(jì)初衷:兩者完全不同
分布式數(shù)據(jù)庫(kù)是分布式計(jì)算在數(shù)據(jù)庫(kù)上的實(shí)踐,為的是降低成本并同時(shí)提升效率,所以各節(jié)點(diǎn)之間是互信的。而區(qū)塊鏈設(shè)計(jì)的初衷,則完全是為了解決不信任的問題。區(qū)塊鏈的這種設(shè)計(jì)理念也就使得其效率遠(yuǎn)低于常規(guī)的分布式數(shù)據(jù)庫(kù)。
2、各節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)量:兩者不同
區(qū)塊鏈中全節(jié)點(diǎn)上的數(shù)據(jù)一定是所有數(shù)據(jù)的全量備份,而分布式數(shù)據(jù)庫(kù)中的節(jié)點(diǎn)則未必。典型的比如 Hadoop 中的 HDFS,各節(jié)點(diǎn)中只保存了全量數(shù)據(jù)的一部分。這樣既可以充分有效地發(fā)揮各個(gè)分布式節(jié)點(diǎn)的效能,又有利于提高后續(xù)查詢的并行效率。
3、數(shù)據(jù)維護(hù)的主體數(shù)量:兩者也不同
除非是自己搭建的個(gè)人鏈,區(qū)塊鏈中各個(gè)節(jié)點(diǎn)是歸屬于不同主體的,因此區(qū)塊鏈?zhǔn)怯啥鄠€(gè)主體共同維護(hù)的一套數(shù)據(jù)記錄。而實(shí)際運(yùn)用的分布式數(shù)據(jù)庫(kù),大多數(shù)情況下只有一個(gè)主體,出于安全或效能的原因,將數(shù)據(jù)分布式存儲(chǔ)。
和數(shù)集團(tuán)認(rèn)為,在作為數(shù)據(jù)存儲(chǔ)這個(gè)功能上,區(qū)塊鏈雖然和分布式數(shù)據(jù)庫(kù)有些相同之處,也能實(shí)現(xiàn)分布式數(shù)據(jù)庫(kù)的一些基本功能,但兩者的底層邏輯則是完全不同,就更不用再去討論兩者在分布式系統(tǒng)中最核心的 CAP 規(guī)則上的巨大差距了。
雖然把區(qū)塊鏈當(dāng)作分布式數(shù)據(jù)庫(kù)有其天然的不足,但在對(duì)數(shù)據(jù)運(yùn)算處理的功能上,區(qū)塊鏈又有它獨(dú)特的優(yōu)勢(shì)。