韋懿杰,陳耀旺
(杭州電子科技大學(xué)計(jì)算機(jī)學(xué)院,浙江杭州 310018)
隨著全球商業(yè)環(huán)境變得日益復(fù)雜和動(dòng)蕩,許多商業(yè)體通過(guò)加強(qiáng)跨組織的業(yè)務(wù)協(xié)作和資源共享來(lái)達(dá)成更多業(yè)務(wù)目標(biāo)。協(xié)作業(yè)務(wù)流程執(zhí)行涉及到廣泛的信息與資源交換,相應(yīng)的數(shù)據(jù)文件中可能包含用戶的敏感信息,如果沒(méi)有安全的數(shù)據(jù)共享與訪問(wèn)機(jī)制,用戶并不愿意共享其數(shù)據(jù)。
近年來(lái),隨著數(shù)字加密貨幣熱度越來(lái)越高,區(qū)塊鏈作為其底層支持技術(shù)得到了廣泛關(guān)注。目前已經(jīng)有許多研究者將區(qū)塊鏈技術(shù)應(yīng)用于協(xié)作業(yè)務(wù)流程管理領(lǐng)域,允許流程參與者在鏈上執(zhí)行或監(jiān)控業(yè)務(wù)流程。但現(xiàn)有研究多關(guān)注流程的執(zhí)行控制,缺乏數(shù)據(jù)存儲(chǔ)和訪問(wèn)控制的有效方案。
近年來(lái),區(qū)塊鏈技術(shù)由于具有去中心化、不可篡改和可追溯等特性而得到廣泛關(guān)注。例如,徐倩倩將現(xiàn)有區(qū)塊鏈研究劃分為區(qū)塊鏈基礎(chǔ)理論與區(qū)塊鏈技術(shù)在金融等領(lǐng)域的應(yīng)用兩個(gè)方面;饒東寧等分析了區(qū)塊鏈與供應(yīng)鏈的現(xiàn)狀,探究了在物流供應(yīng)鏈中引入?yún)^(qū)塊鏈技術(shù)的應(yīng)用前景;Mendling等指出使用區(qū)塊鏈技術(shù)能夠促進(jìn)業(yè)務(wù)流程管理領(lǐng)域系統(tǒng)跨網(wǎng)絡(luò)執(zhí)行、監(jiān)測(cè)或改進(jìn)等相關(guān)研究的發(fā)展;López-Pintado等開(kāi)發(fā)了基于以太坊區(qū)塊鏈的業(yè)務(wù)流程執(zhí)行引擎Caterpillar;Mercenne等在該引擎上的基礎(chǔ)上開(kāi)發(fā)了Blockchain Studio框架,該框架能夠在以太坊區(qū)塊鏈上支持基于角色的業(yè)務(wù)工作流生成和自動(dòng)化;Abid等擴(kuò)展了Caterpillar工具,通過(guò)將業(yè)務(wù)流程模型中的時(shí)間約束轉(zhuǎn)換為智能合約代碼以支持時(shí)間感知的業(yè)務(wù)流程;Ladleif等在智能合約中提供了支持時(shí)間度量的解決方案并采用準(zhǔn)確性和信任度比較時(shí)間度量的屬性,最后將該解決方案應(yīng)用于業(yè)務(wù)流程執(zhí)行過(guò)程中;Viriyasitavat等從“工業(yè)4.0”角度出發(fā),提出一種基于區(qū)塊鏈技術(shù)的自動(dòng)化業(yè)務(wù)流程管理方案,能夠在開(kāi)放環(huán)境下支持選擇和組合服務(wù);Prybila等探索了使用比特幣區(qū)塊鏈支持業(yè)務(wù)流程執(zhí)行的方案,并為該方案設(shè)計(jì)了實(shí)現(xiàn)原型,然而該方案沒(méi)有考慮到共享數(shù)據(jù)的隱私性,且比特幣編程技術(shù)的局限性也限制了該原型的功能;Sturm等基于業(yè)務(wù)流程建模標(biāo)注(Business Process Modeling Notation,BPMN)過(guò)程圖提出一種基于區(qū)塊鏈的去中心化流程執(zhí)行體系;唐玄昭等提出一種基于區(qū)塊鏈的業(yè)務(wù)流程互操作框架以支持多方跨組織流程協(xié)同。
為解決傳統(tǒng)訪問(wèn)控制技術(shù)中訪問(wèn)權(quán)限難以界定、第三方難以信任等問(wèn)題,許多研究者基于區(qū)塊鏈提出訪問(wèn)控制方案并取得了不少成果。例如,Maesa等提出一種基于區(qū)塊鏈技術(shù)的訪問(wèn)控制方法,該方法能夠發(fā)布用于表示訪問(wèn)資源權(quán)限的策略。此外,該學(xué)者還提出一種基于智能合約的訪問(wèn)控制方法,該方法結(jié)合傳統(tǒng)訪問(wèn)控制技術(shù)與區(qū)塊鏈技術(shù),將XACML體系架構(gòu)的部分功能轉(zhuǎn)化為以太坊智能合約以支持防篡改的鏈上訪問(wèn)控制。Cruz等提出一個(gè)名為RBAC-SC(Role-based Access Control using Smart Contract)的智能合約訪問(wèn)控制方法,該方法使用以太坊智能合約作為組織角色授權(quán)的基礎(chǔ)設(shè)施,并提出用于驗(yàn)證用戶角色所有權(quán)的質(zhì)詢響應(yīng)認(rèn)證協(xié)議;Steichen等提出一種基于區(qū)塊鏈的星際文件系統(tǒng)(Inter Planetary File System,IPFS)分布式訪問(wèn)控制方法,該方法解決了區(qū)塊鏈無(wú)法存儲(chǔ)大規(guī)模數(shù)據(jù)的缺點(diǎn);López-Pintado等提出一種用于協(xié)作業(yè)務(wù)流程執(zhí)行的角色綁定模型和綁定策略規(guī)范語(yǔ)言,同時(shí)還對(duì)該規(guī)范語(yǔ)言賦予petri網(wǎng)語(yǔ)義以檢測(cè)綁定策略是否會(huì)發(fā)生死鎖;Rondanini等提出在不同組織間建立協(xié)作與資源共享的訪問(wèn)控制方法,該方法在智能合約中部署一組授權(quán)策略,允許任務(wù)執(zhí)行者在任務(wù)激活期間訪問(wèn)任務(wù)執(zhí)行所需資源;Akhtar等針對(duì)分布式工作流中資源缺乏可審計(jì)的訪問(wèn)控制方案等問(wèn)題,提出一種能夠生成最優(yōu)復(fù)合訪問(wèn)控制策略的方法并開(kāi)發(fā)了基于以太坊區(qū)塊鏈的實(shí)現(xiàn)原型。
目前,基于區(qū)塊鏈的訪問(wèn)控制技術(shù)多為訪問(wèn)控制策略的鏈上化,沒(méi)有考慮到基于區(qū)塊鏈協(xié)作業(yè)務(wù)流程中的數(shù)據(jù)文件如何存儲(chǔ)以及任務(wù)動(dòng)態(tài)性對(duì)于訪問(wèn)權(quán)限的影響。針對(duì)以上問(wèn)題,本文提出一個(gè)基于區(qū)塊鏈的協(xié)作業(yè)務(wù)流程管理框架,該框架基于BPMN編排圖模型支持協(xié)作業(yè)務(wù)流程的鏈上執(zhí)行過(guò)程,同時(shí)引入IPFS實(shí)現(xiàn)數(shù)據(jù)的鏈下存儲(chǔ),最終通過(guò)鏈上存儲(chǔ)文件哈希值和鏈下存儲(chǔ)文件內(nèi)容的方式緩解了區(qū)塊鏈存儲(chǔ)文件的壓力,提高了協(xié)作業(yè)務(wù)流程數(shù)據(jù)的安全性,降低了區(qū)塊鏈數(shù)據(jù)存儲(chǔ)成本。此外,本文還提出一個(gè)基于任務(wù)和屬性的訪問(wèn)控制模型(Task-Attribute-Based Access Control,TABAC),該模型能在區(qū)塊鏈上驗(yàn)證資源訪問(wèn)者擁有的權(quán)限,為協(xié)作業(yè)務(wù)流程提供了動(dòng)態(tài)、靈活、細(xì)粒度和可追溯的數(shù)據(jù)訪問(wèn)控制支持。
為了在區(qū)塊鏈上支持協(xié)作業(yè)務(wù)流程的數(shù)據(jù)共享與訪問(wèn)控制,本文提出一個(gè)基于智能合約的協(xié)作業(yè)務(wù)流程引擎,該引擎基于BPMN編排圖驅(qū)動(dòng),能夠在以太坊區(qū)塊鏈上支持協(xié)作業(yè)務(wù)流程的執(zhí)行。該引擎采用通用智能合約的設(shè)計(jì)方法,即設(shè)計(jì)了能夠提供編排圖模型數(shù)據(jù)存儲(chǔ)和流程實(shí)例執(zhí)行等功能的智能合約,合約內(nèi)部包含了通用數(shù)據(jù)結(jié)構(gòu)體和合約函數(shù)。該引擎的執(zhí)行概念如圖1所示。
Fig.1 Conceptual diagram of execution engine圖1 執(zhí)行引擎概念
首先需要部署通用智能合約,通過(guò)翻譯器將編排圖模型解析為符合通用數(shù)據(jù)結(jié)構(gòu)體格式的模型數(shù)據(jù)文件,通過(guò)部署器發(fā)送交易將模型導(dǎo)入至通用智能合約中。隨后流程創(chuàng)建者調(diào)用合約函數(shù)創(chuàng)建流程實(shí)例,完成實(shí)例創(chuàng)建后,按照相應(yīng)的編排任務(wù)和消息狀態(tài)決定如何發(fā)送消息。當(dāng)消息被接收者確認(rèn)后,該框架能夠自動(dòng)執(zhí)行相應(yīng)的編排任務(wù)并根據(jù)模型數(shù)據(jù)以及消息內(nèi)容決定是否啟用下一編排任務(wù),直至最后一個(gè)編排任務(wù)到達(dá)已完成狀態(tài)時(shí)表示該實(shí)例執(zhí)行完成。
協(xié)作業(yè)務(wù)流程執(zhí)行過(guò)程往往會(huì)涉及到數(shù)據(jù)文件的交互與共享,而當(dāng)前區(qū)塊鏈無(wú)法在鏈上支持大量數(shù)據(jù)存儲(chǔ)。針對(duì)該問(wèn)題,本文在區(qū)塊鏈上存儲(chǔ)文件的資源地址標(biāo)識(shí)符,使數(shù)據(jù)文件脫離區(qū)塊鏈保存,訪問(wèn)者需要根據(jù)鏈上存儲(chǔ)的資源地址標(biāo)識(shí)符訪問(wèn)數(shù)據(jù)文件。協(xié)作業(yè)務(wù)流程執(zhí)行過(guò)程中的數(shù)據(jù)文件具有隱私性和時(shí)效性。為此,本文在框架內(nèi)部增加了鏈上文件管理合約、訪問(wèn)控制合約和鏈下IPFS代理層組件,其中文件管理合約是一個(gè)用于存儲(chǔ)數(shù)據(jù)文件哈希值的智能合約;訪問(wèn)控制合約是一個(gè)用于驗(yàn)證資源訪問(wèn)者權(quán)限的智能合約;IPFS代理層用于攔截流程參與者對(duì)IPFS中存儲(chǔ)數(shù)據(jù)文件的訪問(wèn)請(qǐng)求。在本文框架中,流程參與者不再直接與IPFS進(jìn)行交互,而是通過(guò)IPFS代理層上傳或下載文件。
流程參與者上傳文件的時(shí)序如圖2所示,當(dāng)流程參與者上傳文件時(shí),IPFS代理層將調(diào)用鏈上訪問(wèn)控制智能合約以驗(yàn)證流程參與者是否擁有對(duì)應(yīng)文件的寫(xiě)入權(quán)限,如果擁有該權(quán)限,IPFS代理層將使用內(nèi)部保存的以太坊賬戶公鑰加密文件,將加密后的文件上傳至IPFS并將其產(chǎn)生的哈希值寫(xiě)入到文件管理智能合約中。如果流程參與者沒(méi)有該文件的寫(xiě)入權(quán)限,IPFS代理層將拒絕流程參與者的上傳文件請(qǐng)求。流程參與者請(qǐng)求下載文件的過(guò)程與上傳過(guò)程類似,同樣需要由IPFS代理層和鏈上訪問(wèn)控制智能合約進(jìn)行權(quán)限驗(yàn)證。當(dāng)流程參與者擁有文件的讀取權(quán)限時(shí),代理層在IPFS中檢索到相應(yīng)的文件資源并使用以太坊私鑰解密文件,然后將解密后的文件返回給流程參與者。
Fig.2 Sequence diagram of uploading file圖2 上傳文件時(shí)序圖
基于區(qū)塊鏈的業(yè)務(wù)流程管理相關(guān)工作的重點(diǎn)在于業(yè)務(wù)流程模型的執(zhí)行控制,但這些工作沒(méi)有考慮到協(xié)作業(yè)務(wù)流程執(zhí)行過(guò)程中涉及到的數(shù)據(jù)資源訪問(wèn)控制問(wèn)題。
本文提出的TABAC模型結(jié)合了基于任務(wù)的訪問(wèn)控制(Task-Based Access Control,TBAC)和基于屬性的訪問(wèn)控制(Attribute-Based Access Control,ABAC)模型的優(yōu)點(diǎn),能夠?yàn)閿?shù)據(jù)資源提供靈活、動(dòng)態(tài)的訪問(wèn)控制。該模型中業(yè)務(wù)流程可被分解為若干任務(wù),任務(wù)包含任務(wù)屬性,這些屬性用于描述任務(wù)的特征,如任務(wù)名稱、任務(wù)狀態(tài)和任務(wù)類型等。用戶包含用戶屬性,在協(xié)作業(yè)務(wù)流程環(huán)境下用戶的屬性可能來(lái)自多個(gè)不同的組織。TABAC模型通過(guò)用戶屬性和任務(wù)屬性以及由這些屬性組成的訪問(wèn)控制策略驗(yàn)證用戶在協(xié)作業(yè)務(wù)流程執(zhí)行過(guò)程中擁有的權(quán)限。
TABAC模型的訪問(wèn)控制策略實(shí)施過(guò)程如圖3所示。資源請(qǐng)求者向策略執(zhí)行點(diǎn)發(fā)送資源請(qǐng)求,策略執(zhí)行點(diǎn)向策略決策點(diǎn)發(fā)起驗(yàn)證權(quán)限請(qǐng)求。策略決策點(diǎn)根據(jù)從策略管理點(diǎn)中獲得的策略規(guī)則(屬性條件表示式)和從策略信息點(diǎn)處獲得的用戶屬性以及任務(wù)屬性評(píng)估資源訪問(wèn)者是否擁有權(quán)限,然后將決策結(jié)果返回給策略執(zhí)行點(diǎn)。當(dāng)決策結(jié)果為拒絕時(shí),策略執(zhí)行點(diǎn)將拒絕資源請(qǐng)求者;當(dāng)決策結(jié)果為允許時(shí),策略執(zhí)行點(diǎn)允許資源請(qǐng)求者對(duì)資源進(jìn)行訪問(wèn)。
Fig.3 TABAC access control strategy implementation process圖3 TABAC訪問(wèn)控制策略實(shí)施過(guò)程
在協(xié)作業(yè)務(wù)流程執(zhí)行過(guò)程中,組織間缺乏信任,因此策略實(shí)施過(guò)程往往是交給可信的第三方執(zhí)行,但這種方式存在單點(diǎn)故障引起訪問(wèn)控制失效、訪問(wèn)控制不透明和難以追溯等問(wèn)題。TABAC方案支持在智能合約中驗(yàn)證資源訪問(wèn)者擁有的權(quán)限,基本思想是將用戶、任務(wù)屬性和訪問(wèn)控制策略存儲(chǔ)于智能合約中,當(dāng)用戶訪問(wèn)資源時(shí),根據(jù)鏈上存儲(chǔ)的訪問(wèn)控制策略以及獲取的用戶屬性和任務(wù)屬性計(jì)算用戶是否擁有資源訪問(wèn)權(quán)限。通過(guò)該方案,本文框架能夠支持動(dòng)態(tài)、靈活和細(xì)粒度的數(shù)據(jù)訪問(wèn)控制,且資源訪問(wèn)請(qǐng)求的決策結(jié)果均以不可篡改的交易形式存儲(chǔ)在區(qū)塊鏈之中,任何用戶都能夠?qū)Y源訪問(wèn)請(qǐng)求的執(zhí)行結(jié)果進(jìn)行追溯。
本文提出的協(xié)作業(yè)務(wù)流程管理框架鏈上合約主要涉及屬性管理合約、文件管理合約、實(shí)例合約和訪問(wèn)控制合約等,其結(jié)構(gòu)如圖4所示。以下將給出相應(yīng)智能合約的定義與功能。
AMC是一個(gè)存儲(chǔ)流程組織庫(kù)OL、用戶庫(kù)UL和屬性庫(kù)AL的智能合約,即AMC={OL,UL,AL}。其中OL表示協(xié)作業(yè)務(wù)流程中的流程組織集合;UL表示參與協(xié)作業(yè)務(wù)流程的用戶集合,即UL={U,U,…,U},其中U表示業(yè)務(wù)流程的參與用戶;AL表示描述用戶相關(guān)特征或信息的屬性集合。
Fig.4 On-chain contract structure圖4 鏈上合約結(jié)構(gòu)
FC是一個(gè)用于存儲(chǔ)共享數(shù)據(jù)文件哈希地址的智能合約,由合約創(chuàng)建者FCC和數(shù)據(jù)文件庫(kù)FL組成,即FC={FCC,F(xiàn)L}。其中,F(xiàn)CC用于記錄該智能合約創(chuàng)建者的以太坊賬戶;FL表示協(xié)作業(yè)務(wù)流程中產(chǎn)生的共享數(shù)據(jù)文件集合,即FL={F,F(xiàn),…,F(xiàn)},F(xiàn)表示協(xié)作業(yè)務(wù)流程中產(chǎn)生的共享數(shù)據(jù)文件。FC能在區(qū)塊鏈上管理協(xié)作業(yè)務(wù)流程執(zhí)行過(guò)程中產(chǎn)生的共享數(shù)據(jù)文件,并將對(duì)應(yīng)數(shù)據(jù)文件的哈希值存儲(chǔ)于鏈上,當(dāng)資源訪問(wèn)者擁有共享數(shù)據(jù)文件的訪問(wèn)權(quán)限時(shí),其能通過(guò)IPFS代理層和數(shù)據(jù)文件哈希值獲取文件。
IC是一個(gè)用于存儲(chǔ)流程模型PM以及流程實(shí)例庫(kù)IL的智能合約,即IC={PM,IL}。其中PM包含模型執(zhí)行的控制流程邏輯,IL包含多個(gè)流程實(shí)例的執(zhí)行狀態(tài)與執(zhí)行過(guò)程。
ARL中存儲(chǔ)著所有的資源訪問(wèn)請(qǐng)求R,即ARL={R,R,…,R}。一個(gè)資源訪問(wèn)請(qǐng)求R描述了資源訪問(wèn)者對(duì)資源文件發(fā)起的一次訪問(wèn)請(qǐng)求,該請(qǐng)求由資源訪問(wèn)者RU、訪問(wèn)資源文件RF、對(duì)資源執(zhí)行的操作RA和資源訪問(wèn)請(qǐng)求結(jié)果RR組成,即R={RU,RF,RA,RR}。
資源訪問(wèn)者對(duì)于資源文件的每一次訪問(wèn)請(qǐng)求都會(huì)被記錄到訪問(wèn)請(qǐng)求庫(kù)ARL中。在資源訪問(wèn)請(qǐng)求R中,RU的實(shí)際傳入值為資源訪問(wèn)者的以太坊賬戶地址,通過(guò)該地址能夠在AMC中查詢到該資源訪問(wèn)者的相關(guān)屬性;RF的實(shí)際傳入值為資源文件名稱、實(shí)例合約地址和實(shí)例id的三元組,該三元組能夠唯一標(biāo)識(shí)一個(gè)業(yè)務(wù)流程實(shí)例執(zhí)行過(guò)程中產(chǎn)生的資源文件,且通過(guò)IC地址和實(shí)例標(biāo)識(shí)id能夠在IC中獲取對(duì)應(yīng)流程實(shí)例的任務(wù)屬性;RA的傳入值為Write或Read,表示對(duì)相應(yīng)資源文件進(jìn)行寫(xiě)入或讀取操作;RR表示資源訪問(wèn)請(qǐng)求的結(jié)果,其值在資源訪問(wèn)請(qǐng)求上傳后產(chǎn)生,有許可和拒絕兩種結(jié)果。
APL中存儲(chǔ)著所有的資源訪問(wèn)控制策略P,即APL={P,P,…,P}。資源訪問(wèn)控制策略P是指當(dāng)滿足一定條件后即可對(duì)資源文件進(jìn)行相應(yīng)操作的許可,該策略由資源文件PF、資源操作PO和策略規(guī)則PR組成,即P={PF,PO,PR},其中PF用于描述訪問(wèn)資源的名稱;PO描述了能夠?qū)υ撡Y源進(jìn)行的操作;PR描述了允許訪問(wèn)的資源規(guī)則,其能夠被更進(jìn)一步細(xì)分為用戶屬性策略規(guī)則UPR和任務(wù)屬性策略規(guī)則TPR,即PR={UPR,TPR}。
ACC是一個(gè)由訪問(wèn)請(qǐng)求庫(kù)ARL和訪問(wèn)策略庫(kù)APL組成的智能合約,即ACC={ARL,APL}。該合約用于存儲(chǔ)相關(guān)的資源訪問(wèn)請(qǐng)求和控制策略,其內(nèi)部包含匹配資源訪問(wèn)請(qǐng)求和資源訪問(wèn)控制策略的合約函數(shù),能夠?qū)PFS代理層上傳的資源訪問(wèn)請(qǐng)求進(jìn)行評(píng)估,進(jìn)而匹配相應(yīng)資源訪問(wèn)控制策略并得出最后的資源訪問(wèn)請(qǐng)求結(jié)果RR。
本文建模、分析和執(zhí)行了1個(gè)以HE助聽(tīng)器公司為主導(dǎo)的真實(shí)商品訂購(gòu)業(yè)務(wù)流程,該流程執(zhí)行過(guò)程涉及4個(gè)組織(門(mén)店客戶、生產(chǎn)商、物流商、發(fā)貨承運(yùn)商)、14個(gè)元素和11條消息。4個(gè)組織之間通過(guò)發(fā)送消息推動(dòng)流程實(shí)例執(zhí)行,共同完成商品訂購(gòu)目標(biāo)。其中門(mén)店客戶為HE公司的加盟商,負(fù)責(zé)出售醫(yī)療助聽(tīng)器;生產(chǎn)商為HE公司總部,負(fù)責(zé)處理訂單請(qǐng)求、聯(lián)系物流商;物流商為物流公司,負(fù)責(zé)管理HE公司商品庫(kù)存并處理發(fā)貨請(qǐng)求;發(fā)貨承運(yùn)商為負(fù)責(zé)運(yùn)輸助聽(tīng)器的快遞公司。在傳統(tǒng)分布式業(yè)務(wù)流程執(zhí)行環(huán)境下,該業(yè)務(wù)流程必須在一個(gè)可信任第三方的協(xié)作下執(zhí)行,否則不同組織之間產(chǎn)生沖突時(shí)將難以解決。本文框架引入?yún)^(qū)塊鏈技術(shù),不同組織間產(chǎn)生的交互記錄都會(huì)被存儲(chǔ)在區(qū)塊鏈上,不需要第三方介入即可實(shí)現(xiàn)可信任的流程執(zhí)行。
本文框架中所有鏈下組件基于JavaScript和Java實(shí)現(xiàn),鏈上智能合約使用solidity編寫(xiě)并通過(guò)remix進(jìn)行調(diào)試和編譯,完成編譯后將其部署于Ganache搭建的以太坊私鏈中。此外,本文框架在鏈下搭建了IPFS,鏈上流程實(shí)例執(zhí)行過(guò)程中產(chǎn)生的數(shù)據(jù)文件將會(huì)被存儲(chǔ)到IPFS中。
選取10個(gè)執(zhí)行過(guò)程覆蓋模型所有路徑的流程實(shí)例,將流程實(shí)例的軌跡在框架中重播,并以此分析框架的成本開(kāi)銷。本文框架的執(zhí)行總成本主要分為框架部署成本、數(shù)據(jù)導(dǎo)入成本、實(shí)例創(chuàng)建與執(zhí)行成本以及文件管理與訪問(wèn)控制成本4個(gè)部分。其中,框架部署成本表示將本文框架中包含的智能合約部署到以太坊區(qū)塊鏈上需要消耗的Gas數(shù)量,為11 673 340;數(shù)據(jù)導(dǎo)入成本表示將流程模型、協(xié)作流程組織、文件訪問(wèn)控制策略部署到相應(yīng)的智能合約中需要消耗的gas數(shù)量,合計(jì)10 091 757。
本文案例中創(chuàng)建并執(zhí)行10個(gè)流程實(shí)例需要消耗的Gas數(shù)量為28 808 682,詳細(xì)Gas消耗見(jiàn)表1。實(shí)例創(chuàng)建與執(zhí)行成本由執(zhí)行創(chuàng)建實(shí)例、發(fā)送消息、確認(rèn)消息以及完成任務(wù)4個(gè)函數(shù)執(zhí)行成本合計(jì)而成,每一個(gè)流程實(shí)例的平均執(zhí)行成本約為288萬(wàn)Gas。
Table1 Cost of instance creation and execution(10 instances)表1 實(shí)例創(chuàng)建與執(zhí)行成本(10個(gè)實(shí)例)
本文案例中上傳、下載文件資源以及發(fā)送資源訪問(wèn)請(qǐng)求需要消耗的Gas數(shù)量為22 677 354,詳細(xì)Gas消耗見(jiàn)表2。文件管理與訪問(wèn)控制成本由新增文件、更新文件、刪除文件以及新增資源訪問(wèn)請(qǐng)求4個(gè)函數(shù)執(zhí)行成本合計(jì)而成,每個(gè)流程實(shí)例在文件管理和訪問(wèn)控制上需要消耗約227萬(wàn)Gas。
采用本文框架的案例執(zhí)行總成本見(jiàn)圖5,共需要付出11 673 340Gas的框架部署成本與10 091 757Gas的數(shù)據(jù)導(dǎo)入成本,即在創(chuàng)建流程實(shí)例前需要付出21 765 097Gas的成本。而在此之后,本文框架需要為每一個(gè)流程實(shí)例付出2 880 868Gas的實(shí)例創(chuàng)建與執(zhí)行成本以及2 267 735Gas的文件管理與訪問(wèn)控制成本,即每個(gè)流程實(shí)例的執(zhí)行需要消耗5 148 603Gas。
Table 2 Cost of document management and access control(10 instances)表2 文件管理與訪問(wèn)控制成本(10個(gè)實(shí)例)
Fig.5 Frameexecution total cost圖5 框架執(zhí)行總成本
針對(duì)現(xiàn)有區(qū)塊鏈協(xié)作業(yè)務(wù)流程執(zhí)行過(guò)程中難以存儲(chǔ)大規(guī)模數(shù)據(jù)文件和缺乏動(dòng)態(tài)訪問(wèn)控制方案的問(wèn)題,本文提出基于區(qū)塊鏈的協(xié)作業(yè)務(wù)流程管理框架。與現(xiàn)有框架相比,本文框架引入IPFS技術(shù),能大幅度降低鏈上數(shù)據(jù)存儲(chǔ)的成本開(kāi)銷。此外,本文提出TABAC訪問(wèn)控制方案,該方案不需要第三方提供訪問(wèn)控制服務(wù),能夠支持細(xì)粒度、靈活和動(dòng)態(tài)的數(shù)據(jù)訪問(wèn)控制,且訪問(wèn)控制策略和權(quán)限驗(yàn)證結(jié)果可被存儲(chǔ)在智能合約中,為協(xié)作業(yè)務(wù)流程執(zhí)行過(guò)程中的數(shù)據(jù)訪問(wèn)提供透明化、防篡改的記錄。下一步將進(jìn)一步優(yōu)化本文框架,降低實(shí)例執(zhí)行成本,使用更多用戶和任務(wù)屬性進(jìn)行測(cè)試并開(kāi)發(fā)相應(yīng)的可視化界面。