国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

區(qū)塊鏈存儲:技術(shù)與挑戰(zhàn)

2020-10-21 17:58蔡振華林嘉韻劉芳
關(guān)鍵詞:存儲空間存儲系統(tǒng)區(qū)塊

蔡振華,林嘉韻,劉芳

(中山大學(xué)數(shù)據(jù)科學(xué)與計(jì)算機(jī)學(xué)院,廣東 廣州 510006)

1 引言

隨著大數(shù)據(jù)、物聯(lián)網(wǎng)和邊緣計(jì)算的高速發(fā)展,數(shù)據(jù)規(guī)模呈指數(shù)級別增長。存儲系統(tǒng)作為數(shù)據(jù)存儲的基礎(chǔ)設(shè)施,面臨更大容量、更安全可靠、更低訪問延遲等諸多挑戰(zhàn)。傳統(tǒng)的大規(guī)模存儲系統(tǒng)存在缺乏安全保障、可擴(kuò)展性受限等問題,難以滿足大數(shù)據(jù)應(yīng)用的需求[1-2]。

區(qū)塊鏈技術(shù)具有防篡改和去中心化的特性,已經(jīng)被廣泛應(yīng)用于金融、銀行、供應(yīng)鏈等多個領(lǐng)域,相比傳統(tǒng)的中心化解決方案,區(qū)塊鏈可以有效地保證數(shù)據(jù)安全和系統(tǒng)架構(gòu)的去中心化,解決機(jī)構(gòu)間合作的信任和效率問題[1-2]。

在分布式存儲系統(tǒng)中引入?yún)^(qū)塊鏈技術(shù),可以提高存儲系統(tǒng)的安全性和可擴(kuò)展性。然而,將區(qū)塊鏈應(yīng)用到存儲系統(tǒng)中,也帶來了新的挑戰(zhàn),如區(qū)塊鏈的查詢性能瓶頸、存儲空間開銷增大等。

如圖1所示,當(dāng)前區(qū)塊鏈技術(shù)與存儲技術(shù)的融合主要有3個方向的工作。

圖1 區(qū)塊鏈存儲研究分類Figure 1 Classification of blockchain storage research

1)基于區(qū)塊鏈構(gòu)建的去中心化存儲系統(tǒng)。早期的去中心化存儲基于對等網(wǎng)絡(luò)實(shí)現(xiàn),由個人用戶提供存儲空間,如Ocean Store[3]和星際文件系統(tǒng)(IPFS,inter-planetary file system)等,但是這些系統(tǒng)沒有很好地解決存儲空間激勵的問題,難以讓用戶長期存儲他人的文件。區(qū)塊鏈技術(shù)的引入,彌補(bǔ)了這方面的不足,利用區(qū)塊鏈的虛擬貨幣(Tokens),可以有效激勵用戶提供存儲空間。具有代表性的基于區(qū)塊鏈的去中心化存儲系統(tǒng),有結(jié)合IPFS與區(qū)塊鏈技術(shù)的Filecoin,以及開源項(xiàng)目Sia、Storj、SAFE Network等。

2)基于區(qū)塊鏈優(yōu)化已有系統(tǒng)的存儲性能。針對中心化架構(gòu)系統(tǒng)面臨的單點(diǎn)故障、數(shù)據(jù)安全性低、隱私保護(hù)能力不足等問題,將區(qū)塊鏈技術(shù)應(yīng)用于域名系統(tǒng)、物聯(lián)網(wǎng)系統(tǒng)、超級計(jì)算系統(tǒng)、數(shù)據(jù)庫系統(tǒng)中,為系統(tǒng)設(shè)計(jì)去中心化的架構(gòu)、利用分布式賬本提高數(shù)據(jù)安全性與數(shù)據(jù)溯源能力。

3)區(qū)塊鏈系統(tǒng)自身的存儲方法與優(yōu)化。針對區(qū)塊鏈的存儲空間利用率低、查詢性能低等問題進(jìn)行優(yōu)化,如采用糾刪碼降低區(qū)塊鏈的存儲空間開銷[4-5],使用索引等技術(shù)提高區(qū)塊鏈系統(tǒng)的查詢效率。

2 基于區(qū)塊鏈構(gòu)建去中心化的存儲系統(tǒng)

中心化存儲系統(tǒng)存在服務(wù)器單點(diǎn)故障、數(shù)據(jù)丟失、隱私泄露等問題,在對等網(wǎng)絡(luò)等技術(shù)相對成熟的背景下,去中心化存儲應(yīng)運(yùn)而生。在去中心化存儲系統(tǒng)中,用戶上傳到存儲系統(tǒng)的文件被切分、加密、分散保存在多個用戶提供的存儲空間中。目前有大量基于IPFS開發(fā)的去中心化項(xiàng)目,如匿名交易平臺OpenBazaar、社交媒體網(wǎng)絡(luò)AKASHA等。

