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