中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

一文講透:區(qū)塊鏈?zhǔn)遣皇菙?shù)據(jù)庫?

2020-12-04    來源:raincent

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

原文標(biāo)題:《A Database is not a Blockchain》 作者:cardanians.io 來源及編譯: stakefish

「分布式數(shù)據(jù)庫」、「分布式賬本」常被許多人理解為區(qū)塊鏈的另一個名字。很多時候,他們「看起來一樣」甚至「用起來也差不多」。

那么到底能不能把區(qū)塊鏈跟數(shù)據(jù)庫劃上等號?

來自 Cardano 社區(qū)的一篇文章以數(shù)據(jù)為關(guān)鍵詞探討了這個話題。stakefish 提煉文中的主要觀點(diǎn)分享給社區(qū),供大家尋找自己的答案。

人們常說區(qū)塊鏈就是一個又慢又貴的數(shù)據(jù)庫,可擴(kuò)展性還不好。真是這樣嗎?

確實,區(qū)塊鏈永遠(yuǎn)不會像傳統(tǒng)數(shù)據(jù)庫那樣快。然而,與數(shù)據(jù)庫相比區(qū)塊鏈更勝一籌,我們有必要了解這些優(yōu)勢。

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

「塊鏈」到「區(qū)塊鏈」

從數(shù)據(jù)角度來看,區(qū)塊鏈用一個個塊來存儲數(shù)據(jù),是一個與「鏈表(Linked list)」非常類似的結(jié)構(gòu)。鏈表是一個線性數(shù)據(jù)結(jié)構(gòu),入口點(diǎn)稱為鏈表頭。鏈表中每個元素都是一個單獨(dú)的對象,由數(shù)據(jù)和指針組成,最后一個塊的指針為空。

 

 

鏈表結(jié)構(gòu)

區(qū)塊鏈增加了一個功能來防止歷史數(shù)據(jù)被篡改。

1991 年,Stuart Haber 和 W. Scott Stornetta 兩位作者首次對以加密學(xué)為基礎(chǔ)的「塊鏈(chain of blocks)」進(jìn)行研究,想要構(gòu)建一個不能篡改文檔的時間戳系統(tǒng)。

1992 年,Bayer、Haber 和 Stornetta 將 Merkle 樹嵌入設(shè)計之中,將多個文檔證書收集到一個塊中,提高了塊鏈的效率。

 

 

密碼學(xué)為安全基礎(chǔ)的「塊鏈」結(jié)構(gòu)

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

如今,概念被再定義。許多項目和 IT 巨頭都在談?wù)搮^(qū)塊鏈技術(shù)。我們已經(jīng)知道最開始的區(qū)塊鏈實際上指的是密碼學(xué)為安全基礎(chǔ)的「塊鏈」的數(shù)據(jù)結(jié)構(gòu),后來,區(qū)塊鏈隨著人們的談?wù)摦a(chǎn)生含義變化,區(qū)塊鏈一詞更廣泛的來表示相同數(shù)據(jù)結(jié)構(gòu)的分布式網(wǎng)絡(luò),更多的以「分布式賬本」被談起。

區(qū)別 1:數(shù)據(jù)存取 只能「CR」、不能「UD」

常見的數(shù)據(jù)庫不使用「塊」,而是使用「表」。表是數(shù)據(jù)庫中以表格式保存的相關(guān)數(shù)據(jù)集合,由列和行組成。

在關(guān)系數(shù)據(jù)庫中,表是一組數(shù)據(jù)元素(值),使用垂直列(通過名稱可識別)和水平行的模型,形成行和列相交的單元格。表具有指定數(shù)量的列,但可以有任意數(shù)量的行。

 

 

數(shù)據(jù)表

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

然而,區(qū)塊鏈只允許兩種操作:創(chuàng)建和讀取。區(qū)塊鏈只能在區(qū)塊鏈的末尾附加一個完整的區(qū)塊(其中包含交易),添加后數(shù)據(jù)無法更新或刪除。

數(shù)據(jù)庫允許人們不斷地更改甚至刪除過去存儲的數(shù)據(jù)。區(qū)塊鏈有意保持歷史數(shù)據(jù)不變并始終可用。

區(qū)別 2:數(shù)據(jù)權(quán)限 「一組管理員」≠區(qū)塊鏈節(jié)點(diǎn)

除了「允許進(jìn)行什么操作」,「誰來操作」也是看待區(qū)塊鏈和數(shù)據(jù)庫之間不同的另一個重要層面。

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

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

區(qū)塊鏈中不存在修改和刪除權(quán)限數(shù)據(jù)的管理員。網(wǎng)絡(luò)中的節(jié)點(diǎn)必須對任何要添加的數(shù)據(jù)達(dá)成一致。一旦添加了塊并得到確認(rèn),就沒人能輕易地更改歷史數(shù)據(jù),而且人們總是可以通過區(qū)塊鏈對過去發(fā)生的事情進(jìn)行證實。

區(qū)塊鏈取代了由管理員維護(hù)的單一服務(wù)器的方式,換以一組獨(dú)立節(jié)點(diǎn),對添加的內(nèi)容達(dá)成共識。

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

區(qū)別 3:數(shù)據(jù)備份 「冗余數(shù)據(jù)庫」≠區(qū)塊鏈

傳統(tǒng)數(shù)據(jù)庫進(jìn)行「數(shù)據(jù)復(fù)制」,主要是防止數(shù)據(jù)丟失,不能防止篡改歷史數(shù)據(jù)或管理員重寫數(shù)據(jù)。如果一個服務(wù)器接受了更改,而其他服務(wù)器沒有,還可能存在數(shù)據(jù)不一致的情況。

 

 

數(shù)據(jù)復(fù)制