然而,去中心化存儲系統(tǒng)面臨存儲激勵問題,即如何激勵用戶提供存儲空間,長期保存其他用戶的文件。將區(qū)塊鏈技術(shù)作為去中心化存儲系統(tǒng)的激勵層,可以有效緩解該問題。引入?yún)^(qū)塊鏈之后,一方面,用戶通過提供存儲空間獲得虛擬貨幣獎勵,為租用存儲空間、訪問文件支付費(fèi)用,建立了良好的經(jīng)濟(jì)模式[6];另一方面,利用分布式賬本保存元數(shù)據(jù)信息、控制訪問權(quán)限,提高了系統(tǒng)的數(shù)據(jù)安全性[7-9]。

2.1 基于區(qū)塊鏈的去中心化存儲工作方式

以文件的上傳和下載過程分析去中心化存儲系統(tǒng)的工作方式?;趨^(qū)塊鏈的去中心化存儲的文件上傳過程如圖2所示。

圖2 基于區(qū)塊鏈的去中心化存儲的文件上傳過程Figure 2 File upload process of blockchain based decentralized storage

虛線框部分代表引入?yún)^(qū)塊鏈機(jī)制之后的變化有兩方面。一方面,區(qū)塊鏈賬本存儲文件分片的元數(shù)據(jù),可保證數(shù)據(jù)防篡改、可溯源。另一方面,將區(qū)塊鏈發(fā)行的虛擬貨幣作為獎勵,可以激勵用戶提供存儲空間。

文件上傳的算法如下。

算法1文件上傳

chunks=Cut(file)//把文件切分成相同大小的分片

For c in chunks:

c=Encrypt(c)//對文件分片進(jìn)行加密

cs=Replicate(c)//將加密分片通過糾刪碼編碼成冗余分片

m=Store(cs)//將冗余分片存儲到分布式節(jié)點(diǎn)中

hash=Hash(c)//生成加密分片的哈希值

StoreLedger(hash,m)//將分片哈希值與元數(shù)據(jù)等信息存儲到區(qū)塊鏈

基于區(qū)塊鏈的去中心化存儲的文件下載過程如圖3所示。

圖3 基于區(qū)塊鏈的去中心化存儲的文件下載過程Figure 3 File download process of blockchain based decentralized storage

虛線框部分代表存儲元數(shù)據(jù)的區(qū)塊鏈賬本。用戶通過文件名的哈希值向區(qū)塊鏈賬本發(fā)起查詢,后者返回文件的元數(shù)據(jù)信息;用戶根據(jù)元數(shù)據(jù)到對等網(wǎng)絡(luò)的存儲節(jié)點(diǎn)中獲取數(shù)據(jù),后者返回文件數(shù)據(jù)。

2.2 基于區(qū)塊鏈的去中心化存儲的特點(diǎn)

去中心化存儲系統(tǒng)引入?yún)^(qū)塊鏈后,不僅鼓勵了用戶更積極地提供存儲空間,還提高了數(shù)據(jù)安全性。中心化存儲、去中心化存儲和基于區(qū)塊鏈的去中心化存儲系統(tǒng)對比如表1所示。

表1 中心化、去中心化、基于區(qū)塊鏈的去中心化存儲對比Table 1 Comparison of centralized storage,decentralized storage and decentralized storage based on blockchain

由表1可知,基于區(qū)塊鏈的去中心化存儲有如下特點(diǎn)。

1)隱私保護(hù)能力強(qiáng)。經(jīng)過分片、加密后存儲的文件,在其他用戶硬盤中顯示為部分分片的密文數(shù)據(jù),只有通過數(shù)據(jù)擁有者的密鑰才可以查看完整數(shù)據(jù),有效地防止了數(shù)據(jù)泄露。同時,通過區(qū)塊鏈控制數(shù)據(jù)訪問權(quán)限,增強(qiáng)了隱私保護(hù)能力。

2)數(shù)據(jù)安全性強(qiáng)。去中心化的存儲系統(tǒng)架構(gòu)緩解了中心化存儲面臨的單點(diǎn)故障等問題。此外,區(qū)塊鏈技術(shù)的防篡改與可溯源特性,提高了數(shù)據(jù)安全性。

3)響應(yīng)速度快。由于去中心化的分布式架構(gòu),存儲設(shè)備分散在不同地區(qū),可以同時快速響應(yīng)多地的設(shè)備請求,有利于提高系統(tǒng)的數(shù)據(jù)收集和處理能力,加快物聯(lián)網(wǎng)應(yīng)用和邊緣計(jì)算的響應(yīng)速度。

4)下載速度快。文件分片被存儲在不同節(jié)點(diǎn),用戶下載文件時能夠以并行方式進(jìn)行。

5)閑置存儲資源利用率高。激勵用戶提供存儲資源,可以提高網(wǎng)絡(luò)上大量閑置存儲空間的利用率。

