馮濤,孔繁琪,柳春巖,馬蓉,Maher Albettar
(1.蘭州理工大學計算機與通信學院,甘肅 蘭州 730050;2.蘭州理工大學經(jīng)濟與管理學院,甘肅 蘭州 730050;3.康考迪亞大學康考迪亞信息系統(tǒng)工程研究所,蒙特利爾 H3G 1M8)
近年來,工業(yè)物聯(lián)網(wǎng)(IIoT,industrial Internet of things)推動各種智能應用迅速崛起,在制造業(yè)、醫(yī)療保健、智能能源電網(wǎng)和智能交通系統(tǒng)等領域受到了極大的關注,并成功地融入人們生活和工作[1]。為了減少本地服務器的計算開銷和節(jié)約存儲空間,大量工業(yè)設備在業(yè)務中產(chǎn)生的實時感知數(shù)據(jù)和敏感信息需要存儲到云端。云存儲是云計算的重要分支[2],它為數(shù)據(jù)的存儲和分析提供了高質(zhì)量的按需服務,但在網(wǎng)絡訪問和數(shù)據(jù)上傳過程中,其帶來的隱私泄露問題也日趨嚴重。云服務器或敵手惡意獲取和篡改用戶的數(shù)據(jù),導致敏感信息泄露,且對惡意用戶無法追蹤,從而導致惡性循環(huán)。云存儲數(shù)據(jù)的機密性、完整性對工業(yè)物聯(lián)網(wǎng)健康發(fā)展非常重要。目前,云存儲主要存在以下幾個問題:1) 數(shù)據(jù)的隱私和傳輸安全得不到保護;2) 云存儲數(shù)據(jù)的正確性和完整性得不到有效驗證;3) 無法追蹤惡意用戶,從而導致惡性循環(huán)。因此,針對數(shù)據(jù)處理的可信性和安全性問題,為保障用戶查詢真實數(shù)據(jù),研究一種可驗證云存儲方案具有重要意義。
在過去的幾十年里,許多學術界和工業(yè)界研究者已對可驗證計算等相關問題進行了廣泛而深入的探索。可驗證計算方案主要涉及應用安全領域、計算機理論領域和密碼學領域[3],并廣泛應用在計費系統(tǒng)、外包計算、電子投票系統(tǒng)等各種場景中。在應用安全領域,大多方案從應用角度出發(fā),以基于審計和各種安全協(xié)處理器工具為主;在計算機理論領域,大多方案依賴于復雜的概率可檢測證明(PCP,probabilistically checkable proofs)[4],但由于極高的計算成本,它們很難在實際生活中應用。在密碼學領域,主要的密碼學工具有同態(tài)加密[5]、混淆電路、基于屬性的加密、同態(tài)簽名[6]等。Chaum等[7]利用盲簽名構造了具體協(xié)議,其提出的electronic wallet 模型是利用密碼學手段研究可驗證計算的開端。隨著區(qū)塊鏈技術的發(fā)展[8],其可以提供完美的透明度和分布式可驗證性,以及利用密碼學技術和共識協(xié)議來保證網(wǎng)絡安全傳輸,為可驗證計算增加了更多的應用場景和功能性,創(chuàng)建了更安全可信的數(shù)據(jù)共享平臺。區(qū)塊鏈與可驗證計算共同進行數(shù)據(jù)隱私保護,有利于數(shù)據(jù)分布式存儲,以及對云端數(shù)據(jù)的完整性進行檢驗,有效控制數(shù)據(jù)破壞行為所造成的數(shù)據(jù)安全問題,也有利于監(jiān)管部門對外包計算等場景進行有效監(jiān)管,追蹤惡意輸入。
近年來,有學者提出了基于區(qū)塊鏈的可驗證云存儲方案,但依然存在以下3 個問題尚未解決:1)在數(shù)據(jù)傳輸過程中,保證數(shù)據(jù)安全性、機密性的同時,沒有考慮數(shù)據(jù)的可用性;2) 方案不能在云存儲服務環(huán)境下實現(xiàn)整體數(shù)據(jù)和單個數(shù)據(jù)的可驗證;3)無法實現(xiàn)對惡意修改和破壞數(shù)據(jù)用戶的追蹤。針對上述問題,本文提出了一種基于區(qū)塊鏈的雙重可驗證云存儲方案,解決了數(shù)據(jù)隱私泄露、不可驗證、傳輸不安全和無法追溯惡意用戶的問題。
本文主要的研究工作如下。
1) 提出了基于區(qū)塊鏈的雙重可驗證云存儲方案系統(tǒng)模型,并分析敵手的惡意行為。通過區(qū)塊鏈技術可實現(xiàn)數(shù)據(jù)的一致存儲和難以篡改,增加了上鏈數(shù)據(jù)造假的難度和成本,從而可以消除大部分使用者對數(shù)據(jù)信用的顧慮。本文構造的方案可保證數(shù)據(jù)的完整性以及計算過程的可靠性和可信度。使用同態(tài)加密技術對數(shù)據(jù)加密,在密文上進行計算,解決了隱私泄露和傳輸不安全等方面的問題。
2) 提出的基于區(qū)塊鏈的雙重可驗證云存儲方案,可對數(shù)據(jù)完整性進行有效核驗。本文應用具有同態(tài)性質(zhì)的哈希函數(shù),云服務器可以聚合多用戶的簽名,并對聚合數(shù)據(jù)進行總體驗證,解決了通信負擔大、計算效率低等問題。需要追溯上傳虛假數(shù)據(jù)的惡意用戶時,進行單獨驗證,解決了在分布式計算和云存儲時對惡意用戶的追溯問題,有效避免了惡性循環(huán)。
3) 安全性分析表明,本文方案在數(shù)據(jù)加密和聚合時是一種高效的可驗證方案。在保證數(shù)據(jù)隱私性的前提下,可追溯上傳錯誤數(shù)據(jù)的惡意用戶,比同類方案更加安全可靠。本文方案具有可行性、安全性和有效性的特點。
在區(qū)塊鏈服務網(wǎng)絡模型下,研究者構建了結合可驗證計算的安全協(xié)議,實現(xiàn)數(shù)據(jù)隱私保護、數(shù)據(jù)存證、數(shù)據(jù)核驗等多種功能。按照可驗證計算參與方數(shù)目,可將方案分為一對一可驗證計算方案和多方可驗證計算方案。
在一對一可驗證計算方案中,Wang 等[9]提出了一種基于區(qū)塊鏈的可驗證數(shù)據(jù)完整性的個人健康檔案共享方案。該方案實現(xiàn)了個人健康檔案在共享過程中數(shù)據(jù)的安全性,提高了患者敏感數(shù)據(jù)的隱私性,但該方案的計算負擔較高,應用場景單一,不具有可擴展性。Guo 等[10]提出了一種新的基于區(qū)塊鏈技術的動態(tài)單點登錄方案,實現(xiàn)了對加密數(shù)據(jù)的可靠搜索,并通過智能合約設計了加密的核對表,可以在區(qū)塊鏈內(nèi)實現(xiàn)安全的結果驗證。該方案雖然提高了安全性,卻極大地增加了計算量,降低了驗證效率。Guo 等[11]提出了一種輕量級的可驗證外包解密的CP-ABE 協(xié)議方案。該方案在解密過程中加入驗證算法,利用密文的可驗證性來驗證用戶設備的正確性。然而,該方案不滿足公開可驗證性,因此無法解決用戶與云服務平臺因數(shù)據(jù)正確性所產(chǎn)生的問題。
在多方可驗證計算方案中,Dimitriou[12]提出了一種基于區(qū)塊鏈的投票系統(tǒng),這一系統(tǒng)通過隨機數(shù)發(fā)生器令牌來確保抗強迫性和無收據(jù)性,并且適用于大規(guī)模的選舉。區(qū)塊鏈的結構確保了可核查性和可擴展性,從而增加了對選舉的可信度,但是不能抗共謀攻擊。Wang 等[13]結合區(qū)塊鏈技術實現(xiàn)公平支付,解決了服務器返回錯誤結果的問題,其使用智能合約存儲安全索引并執(zhí)行搜索。這一方案只支持“與”門訪問策略,表達不靈活。Dorsala 等[14]設計了一種基于證明的可驗證計算公平協(xié)議方案,為比特幣和以太坊等區(qū)塊鏈系統(tǒng)提供了在其網(wǎng)絡中生成交易的公開可驗證性。該方案大量運用雙線性映射導致效率降低,提高了腳本執(zhí)行的成本。Zhang 等[15]為了實現(xiàn)去中心化的手續(xù)費公平支付方案,采用在區(qū)塊鏈中臨時凍結押金的形式,確保用戶只要誠實執(zhí)行就能得到搜索結果和服務費用。但該方案需要用戶端在驗證結果正確性的過程中進行大量的簽名驗證計算,用戶開銷較大。
基于區(qū)塊鏈的可驗證計算方案已有一定的研究基礎,雖然根據(jù)區(qū)塊鏈技術與可驗證計算技術特征,研究者已提出了多種安全協(xié)議方案,但仍未解決云存儲中所面臨的隱私保護和數(shù)據(jù)傳輸安全問題,以及通過整體數(shù)據(jù)和單個數(shù)據(jù)驗證而實現(xiàn)對惡意用戶的追蹤問題。
同態(tài)加密技術[17]可以在密文上進行特定數(shù)學運算,并且解密結果等于對應明文進行運算后的結果。在數(shù)據(jù)聚合、隱私保護等方面有著重要的應用。Enc 表示加密,Dec 表示解密,⊙和⊕分別表示在明文和密文上的運算,同態(tài)加密滿足運算滿足同態(tài)性質(zhì)的加密方式統(tǒng)稱為同態(tài)加密技術。
加密分為對稱加密和非對稱加密。對稱加密是指加密和解密使用同一個密鑰,這種方式顯著降低了計算開銷;非對稱加密采用公鑰加密、私鑰解密,且基于數(shù)學困難問題,加解密操作實現(xiàn)復雜度較大,效率較低,對于資源的占用也較多。本文方案使用對稱隱私同態(tài)加密技術對原始數(shù)據(jù)進行加密,因為該算法加密速度快,容易實現(xiàn)。
本節(jié)將闡述基于區(qū)塊鏈的雙重可驗證云存儲方案的系統(tǒng)模型、威脅模型等內(nèi)容。
本文提出的基于區(qū)塊鏈的雙重可驗證云存儲方案系統(tǒng)模型如圖1 所示。數(shù)據(jù)擁有者將密文和簽名傳至云端,上傳者信息記錄到區(qū)塊鏈上,數(shù)據(jù)使用者可以向挖礦者節(jié)點申請驗證總體數(shù)據(jù)和單個數(shù)據(jù)的完整性,并實現(xiàn)對惡意用戶的追溯。其中包括5 類參與實體:云服務器(CS,cloud server)、數(shù)據(jù)擁有者(DO,data owner)、數(shù)據(jù)使用者(DU,data user)、挖礦者節(jié)點(MN,miner node)、區(qū)塊鏈(blockchain)。各實體角色及所屬功能介紹如下。
圖1 基于區(qū)塊鏈的雙重可驗證云存儲方案系統(tǒng)模型
1) 云服務器。云服務器是第三方不可信的存儲服務器,具有強大的計算能力和巨大的存儲空間來處理和維護數(shù)據(jù)所有者的數(shù)據(jù)。在本文模型中,它是函數(shù)計算的具體執(zhí)行者,主要負責存儲、聚合和計算數(shù)據(jù)擁有者上傳的加密文件和簽名,然后將計算和驗證結果發(fā)送給數(shù)據(jù)使用者。
2) 數(shù)據(jù)擁有者。數(shù)據(jù)擁有者擁有原始數(shù)據(jù)。在數(shù)據(jù)加密階段,數(shù)據(jù)擁有者利用流密鑰加密算法對自己的原始數(shù)據(jù)進行加密;在簽名產(chǎn)生階段,數(shù)據(jù)擁有者用自己的私鑰和隨機數(shù)對文件生成簽名,將密文及簽名上傳給云服務器進行存儲,同時將對應的上傳者信息記錄到區(qū)塊鏈中。
3) 數(shù)據(jù)使用者。數(shù)據(jù)使用者作為合法用戶,可以向區(qū)塊鏈中的挖礦者節(jié)點請求對總體數(shù)據(jù)和單獨數(shù)據(jù)進行完整性驗證。Du 獲得正確的聚合結果后,向云服務器支付服務費,完成交易。
4) 挖礦者節(jié)點。挖礦者節(jié)點用于驗證總體數(shù)據(jù)和單個數(shù)據(jù),會嚴格執(zhí)行本文算法,并對DO 和CS返回驗證結果,以確保隱私數(shù)據(jù)的完整性和正確性。當正在執(zhí)行驗證任務的挖礦者節(jié)點出現(xiàn)故障時,新的挖礦者節(jié)點從備用節(jié)點中遞補。
5) 區(qū)塊鏈。區(qū)塊鏈主要負責鏈上存儲數(shù)據(jù)使用者上傳的簽名和云服務器上傳的聚合結果,接收授權數(shù)據(jù)使用者進行完整性驗證。區(qū)塊鏈上只需存儲加密文件地址,即可追溯加密文件和上傳此加密文件的數(shù)據(jù)擁有者。由于區(qū)塊鏈是公開的,所有用戶都可以瀏覽和訪問,有效避免數(shù)據(jù)被非法修改,確保數(shù)據(jù)安全。
本文方案中,云服務器是誠實且好奇的,它會遵守協(xié)議以及為用戶返回計算和驗證結果,但也可能通過惡意手段利用中間結果或最終結果來推測用戶的隱私數(shù)據(jù),給用戶的隱私造成威脅。數(shù)據(jù)擁有者不是完全可信的,可能出于某些目的偽造或者提供錯誤的密文,不誠實地將數(shù)據(jù)上傳至云端,或者上傳過程中受到敵手惡意篡改、欺騙攻擊。區(qū)塊鏈具有完全可信性,可以引入?yún)^(qū)塊鏈幫助數(shù)據(jù)使用者驗證云服務器返回的結果和數(shù)據(jù)擁有者上傳密文的正確性。區(qū)塊鏈只用于記錄上傳者對應信息和聚合結果,不能給區(qū)塊鏈上傳任何原始數(shù)據(jù)。挖礦者節(jié)點是誠實可信的,會按照本文算法嚴格執(zhí)行驗證,并將驗證結果反饋給數(shù)據(jù)使用者。
可驗證云存儲方案時序如圖2 所示。首先,數(shù)據(jù)擁有者使用同態(tài)加密技術對數(shù)據(jù)加密和簽名,多用戶將密文C1,C2,···,Cv和簽名上傳至云服務器。云服務器將上傳各個密文對應的上傳者信息記錄到區(qū)塊1~區(qū)塊n,將密文聚合結果上傳到區(qū)塊0,其次,數(shù)據(jù)使用者向云服務器請求數(shù)據(jù)結果,云服務器返回計算結果。最后,數(shù)據(jù)使用者向挖礦者節(jié)點發(fā)布驗證總數(shù)據(jù)任務,挖礦者節(jié)點接收驗證任務后,在區(qū)塊鏈頭進行總體結果驗證,并返回總數(shù)據(jù)驗證結果。如果數(shù)據(jù)正確,云服務器就可以得到服務費,完成交易。如果驗證數(shù)據(jù)不正確,則把錯誤結果返回給云服務器并終止交易。云服務器接收到錯誤結果反饋后,再次向挖礦者節(jié)點發(fā)送驗證單個數(shù)據(jù)信息任務,查詢上傳了錯誤信息的數(shù)據(jù)擁有者。挖礦者節(jié)點收到驗證任務后,分別訪問區(qū)塊1~區(qū)塊n,再將單個數(shù)據(jù)驗證結果返回給云服務器。追溯到的惡意用戶將會受到懲罰,并且用戶可拒絕支付服務費用。
圖2 可驗證云存儲方案時序
本節(jié)對具體的基于區(qū)塊鏈的雙重可驗證云存儲方案的算法進行詳細介紹。
6.1.1 數(shù)據(jù)準備階段
本文方案使用流密鑰加密算法對原始數(shù)據(jù)進行同態(tài)加密,因為該算法加密速度快,容易實現(xiàn),并且在本文中每個數(shù)據(jù)使用者與云服務器不共享相同的密鑰,因此安全性較高。
1) 密鑰分配。在密鑰分配階段,系統(tǒng)為每個數(shù)據(jù)使用者廣播由基于密鑰長度可變的流加密算法簇產(chǎn)生的密鑰kn。
2) 計數(shù)器rt。為了使云服務器能檢驗數(shù)據(jù)擁有者上傳的是否是最新數(shù)據(jù),每個數(shù)據(jù)擁有者產(chǎn)生一個計數(shù)rt,并對其進行初始化,來保證數(shù)據(jù)的實時性和抵御重放攻擊能力。
3) 數(shù)據(jù)加密。數(shù)據(jù)擁有者L將原始數(shù)據(jù)mL進行加密后,再上傳至云服務器,保證了數(shù)據(jù)的隱私性,其加密算法為
6.1.2 云服務器聚合密文
1) 密文聚合處理階段。云服務器將V個數(shù)據(jù)擁有者上傳的密文通過加密算法進行聚合。由于采用的是加法同態(tài)加密,因此不需要對密文進行解密,可以直接對上傳數(shù)據(jù)進行相關運算。這既降低了計算開銷,也增加了方案的安全性,減少了隱私泄露的風險。其聚合函數(shù)為
2) 數(shù)據(jù)解密階段。云服務器收到數(shù)據(jù)擁有者上傳的密文后,對其進行解密處理,其解密函數(shù)為
在可驗證計算方案中,單獨驗證每個用戶的密文會導致過多的通信量,所以需要云服務器將每個用戶的密文和簽名聚合,先進行總體驗證工作,具體算法描述如下。
6.2.1 系統(tǒng)建立階段(Setup)
6.2.2 挑戰(zhàn)階段(Challenge)
挖礦者節(jié)點檢索文件標簽tl,并使用pkl驗證簽名tl,如果驗證失敗,則終止交易;如果驗證成功,則恢復其namel。
6.2.3 證據(jù)生成階段(ProofGen)
6.2.4 數(shù)據(jù)驗證階段(Verification)
如果式(6)成立,挖礦者節(jié)點返回TRUE;否則,返回FALSE,并進行單獨驗證,追溯惡意用戶。
為驗證數(shù)據(jù)擁有者存儲數(shù)據(jù)的完整性,式(6)的正確性驗證如下。
6.3.1 系統(tǒng)建立階段(Setup)
設數(shù)據(jù)擁有者L的數(shù)據(jù)有n個數(shù)據(jù)塊,為
6.3.2 挑戰(zhàn)階段(Challenge)
挖礦者節(jié)點檢索文件標簽t,并使用pk 驗證簽名t,如果驗證失敗,則終止交易;如果驗證成功,則恢復其name。
6.3.4 驗證階段(Verification)
如果式(9)成立,挖礦者節(jié)點返回TRUE;否則,返回FALSE,并找出惡意用戶。
為驗證數(shù)據(jù)擁有者存儲數(shù)據(jù)的完整性,式(9)的正確性驗證如下
1) 內(nèi)容隱私性
本文方案中數(shù)據(jù)信息存儲時,同態(tài)加密的密文具有可操作性,不同的數(shù)據(jù)擁有者通過密碼技術使用不同的公鑰對數(shù)據(jù)信息進行同態(tài)加密處理后存儲在云服務器,加強了數(shù)據(jù)的傳輸及存儲安全性。并將聚合密文和上傳者信息存儲在區(qū)塊中。上述操作進一步保證了共享內(nèi)容的隱私性。
2) 可驗證和可追溯性
現(xiàn)有的可驗證云存儲方案由于缺少可信第三方,存在參與者共謀篡改數(shù)據(jù)的安全隱患。本文方案利用區(qū)塊鏈的去中心化為可驗證計算提供了一個可信環(huán)境,可以有效避免第三方機構或惡意用戶私自篡改數(shù)據(jù)的風險。利用區(qū)塊鏈的不可篡改性和可溯源性,對數(shù)據(jù)進行同態(tài)哈希后將簽名分布式存儲在區(qū)塊鏈上,數(shù)據(jù)使用者能夠在保證安全的前提下,通過挖礦者節(jié)點向區(qū)塊鏈發(fā)出對云端數(shù)據(jù)進行雙重驗證的請求,最后得到審查結果,并通過簽名信息對惡意用戶進行追溯和懲罰。
3) 抗共謀攻擊
本文提出的基于區(qū)塊鏈的雙重可驗證云存儲方案可以避免共謀。區(qū)塊鏈通過密碼學技術為可驗證計算提供了一個可信任的環(huán)境,云服務器將數(shù)據(jù)擁有者的聚合密文結果存儲在鏈上,有效防止了參與者之間共謀,使各個參與者誠實地執(zhí)行協(xié)議。同時,被追溯到的共謀者會因違反協(xié)議被扣除高額的擔保押金,而遵守合約比共謀能獲得更高的利益,也消除了參與者共謀的動機。
4) 可擴展性
區(qū)塊鏈是一個去中心化的賬本,上鏈的信息共識生成區(qū)塊都擁有時間戳可溯源且無法篡改。但由于區(qū)塊存儲有限,不能將所有的信息完整的存儲在區(qū)塊中,為了保證存儲數(shù)據(jù)正確性的快速驗證,本文方案將完整密文存儲在云服務器中,鏈上區(qū)塊記錄上傳者信息和存儲聚合結果便于驗證和追溯,也解決了區(qū)塊存儲容量有限的問題。
1) 計算代價
本文方案中的計算代價主要由生成驗證階段和數(shù)據(jù)驗證階段產(chǎn)生。計算代價如表1 所示,其中,V為驗證的數(shù)據(jù)擁有者個數(shù),M為在G1上的乘法,E為指數(shù),P為雙線性映射,H為單項哈希函數(shù)。
表1 計算代價
2) 通信量
3) 驗證算法的有效性
本文的驗證算法基于概率模型。設被篡改了b塊,每次驗證n塊數(shù)據(jù)中的c塊,隨機變量X表示檢測到數(shù)據(jù)被篡改的塊數(shù),則驗證一次檢測到數(shù)據(jù)被篡改的概率至少為設隨機變量Z表示驗證a次檢測到數(shù)據(jù)被篡改的塊數(shù),則共挑戰(zhàn)了w=ac塊,即至少有的概率檢測到數(shù)據(jù)被篡改。
假設n塊數(shù)據(jù)中有0.7%的數(shù)據(jù)被篡改,即同理得b=0.01n和b=0.09n。驗證算法的有效性如圖3 所示,P{Z≥1}與n無關。當c=n,即驗證每一塊數(shù)據(jù)時,本文算法也可以100%證明數(shù)據(jù)完備性。
圖3 驗證算法的有效性
通過對現(xiàn)有的可驗證計算方案進行對比分析發(fā)現(xiàn),文獻[9,12]方案均是基于區(qū)塊鏈進行可驗證計算研究,不需要依賴可信第三方,但都不具有可追溯性。文獻[9]方案實現(xiàn)了個人健康檔案共享過程中數(shù)據(jù)的安全性,提高了患者敏感數(shù)據(jù)的隱私性,但該方案的計算負擔較高,不具有可擴展性;文獻[12]提出了一種基于區(qū)塊鏈的投票系統(tǒng),系統(tǒng)中區(qū)塊鏈的附加結構確保了普遍的可驗證性和可擴展性,從而最大限度地減少了對可信第三方的依賴,并且適用于大規(guī)模的選舉,但是不能抗共謀攻擊。
文獻[19-20]方案均實現(xiàn)了數(shù)據(jù)可驗證性。Buccafurri 等[19]提出了一種在云環(huán)境中驗證查詢結果的確定性方法,該方法實現(xiàn)了用戶對結果的完整性的驗證。數(shù)據(jù)所有者驗證第一個標記的時間值,計算每個元素的MAC 屬性,將其與云服務器返回的值進行比較,以便驗證從第一個標記開始的每個鏈接。該方案在一定程度上減小了插入空間和時間的復雜度。武朵朵等[20]提出了一種針對矩陣乘積的可驗證外包計算方案。但文獻[19-20]方案都不具有可擴展性和可追溯性。
文獻[21]提出了一個隱私保護框架,將患者健康記錄存儲在云輔助環(huán)境中,其性能基于適應度、隱私性和實用性等性能指標,但不能對數(shù)據(jù)正確性進行驗證并追溯惡意用戶。
本文方案首先保證了數(shù)據(jù)機密性和傳輸安全性,實現(xiàn)了數(shù)據(jù)的隱私保護;其次利用區(qū)塊鏈的不可篡改性和可溯源性,實現(xiàn)了云端數(shù)據(jù)完整性的雙重驗證,有效避免了數(shù)據(jù)被非法用戶篡改的風險,并可對惡意用戶進行追溯。方案對比如表2 所示。
表2 方案對比
區(qū)塊鏈可以提供極高的透明度、分布式可驗證性和不可篡改性。利用區(qū)塊鏈技術和可驗證計算技術,可對上傳到云端的數(shù)據(jù)的完整性進行檢驗,有效避免了數(shù)據(jù)被非法用戶篡改的風險?;趨^(qū)塊鏈上述功能,本文方案采用同態(tài)加密技術對數(shù)據(jù)信息進行加密,保證數(shù)據(jù)機密性和傳輸?shù)陌踩?,實現(xiàn)數(shù)據(jù)的隱私保護;另外,使用同態(tài)哈希函數(shù),數(shù)據(jù)使用者能夠在保證安全前提下可對云端數(shù)據(jù)進行雙重驗證,并可對惡意用戶進行追溯。區(qū)塊鏈的不可篡改、去中心化及匿名性等特點與可驗證計算結合,可以在計費系統(tǒng)、醫(yī)療敏感信息共享等領域得到很好的具體應用。將區(qū)塊鏈與可驗證計算相結合,應用于具體實際場景中解決現(xiàn)存在的關鍵問題,是下一步研究工作的重點。