區(qū)塊鏈利用去中心化共識,簡潔的解決了上述問題。一旦網(wǎng)絡(luò)中的所有或大多數(shù)節(jié)點(diǎn)同意添加一個新塊,數(shù)據(jù)就會寫入許多硬盤。即便生產(chǎn)新塊的節(jié)點(diǎn)在這一同步后立即崩潰,數(shù)據(jù)也總能在其他節(jié)點(diǎn)上確保安全,崩潰的節(jié)點(diǎn)隨后還能夠獲得關(guān)于所有區(qū)塊的有效版本。

 

 

數(shù)據(jù)在所有節(jié)點(diǎn)達(dá)成一致后被寫入所有磁盤

多個備份數(shù)據(jù)庫也不能與區(qū)塊鏈具有同等的安全性。

「數(shù)據(jù)復(fù)制」意味著一個服務(wù)器向其他服務(wù)器發(fā)送數(shù)據(jù)以進(jìn)行備份。在存儲數(shù)據(jù)之前,服務(wù)器之間并沒有對儲存某個版本數(shù)據(jù)達(dá)成共識。如果一個服務(wù)器發(fā)送了無效或錯誤的數(shù)據(jù),其他服務(wù)器只是盲目地接收和存儲它(某種數(shù)據(jù)驗證仍然在發(fā)揮作用)。

與此相反,在區(qū)塊鏈中,大多數(shù)節(jié)點(diǎn)在將一個塊存儲到區(qū)塊鏈之前必須達(dá)成一致意見。

區(qū)別 4:數(shù)據(jù)傳輸 分布式系統(tǒng)≠去中心化方案

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

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

從數(shù)據(jù)的角度看,所有的客戶端必須依賴于服務(wù)器,認(rèn)為它誠實且做足了安全保障。

現(xiàn)在,很少看到只有一個服務(wù)器的網(wǎng)絡(luò)。在大多數(shù)情況下,網(wǎng)絡(luò)中有更多的冗余服務(wù)器。如果一個服務(wù)器崩潰或暫時不可用,則會有另一個服務(wù)器代為處理所有請求,但這只有在服務(wù)器之間已經(jīng)復(fù)制數(shù)據(jù)的情況下才有可能。

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

區(qū)別 5:數(shù)據(jù)存儲 不可更改與價值證明

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

當(dāng)要求存儲不可改變的信息,比如證明狀態(tài) X 在 Z 時點(diǎn)對用戶 Y 有效時,區(qū)塊鏈的優(yōu)勢就體現(xiàn)出來了。它適合保存并證明所有權(quán)。這就是為什么人們可以在區(qū)塊鏈上創(chuàng)建數(shù)字貨幣。這類信息不能被個人所改變,安全性必須很高。添加區(qū)塊的過程其實就是以一種免信任的方式為大量用戶添加許多 X 狀態(tài)的過程。

區(qū)別與權(quán)衡

數(shù)據(jù)庫很強(qiáng)大,人們可以利用它實現(xiàn)幾乎所有想要的功能,但區(qū)塊鏈的特有功能,數(shù)據(jù)庫是做不到的。

讓我們回顧一下,看看傳統(tǒng)數(shù)據(jù)庫無法實現(xiàn),區(qū)塊鏈具備的特性:

數(shù)據(jù)不可更改。區(qū)塊鏈本質(zhì)上是一個去中心化分布式網(wǎng)絡(luò),數(shù)據(jù)在達(dá)成一致后被同時寫入許多磁盤,改變歷史數(shù)據(jù)非常困難,幾乎不可能。主要區(qū)別在于是否以去中心化方式實現(xiàn)一個數(shù)據(jù)庫。

附加的安全數(shù)據(jù)。正如上一點(diǎn)談到的,只有在大多數(shù)實體同意的情況下,新塊才會被添加。因此,插入一些被認(rèn)為無效的數(shù)據(jù)是不可能的。參與者必須嚴(yán)格遵守規(guī)則,更多的相互獨(dú)立的實體共同關(guān)注規(guī)則的執(zhí)行。

沒有管理員。區(qū)塊鏈上沒有管理員這樣一個角色來掌握更改任何內(nèi)容的權(quán)力。節(jié)點(diǎn)相互協(xié)商,共擔(dān)責(zé)任。區(qū)塊鏈具有免信任、抗刪除的特點(diǎn)。

沒有單點(diǎn)故障。這主要適用于 PoS 和 PoW 共識機(jī)制。對于 DPoS 共識來講,當(dāng)幾個節(jié)點(diǎn)同時不可用時,可能會出現(xiàn)問題。

人們可以根據(jù)需求的不同,選擇用傳統(tǒng)數(shù)據(jù)庫或者區(qū)塊鏈技術(shù)。在采用區(qū)塊鏈時,通過選擇私鏈或公鏈,來實現(xiàn)不同程度的去中心化數(shù)據(jù)管理。

很難實現(xiàn)高可擴(kuò)展性并保持高度的去中心化。數(shù)據(jù)必須分布在世界各地,因此必須考慮網(wǎng)絡(luò)延遲。達(dá)成全球共識需要一些時間。區(qū)塊鏈永遠(yuǎn)不會像數(shù)據(jù)庫那樣有效,但它可以在免信任、去中心化和防止篡改歷史數(shù)據(jù)等方面提供保護(hù)。

去中心化的方式也同樣具備替代傳統(tǒng)互聯(lián)網(wǎng)巨頭的潛力,讓更多人掌握數(shù)據(jù)并從中受益。

標(biāo)簽: 區(qū) 

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:面向AI開發(fā)公司的幾大機(jī)器學(xué)習(xí)框架(2020年版)

下一篇:值得推薦的8個git/github項目數(shù)據(jù)分析工具