6)存儲激勵能力強(qiáng)。在去中心存儲系統(tǒng)中,需要設(shè)定良好的經(jīng)濟(jì)模式,以持續(xù)激勵用戶提供存儲空間。區(qū)塊鏈發(fā)行的虛擬貨幣,為存儲激勵提供了一個可行的解決方案。中心化存儲系統(tǒng)不涉及激勵。

7)存儲空間開銷大。從用戶設(shè)備的角度來看,中心化存儲并不需要額外的存儲空間開銷,去中心化存儲需要保存其他用戶的數(shù)據(jù),引入?yún)^(qū)塊鏈之后需要保存分布式賬本,存儲空間開銷較大。

2.3 基于區(qū)塊鏈的去中心化存儲開源項(xiàng)目

基于區(qū)塊鏈構(gòu)建的去中心化存儲系統(tǒng)引起了廣泛的關(guān)注,本小節(jié)介紹幾個具有代表性的去中心化存儲開源項(xiàng)目。

Filecoin是普林斯頓大學(xué)的研究項(xiàng)目,它是構(gòu)建于IPFS上層的去中心化的存儲網(wǎng)絡(luò),作為IPFS的激勵層存在。PPIO是PPLabs團(tuán)隊(duì)開發(fā)的去中心化的數(shù)據(jù)存儲和分發(fā)平臺,致力于提高數(shù)據(jù)的分發(fā)能力。Storj是StorjLabs公司發(fā)起的去中心化存儲網(wǎng)絡(luò)項(xiàng)目,它根據(jù)用戶提供的存儲空間容量,按月發(fā)放虛擬貨幣獎勵,Storj兼容AmazonS3存儲系統(tǒng),使第三方平臺更容易集成、遷移到Storj。SAFENetwork(safe access for everyone network)[6]是MaidSafe公司開發(fā)的項(xiàng)目,主張建立一個任何人都能安全訪問的去中心化網(wǎng)絡(luò),保護(hù)用戶的隱私和數(shù)據(jù)自治權(quán)。Sia[4]是Nebulous Labs公司創(chuàng)建的去中心化存儲項(xiàng)目,通過保存在區(qū)塊鏈上的智能合約,自動維護(hù)存儲提供方與用戶的合約關(guān)系,無須依靠可信第三方。

從技術(shù)手段、空間利用率、數(shù)據(jù)安全性、項(xiàng)目狀況、應(yīng)用場景等方面對上述5個項(xiàng)目進(jìn)行比較,如表2所示。

表2 5個代表性的去中心化存儲項(xiàng)目比較Table 2 Comparison of 5 representative decentralized storage projects

1)技術(shù)手段。在數(shù)據(jù)冗余方面,F(xiàn)ilecoin、PPIO、Storj、Sia采用了糾刪碼技術(shù),提高了數(shù)據(jù)的可靠性。在存儲空間開銷方面,F(xiàn)ilecoin、PPIO、Storj、SAFENetwork采用了重復(fù)數(shù)據(jù)刪除技術(shù),提高了存儲空間利用率。

2)空間利用率。在存儲系統(tǒng)中,重復(fù)數(shù)據(jù)刪除技術(shù)可以有效降低數(shù)據(jù)冗余,糾刪碼在一定程度上增加了數(shù)據(jù)冗余。SAFE Network采用了重復(fù)數(shù)據(jù)刪除技術(shù),空間利用率最高;Filecoin、PPIO、Storj兩者兼用,次之;Sia采用了糾刪碼技術(shù),空間利用率最低。

3)數(shù)據(jù)安全性。除了SAFE Network未提及,其他系統(tǒng)均采用了糾刪碼的數(shù)據(jù)冗余方式。除了Filecoin需要用戶自行加密,其他系統(tǒng)均采用了加密算法,保證了數(shù)據(jù)的可靠性和私密性,安全性高。

4)項(xiàng)目狀況。各項(xiàng)目的關(guān)鍵時間節(jié)點(diǎn)如圖4所示。

PPIO僅開放部分代碼,其他項(xiàng)目均已在GitHub或GitLab開源。Sia在2016年發(fā)布了正式版本,其他項(xiàng)目均處于測試階段。

5)應(yīng)用場景。雖然上述去中心化存儲系統(tǒng)都可用于存儲數(shù)據(jù)、管理數(shù)據(jù)和出租存儲空間,但側(cè)重點(diǎn)不同。如圖5所示,用戶可以根據(jù)自身需求和存儲場景選擇合適的系統(tǒng)。

Filecoin和Sia適合作為存儲基礎(chǔ)設(shè)施。其中,F(xiàn)ilecoin希望建立一個去中心化的存儲市場,將存儲與數(shù)據(jù)的定價交給市場而不是企業(yè),它是基于IPFS構(gòu)建的,適合基于IPFS進(jìn)行開發(fā)的用戶;Sia專注于為去中心化存儲提供一個功能豐富的平臺,發(fā)布了正式版本,能夠提供更穩(wěn)定、成熟的服務(wù),在靜態(tài)內(nèi)容,如視頻、音頻等數(shù)據(jù)的存儲方面表現(xiàn)良好。

