文必龍,陳友良
(東北石油大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,黑龍江 大慶 163318)
隨著大數(shù)據(jù)時(shí)代的到來(lái),企業(yè)信息化程度不斷加深,數(shù)據(jù)逐漸成為企業(yè)的重要戰(zhàn)略資源。對(duì)于企業(yè)中單一的組織部門(mén)而言,往往靠自身的數(shù)據(jù)積累難以挖掘出其中蘊(yùn)含的有效價(jià)值。只有通過(guò)開(kāi)放共享和數(shù)據(jù)跨域流通才能完成整個(gè)企業(yè)版圖的繪制。目前企業(yè)在推進(jìn)信息化建設(shè)的過(guò)程中,普遍以建立數(shù)據(jù)中心的方式連接不同職能的信息系統(tǒng),各部門(mén)通過(guò)數(shù)據(jù)中心直接或間接地獲取數(shù)據(jù),但數(shù)據(jù)中心的數(shù)據(jù)共享方式仍會(huì)面臨一些問(wèn)題。首先,由于數(shù)據(jù)交換不同于傳統(tǒng)的普通商品交易,數(shù)據(jù)作為被交易的對(duì)象時(shí)缺少傳統(tǒng)商品所有權(quán)的概念。因此數(shù)據(jù)匯聚到數(shù)據(jù)中心之后,基礎(chǔ)部門(mén)的數(shù)據(jù)權(quán)屬變得不清晰,同時(shí)也不利于出現(xiàn)問(wèn)題時(shí)責(zé)任的正確匹配。其次,中心化結(jié)構(gòu)特有的數(shù)據(jù)安全、信息泄露等問(wèn)題。由于數(shù)據(jù)具有可復(fù)制和易傳播的特性,會(huì)導(dǎo)致數(shù)據(jù)脫離數(shù)據(jù)中心的控制,數(shù)據(jù)所有者或管理者無(wú)法及時(shí)準(zhǔn)確控制未經(jīng)授權(quán)的數(shù)據(jù)進(jìn)行二次流動(dòng),存在數(shù)據(jù)泄露、越權(quán)使用的風(fēng)險(xiǎn)。并且會(huì)出現(xiàn)數(shù)據(jù)被篡改、被破壞的數(shù)據(jù)完整性問(wèn)題,同時(shí)隱私數(shù)據(jù)的使用安全也無(wú)法保證。區(qū)塊鏈技術(shù)的出現(xiàn)無(wú)疑為解決企業(yè)數(shù)據(jù)共享中的數(shù)據(jù)安全問(wèn)題提供了新的思路和解決方案。
該文在傳統(tǒng)的企業(yè)數(shù)據(jù)共享模式中引入?yún)^(qū)塊鏈技術(shù),利用區(qū)塊鏈的技術(shù)機(jī)制,構(gòu)建安全可信的數(shù)據(jù)共享環(huán)境,使數(shù)據(jù)在共享過(guò)程中可管控,加速數(shù)據(jù)流轉(zhuǎn),提高數(shù)據(jù)到價(jià)值的轉(zhuǎn)化率。
企業(yè)現(xiàn)有的跨部門(mén)數(shù)據(jù)協(xié)同、聯(lián)合數(shù)據(jù)分析等應(yīng)用場(chǎng)景,都是建立在數(shù)據(jù)開(kāi)放共享基礎(chǔ)上,盡管各種應(yīng)用場(chǎng)景不盡相同,但多面臨數(shù)據(jù)脫離控制使用的問(wèn)題。而數(shù)據(jù)存在的目的就是為了使用,不能拋開(kāi)數(shù)據(jù)使用前提而只談數(shù)據(jù)安全[1]。對(duì)于數(shù)據(jù)使用安全問(wèn)題,企業(yè)數(shù)據(jù)中心的主要方式是追溯審計(jì)等監(jiān)管手段,追溯審計(jì)能夠有效監(jiān)控用戶(hù)對(duì)數(shù)據(jù)的操作。但即使在可信有效的追溯審計(jì)基礎(chǔ)上,這種靜態(tài)監(jiān)管機(jī)制依然無(wú)法解決動(dòng)態(tài)監(jiān)控?cái)?shù)據(jù)使用過(guò)程中面臨的二次流動(dòng)與被越權(quán)使用等安全問(wèn)題。因此企業(yè)仍需要從數(shù)據(jù)自身保護(hù)的角度解決數(shù)據(jù)使用安全問(wèn)題。
近些年來(lái),隨著密碼學(xué)的不斷發(fā)展,同態(tài)加密與安全多方計(jì)算[2]在數(shù)據(jù)使用安全與隱私保護(hù)方面取得了充分的研究與發(fā)展。同態(tài)加密技術(shù)通過(guò)將數(shù)據(jù)加密之后進(jìn)行計(jì)算,保證了數(shù)據(jù)使用的安全性,使用戶(hù)在數(shù)據(jù)加密的情況下仍能對(duì)特定的加密數(shù)據(jù)進(jìn)行分析、計(jì)算和檢索[3]。安全多方計(jì)算是解決敏感數(shù)據(jù)計(jì)算的方法,它是指數(shù)據(jù)在不離開(kāi)本地、參與方不接觸數(shù)據(jù)源的基礎(chǔ)上,完成與另一方或多方數(shù)據(jù)源的協(xié)同計(jì)算。但存在由于某些節(jié)點(diǎn)出現(xiàn)惡意破壞的行為而導(dǎo)致計(jì)算可信、公平性方面的問(wèn)題[4]。并且以上兩種方法普遍存在計(jì)算復(fù)雜、通用性不強(qiáng)與效率低的問(wèn)題,在推進(jìn)企業(yè)級(jí)應(yīng)用落地的過(guò)程中還存在很多挑戰(zhàn)。目前,區(qū)塊鏈技術(shù)由于具有去中心化、時(shí)序數(shù)據(jù)、不可篡改、公開(kāi)透明、可追溯、集體維護(hù)等特點(diǎn)[5-6],有效解決了數(shù)據(jù)在流通共享過(guò)程中作為一種特殊的商品帶來(lái)的數(shù)據(jù)權(quán)益、真實(shí)可信,追溯審計(jì)、管理監(jiān)控等問(wèn)題。因此,基于區(qū)塊鏈的數(shù)據(jù)應(yīng)用模式受到了廣泛的關(guān)注,區(qū)塊鏈在解決數(shù)據(jù)安全問(wèn)題的優(yōu)勢(shì)體現(xiàn)在很多方面。在數(shù)據(jù)存儲(chǔ)安全方面,Lvan等人提出了一個(gè)基于區(qū)塊鏈安全存儲(chǔ)病人醫(yī)療記錄的方法[7]。在真實(shí)可信、降低成本方面,薛騰飛等人提出基于區(qū)塊鏈的醫(yī)療數(shù)據(jù)共享模型,解決了數(shù)據(jù)校驗(yàn)費(fèi)時(shí)費(fèi)力所導(dǎo)致數(shù)據(jù)共享難的問(wèn)題[8]。Banerjee將區(qū)塊鏈與供應(yīng)鏈相結(jié)合,降低了供應(yīng)鏈中存在的信用成本[9]。在數(shù)據(jù)確權(quán)與溯源、交易透明方面,全立新等人利用區(qū)塊鏈構(gòu)建一種開(kāi)放、自我管理的數(shù)字教育資源流通模式[10]。Ricardo等利用智能合約記錄數(shù)據(jù)來(lái)源,將數(shù)據(jù)使用流轉(zhuǎn)過(guò)程記錄到區(qū)塊鏈中,實(shí)現(xiàn)數(shù)據(jù)確權(quán)與溯源[11]。陳晉川等人以同樣的思路提出了一個(gè)去中心的數(shù)據(jù)交易方案,利用區(qū)塊鏈不可篡改的性質(zhì),保護(hù)數(shù)據(jù)所有者的權(quán)益[12]。在可信數(shù)據(jù)管理方面,董祥千等人利用區(qū)塊鏈的誠(chéng)實(shí)可信基礎(chǔ),提出了一種計(jì)算遷移、安全高效的去中心化數(shù)據(jù)共享模型[13]。區(qū)塊鏈憑借其獨(dú)特的優(yōu)勢(shì)在解決數(shù)據(jù)流通共享過(guò)程中涉及的存儲(chǔ)安全、真實(shí)可信、授權(quán)存證以及在流動(dòng)過(guò)程中管控等問(wèn)題上發(fā)揮了一定的優(yōu)勢(shì)。
現(xiàn)階段企業(yè)內(nèi)仍是以數(shù)據(jù)中心為主、其他辦公系統(tǒng)輔助的信息共享方式,更多的數(shù)據(jù)應(yīng)用場(chǎng)景需要數(shù)據(jù)庫(kù)中原始數(shù)據(jù)提供支撐。目前以區(qū)塊鏈技術(shù)實(shí)現(xiàn)的鏈上數(shù)據(jù)、API等共享模式不足以滿(mǎn)足各部門(mén)協(xié)同合作的發(fā)展需求,依靠對(duì)鏈上數(shù)據(jù)交易使用記錄的追溯審計(jì),不能及時(shí)準(zhǔn)確發(fā)現(xiàn)數(shù)據(jù)使用過(guò)程中引發(fā)的數(shù)據(jù)安全問(wèn)題。因此,該文以區(qū)塊鏈技術(shù)如何賦能企業(yè)數(shù)據(jù)安全的開(kāi)放與共享為切入點(diǎn),研究區(qū)塊鏈在企業(yè)數(shù)據(jù)共享中的應(yīng)用模式。目的是解決企業(yè)數(shù)據(jù)流通共享過(guò)程中的確權(quán)混亂、使用記錄不清晰透明,數(shù)據(jù)被越權(quán)使用的問(wèn)題,利用鏈下計(jì)算、鏈上記錄的數(shù)據(jù)應(yīng)用模式,避免數(shù)據(jù)二次流動(dòng),降低隱私數(shù)據(jù)使用風(fēng)險(xiǎn)。
目前大部分企業(yè)以數(shù)據(jù)中心的模式構(gòu)建企業(yè)數(shù)據(jù)交換平臺(tái),在一定程度上解決了由于數(shù)據(jù)異構(gòu)、相互獨(dú)立而帶來(lái)的“數(shù)據(jù)孤島”問(wèn)題。如圖1所示,企業(yè)各部門(mén)通過(guò)數(shù)據(jù)中心對(duì)數(shù)據(jù)進(jìn)行集散,實(shí)現(xiàn)企業(yè)內(nèi)部不同部門(mén)間的數(shù)據(jù)共享、數(shù)據(jù)管理和數(shù)據(jù)傳遞。數(shù)據(jù)中心作為一種中介機(jī)構(gòu)為各部門(mén)提供數(shù)據(jù)協(xié)作的能力,并不斷地優(yōu)化企業(yè)的業(yè)務(wù)流程。但數(shù)據(jù)中心的數(shù)據(jù)安全機(jī)制在保證數(shù)據(jù)完整性、可用性方面還有許多不足。區(qū)塊鏈作為多種技術(shù)的集成創(chuàng)新應(yīng)用,在增強(qiáng)數(shù)據(jù)完整性、保證數(shù)據(jù)可用性方面有著天然的優(yōu)勢(shì)。
圖1 企業(yè)數(shù)據(jù)中心共享模式
區(qū)塊鏈以塊鏈?zhǔn)浇Y(jié)構(gòu)存儲(chǔ)數(shù)據(jù),區(qū)塊作為數(shù)據(jù)的載體,對(duì)于每個(gè)交易結(jié)果都會(huì)完整地記錄在區(qū)塊中,利用哈希算法給予每個(gè)區(qū)塊一個(gè)哈希標(biāo)識(shí),保證區(qū)塊不被篡改。因此,區(qū)塊鏈的價(jià)值就體現(xiàn)在對(duì)數(shù)據(jù)構(gòu)造出了某種程度的“唯一性”。在企業(yè)數(shù)據(jù)共享過(guò)程中,通過(guò)將數(shù)據(jù)歸集和使用的整個(gè)過(guò)程記錄上鏈,利用區(qū)塊鏈改善授權(quán)鑒權(quán)的流程,避免傳統(tǒng)模式的缺陷。一方面解決了企業(yè)各部門(mén)的數(shù)據(jù)在歸集后產(chǎn)生數(shù)據(jù)權(quán)益不清晰的問(wèn)題;另一方面,將帶有唯一標(biāo)識(shí)的數(shù)據(jù)依附于區(qū)塊鏈上進(jìn)行交易[14],通過(guò)區(qū)塊鏈中所有參與計(jì)算的節(jié)點(diǎn)共同維護(hù)數(shù)據(jù)交易記錄,由于鏈上數(shù)據(jù)記錄具有不可篡改的特性,很自然地解決了數(shù)據(jù)難以溯源和被篡改、被破壞的問(wèn)題,同時(shí)還為監(jiān)管部門(mén)提供了真實(shí)可信的日志審計(jì)。
企業(yè)日常生產(chǎn)活動(dòng)中更多的業(yè)務(wù)場(chǎng)景是對(duì)數(shù)據(jù)使用的需求,僅靠鏈上的追溯審計(jì)不能及時(shí)有效地監(jiān)控?cái)?shù)據(jù)二次流動(dòng)。智能合約作為區(qū)塊鏈技術(shù)的特性之一,它以代碼的形式嵌入?yún)^(qū)塊鏈系統(tǒng),由鏈上事務(wù)驅(qū)動(dòng)。合約雙方無(wú)需彼此信任,只要滿(mǎn)足相應(yīng)的觸發(fā)條件,合約會(huì)自動(dòng)執(zhí)行,外界無(wú)法干預(yù)。因此,通過(guò)事先擬定的合約內(nèi)容和觸發(fā)機(jī)制,利用智能合約構(gòu)建自動(dòng)、高效的執(zhí)行環(huán)境,讓數(shù)據(jù)在安全封閉的環(huán)境下進(jìn)行數(shù)據(jù)處理,外界無(wú)法獲取參與計(jì)算的原始數(shù)據(jù),以減少數(shù)據(jù)流動(dòng)與隱私泄露的風(fēng)險(xiǎn)。
利用區(qū)塊鏈技術(shù),與企業(yè)當(dāng)前的數(shù)據(jù)共享模式相結(jié)合,形成一個(gè)透明、高效、安全的控制架構(gòu)??刂茢?shù)據(jù)應(yīng)用共享的過(guò)程,記錄數(shù)據(jù)的歸集和被交換數(shù)據(jù)的流向及應(yīng)用信息,保障企業(yè)數(shù)據(jù)安全共享。
通過(guò)上述分析,區(qū)塊鏈在推進(jìn)企業(yè)數(shù)據(jù)安全共享的問(wèn)題上起到積極的作用。結(jié)合區(qū)塊鏈技術(shù)實(shí)現(xiàn)企業(yè)數(shù)據(jù)共享,系統(tǒng)整合架構(gòu)如圖2所示。
圖2 基于區(qū)塊鏈的企業(yè)數(shù)據(jù)共享架構(gòu)
區(qū)塊鏈企業(yè)數(shù)據(jù)共享架構(gòu)由三層組成:
(1)數(shù)據(jù)資源層。為區(qū)塊鏈上的數(shù)據(jù)交換共享事務(wù)提供基礎(chǔ)數(shù)據(jù)支撐與數(shù)據(jù)交換平臺(tái),鏈上的數(shù)據(jù)通過(guò)區(qū)塊鏈網(wǎng)絡(luò)共享,而鏈下數(shù)據(jù)通過(guò)數(shù)據(jù)交換平臺(tái)在區(qū)塊鏈控制下進(jìn)行數(shù)據(jù)交換。其中數(shù)據(jù)源包括企業(yè)的數(shù)據(jù)中心主庫(kù),企業(yè)或所屬部門(mén)自建的信息系統(tǒng),由設(shè)備采集的實(shí)時(shí)數(shù)據(jù)庫(kù)以及文件、項(xiàng)目數(shù)據(jù)庫(kù)等。
(2)區(qū)塊鏈技術(shù)層。基于企業(yè)組織結(jié)構(gòu)的特點(diǎn),區(qū)塊鏈技術(shù)選擇以聯(lián)盟鏈[15]的形式實(shí)現(xiàn)。各部門(mén)或機(jī)構(gòu)通過(guò)審核后加入?yún)^(qū)塊鏈網(wǎng)絡(luò),節(jié)點(diǎn)之間通過(guò)P2P網(wǎng)絡(luò)協(xié)議進(jìn)行數(shù)據(jù)傳播與驗(yàn)證;相比較公有鏈基于證明的共識(shí)機(jī)制,這里選擇低延遲、無(wú)分叉、基于投票的PBFT或Raft共識(shí)機(jī)制。將智能合約以代碼的形式嵌入系統(tǒng),通過(guò)智能合約自動(dòng)處理相關(guān)的事務(wù)。
(3)應(yīng)用服務(wù)層。通過(guò)區(qū)塊鏈技術(shù)層的API和SDK接口為用戶(hù)與系統(tǒng)之間提供直接的信息交互載體。其中包括為企業(yè)各部門(mén)用戶(hù)、管理員和監(jiān)管機(jī)構(gòu)提供的基礎(chǔ)、管理和監(jiān)管服務(wù)。并在此基礎(chǔ)上構(gòu)建各種與企業(yè)業(yè)務(wù)相關(guān)的應(yīng)用,為企業(yè)各部門(mén)提供業(yè)務(wù)活動(dòng)、數(shù)據(jù)共享的服務(wù)。
基于區(qū)塊鏈的企業(yè)數(shù)據(jù)共享架構(gòu),通過(guò)在企業(yè)內(nèi)各業(yè)務(wù)部門(mén)、職能部門(mén)、監(jiān)管部門(mén)等多個(gè)機(jī)構(gòu)部署區(qū)塊鏈節(jié)點(diǎn)完成整個(gè)區(qū)塊鏈網(wǎng)絡(luò)的共同管理和維護(hù)。如圖3所示,各部門(mén)通過(guò)相應(yīng)的節(jié)點(diǎn)接入?yún)^(qū)塊鏈網(wǎng)絡(luò),區(qū)塊鏈上的節(jié)點(diǎn)將數(shù)據(jù)或數(shù)據(jù)索引信息上傳到打包排序節(jié)點(diǎn)。經(jīng)過(guò)打包節(jié)點(diǎn)排序后,返回各節(jié)點(diǎn)驗(yàn)證其提交事務(wù)的有效性,節(jié)點(diǎn)間共識(shí)驗(yàn)證通過(guò)后會(huì)將相關(guān)數(shù)據(jù)記錄存儲(chǔ)在區(qū)塊鏈上。
區(qū)塊鏈服務(wù)提供相關(guān)的認(rèn)證管理、追溯審計(jì)和以智能合約方式實(shí)現(xiàn)的各種業(yè)務(wù)邏輯功能。用戶(hù)可以通過(guò)客戶(hù)端與區(qū)塊鏈網(wǎng)絡(luò)進(jìn)行交互,具體包括注冊(cè)數(shù)據(jù)源、查詢(xún)數(shù)據(jù)、申請(qǐng)權(quán)限等操作。針對(duì)企業(yè)中跨部門(mén)數(shù)據(jù)查詢(xún)、聯(lián)合數(shù)據(jù)分析等一些常見(jiàn)的應(yīng)用場(chǎng)景,為確保鏈上共識(shí)的總體性能,減少區(qū)塊鏈上一些計(jì)算資源節(jié)點(diǎn)的負(fù)擔(dān),該文將傳統(tǒng)的基于鏈上的數(shù)據(jù)處理或計(jì)算環(huán)節(jié)放在鏈下執(zhí)行,提出一種利用智能合約等技術(shù)控制的鏈上鏈下協(xié)作的數(shù)據(jù)應(yīng)用共享方式。關(guān)于數(shù)據(jù)應(yīng)用的操作記錄通過(guò)智能合約記錄在區(qū)塊鏈上,便于后期的追溯審計(jì)。
圖3 基于區(qū)塊鏈的企業(yè)數(shù)據(jù)共享方案
監(jiān)管部門(mén)作為特殊的機(jī)構(gòu)不參與一般的數(shù)據(jù)交換業(yè)務(wù),主要負(fù)責(zé)監(jiān)管區(qū)塊鏈記錄的正確性以及處理鏈上數(shù)據(jù)交換共享的問(wèn)題。其目的是保證鏈上數(shù)據(jù)真實(shí)有效、索引信息正確可用,同時(shí)負(fù)責(zé)對(duì)鏈上的交易信息、授權(quán)信息等記錄進(jìn)行安全審計(jì),使違規(guī)侵權(quán)行為及時(shí)被發(fā)現(xiàn)并處理,并保證責(zé)任的正確匹配。
在企業(yè)數(shù)據(jù)共享過(guò)程中,數(shù)據(jù)作為在區(qū)塊鏈上被交易的對(duì)象時(shí),區(qū)塊鏈中的區(qū)塊負(fù)責(zé)記錄數(shù)據(jù)交易、授權(quán)、應(yīng)用以及數(shù)據(jù)資源描述等信息。由于企業(yè)內(nèi)部一些常見(jiàn)的數(shù)據(jù)應(yīng)用場(chǎng)景需要原生數(shù)據(jù)提供支撐,所以區(qū)塊鏈上需采用完整數(shù)據(jù)或數(shù)據(jù)索引兩種存儲(chǔ)方式。對(duì)于不同數(shù)據(jù)資源信息的描述,利用構(gòu)建不同的區(qū)塊數(shù)據(jù)結(jié)構(gòu)來(lái)區(qū)分兩種存儲(chǔ)方式,其中,數(shù)據(jù)資源描述信息不僅需要能夠表達(dá)出不同的數(shù)據(jù)存儲(chǔ)方式,而且需要解決不同部門(mén)不同用戶(hù)之間對(duì)數(shù)據(jù)信息描述不一致以及數(shù)據(jù)權(quán)限、策略相關(guān)的問(wèn)題。因此提出數(shù)據(jù)資源描述模型DRDM(Data Resource Description Model)指導(dǎo)區(qū)塊數(shù)據(jù)結(jié)構(gòu)構(gòu)建,通過(guò)區(qū)塊的數(shù)據(jù)結(jié)構(gòu)直接反映上層事務(wù)的邏輯結(jié)構(gòu)。數(shù)據(jù)資源描述模型可用五元組表示DRDM={B,DR,DI,P,O}。
其中,B(Basic):表示描述數(shù)據(jù)資源的基本信息,旨在說(shuō)明數(shù)據(jù)資源的類(lèi)型與用途。具體包括數(shù)據(jù)資源代碼,區(qū)分不同數(shù)據(jù)資源的標(biāo)識(shí);數(shù)據(jù)資源分類(lèi),按照不同領(lǐng)域或用途將其歸類(lèi);數(shù)據(jù)資源摘要,對(duì)此數(shù)據(jù)資源的簡(jiǎn)單應(yīng)用描述;關(guān)鍵詞以及數(shù)據(jù)資源格式等信息。
DR(Data Resource):表示存儲(chǔ)數(shù)據(jù)資源信息。數(shù)據(jù)共享的內(nèi)容直接存儲(chǔ)在區(qū)塊中,數(shù)據(jù)資源聚集于區(qū)塊鏈上。用戶(hù)可以直接在區(qū)塊鏈中查詢(xún)得到相關(guān)的數(shù)據(jù)內(nèi)容。這種方式適合存儲(chǔ)數(shù)據(jù)內(nèi)容較少的情況,或者是分享對(duì)方所需要、加工之后的數(shù)據(jù)結(jié)果。
DI(Data Index):表示存儲(chǔ)數(shù)據(jù)資源索引信息。數(shù)據(jù)共享的內(nèi)容不直接存儲(chǔ)在區(qū)塊中,區(qū)塊中僅存儲(chǔ)數(shù)據(jù)資源的索引信息,用戶(hù)可以通過(guò)數(shù)據(jù)索引信息找到具體的數(shù)據(jù)內(nèi)容。此種方式適合數(shù)據(jù)內(nèi)容較多且類(lèi)型多樣的情況,具體包括數(shù)據(jù)庫(kù)、文件、API等方式。
P(Policy):表示數(shù)據(jù)訪(fǎng)問(wèn)策略。描述數(shù)據(jù)資源的自身和權(quán)限變動(dòng)情況,具體包括數(shù)據(jù)資源的更新周期、共享類(lèi)型、共享規(guī)則以及共享方式等內(nèi)容。
O(Owner):表示數(shù)據(jù)確權(quán)信息。即數(shù)據(jù)資源提供者的相關(guān)信息,具體包括數(shù)據(jù)提供者ID與姓名,所屬的部門(mén)ID與名稱(chēng)以及數(shù)字簽名等信息,以確保數(shù)據(jù)的真實(shí)可靠性及數(shù)據(jù)的確權(quán)問(wèn)題。
描述數(shù)據(jù)資源信息的區(qū)塊結(jié)構(gòu)如圖4所示。其中,當(dāng)DI內(nèi)容為Null時(shí),數(shù)據(jù)資源描述模型變成DRDM={B,DI,P,O}的形式,即圖4(a)數(shù)據(jù)資源鏈的數(shù)據(jù)存儲(chǔ)方式,在描述數(shù)據(jù)資源信息的同時(shí)定義數(shù)據(jù)內(nèi)容。當(dāng)DR內(nèi)容為Null時(shí),數(shù)據(jù)資源描述模型變成DRDM={B,DR,P,O}的形式,即圖4(b)數(shù)據(jù)資源索引鏈的數(shù)據(jù)共享方式。
(a)數(shù)據(jù)資源鏈存儲(chǔ)方式
(b)數(shù)據(jù)資源索引鏈存儲(chǔ)方式
由于數(shù)據(jù)具有易復(fù)制性,復(fù)制具有完全無(wú)差別性,以至于數(shù)據(jù)在應(yīng)用上也沒(méi)有差異。這些因素導(dǎo)致企業(yè)在常見(jiàn)的跨部門(mén)數(shù)據(jù)協(xié)同、聯(lián)合數(shù)據(jù)分析等應(yīng)用場(chǎng)景中所涉及的核心、機(jī)密及隱私數(shù)據(jù)不能有效地在共享過(guò)程中受到保護(hù),直接影響了企業(yè)的經(jīng)營(yíng)發(fā)展、風(fēng)險(xiǎn)管控與戰(zhàn)略決策,使企業(yè)信息化受到了嚴(yán)重的制約。因此利用區(qū)塊鏈與智能合約[16]等技術(shù)使數(shù)據(jù)在一定安全可靠的范圍內(nèi)使用,實(shí)現(xiàn)對(duì)一些特殊數(shù)據(jù)的“可用但不可見(jiàn)”策略,保證數(shù)據(jù)在使用時(shí)不會(huì)出現(xiàn)被篡改、泄露的風(fēng)險(xiǎn)。其中,智能合約是指合約參與方可以執(zhí)行的一套以數(shù)字形式定義承諾的協(xié)議,簡(jiǎn)單理解是一個(gè)能夠自動(dòng)執(zhí)行協(xié)議的計(jì)算機(jī)程序。智能合約由于前期缺乏可信的執(zhí)行環(huán)境以及能夠支持可編程合約的數(shù)字系統(tǒng)和技術(shù),導(dǎo)致關(guān)于它的工作理論遲遲沒(méi)有實(shí)現(xiàn)[17]。區(qū)塊鏈的出現(xiàn)為智能合約提供了很好的運(yùn)行基礎(chǔ)[18],區(qū)塊鏈以自身獨(dú)特的優(yōu)勢(shì),為智能合約提供了去中心化、去信任化的執(zhí)行環(huán)境。以區(qū)塊鏈為主要技術(shù)手段驅(qū)動(dòng)的數(shù)據(jù)共享,使數(shù)據(jù)在不同的企業(yè)應(yīng)用共享場(chǎng)景中保證使用安全的前提下發(fā)揮出最大價(jià)值。
將智能合約以數(shù)字化的形式寫(xiě)入?yún)^(qū)塊鏈,借助區(qū)塊鏈技術(shù),不僅發(fā)揮了智能合約在成本效率方面的優(yōu)勢(shì),而且避免了作惡行為對(duì)合約執(zhí)行的干擾,保障合約公開(kāi)透明、不可篡改可追蹤的公平執(zhí)行。智能合約不僅代表區(qū)塊鏈上所有組織或用戶(hù)共同認(rèn)可的一種協(xié)議,更重要的是它不受某一中心機(jī)構(gòu)的控制,只要滿(mǎn)足預(yù)定的執(zhí)行條件,系統(tǒng)隨即觸發(fā)相應(yīng)的協(xié)議自動(dòng)執(zhí)行。利用智能合約公開(kāi)透明、自動(dòng)執(zhí)行且無(wú)法干預(yù)的特點(diǎn)和容器技術(shù)來(lái)保證在需求方不完全接觸數(shù)據(jù)源的基礎(chǔ)上,完成數(shù)據(jù)應(yīng)用的任務(wù)。該文提出一種基于智能合約的數(shù)據(jù)應(yīng)用共享模式,通過(guò)智能合約控制整個(gè)計(jì)算過(guò)程,完成鏈上、鏈下與不同應(yīng)用之間的數(shù)據(jù)流動(dòng)。其計(jì)算過(guò)程在鏈下安全的容器中運(yùn)行,有效避免某些計(jì)算資源有限的節(jié)點(diǎn)由于過(guò)多參與鏈上計(jì)算而影響鏈上共識(shí)的總體性能,數(shù)據(jù)應(yīng)用共享流程如圖5所示。
圖5 數(shù)據(jù)應(yīng)用共享流程
基于智能合約的數(shù)據(jù)應(yīng)用共享流程如下。
(1)訪(fǎng)問(wèn)權(quán)限審核。用戶(hù)通過(guò)客戶(hù)端生成查詢(xún)請(qǐng)求或選擇計(jì)算函數(shù)以及參與計(jì)算的數(shù)據(jù)源,并向區(qū)塊鏈節(jié)點(diǎn)發(fā)送請(qǐng)求。區(qū)塊鏈網(wǎng)絡(luò)中相應(yīng)的節(jié)點(diǎn)在收到客戶(hù)端發(fā)送的請(qǐng)求后,利用智能合約提取用戶(hù)證書(shū)的屬性以驗(yàn)證用戶(hù)提交的請(qǐng)求是否符合數(shù)據(jù)訪(fǎng)問(wèn)權(quán)限規(guī)則。如果用戶(hù)所擁有的屬性不符合數(shù)據(jù)權(quán)訪(fǎng)問(wèn)限規(guī)則,則返回相關(guān)提示信息。
(2)數(shù)據(jù)條件檢查。訪(fǎng)問(wèn)權(quán)限審核通過(guò)后,數(shù)據(jù)條件檢查合約會(huì)根據(jù)數(shù)據(jù)提供方對(duì)數(shù)據(jù)源所設(shè)置的數(shù)據(jù)策略與用戶(hù)所發(fā)送請(qǐng)求中所選擇的數(shù)據(jù)輸入條件進(jìn)行規(guī)則匹配檢查。當(dāng)輸入條件滿(mǎn)足相應(yīng)的數(shù)據(jù)策略后,系統(tǒng)會(huì)將相關(guān)的數(shù)據(jù)源發(fā)現(xiàn)參數(shù)與計(jì)算參數(shù)一并發(fā)送給計(jì)算控制合約。
(3)啟動(dòng)節(jié)點(diǎn)容器。計(jì)算控制合約將收到的參數(shù)與容器啟動(dòng)的命令一同發(fā)給計(jì)算節(jié)點(diǎn),計(jì)算節(jié)點(diǎn)會(huì)按照指令啟動(dòng)相對(duì)應(yīng)的容器。容器會(huì)根據(jù)數(shù)據(jù)源發(fā)現(xiàn)參數(shù)將計(jì)算所需數(shù)據(jù)安全的讀取到容器中,容器運(yùn)行期間相當(dāng)于一個(gè)黑盒沙箱,參與計(jì)算的數(shù)據(jù)源不會(huì)被外部訪(fǎng)問(wèn)。
(4)輸出合規(guī)性檢查。等待容器計(jì)算任務(wù)完成后,會(huì)將計(jì)算結(jié)果返回給鏈上節(jié)點(diǎn)。節(jié)點(diǎn)上安裝的輸出合規(guī)檢查合約會(huì)對(duì)返回的計(jì)算結(jié)果作合規(guī)性檢查,包括計(jì)算結(jié)果是否包含原始數(shù)據(jù),計(jì)算結(jié)果的數(shù)據(jù)結(jié)構(gòu)與預(yù)期結(jié)果是否相符等。輸出合規(guī)檢查通過(guò)后,區(qū)塊鏈節(jié)點(diǎn)會(huì)將結(jié)果返回給客戶(hù)端。
(5)銷(xiāo)毀容器,記錄上鏈。由用戶(hù)發(fā)起的計(jì)算事務(wù)完成后,由計(jì)算控制合約控制啟動(dòng)的節(jié)點(diǎn)容器會(huì)自動(dòng)銷(xiāo)毀,所有的原始、中間、結(jié)果數(shù)據(jù)都不會(huì)保留。最后將計(jì)算過(guò)程使用的數(shù)據(jù)源、計(jì)算函數(shù)、任務(wù)發(fā)起方等相關(guān)信息通過(guò)智能合約記錄在區(qū)塊鏈上,以保證后期對(duì)數(shù)據(jù)使用記錄追溯審核。
企業(yè)數(shù)據(jù)應(yīng)用共享過(guò)程中,有兩個(gè)常見(jiàn)的應(yīng)用場(chǎng)景,分別是數(shù)據(jù)安全查詢(xún)和聯(lián)合數(shù)據(jù)分析。其中,數(shù)據(jù)安全查詢(xún)是指用戶(hù)僅得到查詢(xún)受控范圍內(nèi)的結(jié)果,但對(duì)數(shù)據(jù)庫(kù)其他記錄信息不可知。同時(shí),擁有數(shù)據(jù)庫(kù)的一方,也無(wú)法得知用戶(hù)具體的查詢(xún)請(qǐng)求;聯(lián)合數(shù)據(jù)分析是指多個(gè)部門(mén)之間協(xié)同計(jì)算一個(gè)約定函數(shù),且計(jì)算過(guò)程中各部門(mén)不能獲得其他部門(mén)的輸入信息,保證輸入獨(dú)立性與計(jì)算安全性。通過(guò)基于智能合約的數(shù)據(jù)應(yīng)用共享流程控制保證了數(shù)據(jù)計(jì)算過(guò)程中的數(shù)據(jù)隔離、隱蔽計(jì)算,但是在數(shù)據(jù)應(yīng)用共享過(guò)程中,不僅需要考慮計(jì)算過(guò)程中的安全,還需要滿(mǎn)足數(shù)據(jù)共享規(guī)則。包括相應(yīng)的訪(fǎng)問(wèn)權(quán)限和控制數(shù)據(jù)共享范圍的設(shè)置,以及對(duì)數(shù)據(jù)應(yīng)用共享計(jì)算結(jié)果的合規(guī)性檢查,避免限定條件之外的數(shù)據(jù)流出。因此,從以下三個(gè)方面描述數(shù)據(jù)共享規(guī)則。
(1)數(shù)據(jù)訪(fǎng)問(wèn)權(quán)限。
區(qū)塊鏈具有公開(kāi)透明的性質(zhì),區(qū)塊鏈上共享的數(shù)據(jù)可以被任意用戶(hù)訪(fǎng)問(wèn),如此情況不滿(mǎn)足企業(yè)對(duì)于數(shù)據(jù)保密的相關(guān)要求。在實(shí)際企業(yè)內(nèi)部數(shù)據(jù)管理過(guò)程中,不僅僅只有高層的機(jī)密數(shù)據(jù),還有不同部門(mén)的敏感數(shù)據(jù),并且每個(gè)部門(mén)相互之間存在一些利益矛盾。因此對(duì)于不同級(jí)別的用戶(hù)需要賦予不同的訪(fǎng)問(wèn)權(quán)限,基于企業(yè)數(shù)據(jù)應(yīng)用共享中兩個(gè)常見(jiàn)的應(yīng)用場(chǎng)景考慮,將訪(fǎng)問(wèn)權(quán)限分成以下三種類(lèi)型。
①公開(kāi):可以獲得原始數(shù)據(jù),沒(méi)有條件限制。
②檢索:可以獲得部分原始數(shù)據(jù),允許檢索滿(mǎn)足V(數(shù)據(jù)表的某一個(gè)具體屬性值的集合)=v(v指用戶(hù)輸入的屬性值)的數(shù)據(jù)記錄,如果沒(méi)有符合的數(shù)據(jù)則返回Null。
③計(jì)算:不可以獲得原始數(shù)據(jù),但是允許數(shù)據(jù)參與計(jì)算,獲取計(jì)算結(jié)果。
由于聯(lián)盟鏈采用基于證書(shū)而不是傳統(tǒng)的用戶(hù)名和密碼形式的身份認(rèn)證,因此利用數(shù)字證書(shū)中的擴(kuò)展域?qū)傩?,將主體的相關(guān)信息寫(xiě)入數(shù)字證書(shū)中,通過(guò)智能合約提取數(shù)字證書(shū)中主體的相關(guān)屬性完成對(duì)不同數(shù)據(jù)訪(fǎng)問(wèn)權(quán)限的控制。
(2)數(shù)據(jù)條件規(guī)則。
數(shù)據(jù)條件規(guī)則是指數(shù)據(jù)表中具體字段的約束條件,數(shù)據(jù)提供方在注冊(cè)數(shù)據(jù)源時(shí),由于相關(guān)規(guī)定或者其他原因并不能共享某字段下的全部數(shù)據(jù),因此在注冊(cè)數(shù)據(jù)源時(shí)必須明確相關(guān)字段的約束條件,以便于數(shù)據(jù)需求方查看使用。具體關(guān)于數(shù)據(jù)字段的約束條件實(shí)際上等同于sql語(yǔ)句中的where條件,where條件有的復(fù)雜有的簡(jiǎn)單,所以約束條件有的作用在單一字段上,有的作用在多個(gè)字段上。例如,單一字段上的約束條件,允許查詢(xún)2019上半年的銷(xiāo)售業(yè)績(jī),銷(xiāo)售表中的時(shí)間字段約束條件設(shè)置為:Time<2019;或者多個(gè)字段上的約束條件,允許查詢(xún)2019上半年?yáng)|北地區(qū)的銷(xiāo)售業(yè)績(jī),銷(xiāo)售表中的相關(guān)字段約束條件設(shè)置為:(Time<2019 and area=‘東北地區(qū)’)。
利用正則表達(dá)式解析由用戶(hù)需求生成的sql語(yǔ)句,以智能合約的方式實(shí)現(xiàn)數(shù)據(jù)提供方設(shè)置的字段約束條件與需求方生成的sql語(yǔ)句中所包含的過(guò)濾條件之間的規(guī)則匹配,滿(mǎn)足約束條件的請(qǐng)求成功執(zhí)行之后將結(jié)果返回,將交易記錄在區(qū)塊鏈上,不滿(mǎn)足約束條件則返回提示信息。
(3)數(shù)據(jù)輸出合規(guī)性。
為保證數(shù)據(jù)安全查詢(xún)與計(jì)算結(jié)果的安全可控,對(duì)于數(shù)據(jù)輸出的結(jié)果,系統(tǒng)需對(duì)其進(jìn)行合規(guī)性檢查,避免不符合約束條件的數(shù)據(jù)流出。針對(duì)上面檢索、計(jì)算兩種情況的輸出進(jìn)行檢查,檢索的輸出可以表示為一個(gè)關(guān)系,計(jì)算的輸出可以表示為一個(gè)計(jì)算結(jié)果,因此轉(zhuǎn)換成對(duì)關(guān)系和計(jì)算結(jié)果的合規(guī)性檢查。
對(duì)于關(guān)系的檢查,主要是對(duì)最后輸出關(guān)系屬性V的值進(jìn)行過(guò)濾,判斷是否出現(xiàn)除v值以外的其他屬性值,其次對(duì)比生成關(guān)系屬性與查詢(xún)的關(guān)系屬性結(jié)構(gòu)是否一致。
對(duì)于計(jì)算結(jié)果的檢查,智能合約會(huì)根據(jù)用戶(hù)選擇的輸入數(shù)據(jù)類(lèi)型,自動(dòng)生成相同類(lèi)型的測(cè)試數(shù)據(jù)輸入。生成的測(cè)試數(shù)據(jù)和真正的輸入數(shù)據(jù)分別執(zhí)行相同的計(jì)算函數(shù),并得到相應(yīng)的計(jì)算結(jié)果,計(jì)算結(jié)果檢查主要包含以下三個(gè)部分。第一,預(yù)期計(jì)算結(jié)果檢查:數(shù)據(jù)需求方在發(fā)起計(jì)算的時(shí)候,要對(duì)預(yù)期的輸出結(jié)果進(jìn)行描述(或者由所選擇的計(jì)算函數(shù)可知),將預(yù)期結(jié)果與輸出結(jié)果進(jìn)行對(duì)比。第二,原始數(shù)據(jù)檢查:檢查測(cè)試輸出結(jié)果是否存在生成數(shù)據(jù)集的原始數(shù)據(jù),間接判斷計(jì)算函數(shù)是否包含原始數(shù)據(jù)的輸出。第三,輸出計(jì)算結(jié)果檢查:對(duì)比測(cè)試數(shù)據(jù)生成的計(jì)算結(jié)果屬性與實(shí)際數(shù)據(jù)生成的計(jì)算結(jié)果屬性是否一致。
數(shù)據(jù)作為企業(yè)日常經(jīng)營(yíng)和決策的越來(lái)越重要的戰(zhàn)略共享資源,由于它自身的可復(fù)制性和易傳播性,使其流通和共享過(guò)程受到了嚴(yán)重制約。該文以區(qū)塊鏈去中心化、不可篡改、可追溯與可信任等特點(diǎn)為基礎(chǔ),提出一種基于區(qū)塊鏈的企業(yè)數(shù)據(jù)共享模式,給出了企業(yè)數(shù)據(jù)共享架構(gòu)與方案,通過(guò)DRDM模型完善數(shù)據(jù)資源描述信息區(qū)塊結(jié)構(gòu),保證了數(shù)據(jù)規(guī)范描述與權(quán)屬清晰。利用區(qū)塊鏈構(gòu)建安全可信的數(shù)據(jù)計(jì)算環(huán)境,結(jié)合智能合約實(shí)現(xiàn)數(shù)據(jù)共享過(guò)程的可監(jiān)測(cè)、可管控和可追溯,采用一種數(shù)據(jù)可用不可見(jiàn)的應(yīng)用共享形式,減少數(shù)據(jù)二次流動(dòng)和隱私數(shù)據(jù)應(yīng)用的風(fēng)險(xiǎn),提高了數(shù)據(jù)到價(jià)值的轉(zhuǎn)化率。為企業(yè)信息化過(guò)程中解決數(shù)據(jù)可信、安全共享以及構(gòu)建企業(yè)數(shù)據(jù)共享生態(tài)圈提供了一種新的思路。