陳 曦,沈蘇彬
(1.南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210046;2.南京郵電大學(xué) 通信與網(wǎng)絡(luò)技術(shù)國家工程研究中心,江蘇 南京 210046)
基于云計(jì)算概念,誕生了一種新型存儲方式即云存儲,該存儲方式將互聯(lián)網(wǎng)中各種類型的存儲設(shè)備聯(lián)合起來協(xié)同工作,主要應(yīng)用于存儲海量數(shù)據(jù)。隨著云計(jì)算、物聯(lián)網(wǎng)、人工智能、大數(shù)據(jù)等信息技術(shù)的飛速發(fā)展以及傳統(tǒng)產(chǎn)業(yè)向數(shù)字化轉(zhuǎn)型,全球數(shù)據(jù)呈現(xiàn)幾何級增長,刺激了云存儲技術(shù)的日臻成熟,用戶將已有的數(shù)據(jù)上傳云端以實(shí)現(xiàn)數(shù)據(jù)價(jià)值最大化,無疑對云存儲服務(wù)的安全性、可靠性提出了更高的要求。傳統(tǒng)云存儲模式依賴于云服務(wù)提供商的數(shù)據(jù)中心,沒有充分利用用戶閑置存儲,存在存儲資源浪費(fèi)的問題。
由于比特幣的出現(xiàn),區(qū)塊鏈技術(shù)成為研究者們的關(guān)注焦點(diǎn)。區(qū)塊鏈技術(shù)作為一種新興技術(shù)和信息基礎(chǔ)設(shè)施,近兩年得到金融、供應(yīng)鏈、能源、醫(yī)療、物聯(lián)網(wǎng)等行業(yè)的高度重視,是變革互聯(lián)網(wǎng)的新力量以及構(gòu)建未來信任互聯(lián)網(wǎng)的基石。2014年,以太坊第一次將智能合約與區(qū)塊鏈完美契合,這里智能合約是指可以運(yùn)行在區(qū)塊鏈上的模塊化、可重用、自動執(zhí)行的一段程序代碼,能夠?qū)崿F(xiàn)價(jià)值的存儲、傳遞、控制和管理,智能合約使區(qū)塊鏈網(wǎng)絡(luò)可以實(shí)現(xiàn)更加復(fù)雜的邏輯,區(qū)塊鏈潛藏的巨大價(jià)值也被業(yè)界漸漸地意識到。2016年12月,區(qū)塊鏈與其他重大前沿技術(shù)及應(yīng)用一起被寫入 “十三五”國家信息化規(guī)劃中。
該文提出利用區(qū)塊鏈技術(shù)的去中心化、不可篡改、基于共識的信任等自身技術(shù)特點(diǎn),將區(qū)塊鏈融入到去中心化云存儲方案中,實(shí)現(xiàn)可信云上存儲資源的可信分配。首要解決的問題是如何設(shè)計(jì)基于區(qū)塊鏈的去中心化的可信存儲資源可信分配的區(qū)塊結(jié)構(gòu),然后需要解決的問題是如何使上述區(qū)塊形成鏈,最后需要解決的問題是如何基于區(qū)塊鏈實(shí)現(xiàn)存儲資源的分配。該文提出去中心化結(jié)構(gòu)的云上存儲資源的可信分配機(jī)制,最終將云上存儲資源可信分配過程中涉及到信任管理的關(guān)鍵數(shù)據(jù)記錄到區(qū)塊鏈這一無法篡改的公共賬本,系統(tǒng)參與方可以根據(jù)區(qū)塊鏈上的數(shù)據(jù)記錄執(zhí)行相應(yīng)操作的解決方案,并在以太坊平臺上進(jìn)行了仿真實(shí)驗(yàn)驗(yàn)證方案的可行性與正確性。
早期的去中心化云存儲服務(wù)如Ocean Store和星際文件系統(tǒng)(Inter-Planetary File System,IPFS)等系統(tǒng)是基于對等網(wǎng)絡(luò)實(shí)現(xiàn)的,由個人用戶提供存儲空間,但是沒有很好地解決存儲激勵問題從而難以讓用戶長期提供存儲他人數(shù)據(jù)的服務(wù),造成用戶的流失。區(qū)塊鏈技術(shù)的引用彌補(bǔ)了上述去中心化云存儲系統(tǒng)的短板,最為杰出的基于區(qū)塊鏈的去中心化云存儲平臺如結(jié)合區(qū)塊鏈與星際文件系統(tǒng)的Filecoin、開源的Storj和Sia等,旨在利用區(qū)塊鏈的資源管理和經(jīng)濟(jì)激勵,將用戶閑置存儲設(shè)備整合成數(shù)據(jù)中心,以提供覆蓋面更廣的云存儲服務(wù)平臺來滿足用戶的存儲空間共享的需求并能夠?yàn)樵拼鎯Ψ?wù)提供方節(jié)省建設(shè)或擴(kuò)建數(shù)據(jù)中心的成本,同時可以獲得相應(yīng)收益。
上述基于區(qū)塊鏈的去中心化云存儲系統(tǒng)大多是利用了區(qū)塊鏈的激勵機(jī)制來激勵用戶的存儲資源共享行為,比如Storj的激勵機(jī)制是出租存儲空間以獲得Storjcoin(SJCX),但對于如何基于區(qū)塊鏈自身技術(shù)特點(diǎn)來實(shí)現(xiàn)去中心化的可信存儲資源可信分配,未展開深入研究以及設(shè)計(jì)。針對該問題,該文設(shè)計(jì)了一種利用區(qū)塊鏈自身特點(diǎn)的、完全去中心化的存儲資源可信分配方法。
基于區(qū)塊鏈的去中心化存儲資源可信分配的解決方案中,根據(jù)傳統(tǒng)云存儲方案以及現(xiàn)有的基于區(qū)塊鏈的去中心化云存儲項(xiàng)目中的參與方角色分布,完成了該方案的角色劃分,分別包括存儲資源提供方、存儲資源使用方、管理員三種節(jié)點(diǎn)角色,其中提供方根據(jù)自身資源情況向網(wǎng)絡(luò)中廣播存儲資源提供信息,包括身份標(biāo)識、存儲容量、提供時限、時間戳以及數(shù)字簽名;使用方在網(wǎng)絡(luò)收集已發(fā)布的存儲資源信息并合法地對可用資源發(fā)出存儲資源使用請求信息,具體是由使用方對帶有提供方簽名的存儲資源及其存儲資源請求信息再次簽名來完成,其中包括請求存儲資源的相關(guān)信息、使用方身份標(biāo)識、請求容量、時間戳以及使用方數(shù)字簽名,并且在該網(wǎng)絡(luò)中具備一定能力的任一系統(tǒng)參與方節(jié)點(diǎn)都可扮演管理員這一角色,具體將在第3章節(jié)進(jìn)行管理員節(jié)點(diǎn)的具體工作闡述。該文基于區(qū)塊鏈技術(shù)本身實(shí)現(xiàn)完全去中心化的存儲資源可信分配,根據(jù)第2、3章節(jié)的研究工作,設(shè)計(jì)了一種去中心化、可信存儲資源分配的智能合約,約定一系列系統(tǒng)參與方之間的既定邏輯規(guī)則,最終實(shí)現(xiàn)去中心化云存儲系統(tǒng)中的可信存儲資源分配,并可以規(guī)避傳統(tǒng)云存儲的中心化信任問題帶來的風(fēng)險(xiǎn)。
在本章節(jié)中類比于比特幣系統(tǒng)中區(qū)塊結(jié)構(gòu)、鏈結(jié)構(gòu)完成了適用于文中去中心化存儲資源可信分配解決方案的區(qū)塊結(jié)構(gòu)以及鏈結(jié)構(gòu)的設(shè)計(jì)。
(1)存儲資源可信分配塊結(jié)構(gòu)。
該文參考比特幣系統(tǒng)中的“塊”設(shè)計(jì),將比特幣系統(tǒng)中的“信任操作”替換成文中存儲資源使用請求數(shù)據(jù),其中每個區(qū)塊可分為區(qū)塊頭和區(qū)塊體,其中區(qū)塊頭中包含三組元數(shù)據(jù):一組是引用前一區(qū)塊的哈希值數(shù)據(jù),第二組是與競爭記賬權(quán)有關(guān)的難度值、時間戳、隨機(jī)數(shù),第三組是區(qū)塊體中Merkle樹的根節(jié)點(diǎn)。區(qū)塊體中存儲著已通過驗(yàn)證的交易數(shù)據(jù),具體是以Merkle樹的形式進(jìn)行存儲的,如圖1所示。支持基于區(qū)塊鏈進(jìn)行存儲資源可信分配的兩個重要部分是Merkle根和時間戳。在區(qū)塊結(jié)構(gòu)設(shè)計(jì)中,獲得記賬權(quán)的管理節(jié)點(diǎn)在打包區(qū)塊的時候會在區(qū)塊頭中自動寫入時間戳,時間戳是區(qū)塊產(chǎn)生的憑證,對所設(shè)計(jì)的方法中避免存儲資源的過度分配具有重要作用。而Merkle根值作為已被驗(yàn)證通過的交易的唯一標(biāo)識,任何對鏈上交易記錄甚至是交易記錄的存儲順序的篡改都會使得Merkle根值發(fā)生改變,由此導(dǎo)致區(qū)塊內(nèi)容發(fā)生改變,故區(qū)塊鏈極大程度地保證了鏈上數(shù)據(jù)不可篡改,隨著鏈的不斷延長這個保證也愈來愈強(qiáng),鏈上數(shù)據(jù)篡改難度愈來愈大。
圖1 基于區(qū)塊鏈的去中心化存儲資源分配的區(qū)塊結(jié)構(gòu)
為了完成存儲資源的可信分配,重點(diǎn)之一是要完成節(jié)點(diǎn)的身份真實(shí)性驗(yàn)證,這是保證可信分配的前提。脫離第三方的身份驗(yàn)證,基于區(qū)塊鏈如何實(shí)現(xiàn)系統(tǒng)參與者的身份真實(shí)性驗(yàn)證?采用以太坊的基于非對稱加密算法和數(shù)字簽名技術(shù)的身份驗(yàn)證方案,參與方可以自主地通過生成的密鑰對加入網(wǎng)絡(luò),并擁有一個對應(yīng)的地址來標(biāo)識參與者的身份。當(dāng)提供方發(fā)布的存儲資源被請求使用時,會涉及到驗(yàn)證資源提供方的身份真實(shí)性;當(dāng)需求方提交使用請求后,需要對需求方進(jìn)行身份真實(shí)性的驗(yàn)證,以判斷其是否具備使用資格。存儲資源的可信分配的對應(yīng)關(guān)系通過在智能合約中設(shè)計(jì)的Request結(jié)構(gòu)表示,其中包括所請求存儲資源的相關(guān)信息(resourceInfo)、存儲資源使用方身份標(biāo)識(customerId)、請求的資源量(capacity)、時間戳(timestamp)、使用方的數(shù)字簽名(cSig),具體定義如下:
struct Request{
bytes resourceInfo;
bytes customerId;
uint capacity;
uint256 timestamp;
bytes cSig;
}
(2)存儲資源可信分配鏈結(jié)構(gòu)。
基于區(qū)塊鏈的存儲資源可信分配實(shí)際上是如圖1所示的交易數(shù)據(jù)形成區(qū)塊的上鏈過程。區(qū)塊鏈源于比特幣,其中通過隨機(jī)散列對交易數(shù)據(jù)加蓋時間戳,將它們合并入一個不斷延伸的基于隨機(jī)散列的工作量證明的鏈條作為交易記錄。區(qū)塊鏈技術(shù)可以令在決策權(quán)高度分散的去中心化網(wǎng)絡(luò)中的各個節(jié)點(diǎn)之間達(dá)成共識,運(yùn)用多方共識機(jī)制以保證鏈上的數(shù)據(jù)一致性,如比特幣使用的工作量證明(Proof of Work,PoW)的共識機(jī)制,其較為依賴節(jié)點(diǎn)CPU算力,而后研究者們陸續(xù)提出了一些不過度依賴CPU算力也可達(dá)到全網(wǎng)一致的算法,如權(quán)益證明(Proof of Stake,PoS)機(jī)制、授權(quán)股份證明機(jī)制(Delegated Proof of Stake,DPoS)以及實(shí)用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)機(jī)制等。以比特幣系統(tǒng)中共識機(jī)制—工作量證明機(jī)制為例,每個區(qū)塊在區(qū)塊頭中放入一個隨機(jī)數(shù),搜索一個目標(biāo)值,直到使得區(qū)塊被哈希得到的哈希值不大于該目標(biāo)值,從而成為一個合法區(qū)塊。存儲資源可信分配的對應(yīng)關(guān)系作為“交易”在網(wǎng)絡(luò)中廣播,并接受其他節(jié)點(diǎn)驗(yàn)證,每個區(qū)塊加入到鏈上必須得到網(wǎng)絡(luò)參與方的同意驗(yàn)證。工作量證明的本質(zhì)就是每個節(jié)點(diǎn)一票,“大多數(shù)”的決策形成最長的鏈,若網(wǎng)絡(luò)中大多數(shù)節(jié)點(diǎn)為誠實(shí)節(jié)點(diǎn),那么誠實(shí)節(jié)點(diǎn)將以最快的速度延長鏈條,并超越其他競爭鏈成為主鏈,如果惡意節(jié)點(diǎn)意圖篡改鏈上數(shù)據(jù),那么必須完成重新該區(qū)塊以及鏈接在其后的全部區(qū)塊的工作量證明,最終還要超過目前最長的鏈,攻擊代價(jià)巨大,篡改難度隨著鏈上區(qū)塊的生成數(shù)的增加而呈指數(shù)級上升。工作量證明機(jī)制使下一個區(qū)塊的創(chuàng)建變得困難,從而阻止了攻擊者惡意生成區(qū)塊鏈,由此基于共識的信任機(jī)制保證了區(qū)塊鏈的持久穩(wěn)定。通過以上的分析明確,區(qū)塊鏈本質(zhì)上是一個公用賬本,并且可以通過系統(tǒng)參與節(jié)點(diǎn)對公共賬本中數(shù)據(jù)的共同維護(hù)來實(shí)現(xiàn)云存儲服務(wù)的去中心化信任管理。
該文采用區(qū)塊鏈技術(shù)保證存儲資源的可信分配,由于區(qū)塊鏈網(wǎng)絡(luò)中節(jié)點(diǎn)角色的分布,為了將其映射在存儲資源分配系統(tǒng)中,進(jìn)行網(wǎng)絡(luò)參與方身份劃分以及參與方之間的交互行為設(shè)計(jì),如圖2所示。這里給出在去中心化系統(tǒng)中存儲資源分配的定義,去中心化系統(tǒng)中的需求一方自行對滿足己需的存儲資源發(fā)出使用請求。由此,該方案中對于存儲資源可信分配定義為對特定存儲資源使用請求的驗(yàn)證和審核操作。有關(guān)驗(yàn)證和審核操作,經(jīng)過研究決定要從至少兩個方面來進(jìn)一步考慮。其一是對于存儲資源使用請求消息自身的真實(shí)性和合法性的驗(yàn)證,需要確定存儲資源的可信標(biāo)識和驗(yàn)證方法;其二是需要判斷當(dāng)前相應(yīng)的存儲資源的狀態(tài)是否可以滿足此次存儲資源使用請求,判斷依據(jù)包括存儲資源的分配策略以及指定存儲資源的當(dāng)前狀態(tài)。在文中的系統(tǒng)設(shè)定中假設(shè)每個存儲資源的容量可以被簡單量化為阿拉伯?dāng)?shù)字表示形式,而存儲資源具體的分配策略不是研究的關(guān)鍵所在,如何維護(hù)存儲資源的可用狀態(tài)才是研究的重點(diǎn)。下文將給出確定存儲資源的可信標(biāo)識和驗(yàn)證方法的設(shè)計(jì)工作,主要是采用了非對稱加密算法的思想。
圖2 網(wǎng)絡(luò)參與方以及功能模型圖
(1)存儲資源的可信標(biāo)識。
存儲資源提供方Provider(以下簡稱P)的身份信息及其提供的存儲資源描述性信息,包括提供方地址、存儲資源具體信息,例如存儲容量以及服務(wù)時限等使用私鑰進(jìn)行數(shù)字簽名得到對所提供的存儲資源的唯一標(biāo)識ResourcePro,如公式1。
ResourcePro=SigSKPro(Hash(PKPro,tl,sc,timestamp))
(1)
其中,PKPro表示P持有的公鑰,tl表示P可提供共享服務(wù)時限屬性,sc表示可提供的存儲容量屬性,timestamp是P發(fā)布存儲資源的時間戳。對上述信息進(jìn)行Hash計(jì)算并使用P持有的私鑰SKPro進(jìn)行簽名,最終得到已發(fā)布的存儲資源的唯一標(biāo)識信息ResourcePro。
(2)存儲資源使用請求的可信標(biāo)識。
存儲資源使用方Customer(以下簡稱C)在該系統(tǒng)上按自己所需獲取到已發(fā)布的存儲資源ResourcePro并請求分配。此時將使用方的信息與存儲資源標(biāo)識進(jìn)行綁定,即完成C對存儲資源ResourcePro發(fā)布使用請求,并對綁定信息進(jìn)行數(shù)字簽名得到對存儲資源使用請求信息的唯一標(biāo)識RequestCus,如公式2。
RequestCus=SigSKCus(Hash(PKCus,ResourcePro,req,timestamp))
(2)
其中,PKCus為C所持有的公鑰,req表示C的存儲需求屬性,timestamp表示C在網(wǎng)絡(luò)上提交請求的時間戳。對以上信息進(jìn)行Hash計(jì)算,并使用C持有的私鑰SKCus進(jìn)行數(shù)字簽名。然后驗(yàn)證存儲資源分配是否合法時,提供方P便可以對這個簽名標(biāo)識進(jìn)行驗(yàn)證,最終實(shí)現(xiàn)存儲資源的可信分配。
(3)驗(yàn)證存儲資源分配的合法性。
在(1)(2)兩個流程順利執(zhí)行作為存儲資源可信分配的前提下,進(jìn)一步進(jìn)行合法性驗(yàn)證,包括管理員驗(yàn)證存儲資源分配交易以及提供方驗(yàn)證存儲資源使用請求的雙層驗(yàn)證流程。管理員節(jié)點(diǎn)相當(dāng)于比特幣中的“礦工”角色,收集和驗(yàn)證網(wǎng)絡(luò)中的存儲資源請求使用消息,而存儲資源請求使用消息則類似比特幣中的“交易”信息,其需要針對網(wǎng)絡(luò)上已發(fā)布的存儲資源分配消息進(jìn)行真實(shí)性的驗(yàn)證,通過使用方數(shù)字簽名來驗(yàn)證使用請求內(nèi)容消息的真實(shí)性,以及通過存儲資源信息中所包含的提供方的數(shù)字簽名驗(yàn)證所請求的存儲資源的真實(shí)性,根據(jù)請求使用消息發(fā)布的時間戳和所請求存儲資源的提供時限,判斷該使用請求的合法性,在服務(wù)時限之外提供方無法提供存儲服務(wù)。具體驗(yàn)證過程如公式3~公式5:通過存儲資源中包含的PKPro公鑰對存儲資源提供信息的數(shù)字簽名ResourcePro進(jìn)行解密,以驗(yàn)證存儲提供方的身份真實(shí)性以及其貢獻(xiàn)的存儲資源的真實(shí)性,根據(jù)其中包含的存儲資源服務(wù)時限來判定該存儲資源發(fā)布是否合法。
σ
=DecPKPro(ResourcePro)(3)
ω
=Hash(PKPro,tl,sc,timestamp)(4)
{true,false}=Verify(σ
,ω
,tl)(5)
公式3中σ
為使用提供方公鑰對ResourcePro進(jìn)行解密操作Dec的結(jié)果,ω
為公式1中的Hash值,tl表示提供方的服務(wù)時限屬性。通過tl來判定其是否仍在服務(wù)提供期內(nèi),確保提供方可正常提供服務(wù),通過判斷σ
與ω
是否相等來驗(yàn)證提供方的身份真實(shí)性,最終完成判定該已發(fā)布的存儲資源的可信。存儲資源提供方對于使用方身份真實(shí)性的驗(yàn)證也是達(dá)成交易的前提,具體驗(yàn)證流程如公式6~公式8所示:通過存儲資源使用方的公鑰PKCus對RequestCus進(jìn)行解密,驗(yàn)證請求分配存儲資源的用戶的身份真實(shí)性,根據(jù)其存儲需求與存儲資源的屬性對比情況來判定存儲分配是否合法。
σ
=DecPKCus(RequestCus)(6)
ω
=Hash(PKCus,ResourcePro,req,timestamp)(7)
{true,false}=Verify(σ
,ω
,tl,sc,req)(8)
其中,σ
為使用使用方公鑰對RequestCus進(jìn)行解密操作的結(jié)果,ω
為公式2中的Hash值,tl表示提供方的服務(wù)時限屬性,sc表示提供方可提供的存儲空間容量屬性,req是使用方的存儲需求屬性。通過判定req與tl以及sc的關(guān)系,判定其提供的存儲資源是否滿足使用方的需求,以確保提供方能夠完成本次存儲服務(wù)獲得相應(yīng)收益,通過判斷σ
與ω
是否相等來驗(yàn)證使用方的身份真實(shí)性,最終完成判定存儲空間分配的可信。以工作量證明為例,管理員節(jié)點(diǎn)在收集和驗(yàn)證網(wǎng)絡(luò)中的交易信息的同時,將通過上文驗(yàn)證流程的交易數(shù)據(jù)組裝成區(qū)塊,并不斷嘗試區(qū)塊頭中的隨機(jī)數(shù),直到達(dá)到目標(biāo)值為止。管理節(jié)點(diǎn)將該區(qū)塊廣播,其他節(jié)點(diǎn)接收并對該區(qū)塊相互確認(rèn)區(qū)塊的有效性,檢查區(qū)塊中所包含的交易數(shù)據(jù)的合法性。若確認(rèn)有效后,則視為該區(qū)塊已被接受,將該區(qū)塊作為區(qū)塊鏈的新區(qū)塊加入,并開始競爭下一個區(qū)塊的記賬權(quán),把該區(qū)塊頭哈希作為新區(qū)塊中代表引用關(guān)系的父區(qū)塊哈希值。至此,區(qū)塊中包含的所有存儲資源使用請求信息(交易數(shù)據(jù))成功被記錄到區(qū)塊鏈上,并被認(rèn)為該存儲分配過程是可信的,這一過程意味著存儲資源可信分配的實(shí)現(xiàn)。
該方法的研究范圍為:從系統(tǒng)參與方發(fā)布存儲資源可用消息和請求使用存儲資源消息到管理員收集驗(yàn)證,將合法性驗(yàn)證通過的存儲資源使用請求消息作為 “交易”記錄上鏈,最后存儲資源提供方根據(jù)鏈上信息對來自存儲資源使用方的使用請求進(jìn)行合法性驗(yàn)證為止,而具體的存儲資源共享及其后數(shù)據(jù)存儲的相關(guān)操作屬于目錄共享和其他研究領(lǐng)域,暫不在該方法的研究范圍之內(nèi)。
設(shè)計(jì)的去中心化存儲資源可信分配的智能合約包括存儲資源發(fā)布階段和存儲資源請求使用階段,最終完成供需雙方之間的可信的存儲資源分配。智能合約中規(guī)定了存儲資源的發(fā)布、存儲資源請求使用以及雙重驗(yàn)證的執(zhí)行邏輯,并為系統(tǒng)參與方與區(qū)塊鏈進(jìn)行交互提供調(diào)用接口以完成系統(tǒng)功能。
(1)智能合約的運(yùn)行。
為了驗(yàn)證所提出的方法的正確性和可行性,實(shí)驗(yàn)基于MacOS 10.15系統(tǒng)與以太坊區(qū)塊鏈平臺,采用Truffle框架進(jìn)行智能合約的開發(fā)以及采用Ganache-GUI可視化客戶端進(jìn)行后續(xù)測試,使用官方推薦的Solidity語言進(jìn)行智能合約編寫并基于NodeJS進(jìn)行前端開發(fā)。合約編寫完成后使用truffle compile命令編譯合約代碼,此時確保Ganache已快速啟動了10個節(jié)點(diǎn)的默認(rèn)開發(fā)鏈網(wǎng)絡(luò)后,使用truffle migrate命令將智能合約部署至區(qū)塊鏈,圖3表示去中心化、可信存儲資源可信分配的智能合約部署成功,并消耗了一定的gas值。
圖3 智能合約部署結(jié)果
(2)存儲資源的分配。
區(qū)塊鏈技術(shù)可以安全地在供需雙方之間記錄交易行為,無需第三方信任機(jī)構(gòu),同時提供了可變的公鑰作為身份標(biāo)識來進(jìn)行身份真實(shí)性的驗(yàn)證,而區(qū)塊鏈自身的安全是通過多方共識機(jī)制得到保證。已發(fā)布的存儲資源信息存儲到智能合約中,并且系統(tǒng)會生成一個存儲資源唯一標(biāo)識。圖4為存儲資源信息發(fā)布函數(shù)的仿真設(shè)計(jì),圖5為該函數(shù)執(zhí)行后所產(chǎn)生的交易記錄在Ganache-GUI下的可視化顯示。系統(tǒng)將使用存儲資源唯一標(biāo)識通過合約中的映射關(guān)系檢索到相應(yīng)的存儲資源信息,并查詢判斷其剩余存儲容量是否滿足該請求以及判斷使用請求消息發(fā)出的時間是否在存儲資源的可提供時限內(nèi)。在文中方法的設(shè)計(jì)和實(shí)驗(yàn)中,假設(shè)用戶可以以某種方式獲取到已發(fā)布的存儲資源信息,著重關(guān)注于針對已獲取到的存儲資源的使用請求及請求信息的可信存儲。圖6為存儲資源使用請求信息發(fā)布函數(shù)的仿真設(shè)計(jì),圖7為該函數(shù)執(zhí)行后所產(chǎn)生的交易記錄在Ganache-GUI下的可視化顯示,合法的存儲資源使用請求通過第2章節(jié)中提出的雙層驗(yàn)證過程成功記錄上鏈時,提供方將向使用方開放使用權(quán)限。若請求者身份信息造假或者完全不存在該存儲資源請求使用信息的記錄,則無法通過驗(yàn)證,提供方將有權(quán)拒絕向請求方提供存儲服務(wù)。
圖4 存儲資源信息發(fā)布函數(shù)
圖5 Ganache GUI所顯示的發(fā)布存儲資源交易記錄
圖6 存儲資源使用請求信息發(fā)布函數(shù)
圖7 Ganache GUI所顯示的發(fā)布存儲資源使用請求信息交易記錄
上述仿真實(shí)驗(yàn)說明了所提出的基于區(qū)塊鏈的存儲資源分配方法可以以去中心化方式順利實(shí)現(xiàn)可信存儲資源的可信分配,確保有關(guān)存儲資源可信分配的關(guān)鍵信息的可信存儲,由此有效防止請求方對存儲資源的錯用和濫用。
針對大多傳統(tǒng)云存儲平臺的中心化管理可能發(fā)生的單點(diǎn)故障及存在的信任問題,提出了一種基于區(qū)塊鏈的去中心化存儲資源可信分配的區(qū)塊設(shè)計(jì)、區(qū)塊鏈結(jié)構(gòu)以及基于區(qū)塊鏈的去中心化的存儲資源可信分配方法,設(shè)計(jì)一種去中心化的、可信的智能合約在以太坊平臺上進(jìn)行仿真實(shí)驗(yàn),最終驗(yàn)證了所提出的結(jié)構(gòu)設(shè)計(jì)、方法設(shè)計(jì)的可行性和正確性,基于區(qū)塊鏈自身的特性實(shí)現(xiàn)去中心化的存儲資源可信分配過程,對存儲資源可信分配過程中所涉及的關(guān)鍵信息進(jìn)行驗(yàn)證及利用區(qū)塊鏈賬本進(jìn)行存儲,以及保證了系統(tǒng)參與方節(jié)點(diǎn)身份的真實(shí)性。下一步準(zhǔn)備將針對現(xiàn)有共識算法進(jìn)行深入研究,選擇更加適用于去中心化存儲資源分配的共識機(jī)制,以更加完善所設(shè)計(jì)的去中心化的存儲資源可信分配方法。