圖4 基于區(qū)塊鏈的去中心化存儲項(xiàng)目進(jìn)展Figure 4 Progress of decentralized storage projects based on blockchain

圖5 系統(tǒng)應(yīng)用場景決策樹Figure 5 System application scene decision tree

PPIO、Storj與SAFE Network可以作為應(yīng)用開發(fā)平臺。PPIO關(guān)注流媒體數(shù)據(jù)的服務(wù)質(zhì)量,適合音視頻應(yīng)用的開發(fā)者;Storj兼容亞馬遜S3存儲系統(tǒng),適合希望從S3遷移的用戶;SAFE Network看重用戶的隱私與數(shù)據(jù)自主權(quán),希望建立一個言論自由、隱私受保護(hù)、安全的通信網(wǎng)絡(luò),適合對隱私與安全要求更高的場景。

3 基于區(qū)塊鏈優(yōu)化已有系統(tǒng)的存儲性能

由于區(qū)塊鏈技術(shù)的去中心化和防篡改特性,人們研究如何應(yīng)用區(qū)塊鏈技術(shù)優(yōu)化已有系統(tǒng)的存儲性能,這些研究工作涉及域名系統(tǒng)、超算系統(tǒng)、數(shù)據(jù)庫、物聯(lián)網(wǎng)等領(lǐng)域。

針對域名系統(tǒng)的單點(diǎn)故障和信任問題,普林斯頓大學(xué)研發(fā)了基于區(qū)塊鏈的域名系統(tǒng)Blockstack[10],該系統(tǒng)具有去中心化和無須信任的特性,可以提高域名系統(tǒng)的安全性和可擴(kuò)展性。在該系統(tǒng)中,區(qū)塊鏈記錄域名及其對應(yīng)地址的路由信息、地址信息被存儲在第三方云存儲服務(wù)器上。

Blockstack架構(gòu)如圖6所示。

圖6 Blockstack架構(gòu)Figure 6 Architecture of Blockstack

數(shù)據(jù)的查詢路徑為:在區(qū)塊鏈上查找域名對應(yīng)的哈希值;通過哈希值查找對等網(wǎng)絡(luò)節(jié)點(diǎn)的路由文件;根據(jù)路由文件中的地址信息訪問云存儲服務(wù)器獲取地址信息。Blockstack不僅可以應(yīng)用于域名系統(tǒng),也可以用于存儲其他類型的數(shù)據(jù)。

超級計(jì)算系統(tǒng)中,通常需要進(jìn)行數(shù)據(jù)溯源。針對現(xiàn)有基于數(shù)據(jù)庫與文件系統(tǒng)的方法準(zhǔn)確度不高、I/O開銷大等問題,In_memory Blockchain[11]將賬本放置在超級計(jì)算系統(tǒng)的計(jì)算節(jié)點(diǎn)內(nèi)存中,在計(jì)算節(jié)點(diǎn)和存儲節(jié)點(diǎn)(對應(yīng)易失內(nèi)存與非易失存儲)上驗(yàn)證數(shù)據(jù)的合法性,防止內(nèi)存數(shù)據(jù)丟失影響數(shù)據(jù)的準(zhǔn)確性,該方案具有更高的數(shù)據(jù)溯源性能。

數(shù)據(jù)庫通常是中心化的管理方式,由管理員控制整個系統(tǒng),存在數(shù)據(jù)冗余度高、安全性不足等問題。區(qū)塊鏈技術(shù)有助于解決上述問題,數(shù)據(jù)庫和區(qū)塊鏈技術(shù)的結(jié)合,可以構(gòu)建既有數(shù)據(jù)管理能力,又具備去中心化、防篡改等特性的區(qū)塊鏈數(shù)據(jù)庫。

具有代表性的區(qū)塊鏈數(shù)據(jù)庫有BigchainDB、ChainSQL、RecordsKeeper等項(xiàng)目,具有吞吐量高、防篡改、可溯源和去中心化的特點(diǎn)。BigchainDB能夠存儲PB級別數(shù)據(jù),寫性能達(dá)到每秒100萬次,延遲在亞秒級別。ChainSQL將對數(shù)據(jù)表的所有操作以日志形式記錄在區(qū)塊鏈賬本上,提供數(shù)據(jù)防篡改服務(wù),支持多種數(shù)據(jù)庫如MySQL、Oracle等。RecordsKeeper是一個開源的Key-Value數(shù)據(jù)存儲平臺,通過分布式賬本與數(shù)據(jù)加密技術(shù)提供可驗(yàn)證和安全的數(shù)據(jù)存儲服務(wù)。

