黃宇翔,梁志宏,黃 苾,孫永科
(西南林業(yè)大學(xué) 大數(shù)據(jù)與人工智能研究院,昆明 650224)
自14世紀(jì)歐洲文藝復(fù)興,資本主義萌芽確立,全球貿(mào)易一直是人類歷史上最強大的“財富創(chuàng)造者”.國務(wù)院辦公廳2017年10月發(fā)布《關(guān)于積極推進供應(yīng)鏈創(chuàng)新與應(yīng)用的指導(dǎo)意見》(國辦發(fā)〔2017〕84號)中把"積極穩(wěn)妥發(fā)展供應(yīng)鏈金融"列為重點任務(wù).然而,在推動供應(yīng)鏈的快速發(fā)展的實踐中,須解決的關(guān)鍵問題是要保證交易數(shù)據(jù)的可信[1]:換言之,即在組織合作關(guān)系中,在沒有監(jiān)視或控制的過程,貿(mào)易主體間所提供的交易信息是真實可靠的.多年來,為了建立貿(mào)易中的信任機制,信托機構(gòu)和信托工具應(yīng)運而生.然而,這種傳統(tǒng)中心化的第三方數(shù)據(jù)管理方式缺乏技術(shù)可信度,且存在效率低下、成本高昂和易受攻擊等諸多不可控因素[2,3].這些問題都嚴(yán)重制約了供應(yīng)鏈的健康發(fā)展.因此,解決供應(yīng)鏈中交易數(shù)據(jù)可信問題在當(dāng)今經(jīng)濟高速發(fā)展的時代尤為重要,關(guān)系到社會主義市場經(jīng)濟的繁榮.
從數(shù)據(jù)管理的角度分析,一個可信的數(shù)據(jù)庫管理系統(tǒng)[4]是要從三個層面來保證系統(tǒng)的可信,即存儲的可信性、處理的可信性和外部訪問的可信性,如圖1所示.本文在研究供應(yīng)鏈中可信數(shù)據(jù)管理的過程中,重點關(guān)注于數(shù)據(jù)存儲的可信性和處理的可信性,一旦交易完成,則不會出現(xiàn)被攻擊者惡意篡改或交易信息丟失的情況.
圖1 可信數(shù)據(jù)管理示意圖
近年來,學(xué)術(shù)界針對供應(yīng)鏈可信數(shù)據(jù)管理的研究大部分主要集中在B2B與B2C模式上,然而也面臨著諸多交易信任問題.例如,文獻[5]通過借助于大數(shù)據(jù)技術(shù)來捕獲交易主體交易信息的證明依據(jù),但是該方法的缺點在于數(shù)據(jù)來源的局限性,無法獲得完整的交易鏈數(shù)據(jù),并且由于數(shù)據(jù)源的獨立性,攻擊者借助大數(shù)據(jù)技術(shù)對交易數(shù)據(jù)進行非授權(quán)改動的可能性增大.文獻[6]提出將B2B+B2C供應(yīng)鏈上的一部分放置在ERP中,然而ERP是企業(yè)管理中非常復(fù)雜的信息管理系統(tǒng),無法真正有效確保交易數(shù)據(jù)的完全可信.因此,迫切需要從技術(shù)層面給出一種操作性強的供應(yīng)鏈可信數(shù)據(jù)管理方法.
針對這些挑戰(zhàn),本文基于區(qū)塊鏈技術(shù)[7],提出了一種新的供應(yīng)鏈可信數(shù)據(jù)管理方案,以保證交易數(shù)據(jù)的處理可信性和存儲可信性.在交易初始階段,貿(mào)易主體之間可以自由定制符合各方利益的交易規(guī)則,引入交易中心,并采用智能合約[8]將交易規(guī)則計算機代碼化;在交易確認(rèn)階段,采用ZSS04短簽名方案[9]對交易數(shù)據(jù)取驗證標(biāo)簽,可以利用同態(tài)標(biāo)簽[10]的同態(tài)性來保持交易數(shù)據(jù)結(jié)構(gòu)的不變;在交易驗證階段,引入審核中心,審核中心基于隱私保護數(shù)據(jù)持有性證明[11]和抽樣技術(shù)[12]來完成交易數(shù)據(jù)完整性輕量級驗證工作.最后,在登記上鏈階段,基于區(qū)塊鏈的原生特性(防篡改、無中心、強一致性等)實現(xiàn)交易結(jié)果與相關(guān)交易證據(jù)在鏈上的高度鉤稽,以確保交易結(jié)果的高可信.本文力圖從技術(shù)上杜絕傳統(tǒng)中心化數(shù)據(jù)管理模式下的數(shù)據(jù)易篡改、低可信,確保供應(yīng)鏈中各參與方的利益,為穩(wěn)定供應(yīng)鏈生態(tài)提供技術(shù)支持.
本文第1節(jié)簡要介紹雙線性對、ZSS04短簽名方案、同態(tài)標(biāo)簽、智能合約和區(qū)塊鏈;第2節(jié)提出一種供應(yīng)鏈可信數(shù)據(jù)管理方案;第3節(jié)對供應(yīng)鏈可信數(shù)據(jù)管理方案進行可行性分析和共識算法驗證;最后總結(jié)全文并對下一步工作進行展望.
定義1.假設(shè)G1是一個階為質(zhì)數(shù)q的乘法循環(huán)群,G2是一個階為質(zhì)數(shù)q的乘法循環(huán)群,G1的一個生成元為p.假設(shè)G1、G2上的離散對數(shù)問題都是困難的,若滿足以下三個性質(zhì),則把映射e:G1×G1→G2稱之為雙線性映射.
(2)非退化性:?{p,Q}?G1,滿足e(p,Q)≠1;
(3)可計算性:對于?{Q,R}?G1,?多項式時間算法能夠計算e(Q,R).
假設(shè)乘法循環(huán)群G的階為質(zhì)數(shù)n.
(2)計算 Diffie-Hellman 問題 (CDH)定義為:令,求gab;
(3)判定 Diffie-Hellman 問題 (DDH)定義為:令,判定z=abmodn是否成立.
假設(shè)e:G×G→GT的雙線性映射(此處的GT亦為階為質(zhì)數(shù)n的乘法循環(huán)群),那么G中的DLP可歸納為計算GT中的DLP.然而,G中的DDH不再困難:令,判定等式是否成立即能解決G中DDH問題.求逆Diffie-Hellman問題與平方Diffie-Hellman問題是CDHP的兩個變型.
ZSS04短簽名方案是由Zhang等人[9]所提的基于雙線性對的短簽名方案,其構(gòu)造和安全性是基于求逆Diffie-Hellman問題(Inv-CDHP),這個問題等價于CDHP.ZSS04方案要比BLS方案更加有效,并不需要特殊的散列函數(shù).ZSS04短簽名方案由4個算法構(gòu)成:參數(shù)生成算法ParamGen,密鑰生成算法KeyGen,簽名生成算法Sign,簽名驗證算法Ver,具體如下:
(1)ParamGen:系統(tǒng)參數(shù)為{G1,G2,e,q,p,H};
(2)KeyGen:挑選隨機數(shù),求ppub=xp.其中,ppub為公鑰,x為私鑰;
(3)Sign:給定私鑰x,消息內(nèi)容m,求S=p(H(m)+x)-1,S即為簽名;
(4)Ver:給定公鑰ppub,消息內(nèi)容m和簽名S,證明等式是否成立.
同態(tài)是一種映射關(guān)系f:A→B,即:
其中,?是A上的運算,·是B上的運算.
由同態(tài)思想生成同態(tài)標(biāo)簽,利用同態(tài)標(biāo)簽的同態(tài)性來完成貿(mào)易數(shù)據(jù)完整性檢測.若滿足下列2個性質(zhì)即為同態(tài)標(biāo)簽.
(1)對?數(shù)據(jù)塊di與dj,di+dj的標(biāo)簽信息可由其本身標(biāo)簽信息得出,即.
方案由四個主體單元組成:貿(mào)易主體P,交易中心S,審核中心B,Ethereum 區(qū)塊鏈商業(yè)網(wǎng)絡(luò)C.系統(tǒng)模型如圖3所示.
本方案的流程具體表述如下:
步驟1.方案中的每個主體單元先向證書機構(gòu)(Certificate Authority,CA)完成認(rèn)證工作,并申請公鑰數(shù)字證書.
步驟2.貿(mào)易主體P之間自由制定符合各方利益的交易規(guī)則,交易中心S運用智能合約將交易規(guī)則計算機代碼化,當(dāng)交易行為合法時,智能合約將被觸發(fā),交易生成.采用ZSS04短簽名方案對交易數(shù)據(jù)取驗證標(biāo)簽,并把驗證標(biāo)簽、交易主體信息等與交易相關(guān)的內(nèi)容發(fā)給審核中心B.
步驟3.審核中心B通過貿(mào)易主體P的公鑰來驗證簽名的真?zhèn)?若為true,則向交易中心S發(fā)出證據(jù)挑戰(zhàn)請求.
步驟4.交易中心S將證據(jù)發(fā)送給審核中心B,審核中心B驗證雙線性性等式成立與否.若等式成立,審核中心B和交易中心S將挑戰(zhàn)證據(jù)、智能合約代碼、相關(guān)交易信息以JSON的格式封裝后發(fā)給貿(mào)易主體P進行簽名.
(2)通過使用同態(tài)標(biāo)簽,不用對所有的數(shù)據(jù)塊進行驗證,只需使用少量特定數(shù)據(jù)塊即可驗證整個數(shù)據(jù)的完整性,從而減少算力,提高效率.
智能合約[13]最早由密碼學(xué)家 Nick Szabo 提出:一個智能合約就是計算機協(xié)議,它促進、檢驗或執(zhí)行合約的協(xié)商、履行,或者使合約條款不必要,支持進行圖靈完備的計算.事實上,其工作原理猶如計算機程序設(shè)計語言中的條件語句if-then.如果條件滿足,智能合約就會被自動觸發(fā),則執(zhí)行相應(yīng)條款,否則不執(zhí)行.
區(qū)塊鏈?zhǔn)且豁椚碌姆植际接涃~系統(tǒng)[14],多個獨立節(jié)點共同參與維護,具有不可更改、無中心、可追溯等原生特性.區(qū)塊鏈將數(shù)據(jù)分成不同的區(qū)塊,每個區(qū)塊是由塊頭和塊身這兩部分組成,塊頭存放前驅(qū)區(qū)塊的哈希值,塊身則負責(zé)存儲數(shù)據(jù).區(qū)塊之間前后依次鉤稽,形成一條完整數(shù)據(jù)鏈,如圖2所示.
圖2 區(qū)塊鏈?zhǔn)疽鈭D
區(qū)塊鏈一般分為公有鏈、私有鏈和聯(lián)盟鏈3類,本文采用的是Ethereum[15]項目下的聯(lián)盟鏈.Ethereum具有以下特性:1)智能合約支持圖靈完備性,設(shè)計了256位計算環(huán)境—以太坊虛擬機(EVM),并支持使用Serpent,Solidity,LLL類編程語言創(chuàng)建應(yīng)用.2)通過叔塊 (uncle block)激勵機制,從而減少礦池,使區(qū)塊產(chǎn)生間隔由 10 minutes 縮短至 15 seconds,并支持PoW、PoS共識算法.3)為避免外界惡意循環(huán)執(zhí)行攻擊,通過Gas來控制代碼執(zhí)行的指令次數(shù).
圖3 系統(tǒng)模型示意圖
步驟5.將貿(mào)易主體P簽名后的交易發(fā)送至Ethereum區(qū)塊鏈商業(yè)網(wǎng)絡(luò)C,通過分布式多節(jié)點共識機制算法將交易信息寫入Ethereum區(qū)塊鏈網(wǎng)絡(luò).
2.2.1 參數(shù)
方案中的參數(shù)及其含義:
1)貿(mào)易主體P:供應(yīng)鏈上的一級、二級、三級等供應(yīng)商/經(jīng)銷商、金融機構(gòu),交易活動的主要參與者.
2)交易中心S:負責(zé)交易的生成(智能合約)和一系列密鑰生成工作,為交易數(shù)據(jù)提供短暫存儲.
3)審核中心B:負責(zé)密鑰驗證和交易數(shù)據(jù)完整性審核事宜執(zhí)行的領(lǐng)域?qū)I(yè)知識機構(gòu).
4)Ethereum區(qū)塊鏈商業(yè)網(wǎng)絡(luò)C:把審核中心B與交易中心S一起創(chuàng)建的數(shù)據(jù)登記上鏈.這一網(wǎng)絡(luò)中包含所有的共識節(jié)點單元D、貿(mào)易主體P、注冊中心CA等共識主體,各主體單元的身份核實是通過CA完成的,CA并對審核通過的主體單元分發(fā)公鑰證書.
5)令G1、G2都是階為質(zhì)數(shù)q的乘法循環(huán)群,且它們之間存在雙線性映射為G1的一個生成元,密碼散列函數(shù),密碼散列函數(shù).
2.2.2 方案構(gòu)造過程
本方案是由4個階段構(gòu)造完成:交易初始階段、交易確認(rèn)階段、交易驗證階段和登記上鏈階段.
1)交易初始階段
① 首先,貿(mào)易主體P、交易中心S、審核中心B和其他共識主體需要在注冊中心CA進行身份信息核實.若通過,則為其簽發(fā)用于識別、認(rèn)證網(wǎng)絡(luò)主體的證書.與此同時,初始化一個Ethereum區(qū)塊鏈商業(yè)網(wǎng)絡(luò)C.
② 貿(mào)易主體P之間可以自由制定符合自身利益的交易智能合約.以面向供應(yīng)鏈中先貨后款質(zhì)押采購的智能合約模型為例,如圖4所示.將供應(yīng)鏈公司與供應(yīng)商的采購規(guī)則、供應(yīng)鏈公司與經(jīng)銷商的銷售規(guī)則使用Solidity語言編寫智能合約,一個合約是由一組代碼(合約函數(shù))和數(shù)據(jù)(合約狀態(tài))構(gòu)成,并寫入?yún)^(qū)塊鏈分布式網(wǎng)絡(luò)體系中.貿(mào)易主體P在注冊賬戶時注冊中心CA會通過構(gòu)造函數(shù)為其初始化一個合約使用身份信息identity,在貿(mào)易主體P調(diào)用合約時,該合約會先驗證交易發(fā)起者的身份信息,驗證通過則進行合約操作.當(dāng)合約中的某一條件被觸發(fā)時,則自動執(zhí)行相應(yīng)的合約條款.
交易規(guī)則合約設(shè)計如下:
輸入:tx,the object of transaction輸出:if success,return transaction data else throw exception 1.Procedure contract(tx)2.if identity.sender =true then 3.tx=new Transaction();4.tx.Content =tx.Content;5.tx.Time =now;6.tx.Id =tx.Id;7.tx.Quantity =tx.Quantity;8.return transaction data;9.end if 10.end Procedure
圖4 面向供應(yīng)鏈中先貨后款質(zhì)押采購的智能合約模型
本方案的智能合約構(gòu)造是基于圖靈完備的256位計算環(huán)境—以太坊虛擬機(EVM),以EVM作為智能合約的運行環(huán)境,可以進行多種類別的計算[16].智能合約運行于EVM中需要消耗一定數(shù)量的燃料Gas,故Gas則限定最大可運行計算指令.設(shè)μ為當(dāng)前網(wǎng)絡(luò)狀態(tài),Λ為當(dāng)前狀態(tài)所剩余的Gas,F為智能合約系統(tǒng)狀態(tài)轉(zhuǎn)移函數(shù),為系統(tǒng)運行后的網(wǎng)絡(luò)狀態(tài),為系統(tǒng)執(zhí)行后的剩余的Gas,ε為合約終止執(zhí)行的條件列表,λ為記錄序列,φ為合約執(zhí)行后返回剩余的Gas,T為合約輸出的交易數(shù)據(jù)結(jié)果.整個智能合約完成之后的狀態(tài)轉(zhuǎn)換函數(shù)表達式如式(1):
2)交易確認(rèn)階段
① 交易中心S將交易數(shù)據(jù)T按屬性分成i塊,即是一個質(zhì)數(shù),交易數(shù)據(jù)集合.貿(mào)易主體P挑選一個隨機的簽名密鑰對,并計算公鑰ppub←xp.貿(mào)易主體 P 公開Param:rpk,ppub,p,i ,j,y,e(y,pPub),但保密Param:x和rsk.
② 在交易中心S中,對交易中的數(shù)據(jù)tj取驗證標(biāo)簽,其中,1≤j≤i ,ωj是隨機數(shù),用于標(biāo)識交易數(shù)據(jù)T)與j的連接.數(shù)據(jù)驗證標(biāo)簽記作集合.
③ 為了使交易數(shù)據(jù)T標(biāo)識符RN不會被惡意更改,計算交易數(shù)據(jù)T的標(biāo)簽tag=RN‖Signrsk(RN),其中Signrsk(RN)使用私鑰rsk來對RN進行的簽名.
3)交易驗證階段
① 交易中心S將驗證所需的數(shù)據(jù)(ξ,rpk,i ,ppub)發(fā)送到審核中心B.審核中心B接收驗證數(shù)據(jù)后,若外界再對交易數(shù)據(jù)進行非法篡改則會在證據(jù)挑戰(zhàn)階段被檢測到,從而保障交易數(shù)據(jù)T的安全性和完整性.
② 審核中心B使用公鑰rpk來驗證Signrsk(RN),如果驗證success,則輸出RN信息;如果false,則中止驗證.
③ 審核中心B通過單向散列函數(shù):g,在交易數(shù)據(jù)T中的i個數(shù)據(jù)塊里隨機抽取m個 塊索引{x1,··,xm}:
其中,
挑戰(zhàn)請求:
式(3)發(fā)送給交易中心S后,其計算:
最后,交易中心S將 γ,Φ,E作為驗證憑證返還至審核中心B,審核中心B驗證等式是否成立,并通過式(7)驗證接收的數(shù)據(jù)正確性.
4)登記上鏈階段
審核中心B驗證通過后,其便將交易數(shù)據(jù)、貿(mào)易主體信息和驗證數(shù)據(jù)、參數(shù)等一起經(jīng)過ZSS04短簽名方案簽名后發(fā)送至區(qū)塊鏈商業(yè)網(wǎng)絡(luò)C.審核中心B和交易中心S封裝已驗證通過的交易Trai,將交易Trai發(fā)送給貿(mào)易主體P進行核對,核對無誤后用自己的私鑰進行簽名.之后,將交易Trai在區(qū)塊鏈商業(yè)網(wǎng)絡(luò)C中進行廣播,所有節(jié)點接收并驗證交易,經(jīng)過優(yōu)化的共識算法(CVBFT)共識之后將交易Trai寫入?yún)^(qū)塊鏈網(wǎng)絡(luò)中,如圖5所示.
圖5 區(qū)塊鏈網(wǎng)絡(luò)示意圖
至此,在供應(yīng)鏈中一筆交易數(shù)據(jù)上鏈存儲工作完成.
區(qū)塊鏈技術(shù)最大的優(yōu)勢在于能夠在高度分散的去中心化系統(tǒng)中通過激勵機制,使各節(jié)點積極參與驗證區(qū)塊數(shù)據(jù)的真實性共識工作[17].但該機制在供應(yīng)鏈貿(mào)易可信數(shù)據(jù)管理的應(yīng)用中存在明顯的不足:主要集中在以工作量證明(PoW)為代表的共識算法具有高耗、低效等性能瓶頸,在比特幣交易系統(tǒng)中TPS僅有6.67,一個區(qū)塊的產(chǎn)生需要10 minutes,并且需要花費高達1個小時的時間全網(wǎng)確定1次交易,這些性能問題是難以滿足供應(yīng)鏈貿(mào)易數(shù)據(jù)管理應(yīng)用的實際需求.本文在研究工作量證明(PoW)、權(quán)益證明(PoS)、股份授權(quán)證明(DPoS)等共識算法的基礎(chǔ)上,對拜占庭容錯算法(PBFT)進行優(yōu)化,提出了適用于供應(yīng)鏈可信數(shù)據(jù)管理的信用投票機制(CVBFT):每個節(jié)點通過其主鏈上的公證單元被引用的次數(shù)作為投票的憑據(jù)進行投票,得票最高的10個節(jié)點被選舉為公證節(jié)點并提供公證單元;經(jīng)過一段時間后,對數(shù)據(jù)進行刷新,再進行新一輪的投票選舉.經(jīng)過優(yōu)化的共識算法(CVBFT)過程如圖6所示.
圖6 CVBFT 算法流程圖
引理1.證明式(7)的正確性.
綜上所述,式 (6)成立,證畢.
3.2.1 功耗
功耗是衡量一個系統(tǒng)對資源所利用的能力,也是衡量系統(tǒng)對資源消耗的重要指標(biāo),本文使用每輪共識的消耗 (Consume Per Trun,CPT)來表示.基于DAG的區(qū)塊鏈應(yīng)用中的功耗是指每一輪公證人共識節(jié)點選舉所需要的時間 ΔL內(nèi),對CPU的使用率,如式 (9).其中ΔL為當(dāng)前L輪共識的時間間隔,ConsensusConsumeΔL為該時間間隔內(nèi)CPU的使用率.
通過運行共識算法,取 ΔL為60 s,然后測試CPU在這段時間內(nèi)的使用率.每次選舉都測試10輪,取10輪的平均值作為各不同選舉的公證人共識節(jié)點數(shù)量的CPTΔL.CVBFT共識算法與POW共識算法功耗比較如圖7所示.
圖7 CVBFT算法和PoW算法的CPU消耗比較圖
從比較的結(jié)果可以看出,基于POW工作量證明的共識算法在運行過程中,CPU的使用率接近95%,完全占據(jù)了系統(tǒng)的資源使用.而CVBFT共識算法在在每一輪選取公證人共識節(jié)點的過程中CPU的使用率僅占65%左右.由此可以看出,算法的改進起到了降低功耗的作用.
3.2.2 時延
時延的指標(biāo)可以衡量整個系統(tǒng)所在的網(wǎng)絡(luò)的通信性能和共識算法完成任務(wù)的運行時間.在基于DAG的區(qū)塊鏈應(yīng)用中,具備高并發(fā)是該技術(shù)的核心,故低時延是保證整個系統(tǒng)平穩(wěn)運行的關(guān)鍵.本文使用式(10)表示時延.
其中,DelayL為當(dāng)前第L輪的公證人共識節(jié)點選舉產(chǎn)生選舉人所用的時間間隔(時延),Vo t eProposalL為共識節(jié)點廣播投票階段到其中的共識節(jié)點確認(rèn)投票信息又到全網(wǎng)廣播確認(rèn)階段的過程,Vo t econdirmL為共識節(jié)點最終確認(rèn)選舉公證人共識節(jié)點的過程.
本文選取的公證人共識節(jié)點數(shù)量分別為4,5,6,7,8,9.根據(jù)不同選取的公證人共識節(jié)點數(shù)量來測試時延,測試共識輪次為10輪,結(jié)果如圖8所示.
實驗結(jié)果表明,選取公證人數(shù)量的不同并不會對算法的時延造成太大的影響.
本節(jié)將從處理可信性、存儲可信性這兩方面來對供應(yīng)鏈可信數(shù)據(jù)管理方案進行分析.
性質(zhì)1.該供應(yīng)鏈可信數(shù)據(jù)管理方案滿足數(shù)據(jù)處理可信性.
證明:首先,在方案的初始階段,貿(mào)易主體之間自由定制符合各方利益的交易規(guī)則,并采用智能合約將交易規(guī)則計算機代碼化.智能合約既包含執(zhí)行邏輯,又包含執(zhí)行條件,當(dāng)條件滿足時,即執(zhí)行邏輯.由數(shù)據(jù)管理的視角來看,智能合約類似于數(shù)據(jù)管理系統(tǒng)中的存儲過程和觸發(fā)器.但又不同于傳統(tǒng)數(shù)據(jù)管理系統(tǒng)中的事務(wù),不僅智能合約所處理的結(jié)果需要保存在區(qū)塊鏈里面,而且其本身亦要存儲區(qū)塊鏈中.在交易的確認(rèn)、驗證階段,交易中心S將交易數(shù)據(jù)定義為集合,貿(mào)易主體P挑選一個隨機的簽名密鑰對 (rpk,rsk),并計算公鑰ppub←xp,并對交易數(shù)據(jù)取驗證標(biāo)簽,記作集合.交易中心S將驗證所需的數(shù)據(jù)(ξ,rpk,i,ppub)發(fā)送到審核中心B.審核中心B接收驗證數(shù)據(jù)后,若外界再對交易數(shù)據(jù)進行非法篡改則會在證據(jù)挑戰(zhàn)階段被檢測到,從而保障交易數(shù)據(jù)T的安全性和完整性.綜上,所提方案滿足可信數(shù)據(jù)管理的處理可信性.
性質(zhì)2.該供應(yīng)鏈可信數(shù)據(jù)管理方案滿足數(shù)據(jù)存儲可信性.
圖8 選取 4到 9名公證人的時延對比圖
證明:存儲可信性本質(zhì)是解決分布式共識問題.在登記上鏈階段,交易Trai在區(qū)塊鏈商業(yè)網(wǎng)絡(luò)C中進行廣播,所有節(jié)點接收并驗證交易,經(jīng)過優(yōu)化的共識算法(CVBFT)共識之后將交易Trai寫入?yún)^(qū)塊鏈中.區(qū)塊鏈中區(qū)塊與區(qū)塊之間通過密碼散列函數(shù)依次順序鉤稽.如果攻擊者篡改或偽造交易記錄,則需構(gòu)造一條長于當(dāng)前主鏈的鏈.因此,所需要的計算力遠大于合法區(qū)塊鏈的計算力,這樣的篡改得不償失.所以,鏈上的數(shù)據(jù)安全存儲也得到有效保障.
以下將對方案中交易智能合約生成、交易審核以及與相關(guān)交易數(shù)據(jù)上鏈三個階段進行計算復(fù)雜度和通信復(fù)雜度分析.其中,方案的通信復(fù)雜度指標(biāo)主要是依據(jù)事務(wù)處理過程中的通信輪數(shù),該方案復(fù)雜度分析結(jié)果如表1所列.
表1 方案復(fù)雜度分析
交易智能合約生成階段的計算復(fù)雜度是由交易中心生成合約的O(qt),通信復(fù)雜度為O(1),其中q是一筆交易中的交易數(shù)量,而t則是涵蓋的交易種類.交易審核階段的計算復(fù)雜度主要是兩部分構(gòu)成,一部分是交易中心O(t),另一部分是審核中心O(v),通信復(fù)雜度為O(1),其中v為按種類進行隨機抽取的數(shù)據(jù)塊數(shù).數(shù)據(jù)上鏈階段的計算復(fù)雜度是由貿(mào)易主體P、審核中心B和交易中心S等一系列的驗證簽名構(gòu)成,為O(1),通信復(fù)雜度為O(1).
本文通過智能合約的加入,使貿(mào)易中交易雙方或多方即可如約履行自身的義務(wù),實現(xiàn)從外掛合約到內(nèi)置合約的轉(zhuǎn)變,有效管控履約風(fēng)險.鑒于傳統(tǒng)供應(yīng)鏈存在交易本身真實性難以驗證、信任問題突出等,通過提出適用于供應(yīng)鏈的共識機制,構(gòu)建一種以低時延、低成本、低功耗建立的信任機制,實現(xiàn)了貿(mào)易中交易數(shù)據(jù)的可信存儲,數(shù)據(jù)可信度得以提升,并降低行業(yè)中的風(fēng)控成本.在本文工作基礎(chǔ)上,下一步將基于區(qū)塊鏈構(gòu)建“債轉(zhuǎn)平臺”,以債權(quán)憑證為載體,降低融資成本,以解決供應(yīng)商對外支付及上游客戶的融資需求.