陳麗燕,呂光金,芮廷先
(上海財(cái)經(jīng)大學(xué)浙江學(xué)院 經(jīng)濟(jì)與信息管理系,浙江 金華 321013)
為了讓商業(yè)數(shù)據(jù)盡到最大化的效益,結(jié)合當(dāng)下熱點(diǎn)大數(shù)據(jù)、數(shù)據(jù)挖掘、區(qū)塊鏈多方面挖掘商業(yè)數(shù)據(jù)的價(jià)值成為近年的研究熱點(diǎn)[1,2]。現(xiàn)有的商業(yè)數(shù)據(jù)管理系統(tǒng)依托于商業(yè)信息管理系統(tǒng)[3],雖然較傳統(tǒng)的商業(yè)數(shù)據(jù)管理具有便利性,但是依然存在一些問題。商業(yè)數(shù)據(jù)在使用過程中,如對(duì)數(shù)據(jù)的管理、傳輸?shù)冗^程容易被修改;對(duì)于每個(gè)商業(yè)中心來說所有的商業(yè)數(shù)據(jù)就是一個(gè)信息孤島,每個(gè)商業(yè)中心之間無法有效共享彼此的數(shù)據(jù),無法將數(shù)據(jù)價(jià)值最大化;現(xiàn)有的商業(yè)數(shù)據(jù)安全措施借助于數(shù)字簽名和水印等技術(shù),在遇到數(shù)據(jù)被破壞、篡改等極端情況時(shí)無法恢復(fù)。
商業(yè)數(shù)據(jù)的真實(shí)性無法保障,如果商業(yè)中心的數(shù)據(jù)遭到入侵,或者相關(guān)人員動(dòng)手腳,商業(yè)數(shù)據(jù)的真實(shí)性和安全性都將遭到威脅。
區(qū)塊鏈?zhǔn)悄壳傲餍械幕诠沧R(shí)機(jī)制的公共賬本技術(shù),具有去中心化無需可信第三方[4];任何人想改變數(shù)據(jù)都需要付出巨大成本,導(dǎo)致實(shí)現(xiàn)困難,具有防篡改性;還具有可追溯性等特點(diǎn)。區(qū)塊鏈的這些優(yōu)質(zhì)特性讓區(qū)塊鏈在各個(gè)領(lǐng)域的研究成為熱門,尤其是將區(qū)塊鏈應(yīng)用到隱私保護(hù)方面[5],如將區(qū)塊鏈應(yīng)用到個(gè)人征信系統(tǒng)保護(hù)[6]、檔案數(shù)據(jù)保護(hù)[7]、醫(yī)療數(shù)據(jù)的隱私保護(hù)[8,9]、個(gè)人隱私等方面。區(qū)塊鏈技術(shù)在數(shù)據(jù)安全保護(hù)方面的應(yīng)用不僅僅只是理論的研究,而被許多企業(yè)應(yīng)用到現(xiàn)實(shí)場景中,比如百度將區(qū)塊鏈應(yīng)用到對(duì)百度百科數(shù)據(jù)的保護(hù)[10];螞蟻金服將區(qū)塊鏈應(yīng)用到對(duì)捐款數(shù)據(jù)的跟蹤[11];騰訊也在打造區(qū)塊鏈生態(tài)圈[12]。對(duì)于本文來說區(qū)塊鏈這些特性有助于解決目前商業(yè)數(shù)據(jù)管理中存在的安全性差以及無法有效共享等問題。本文正是基于區(qū)塊鏈、密碼學(xué)和星際文件系統(tǒng)(inter planetary file system,IPFS)[13]等技術(shù)提出了商業(yè)數(shù)據(jù)共享模型。從以下幾個(gè)方面來提出解決方案:
(1)在商業(yè)數(shù)據(jù)中心之間構(gòu)建聯(lián)盟鏈,在這個(gè)基礎(chǔ)上共同維護(hù)系統(tǒng)的運(yùn)行,商業(yè)數(shù)據(jù)副本與公有鏈掛鉤,能夠降低數(shù)據(jù)維護(hù)成本又保障了數(shù)據(jù)的安全;
(2)通過私有星際文件集群系統(tǒng)以加密的形式存儲(chǔ)原始數(shù)據(jù),結(jié)合區(qū)塊鏈智能合約技術(shù),存儲(chǔ)數(shù)據(jù)的摘要信息,包括存儲(chǔ)數(shù)據(jù)的唯一指紋序,以此實(shí)現(xiàn)對(duì)商業(yè)數(shù)據(jù)的安全管理;
(3)借助區(qū)塊鏈技術(shù)和星際文件系統(tǒng),能夠做到對(duì)歷史數(shù)據(jù)的追溯,因此解決了商業(yè)數(shù)據(jù)無法恢復(fù)的問題。
本節(jié)將介紹本文所提方案中會(huì)用到的基礎(chǔ)知識(shí),包括區(qū)塊鏈相關(guān)技術(shù)和星際文件系統(tǒng)的相關(guān)知識(shí)兩部分。
區(qū)塊鏈?zhǔn)且詳?shù)據(jù)區(qū)塊為單位存儲(chǔ)數(shù)據(jù),實(shí)際上是一個(gè)無中心的數(shù)據(jù)庫、結(jié)合了共識(shí)算法、密碼學(xué)技術(shù)[14]讓每個(gè)數(shù)據(jù)塊包含了比特網(wǎng)中的交易信息,能夠防偽和生成新的區(qū)塊。根據(jù)區(qū)塊鏈的開放權(quán)限,又將區(qū)塊鏈分為公有鏈、聯(lián)盟鏈和私有鏈。公有鏈[15]是指區(qū)塊鏈完全開放,任何節(jié)點(diǎn)都可以參與共識(shí);聯(lián)盟鏈[16]是聯(lián)盟節(jié)點(diǎn)才能參與,并且共識(shí)機(jī)制需要所有聯(lián)盟節(jié)點(diǎn)共同決策;私有鏈[17]是組織內(nèi)部使用,訪問權(quán)限不開放。
1.1.1 共識(shí)機(jī)制
共識(shí)機(jī)制[18]是為了解決區(qū)塊鏈所有節(jié)點(diǎn)共識(shí)問題。如何認(rèn)定節(jié)點(diǎn)數(shù)據(jù)的有效性,所有節(jié)點(diǎn)都共用同一標(biāo)準(zhǔn),保證了公平性也保障了數(shù)據(jù)的安全性,節(jié)點(diǎn)數(shù)據(jù)不是個(gè)人可以隨意篡改的。區(qū)塊鏈的共識(shí)機(jī)制要求所有節(jié)點(diǎn)均平等,且要求少數(shù)服從多數(shù),只有這樣才能保證數(shù)據(jù)的安全性。這里的少數(shù)服從多數(shù)并不一定指的是節(jié)點(diǎn)個(gè)數(shù),可能是工作量、計(jì)算能力、時(shí)間等等,根據(jù)不同的依據(jù),提出了多種的共識(shí)機(jī)制,如Proof of Work[19]算法、Proof of Stake[20]算法、Proof of Space[21]算法、Proof of Luck[22]算法、Proof of Elapsed Time[23]算法、Delegated Proof of Stake[24]算法、Proof of Useful Work[25]算法、聯(lián)盟鏈Q(jìng)uorum[26]等。
1.1.2 智能合約
智能合約[27]是區(qū)塊鏈去中心化的一些特殊的協(xié)議,滿足不同的需求,包含了所有的約定條款,只有滿足所有協(xié)議,才能夠生效,能夠保證公正性,排除了人為操作的可能性。支持智能合約的區(qū)塊鏈以以太坊為代表,可以在這個(gè)基礎(chǔ)上開發(fā)智能合約。
星際文件系統(tǒng)(inter planetary file system,IPFS),是一個(gè)分布式存儲(chǔ)和文件共享的網(wǎng)絡(luò)傳輸協(xié)議[28]。系統(tǒng)上的每個(gè)文件和數(shù)據(jù)塊都有唯一的加密散列稱之為指紋,具有版本跟蹤、可尋址、不可篡改、去中心化等特點(diǎn)。IPFS系統(tǒng)是基于內(nèi)容尋址[29],所有的內(nèi)容具有唯一指紋,根據(jù)加入網(wǎng)絡(luò)的不同權(quán)限又分為公有集群系統(tǒng)和私有集群系統(tǒng):公有集群系統(tǒng)是任何節(jié)點(diǎn)都可以加入自由加入星際文件系統(tǒng);私有集群是有權(quán)限的節(jié)點(diǎn)或機(jī)構(gòu)才能加入系統(tǒng)。
這部分將介紹基于區(qū)塊鏈的商業(yè)數(shù)據(jù)共享模型的整體架構(gòu)。
如圖1所示,本文提出的商業(yè)數(shù)據(jù)共享模型由商業(yè)數(shù)據(jù)中心、服務(wù)中心、聯(lián)盟中心、公有區(qū)塊鏈、私有星際文件集群系統(tǒng)這5個(gè)模塊組成。
圖1 系統(tǒng)模型
5個(gè)部分介紹如下:
商業(yè)數(shù)據(jù)中心作為商業(yè)數(shù)據(jù)共享模型的重要節(jié)點(diǎn)直接參與聯(lián)盟區(qū)塊鏈中心,具備數(shù)據(jù)保護(hù)、驗(yàn)證、共享等功能;
服務(wù)中心自身不存儲(chǔ)數(shù)據(jù),是去中心化的結(jié)構(gòu),以接口的形式為商業(yè)數(shù)據(jù)共享模型提供智能合約和星際文件系統(tǒng)接口;
聯(lián)盟中心實(shí)際上是以太坊聯(lián)盟鏈,通過智能合約存儲(chǔ)商業(yè)數(shù)據(jù)中心的數(shù)據(jù)信息,包括商業(yè)數(shù)據(jù)中心的數(shù)字身份標(biāo)識(shí)和摘要信息,用于實(shí)現(xiàn)商業(yè)數(shù)據(jù)中心身份標(biāo)識(shí)的注冊(cè)、恢復(fù)、保護(hù)、共享等操作,定期與公有鏈交互,以此來保障數(shù)據(jù)的安全;
公有區(qū)塊鏈?zhǔn)且蕴粎^(qū)塊鏈,定期存儲(chǔ)聯(lián)盟中心的數(shù)據(jù)庫副本鏡像,以保證聯(lián)盟中心數(shù)據(jù)的真實(shí)性;
私有星際文件集群系統(tǒng)存儲(chǔ)了商業(yè)數(shù)據(jù)的原始信息,在分布式哈希表和塊交換等技術(shù)的支持下,實(shí)現(xiàn)了節(jié)點(diǎn)的身份認(rèn)證,保障數(shù)據(jù)的安全性。
以上各部分的消息流如圖2所示。
圖2 消息流
本文模型涉及到的智能合約主要用于對(duì)商業(yè)數(shù)據(jù)中心的身份標(biāo)識(shí)進(jìn)行管理也就是對(duì)這些節(jié)點(diǎn)的身份確認(rèn),此外還對(duì)商業(yè)數(shù)據(jù)進(jìn)行管理。涉及到智能合約的模塊主要有公有區(qū)塊鏈模塊和聯(lián)盟中心模塊。公有區(qū)塊鏈中有聯(lián)盟數(shù)據(jù)保護(hù)合約,主要用于保障聯(lián)盟中心數(shù)據(jù)的真實(shí)性。聯(lián)盟中心模塊中的智能合約主要完成對(duì)商業(yè)數(shù)據(jù)中心節(jié)點(diǎn)的身份認(rèn)證和商業(yè)數(shù)據(jù)管理兩大任務(wù)。聯(lián)盟中心的智能合約包括節(jié)點(diǎn)信息存儲(chǔ)合約(node information storage contract,NISC)、節(jié)點(diǎn)信息管理合約(node information manage contract,NIMC)、商業(yè)數(shù)據(jù)管理合約(commercial data manage contract,CDMC)等。如圖3所示。
圖3 聯(lián)盟中心合約架構(gòu)
節(jié)點(diǎn)信息存儲(chǔ)合約主要用于存放模型中涉及到的節(jié)點(diǎn)身份標(biāo)識(shí)信息,用于身份辨認(rèn),因此,該合約中記錄了聯(lián)盟中心所有商業(yè)數(shù)據(jù)中心的身份標(biāo)識(shí)(data center identity,dcID)、公鑰、該節(jié)點(diǎn)對(duì)應(yīng)的節(jié)點(diǎn)信息管理合約和商業(yè)數(shù)據(jù)管理合約。
節(jié)點(diǎn)信息管理合約以民主投票技術(shù)為基礎(chǔ)實(shí)現(xiàn)了商業(yè)數(shù)據(jù)中心節(jié)點(diǎn)的內(nèi)部自治,由節(jié)點(diǎn)新建合約和節(jié)點(diǎn)重置合約組成。其中節(jié)點(diǎn)新建合約通過投票方式對(duì)新加入的商業(yè)數(shù)據(jù)中心節(jié)點(diǎn)創(chuàng)建dcID;節(jié)點(diǎn)重置合約為防范商業(yè)數(shù)據(jù)中心私鑰泄露風(fēng)險(xiǎn),用于重置商業(yè)數(shù)據(jù)中心的密鑰。
商業(yè)數(shù)據(jù)管理合約主要用于管理商業(yè)數(shù)據(jù),包括對(duì)商業(yè)數(shù)據(jù)的驗(yàn)證、恢復(fù)、共享和保護(hù)等,由商業(yè)數(shù)據(jù)信息存儲(chǔ)合約、商業(yè)數(shù)據(jù)權(quán)限控制合約和商業(yè)數(shù)據(jù)共享管理合約等組成。商業(yè)數(shù)據(jù)管理合約結(jié)構(gòu)如圖4所示。
圖4 商業(yè)數(shù)據(jù)管理合約架構(gòu)
商業(yè)數(shù)據(jù)信息存儲(chǔ)合約(commercial data information storage contract,CDSC)主要記錄商業(yè)數(shù)據(jù)中心的數(shù)字摘要信息,包括商業(yè)數(shù)據(jù)對(duì)象的星際文件系統(tǒng)地址、編號(hào)、哈希值、創(chuàng)建時(shí)間、修改時(shí)間等等。
商業(yè)數(shù)據(jù)權(quán)限控制合約(commercial data control contract,CDCC)主要用于控制商業(yè)數(shù)據(jù)中心的權(quán)限。
商業(yè)數(shù)據(jù)共享管理合約(commercial data sharing manage contract,CDMC)主要記錄商業(yè)數(shù)據(jù)中心共享的數(shù)據(jù)信息,包括數(shù)據(jù)編號(hào)、所屬商業(yè)數(shù)據(jù)中心身份標(biāo)識(shí)、共享時(shí)間等等。一個(gè)數(shù)據(jù)編號(hào)可以共享給多個(gè)商業(yè)數(shù)據(jù)中心訪問。當(dāng)數(shù)據(jù)編號(hào)對(duì)應(yīng)的商業(yè)數(shù)據(jù)中心身份標(biāo)識(shí)為-1時(shí),表示該數(shù)據(jù)完全開放,所有用戶都可以直接獲取信息;如果標(biāo)識(shí)為0,則表示該數(shù)據(jù)有條件的開放,聯(lián)盟中心所有成員均可訪問;如果標(biāo)識(shí)不小于1,則表示該數(shù)據(jù)私有,只有指定權(quán)限的數(shù)據(jù)中心才可以訪問。
2.3.1 商業(yè)數(shù)據(jù)中心身份標(biāo)識(shí)的注冊(cè)與找回
商業(yè)數(shù)據(jù)中心節(jié)點(diǎn)并不是直接參與聯(lián)盟中心,僅僅以身份標(biāo)識(shí)替代。因此,身份標(biāo)識(shí)對(duì)商業(yè)數(shù)據(jù)中心來說非常重要,需要投票多數(shù)通過才可以授權(quán)注冊(cè)。其操作如算法1所示:
算法1:商業(yè)數(shù)據(jù)中心身份標(biāo)識(shí)的注冊(cè)
輸入:商業(yè)數(shù)據(jù)中心請(qǐng)求
輸出:生成商業(yè)數(shù)據(jù)中心身份標(biāo)識(shí)
需要加入聯(lián)盟中心的商業(yè)數(shù)據(jù)中心基于某種加密算法生成密鑰對(duì)
將公鑰Kpub和基本信息公開給聯(lián)盟中心,基本信息包括商業(yè)數(shù)據(jù)中心地址,同時(shí)隨機(jī)委托一個(gè)節(jié)點(diǎn)創(chuàng)建投票合約,聯(lián)盟中心的節(jié)點(diǎn)參與投票;
如果票數(shù)過半,商業(yè)數(shù)據(jù)信息存儲(chǔ)合約保存該商業(yè)數(shù)據(jù)中心的公鑰信息,然后為其生成商業(yè)數(shù)據(jù)中心的身份標(biāo)識(shí)dcID并創(chuàng)建商業(yè)數(shù)據(jù)信息存儲(chǔ)合約和商業(yè)數(shù)據(jù)權(quán)限控制合約,以三元組表示 (dcID,CDSC,CDCC)。
由于私鑰由商業(yè)數(shù)據(jù)中心自行保存,存在內(nèi)部人員竊取的情況,也存在被盜的風(fēng)險(xiǎn),一旦被盜,取得私鑰者就可以偽造該商業(yè)數(shù)據(jù)中心的身份標(biāo)識(shí)對(duì)數(shù)據(jù)進(jìn)行操作。因此,商業(yè)數(shù)據(jù)管理中心需要妥善保管私鑰,此外,本文設(shè)計(jì)了密鑰重置合約,一旦發(fā)現(xiàn)密鑰泄露,即可啟動(dòng)dcID重置合約,重置密鑰,具體操作如算法2:
算法2:重置密鑰
輸入:重置請(qǐng)求
輸出:產(chǎn)生新的公鑰
商業(yè)數(shù)據(jù)中心再生成一對(duì)密鑰
將新的公鑰公開給聯(lián)盟中心,重置秘鑰,商業(yè)數(shù)據(jù)中心身份標(biāo)識(shí)已經(jīng)注冊(cè),因此同時(shí)附帶商業(yè)數(shù)據(jù)中心身份標(biāo)識(shí),并隨機(jī)委托節(jié)點(diǎn)創(chuàng)建重置投票合約;
聯(lián)盟中心全體重新投票,如果票數(shù)過半,則節(jié)點(diǎn)信息管理合約重置該商業(yè)數(shù)據(jù)中心的公鑰,將
由于考慮到商業(yè)數(shù)據(jù)中心私鑰存在的安全隱患,通過對(duì)節(jié)點(diǎn)身份標(biāo)識(shí)的一致性認(rèn)可,解除了操作對(duì)公鑰的依賴性。由于以上設(shè)計(jì)的商業(yè)數(shù)據(jù)的操作都是基于節(jié)點(diǎn)身份標(biāo)識(shí),即使dcID重置合約重置了商業(yè)數(shù)據(jù)中心的公鑰,只要節(jié)點(diǎn)身份標(biāo)識(shí)一致,依然可以驗(yàn)證商業(yè)數(shù)據(jù)中心的身份。
2.3.2 商業(yè)數(shù)據(jù)的保護(hù)與驗(yàn)證
商業(yè)數(shù)據(jù)的保護(hù)是指新增和更新商業(yè)數(shù)據(jù)對(duì)象的時(shí)候?qū)?shù)據(jù)進(jìn)行的保護(hù),技術(shù)上基于星際文件系統(tǒng)私有集群技術(shù),將數(shù)據(jù)存儲(chǔ)在區(qū)塊鏈上,配合聯(lián)盟中心和公有區(qū)塊鏈上的智能合約來保護(hù)數(shù)據(jù),防止數(shù)據(jù)被破壞,支持驗(yàn)證和恢復(fù)等基本操作。
新增數(shù)據(jù)對(duì)象是將商業(yè)數(shù)據(jù)對(duì)象保存在私有星際文件集群系統(tǒng)中,將數(shù)據(jù)對(duì)象編號(hào)保存在商業(yè)數(shù)據(jù)信息存儲(chǔ)合約中;更新數(shù)據(jù)對(duì)象則是在每次更新數(shù)據(jù)對(duì)象時(shí)對(duì)對(duì)象和數(shù)據(jù)進(jìn)行保護(hù)。
商業(yè)數(shù)據(jù)對(duì)象(commercial data object,本文JSON形式表示該對(duì)象,因此簡寫為cdJSON)結(jié)構(gòu)如圖5所示,包括對(duì)象編號(hào)、版本號(hào)、創(chuàng)建時(shí)間、操作者和摘要等信息。
圖5 商業(yè)數(shù)據(jù)對(duì)象結(jié)構(gòu)
新增數(shù)據(jù)對(duì)象操作步驟:
(1)商業(yè)數(shù)據(jù)中心生成一對(duì)隨機(jī)的密鑰randkey(Kpubr,Kprir), 該密鑰主要用于對(duì)商業(yè)數(shù)據(jù)摘要和商業(yè)數(shù)據(jù)對(duì)象的加密;
(2)用私鑰Kprir對(duì)商業(yè)數(shù)據(jù)摘要進(jìn)行加密,加密后保存到星際文件集群系統(tǒng),并將哈希值、加密附件的序列號(hào)和加密商業(yè)數(shù)據(jù)對(duì)象的序列號(hào)等信息進(jìn)行簽名,通過服務(wù)中心發(fā)送到智能合約中等待后續(xù)處理;
(3)商業(yè)數(shù)據(jù)信息存儲(chǔ)合約收到新增數(shù)據(jù)對(duì)象請(qǐng)求,調(diào)用商業(yè)數(shù)據(jù)權(quán)限控制合約從簽名中恢復(fù)公鑰,將恢復(fù)的公鑰與節(jié)點(diǎn)信息存儲(chǔ)合約中的密鑰進(jìn)行對(duì)比,如果驗(yàn)證通過,就在合約中添加商業(yè)數(shù)據(jù)對(duì)象編號(hào)和摘要等信息的鏡像。
新增對(duì)象的流程如圖6所示。
圖6 新增對(duì)象流程
更新數(shù)據(jù)對(duì)象操作與新增數(shù)據(jù)對(duì)象類似,只是商業(yè)數(shù)據(jù)中心不會(huì)生成密鑰對(duì),而是直接使用原有的密鑰對(duì);商業(yè)數(shù)據(jù)中心會(huì)根據(jù)商業(yè)數(shù)據(jù)對(duì)象編號(hào)從商業(yè)數(shù)據(jù)信息存儲(chǔ)合約和星際文件系統(tǒng)中提取商業(yè)數(shù)據(jù)對(duì)象信息,接著按照更新商業(yè)數(shù)據(jù)信息生成新的商業(yè)數(shù)據(jù)對(duì)象,加密以后保存回商業(yè)數(shù)據(jù)信息存儲(chǔ)合約和星際文件系統(tǒng)中,也就對(duì)原來的信息進(jìn)行了更新。
商業(yè)數(shù)據(jù)對(duì)象的驗(yàn)證包括公有區(qū)塊鏈對(duì)聯(lián)盟中心區(qū)塊鏈上的數(shù)據(jù)驗(yàn)證、聯(lián)盟中心對(duì)星際文件系統(tǒng)中數(shù)據(jù)的驗(yàn)證、商業(yè)數(shù)據(jù)對(duì)象對(duì)商業(yè)數(shù)據(jù)中心的數(shù)據(jù)驗(yàn)證。具體驗(yàn)證過程見以下算法:
算法3:公有區(qū)塊鏈對(duì)聯(lián)盟中心區(qū)塊鏈的數(shù)據(jù)驗(yàn)證
輸入:數(shù)據(jù)驗(yàn)證請(qǐng)求
輸出:驗(yàn)證結(jié)果
商業(yè)數(shù)據(jù)中心對(duì)dcID、 數(shù)據(jù)編號(hào)簽名后得到sign(dcID,dataID), 將結(jié)果發(fā)送到服務(wù)中心;
服務(wù)中心收到消息后,從公有區(qū)塊鏈中的聯(lián)盟數(shù)據(jù)保護(hù)合約中得到最新的聯(lián)盟數(shù)據(jù)塊副本映像;
通過和聯(lián)盟中心中的區(qū)塊信息進(jìn)行對(duì)比驗(yàn)證;如果驗(yàn)證通過,就將簽名發(fā)送給智能合約,進(jìn)行下一步操作;如果驗(yàn)證失敗,即返回聯(lián)盟中心數(shù)據(jù)異常。
算法4:聯(lián)盟中心對(duì)星際文件系統(tǒng)中數(shù)據(jù)的驗(yàn)證
輸入:數(shù)據(jù)驗(yàn)證請(qǐng)求
輸出:驗(yàn)證結(jié)果
商業(yè)數(shù)據(jù)信息存儲(chǔ)合約收到驗(yàn)證請(qǐng)求,通過商業(yè)數(shù)據(jù)權(quán)限控制合約對(duì)商業(yè)數(shù)據(jù)中心身份進(jìn)行確認(rèn),根據(jù)數(shù)據(jù)編號(hào)dataID從合約中查找對(duì)應(yīng)數(shù)據(jù)的摘要信息;
商業(yè)數(shù)據(jù)中心從商業(yè)數(shù)據(jù)信息存儲(chǔ)合約得到所需信息后,根據(jù)所取得數(shù)據(jù)對(duì)象從星際文件系統(tǒng)中獲取集群中的數(shù)據(jù)對(duì)象;
驗(yàn)證所取得的哈希值是否和前者一樣,如果驗(yàn)證通過,則進(jìn)行下一步操作;如果驗(yàn)證失敗,則返回星際文件系統(tǒng)數(shù)據(jù)異常。
商業(yè)數(shù)據(jù)對(duì)象對(duì)商業(yè)數(shù)據(jù)中心的數(shù)據(jù)驗(yàn)證:獲取數(shù)據(jù)對(duì)象信息方法同上,只是最后將數(shù)據(jù)對(duì)象信息與商業(yè)數(shù)據(jù)中心的數(shù)據(jù)對(duì)象信息進(jìn)行對(duì)比驗(yàn)證,驗(yàn)證通過,則正常進(jìn)入下一步操作,否則,返回商業(yè)數(shù)據(jù)中心數(shù)據(jù)異常。
針對(duì)以上產(chǎn)生的異常,本文提出以下恢復(fù)方法:
聯(lián)盟中心數(shù)據(jù)異常:發(fā)現(xiàn)異常后可以回溯,將聯(lián)盟區(qū)塊信息與之前的區(qū)塊信息進(jìn)行對(duì)比,找出異常區(qū)塊的位置,在這基礎(chǔ)上新創(chuàng)建的區(qū)塊;
星際文件系統(tǒng)數(shù)據(jù)異常:商業(yè)數(shù)據(jù)信息存儲(chǔ)合約中存儲(chǔ)了數(shù)據(jù)區(qū)塊的各個(gè)歷史版本,如果發(fā)現(xiàn)異常,可以恢復(fù)前期的正確版本;
商業(yè)數(shù)據(jù)中心數(shù)據(jù)異常:可以根據(jù)聯(lián)盟鏈上的歷史記錄,重置商業(yè)數(shù)據(jù)中心被篡改的數(shù)據(jù)信息。
2.3.3 商業(yè)數(shù)據(jù)的共享
商業(yè)數(shù)據(jù)的共享是指在聯(lián)盟中心節(jié)點(diǎn)之間以及與外界節(jié)點(diǎn)間的數(shù)據(jù)共享,在智能合約、星際文件系統(tǒng)和混合加密機(jī)制等技術(shù)支持下,保障數(shù)據(jù)的安全共享。下面以商業(yè)數(shù)據(jù)中心A要向商業(yè)數(shù)據(jù)中心B共享商業(yè)數(shù)據(jù)為例介紹本文方案數(shù)據(jù)共享過程,其中商業(yè)數(shù)據(jù)中心A的商業(yè)數(shù)據(jù)中心身份標(biāo)識(shí)記為dcIDA, 商業(yè)數(shù)據(jù)中心B的商業(yè)數(shù)據(jù)中心身份標(biāo)識(shí)記為dcIDB, 其具體見算法5:
算法5:商業(yè)數(shù)據(jù)的共享
輸入:數(shù)據(jù)共享請(qǐng)求
輸出:共享數(shù)據(jù)或者失敗提示
商業(yè)數(shù)字中心A使用私鑰AKprir對(duì)需要共享的數(shù)據(jù)對(duì)象編號(hào)dataID、dcIDA進(jìn)行簽名得到signa(dataID,dcIDA), 之后通過服務(wù)中心將signa(dataID,dcIDA) 發(fā)送到商業(yè)數(shù)據(jù)共享管理合約。商業(yè)數(shù)據(jù)共享管理合約收到請(qǐng)求后,先調(diào)用商業(yè)數(shù)據(jù)權(quán)限控制合約對(duì)dcIDA進(jìn)行查驗(yàn),查驗(yàn)通過后將其寫入合約數(shù)據(jù)對(duì)象dataID的分享序列中;
商業(yè)數(shù)據(jù)中心B使用私鑰BKprir對(duì)dataID、dcIDB進(jìn)行簽名得到signb(dataID,dcIDB), 之后通過服務(wù)中心將signb(dataID,dcIDB) 發(fā)送到商業(yè)數(shù)據(jù)共享管理合約。商業(yè)數(shù)據(jù)共享管理合約收到請(qǐng)求后,先調(diào)用商業(yè)數(shù)據(jù)權(quán)限控制合約對(duì)商業(yè)數(shù)據(jù)中心B的權(quán)限進(jìn)行查驗(yàn),查驗(yàn)通過意味著B具有對(duì)數(shù)據(jù)對(duì)象的讀取權(quán)限,讀取對(duì)應(yīng)數(shù)據(jù)對(duì)象的哈希值和數(shù)據(jù)對(duì)象指紋;
商業(yè)數(shù)據(jù)中心B根據(jù)得到的數(shù)據(jù)對(duì)象指紋,從星際文件集群系統(tǒng)中獲取加密的數(shù)據(jù)對(duì)象,同時(shí)將dataID和dcIDB發(fā)送給商業(yè)數(shù)據(jù)中心A,來獲取數(shù)據(jù)對(duì)象的解密密鑰;
A收到B的請(qǐng)求后,商業(yè)數(shù)據(jù)共享管理合約根據(jù)所接受的信息查驗(yàn)商業(yè)數(shù)據(jù)的共享記錄,如果共享記錄有誤,則返回共享失??;否則共享真實(shí)無誤,則從節(jié)點(diǎn)信息管理合約中獲取dcIDB對(duì)應(yīng)的公鑰BKpubr, 對(duì)解密密鑰進(jìn)行非對(duì)稱加密后發(fā)送給B;
B使用私鑰BKprir對(duì)收到的消息進(jìn)行解密,得到原始解密密鑰,利用解密密鑰對(duì)加密的數(shù)據(jù)對(duì)象進(jìn)行解密,得到數(shù)據(jù)對(duì)象原始信息。
由于聯(lián)盟鏈數(shù)據(jù)塊的副本鏡像映射在公有鏈中,彼此高度不可能一樣的,必然存在高度差,這里將高度差記為h。 如果有黑客要攻擊,那么攻擊過程就需要重新計(jì)算公有鏈當(dāng)前區(qū)塊高度的所有內(nèi)容,并通過全網(wǎng)驗(yàn)證。假設(shè)節(jié)點(diǎn)算力為每秒ahash,黑客算力為每秒bhash,不會(huì)遇到異常情況,如大量節(jié)點(diǎn)加入攻擊,新區(qū)塊的計(jì)算難度一般相差不大,這里假設(shè)沒有異常情況,普通節(jié)點(diǎn)每秒鐘產(chǎn)生新區(qū)塊的概率為p,黑客節(jié)點(diǎn)產(chǎn)生新區(qū)塊的概率為q。那么每秒鐘高度差h的變化存在3種情況,分別是變大、變小和不變,每種概率表示為P1,P2,P3。 那么在t秒中,就有t次變化,用n標(biāo)識(shí)其中變大的次數(shù),m是變小的次數(shù),那么不變的次數(shù)就是t-n-m次,其中高度差的變化滿足多項(xiàng)分布。如果在t秒內(nèi),黑客攻擊節(jié)點(diǎn)成功需要滿足m∈[0,(t-h-1)/2],n=m+h+c, 其中1≤c≤t-2m-h, 發(fā)生的概率如下公式
其中,P1=q(1-p) 是高度差變大的概率,P2=p(1-q) 是高度差變小的概率,P3=1-P1-P3是高度差沒變化的概率。
黑客攻擊節(jié)點(diǎn)的算力如果小于普通節(jié)點(diǎn)的算力,成功的概率更小,因此,這里就討論算力相當(dāng)?shù)那闆r,根據(jù)以上公式得到黑客攻擊成功的概率分布如圖7所示,其中y軸是黑客攻擊成功的概率P,x軸是時(shí)間T,單位是算力的單位時(shí)間。
圖7 攻擊成功概率分布
從圖7,我們可以看出黑客能夠攻擊成功并且篡改數(shù)據(jù)的概率隨著高度差的增大而減小。以高度h=20計(jì)算,在長時(shí)間攻擊下,成功概率也是15%。而在實(shí)際應(yīng)用中,區(qū)塊的高度差將會(huì)是千萬數(shù)量級(jí)的,那么在這樣的情況下,攻擊篡改成功的概率幾乎為零。況且以太坊是存在激勵(lì)機(jī)制的,如果有這么大的算力,還不如作為普通節(jié)點(diǎn),獎(jiǎng)勵(lì)也遠(yuǎn)遠(yuǎn)大于攻擊篡改的收益。因此,通過分析,本模型在安全方面是可靠的,具有不可篡改性。
本模型主要用于商業(yè)數(shù)據(jù)的共享與保護(hù),假設(shè)每天需要進(jìn)行的保護(hù)次數(shù)為m, 共享次數(shù)為n, 身份信息管理次數(shù)為l, 則以太坊上公有區(qū)塊鏈上部署智能合約的成本Cost1=mCost2+nCost3+lCost4, 其中Cost1為以太坊成本,Cost2為保護(hù)操作成本,Cost3為共享操作的成本,Cost4為身份信息管理的成本。
本文是通過聯(lián)盟鏈與公有鏈相結(jié)合的方式建立模型對(duì)商業(yè)數(shù)據(jù)進(jìn)行保護(hù)和分享,結(jié)合星際文件系統(tǒng),實(shí)現(xiàn)了對(duì)商業(yè)數(shù)據(jù)的安全分享、保護(hù)和恢復(fù)等功能,和單獨(dú)使用聯(lián)盟鏈、單獨(dú)使用公有鏈的性能對(duì)比見表1,本文所提出的模型安全性高于聯(lián)盟鏈,和公有鏈安全性相當(dāng),但是成本要低于公有鏈;在擴(kuò)展性方面,本文的模型要高于兩者。由此可見本文模型更優(yōu)。
表1 性能對(duì)比
本文結(jié)合區(qū)塊鏈相關(guān)技術(shù)、星際文件系統(tǒng)設(shè)計(jì)了一種基于區(qū)塊鏈的商業(yè)數(shù)據(jù)共享模型。本模型實(shí)現(xiàn)了對(duì)商業(yè)數(shù)據(jù)的安全共享和對(duì)商業(yè)數(shù)據(jù)的保護(hù)等基本操作,能夠在較低的經(jīng)濟(jì)成本下保證商業(yè)數(shù)據(jù)的安全共享。相對(duì)現(xiàn)有的模型在安全性、擴(kuò)展性和成本上方面都更有優(yōu)勢(shì)。本模型考慮了商業(yè)數(shù)據(jù)的共享和保護(hù)的基本操作,但是在對(duì)商業(yè)數(shù)據(jù)其它方面的應(yīng)用沒有做過多的涉獵,在今后的工作中,能夠?qū)⒛P屯卣沟礁囝I(lǐng)域,包含更多功能,將對(duì)商業(yè)數(shù)據(jù)管理的區(qū)塊鏈共識(shí)機(jī)制方面進(jìn)行更加深入的研究。