BeeKeeper[12]將區(qū)塊鏈技術(shù)引入物聯(lián)網(wǎng)系統(tǒng)中,使設(shè)備能夠自由加入和退出物聯(lián)網(wǎng),提高了系統(tǒng)的可拓展性。Shafagh等[13]針對物聯(lián)網(wǎng)中存在的數(shù)據(jù)隔離問題,將物聯(lián)網(wǎng)設(shè)備產(chǎn)生的數(shù)據(jù)存儲到云端,提高數(shù)據(jù)共享能力,并利用區(qū)塊鏈控制權(quán)限,保證數(shù)據(jù)安全。對于自動化銷售系統(tǒng),Yoo等[14]引入?yún)^(qū)塊鏈和智能合約,利用智能合約代替人力執(zhí)行操作,降低了管理成本,提高了系統(tǒng)的安全性。針對物聯(lián)網(wǎng)數(shù)據(jù)分析任務(wù)的網(wǎng)絡(luò)傳輸帶寬要求高的問題,Xu等[15]提出在物聯(lián)網(wǎng)設(shè)備上執(zhí)行特定數(shù)據(jù)分析操作的方法,減少設(shè)備間的數(shù)據(jù)傳輸,加快數(shù)據(jù)分析任務(wù)的執(zhí)行速度。Wu等[16]在電網(wǎng)系統(tǒng)中應(yīng)用區(qū)塊鏈技術(shù),基于聯(lián)盟鏈構(gòu)建了智能電網(wǎng)系統(tǒng),緩解了單點(diǎn)故障、數(shù)據(jù)被篡改等問題。

4 區(qū)塊鏈系統(tǒng)的存儲方法與優(yōu)化

區(qū)塊鏈系統(tǒng)自身的存儲同樣面臨著挑戰(zhàn)。在存儲空間開銷方面,全副本和區(qū)塊鏈膨脹問題導(dǎo)致了龐大的存儲開銷。在I/O性能方面,大部分區(qū)塊鏈?zhǔn)褂昧薒evelDB作為底層數(shù)據(jù)庫,該數(shù)據(jù)庫讀速度慢[17],影響了區(qū)塊鏈的查詢性能。因此,需要對區(qū)塊鏈系統(tǒng)的存儲方法進(jìn)行優(yōu)化。本節(jié)主要介紹降低存儲空間開銷、提高查詢性能兩個方面的工作。

4.1 降低區(qū)塊鏈的存儲空間開銷

當(dāng)前主流的區(qū)塊鏈系統(tǒng)內(nèi)主要有全節(jié)點(diǎn)和輕節(jié)點(diǎn)兩種節(jié)點(diǎn),以匹配不同節(jié)點(diǎn)的存儲容量[18]。由于區(qū)塊鏈上的數(shù)據(jù)不可刪除,設(shè)備需要存儲的數(shù)據(jù)量將不斷增長。將糾刪碼引入?yún)^(qū)塊鏈系統(tǒng),有助于減小全節(jié)點(diǎn)的負(fù)擔(dān),只存儲編碼區(qū)塊的節(jié)點(diǎn)稱為糾刪碼節(jié)點(diǎn)。一個完整區(qū)塊被分成K塊,采用糾刪碼編碼成K+R個編碼區(qū)塊,任意K個編碼區(qū)塊都可以恢復(fù)出完整區(qū)塊。糾刪碼節(jié)點(diǎn)只需存儲其中一個編碼區(qū)塊,即完整區(qū)塊的,因此降低了存儲負(fù)擔(dān)。

4.1.1 基于糾刪碼的區(qū)塊鏈

區(qū)塊鏈系統(tǒng)通過將糾刪碼的編/解碼過程嵌入?yún)^(qū)塊鏈的打包與同步過程來集成糾刪碼。

1)嵌入編碼過程。糾刪碼節(jié)點(diǎn)在同步新的區(qū)塊文件時,需要先對文件進(jìn)行編碼操作,再存儲編碼后的區(qū)塊文件,如圖7所示。區(qū)塊鏈系統(tǒng)中參與挖礦的節(jié)點(diǎn)負(fù)責(zé)記賬、產(chǎn)生區(qū)塊、并將新的區(qū)塊廣播到全網(wǎng)。為了方便后續(xù)的解碼操作,還需生成相應(yīng)的解碼信息,一并存入糾刪碼節(jié)點(diǎn)中。

圖7 在區(qū)塊鏈中嵌入糾刪碼編碼過程(虛線框內(nèi)為引入糾刪碼技術(shù)后的過程)Figure 7 Encoding process of erasure code in blockchain (the additional process after the integration of erasure code is in the dotted frame)

2)嵌入解碼過程。當(dāng)新的節(jié)點(diǎn)加入系統(tǒng)時,它需要從鄰近節(jié)點(diǎn)處同步區(qū)塊鏈。由于鄰近節(jié)點(diǎn)可能只保存了部分編碼塊,無法提供完整的區(qū)塊文件,因此在進(jìn)行區(qū)塊同步時,需要首先判斷鄰近節(jié)點(diǎn)的存儲數(shù)據(jù)類型,即存儲的是編碼塊還是完整區(qū)塊,如果不是完整區(qū)塊,則需要先進(jìn)行區(qū)塊文件解碼,恢復(fù)出完整區(qū)塊再進(jìn)行同步,如圖8所示。

