在大型、集中式的數(shù)據(jù)中心中存儲數(shù)據(jù),往往存在性能、可用性和可擴展性等方面問題,同時也會帶來較高的資本或運營支出。而且,集中存儲數(shù)據(jù)也極易受到復(fù)雜網(wǎng)絡(luò)攻擊。出于這些原因,企業(yè)開始尋求去中心化數(shù)據(jù)存儲的方法——區(qū)塊鏈存儲正是其中一種。
區(qū)塊鏈存儲是一種相對年輕的技術(shù),但它正漸漸受到更多人的歡迎。而且潛在的企業(yè)用例已經(jīng)開始出現(xiàn),以幫助數(shù)據(jù)中心提高數(shù)據(jù)存儲的安全性和可靠性。在確定這項技術(shù)是否適合你的企業(yè)之前,你需要了解它的工作原理。
區(qū)塊鏈存儲工作原理
區(qū)塊鏈?zhǔn)墙晔只馃岬囊婚T技術(shù),很多人對它已經(jīng)非常了解了,它是一種分布式賬本技術(shù),用于記錄兩方或多方之間的交易。到現(xiàn)在位置,該技術(shù)主要還是用于加密貨幣,如比特幣,但它在其他領(lǐng)域也正取得進展。
區(qū)塊鏈分類帳作為一個去中心化的數(shù)據(jù)庫,用于保存每個事務(wù)的詳細信息。交易按時間順序添加到分類帳,并存儲為一系列的塊,每個塊引用前面的塊以形成一個互連的鏈條。
分類帳分布在多個節(jié)點上,每個節(jié)點都保存一個完整的副本。區(qū)塊鏈自動同步和驗證所有節(jié)點上的事務(wù)。分類帳對所有參與成員都是透明的,可以驗證,無需中央機構(gòu)或第三方驗證服務(wù)。
由于其分布式特性,區(qū)塊鏈技術(shù)被評價為“天然適合P2P,去中心化存儲”。在這個場景(數(shù)據(jù)存儲)中,區(qū)塊鏈提供了創(chuàng)建一個地理上分散的存儲資源的邏輯存儲池所需的結(jié)構(gòu),其中,這些存儲池可充當(dāng)區(qū)塊鏈節(jié)點。
下圖概述了區(qū)塊鏈存儲的工作原理。
基于區(qū)塊鏈的存儲系統(tǒng),會為存儲準(zhǔn)備數(shù)據(jù),然后通過一個去中心化的基礎(chǔ)架構(gòu)進行分發(fā),這個過程可以分為以下六個步驟:
·創(chuàng)建數(shù)據(jù)分片。存儲系統(tǒng)將數(shù)據(jù)分成更小的片段,這個過程稱為分片(Sharding)。這一步將數(shù)據(jù)分解為可管理的塊,這些塊可以分布在多個節(jié)點上。具體的分片方法取決于數(shù)據(jù)類型和進行分片的應(yīng)用程序,對關(guān)系數(shù)據(jù)庫進行分片,與NoSQL數(shù)據(jù)庫或文件共享上的文件是不同的。
·加密每個分片。分片之后,存儲系統(tǒng)需要加密本地系統(tǒng)上的每個數(shù)據(jù)分片。內(nèi)容所有者可以完全控制此過程。目標(biāo)是確保內(nèi)容所有者以外的任何人都無法查看/訪問分片中的數(shù)據(jù),無論數(shù)據(jù)位于何處、該數(shù)據(jù)是靜態(tài)還是動態(tài)。
·為每個分片生成哈希(Hash)。區(qū)塊鏈存儲系統(tǒng)根據(jù)分片的數(shù)據(jù)或加密密鑰生成唯一的哈希——即固定長度的加密輸出字符串。哈希將添加到分類帳和分片元數(shù)據(jù),以便將事務(wù)鏈接到存儲的分片。生成哈希的確切方法因系統(tǒng)而異。
·復(fù)制每個分片。存儲系統(tǒng)會復(fù)制每個分片,因此有足夠的冗余副本,可確保可用性和性能,并防止性能下降和數(shù)據(jù)丟失。由內(nèi)容所有者來決定每個分片的副本數(shù)量以及這些分片所在的位置。此過程中,內(nèi)容所有者應(yīng)該為需要維護的最小副本數(shù)建立閾值,以確保不會丟失數(shù)據(jù)。
·分發(fā)復(fù)制的分片。P2P網(wǎng)絡(luò)將復(fù)制的分片分發(fā)到地理上分散的存儲節(jié)點,無論是區(qū)域還是全局。多個組織或個人(有時也稱作farmer)擁有存儲節(jié)點,通過租用額外的存儲空間可換取某種類型的補償,通常是加密貨幣。沒有一個實體能夠擁有所有存儲資源,或者控制存儲基礎(chǔ)架構(gòu)。只有內(nèi)容所有者才能完全訪問其所有數(shù)據(jù),無論這些節(jié)點位于何處。
·將交易記錄到分類帳。存儲系統(tǒng)記錄區(qū)塊鏈分類帳中的所有事務(wù),并在所有節(jié)點之間同步該信息。分類帳存儲與事務(wù)相關(guān)的詳細信息,例如分片位置,分片哈希和租賃成本等等。由于分類帳基于區(qū)塊鏈技術(shù),因此它具有透明性、可驗證性、可追溯性以及防篡改性。
雖然本文列出了六個步驟,但區(qū)塊鏈集成是一個持續(xù)不斷的過程,不局限于這幾步,確切的方法取決于具體存儲系統(tǒng)。例如,當(dāng)存儲過程首次啟用時,可能最初會在區(qū)塊鏈分類帳中記錄事務(wù)。然后,會使用信息(例如唯一哈希或特定于節(jié)點的詳細信息)來更新事務(wù),因為它們已經(jīng)是可用的。接著,在參與節(jié)點對事務(wù)進行了驗證之后,系統(tǒng)會將事務(wù)標(biāo)記為分類帳中的最終事務(wù)并進行鎖定,以防止篡改。
所以,以上描述的六個步驟,只是對區(qū)塊鏈存儲過程的概念化總結(jié)。具體方法取決于特定存儲系統(tǒng)的實際需求,即存儲系統(tǒng)如何針對給定的用例進行實施,以及如何管理數(shù)據(jù)存儲。