圖8 在區(qū)塊鏈中嵌入糾刪碼解碼的過程(虛線框內(nèi)為集成糾刪碼技術(shù)后添加的過程)Figure 8 Decoding process of erasure code in blockchain (the additional process after the integration of erasure code is in the dotted frame)

4.1.2 糾刪碼節(jié)點(diǎn)的優(yōu)勢

全節(jié)點(diǎn)、輕節(jié)點(diǎn)和糾刪碼節(jié)點(diǎn)的比較如表3所示。

相比全節(jié)點(diǎn)和輕節(jié)點(diǎn),糾刪碼節(jié)點(diǎn)有以下4個優(yōu)勢。

1)存儲需求低。糾刪碼不僅降低了對節(jié)點(diǎn)存儲資源的需求,而且有效改善了區(qū)塊鏈系統(tǒng)的可擴(kuò)展性,即節(jié)點(diǎn)可以根據(jù)自身容量大小,選擇存儲的編碼塊數(shù)量,即使是小型設(shè)備也能夠參與區(qū)塊鏈系統(tǒng),有助于將區(qū)塊鏈技術(shù)擴(kuò)展到物聯(lián)網(wǎng)。

2)網(wǎng)絡(luò)帶寬開銷小。通過糾刪碼降低對設(shè)備存儲容量的要求,有助于增加物聯(lián)網(wǎng)設(shè)備的數(shù)量,從而在初始化和同步節(jié)點(diǎn)時減少網(wǎng)絡(luò)帶寬開銷。

3)數(shù)據(jù)可用性高。降低節(jié)點(diǎn)的存儲需求,允許更多低存儲容量的節(jié)點(diǎn)參與存儲,增加系統(tǒng)中參與區(qū)塊重構(gòu)的節(jié)點(diǎn)比例,進(jìn)而提高區(qū)塊鏈系統(tǒng)的可用性。

4)數(shù)據(jù)安全性高。引入糾刪碼后,若要篡改糾刪碼節(jié)點(diǎn)中存儲的數(shù)據(jù),需要保證篡改前后區(qū)塊的哈希值一致,并且使該編碼塊與其他任意編碼塊的組合的解碼結(jié)果相同,這是難以實(shí)現(xiàn)的。相當(dāng)于多了一種區(qū)塊鏈驗(yàn)證手段,這樣有利于維護(hù)區(qū)塊鏈的安全性。

表3 3種區(qū)塊鏈節(jié)點(diǎn)的比較Table 3 Comparison of 3 types of nodes in blockchain

4.2 區(qū)塊鏈的查詢性能優(yōu)化

區(qū)塊鏈系統(tǒng)常用LevelDB數(shù)據(jù)庫存儲數(shù)據(jù),該數(shù)據(jù)庫以日志合并樹(LSM-Tree,the log-structured merge-tree)作為數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)庫的讀速度慢,且一次查詢可能需要執(zhí)行額外多次內(nèi)部查詢,影響了區(qū)塊鏈的查詢性能。下面介紹兩種提高查詢性能的方法,分別是在區(qū)塊鏈上構(gòu)建查詢層和在區(qū)塊鏈內(nèi)部加入輔助索引。

4.2.1 外聯(lián)數(shù)據(jù)庫

外聯(lián)數(shù)據(jù)庫的思想來自EtherQL[19],通過在區(qū)塊鏈外部設(shè)置數(shù)據(jù)庫,監(jiān)聽并同步區(qū)塊鏈數(shù)據(jù)到數(shù)據(jù)庫;通過數(shù)據(jù)庫接口進(jìn)行數(shù)據(jù)查詢,該數(shù)據(jù)庫架構(gòu)如圖9所示。

4.2.2 內(nèi)置索引

內(nèi)置索引的方法在區(qū)塊鏈系統(tǒng)內(nèi)部建立查詢層。王千閣等[20]提出為主鍵建立輔助索引,提高區(qū)塊鏈系統(tǒng)的查詢性能。在該方法中,主鍵指向的是數(shù)據(jù)的物理地址,而輔助索引指向的是數(shù)據(jù)對應(yīng)的主鍵,架構(gòu)如圖10所示。

圖9 外聯(lián)數(shù)據(jù)庫架構(gòu)Figure 9 Architecture of external database

圖10 內(nèi)置索引架構(gòu)Figure 10 Architecture of built-in index

焦通等[21]擴(kuò)展了區(qū)塊鏈中數(shù)據(jù)交易的數(shù)據(jù)結(jié)構(gòu),增加了交易信息的索引記錄,相比使用哈希值進(jìn)行查找交易的方法,該方法豐富了區(qū)塊鏈系統(tǒng)的查詢語義。

4.2.3 查詢性能優(yōu)化方法對比

本節(jié)從查詢速度、額外空間開銷、性能影響、可擴(kuò)展性等方面對比了外聯(lián)數(shù)據(jù)庫與內(nèi)置索引方法,如表4所示。

1)查詢速度。使用外聯(lián)數(shù)據(jù)庫和內(nèi)置索引的方式有助于提高區(qū)塊鏈的數(shù)據(jù)查詢速度。以select為例,理論分析單次查詢的時間復(fù)雜度,Ts(k)為系統(tǒng)讀取耗時,k為選擇度,T(N)為LevelDB執(zhí)行一次隨機(jī)查找的耗時,外聯(lián)數(shù)據(jù)庫較內(nèi)置索引更快[20]。

2)存儲空間開銷。外聯(lián)數(shù)據(jù)庫需要存儲區(qū)塊鏈的全部數(shù)據(jù)和索引,內(nèi)置索引只需要增加索引信息,因此前者的存儲空間開銷較大。

3)性能影響。外聯(lián)數(shù)據(jù)庫對數(shù)據(jù)的查找和更新不影響區(qū)塊鏈,而內(nèi)置索引方法需要同步索引信息,降低了系統(tǒng)的吞吐量。

4)可擴(kuò)展性。外聯(lián)數(shù)據(jù)庫的部署、擴(kuò)展容易。內(nèi)置索引需要修改系統(tǒng)內(nèi)部代碼,可擴(kuò)展性較低。

表4 外聯(lián)數(shù)據(jù)庫與內(nèi)置索引的比較Table 4 Comparison of external database method and built-in index

5 區(qū)塊鏈存儲的挑戰(zhàn)與趨勢

區(qū)塊鏈存儲提高了系統(tǒng)的存儲性能,但面臨著諸多挑戰(zhàn)。

1)分布式賬本的存儲空間開銷大。分布式賬本是區(qū)塊鏈技術(shù)的核心,然而,賬本的多副本特性需要大量的額外存儲空間,增加了存儲成本,導(dǎo)致空間利用率有限,難以支撐大規(guī)模應(yīng)用。如大規(guī)模物聯(lián)網(wǎng)中包括大量異構(gòu)的小容量設(shè)備,節(jié)點(diǎn)存儲能力有限,難以持續(xù)滿足分布式賬本不斷膨脹的存儲需求。

2)區(qū)塊鏈系統(tǒng)查詢性能的提高帶來了新的問題。使用索引、外聯(lián)數(shù)據(jù)庫等技術(shù),能夠提高區(qū)塊鏈存儲的查詢性能。然而,這些技術(shù)通過空間換取時間,降低了查詢時間,卻增加了存儲空間開銷,影響了系統(tǒng)的可擴(kuò)展性,難以較好地滿足多方面的需求。

3)去中心化存儲系統(tǒng)不夠穩(wěn)定、可靠。去中心化存儲通過引入?yún)^(qū)塊鏈技術(shù)得到改進(jìn),然而,去中心化存儲仍面臨著穩(wěn)定性不足、冷啟動引起的系統(tǒng)性能抖動等問題。當(dāng)在線的存儲節(jié)點(diǎn)較少時,可用文件的數(shù)量隨之減少,使數(shù)據(jù)可靠性、服務(wù)質(zhì)量降低,影響用戶體驗(yàn)。同時,目前大部分的去中心化存儲系統(tǒng)并未給出存儲的耐久性數(shù)據(jù),難以證明存儲系統(tǒng)的可靠性。

4)數(shù)據(jù)隱私與監(jiān)管方式尚不成熟。區(qū)塊鏈上記錄的數(shù)據(jù)交易是公開透明的,對于數(shù)據(jù)的共享和驗(yàn)證有利,卻不利于用戶的隱私保護(hù)。用戶可能通過匿名平臺進(jìn)行非法交易、發(fā)布與傳播非法內(nèi)容,對于這些內(nèi)容需要監(jiān)管。

5)區(qū)塊鏈存儲結(jié)構(gòu)和系統(tǒng)發(fā)展的可擴(kuò)展性不足。區(qū)塊鏈的鏈狀存儲結(jié)構(gòu)可能演變?yōu)闃錉?、網(wǎng)狀、格點(diǎn)狀等結(jié)構(gòu),區(qū)塊鏈也發(fā)展出了分片、可編輯技術(shù)。存儲系統(tǒng)需要適應(yīng)新技術(shù)的不斷演化,因此要求區(qū)塊鏈存儲系統(tǒng)具有良好的可擴(kuò)展性,能夠以較小的修改開銷滿足對新特性的支持。

6)區(qū)塊鏈技術(shù)對非易失存儲系統(tǒng)的壽命與性能的挑戰(zhàn)。非易失存儲介質(zhì)的寫/擦除次數(shù)有限,存在使用壽命有限的問題,且寫延遲和寫功耗相對較高。面對讀寫不平衡、隨機(jī)小寫頻繁的區(qū)塊鏈應(yīng)用,非易失存儲系統(tǒng)的壽命和平均I/O性能問題將更為突出,需要研究如何減少寫次數(shù)和寫入數(shù)據(jù)量,提高系統(tǒng)整體訪問性能和延長非易失存儲介質(zhì)的使用壽命。

由這些挑戰(zhàn)可預(yù)見,區(qū)塊鏈存儲未來研究的趨勢主要有以下4方面。

1)低存儲空間開銷的區(qū)塊鏈存儲系統(tǒng)。在大規(guī)模網(wǎng)絡(luò)中,設(shè)備的存儲能力常常是異構(gòu)的,需要考慮小容量設(shè)備的存儲能力。低空間開銷的區(qū)塊鏈存儲系統(tǒng),有利于區(qū)塊鏈部署到大規(guī)模異構(gòu)網(wǎng)絡(luò)中,適應(yīng)更多類型的系統(tǒng)與場景。糾刪碼技術(shù)能夠降低存儲空間開銷,然而,糾刪碼與區(qū)塊鏈技術(shù)結(jié)合的工作尚不夠完善。關(guān)于糾刪碼節(jié)點(diǎn)的比例、節(jié)點(diǎn)容量溢出、編碼系數(shù)設(shè)置和區(qū)塊同步等問題亟待解決。

2)高效的區(qū)塊鏈存儲查詢技術(shù)。區(qū)塊鏈存儲系統(tǒng)中需要對數(shù)據(jù)進(jìn)行查詢,然而,其查詢性能受限于區(qū)塊鏈的數(shù)據(jù)結(jié)構(gòu)、查詢方法、架構(gòu)設(shè)計(jì)等多個方面。在保證低存儲空間開銷的同時,提高其查詢性能將有利于區(qū)塊鏈存儲在更多場景的應(yīng)用。

3)可靠穩(wěn)定的去中心化存儲服務(wù)。基于區(qū)塊鏈的去中心化存儲系統(tǒng)是未來的發(fā)展趨勢,對于該存儲系統(tǒng)的數(shù)據(jù)可靠性、服務(wù)穩(wěn)定性的研究,將成為重要部分,使去中心化存儲能夠取代中心化的存儲系統(tǒng)。

4)隱私數(shù)據(jù)的保護(hù)與非法內(nèi)容監(jiān)管。在區(qū)塊鏈系統(tǒng)中,數(shù)據(jù)記錄是公開透明的,用戶身份是匿名的。信息世界的內(nèi)容傳播速度快,對于用戶的隱私需要進(jìn)行保護(hù),同時,對于非法的監(jiān)管至關(guān)重要。需要平衡用戶隱私與監(jiān)管力度,防止非法內(nèi)容的傳播。

6 結(jié)束語

區(qū)塊鏈存儲結(jié)合區(qū)塊鏈技術(shù)和存儲技術(shù),提高了存儲系統(tǒng)的安全性和可擴(kuò)展性,在許多應(yīng)用領(lǐng)域有著巨大潛力,對未來的全球存儲融合、去中心化存儲趨勢有著巨大的推動作用。本文總結(jié)了目前區(qū)塊鏈與存儲技術(shù)相結(jié)合的3方面的工作:基于區(qū)塊鏈構(gòu)建的去中心化的存儲系統(tǒng);基于區(qū)塊鏈優(yōu)化已有系統(tǒng)的存儲性能;區(qū)塊鏈系統(tǒng)自身的存儲方法與優(yōu)化。對以上3方面的工作進(jìn)行分析與比較,展示了這些工作的進(jìn)展和特點(diǎn)。最后,展望了當(dāng)前區(qū)塊鏈存儲所面臨的挑戰(zhàn)。

猜你喜歡
存儲空間存儲系統(tǒng)區(qū)塊
分層式大數(shù)據(jù)存儲系統(tǒng)緩存調(diào)度策略與性能優(yōu)化
基于多種群協(xié)同進(jìn)化算法的數(shù)據(jù)并行聚類算法
蘋果訂閱捆綁服務(wù)Apple One正式上線
《紅樓夢》的數(shù)字化述評——兼及區(qū)塊鏈的啟示
用好Windows 10保留的存儲空間
區(qū)塊鏈助跑財資管理
天河超算存儲系統(tǒng)在美創(chuàng)佳績
一場區(qū)塊鏈引發(fā)的全民狂歡
區(qū)塊鏈助力企業(yè)創(chuàng)新
基于Hadoop 的海量醫(yī)藥電商數(shù)據(jù)存儲系統(tǒng)設(shè)計(jì)與開發(fā)
宣城市| 常山县| 安乡县| 江川县| 江口县| 红安县| 太仆寺旗| 乌兰县| 嵊州市| 教育| 泗洪县| 射洪县| 合阳县| 临汾市| 桦南县| 台江县| 当雄县| 洛南县| 新乐市| 三河市| 财经| 石泉县| 合山市| 弋阳县| 彰武县| 高唐县| 怀来县| 隆昌县| 盘锦市| 东乡族自治县| 新丰县| 锡林浩特市| 龙胜| 巩义市| 福泉市| 苏尼特右旗| 富川| 集安市| 化德县| 榆社县| 广西|