杜 蘭,陳琳琳,戴麗麗,張 麗,沈雅婷
(南京理工大學(xué)紫金學(xué)院 計(jì)算機(jī)學(xué)院,江蘇 南京 210023)
云制造由李伯虎院士團(tuán)隊(duì)于2010年在國(guó)際上首次提出,它是一種網(wǎng)絡(luò)化的服務(wù)型制造的新型模式[1],其整合先進(jìn)信息技術(shù)、制造技術(shù)及智能物聯(lián)等技術(shù),構(gòu)建云共享平臺(tái),在“互聯(lián)網(wǎng)+”環(huán)境下集成制造能力及資源,提供全球化的、高價(jià)值的云服務(wù)。
如今,已有大量實(shí)際運(yùn)行的云制造服務(wù)平臺(tái),如面向制造及管理的集團(tuán)企業(yè)云制造服務(wù)平臺(tái)[2]、航天科技集團(tuán)云制造服務(wù)平臺(tái)[3]、航天云網(wǎng)平臺(tái)[4]、中小企業(yè)云制造服務(wù)平臺(tái)[5]、浙大云制造平臺(tái)[6]和阿里巴巴研發(fā)的淘工廠云制造平臺(tái)[7]。
現(xiàn)行云制造平臺(tái)存在一些尚未解決的關(guān)鍵問(wèn)題:(1)當(dāng)前中心化體系下系統(tǒng)負(fù)載上限受制于中心服務(wù)器性能;(2)各參與主體的各環(huán)節(jié)的信息分散,互相缺乏信任,信息共享程度低,信息的真實(shí)性和可靠性難保證;(3)數(shù)據(jù)追溯困難,不利于產(chǎn)品全生命周期管理;(4)信息易被非授權(quán)獲取和篡改,用戶信息隱私易泄露;(5)系統(tǒng)抗風(fēng)險(xiǎn)能力弱,易出現(xiàn)單點(diǎn)故障而引起系統(tǒng)癱瘓。因此,本文提出了一種基于區(qū)塊鏈技術(shù)的云制造平臺(tái)系統(tǒng)架構(gòu)模型,改變了傳統(tǒng)信息系統(tǒng)的數(shù)據(jù)記錄、傳遞和存儲(chǔ)的方法,解決了上述核心痛點(diǎn)。
區(qū)塊鏈?zhǔn)且环N由分布式數(shù)據(jù)存儲(chǔ)、P2P傳輸、共識(shí)機(jī)制、加密算法等計(jì)算機(jī)技術(shù)[8]實(shí)現(xiàn)的分布式記賬系統(tǒng),它把數(shù)據(jù)分成不同的區(qū)塊,每個(gè)區(qū)塊使用時(shí)間戳技術(shù)通過(guò)特定的信息前后順序鏈接到上一區(qū)塊的后面,以此形成一套完整鏈?zhǔn)浇Y(jié)構(gòu)。其中每個(gè)區(qū)塊主要由兩部分組成:(1)區(qū)塊頭,包含區(qū)塊頭值、上一區(qū)塊的哈希值、時(shí)間戳、隨機(jī)數(shù)等信息;(2)區(qū)塊主體,包含本區(qū)塊的主要交易信息,如時(shí)間、位置、數(shù)量、金額、評(píng)價(jià)和規(guī)則等[9]。其數(shù)據(jù)結(jié)構(gòu)如圖1所示。
區(qū)塊鏈如去中心化、去信任化、集體維護(hù)性、加密數(shù)字貨幣、開放的智能合約等特性,能有效解決現(xiàn)有云平臺(tái)存在的關(guān)鍵問(wèn)題,因此探索一種基于區(qū)塊鏈的云制造平臺(tái)系統(tǒng)架構(gòu)模型會(huì)是一種有益的嘗試,將對(duì)云制造平臺(tái)發(fā)展帶來(lái)積極影響。云制造平臺(tái)面臨的問(wèn)題與區(qū)塊鏈契合度如表1所示。
表1 云制造平臺(tái)與區(qū)塊鏈契合度
目前,區(qū)塊鏈大都使用單鏈架構(gòu),比如日本網(wǎng)絡(luò)銀行PoC項(xiàng)目[10]以及歐洲央行使用的通用賬本模型[11]?,F(xiàn)有區(qū)塊鏈技術(shù)在單鏈架構(gòu)下存在性能、容量、隱私性和可擴(kuò)展性的瓶頸。本文設(shè)計(jì)了一種雙鏈?zhǔn)降脑浦圃炱脚_(tái)系統(tǒng)架構(gòu)模型,如圖2所示,該模型不同于傳統(tǒng)的中心化架構(gòu),是完全分布式的雙鏈網(wǎng)絡(luò)架構(gòu),它比現(xiàn)有的架構(gòu)效率更高,擴(kuò)展性更好[12]。該鏈網(wǎng)包括兩類區(qū)塊鏈:(1)用戶區(qū)塊鏈(Account Blockchain,ABC),負(fù)責(zé)儲(chǔ)存與維護(hù)用戶信息,僅存儲(chǔ)交易后的信息,但不執(zhí)行交易;(2)交易區(qū)塊鏈(Trading Blockchain,TBC),創(chuàng)建交易區(qū)塊,僅存儲(chǔ)對(duì)交易有用的信息并且執(zhí)行相關(guān)交易。通過(guò)雙鏈架構(gòu)將用戶區(qū)塊鏈和交易區(qū)塊鏈分開,把數(shù)據(jù)進(jìn)行分流,可減少記錄節(jié)點(diǎn)的數(shù)據(jù)冗余量,在一定程度上提高云制造系統(tǒng)的共識(shí)速度。再則,通過(guò)信息摘要計(jì)算方法在云平臺(tái)上全網(wǎng)只記錄經(jīng)過(guò)加密處理的交易摘要信息,大大縮小區(qū)塊鏈的數(shù)據(jù)量。這樣可有效應(yīng)對(duì)區(qū)塊鏈應(yīng)用于云制造平臺(tái)的響應(yīng)滯后等關(guān)鍵難題。
圖2 雙鏈架構(gòu)模型
將云制造服務(wù)平臺(tái)現(xiàn)有研究成果和區(qū)塊鏈模相融合,本文建立了一種基于區(qū)塊鏈的云制造平臺(tái)體系架構(gòu),如圖3所示。
單個(gè)區(qū)塊的生成過(guò)程包括需求匹配、交易發(fā)生、認(rèn)證過(guò)程和挖礦記賬四個(gè)步驟。以企業(yè)A與B的交易為例,區(qū)塊鏈的交易流程如圖4所示。
區(qū)塊鏈信息記錄流程利用了哈希算法、共識(shí)機(jī)制、P2P傳輸和加密算法等技術(shù),保證了數(shù)據(jù)的一致性、防篡改性和安全性,增強(qiáng)了云制造系統(tǒng)各主體之間的信任,如圖5所示。
圖3 基于雙鏈架構(gòu)的云制造平臺(tái)體系架構(gòu)圖
用Ex表示記錄節(jié)點(diǎn),TS表示交易,ID為交易對(duì)象,t為時(shí)間戳,m為交易金額,n為貨品名稱,a為交易數(shù)量,CMPpublic和CMPprivate分別為云平臺(tái)公鑰和私鑰,Expublic和Exprivate分別為交易節(jié)點(diǎn)的公鑰和私鑰,使用SHA256方法記錄信息摘要abstract,各個(gè)記賬節(jié)點(diǎn)通過(guò)PoS技術(shù)選出授權(quán)記賬節(jié)點(diǎn),block表示交易區(qū)塊,block_chain表示交易區(qū)塊鏈,ic為驗(yàn)證碼。流程如下:
BEGIN
request record transaction;
/*節(jié)點(diǎn)Ex產(chǎn)生了新的交易,要求更新*/
transactionEx(ID,TS,request,t,m,n,a)
/*節(jié)點(diǎn)Ex產(chǎn)生了新的交易TS,ID為交易對(duì)象,t為時(shí)間戳,
m為合同金額,n為交貨名稱,a為數(shù)量*/
abstract=SHA256(TS)
/*使用SHA256方法形成交易記錄TS的信息摘要*/
CMPpublic=Hash(CMPprivate)
/*云制造平臺(tái)生成自己的公鑰和私鑰*/
Expublic=Hash(Exprivate)
/*交易節(jié)點(diǎn)生成自己的公鑰和私鑰*/
primary=com(workload)
/*根據(jù)共識(shí)機(jī)制,選出記賬節(jié)點(diǎn)*/
block=comb(Ex,abstract) by primary
/*記賬節(jié)點(diǎn)將新
交易信息摘要組合成一個(gè)新的區(qū)塊,ic為驗(yàn)證碼,t為時(shí)間戳*/
block_chain=comp(block,X,ic,t) by primary
/*記賬節(jié)點(diǎn)計(jì)算節(jié)點(diǎn)X的區(qū)塊值,ic為驗(yàn)證碼,t為時(shí)間戳*/
MS=broadcast(block) by primary
/*授權(quán)節(jié)點(diǎn)利用P2P技術(shù)將新區(qū)塊向全網(wǎng)廣播*/
if MS is received
/*如果節(jié)點(diǎn)收到了消息*/
No.= count(MS)
/*記錄節(jié)點(diǎn)收到信息的數(shù)量*/
if the NO.>=N for any node
/*如果任意
節(jié)點(diǎn)收到的信息數(shù)量在N個(gè)以上,N與系統(tǒng)容錯(cuò)數(shù)有關(guān)*/
then updating for every node(X,block)
/*所有節(jié)點(diǎn)更新節(jié)點(diǎn)X的新區(qū)塊值*/
else give up
/*否則,放棄更新*/
END
區(qū)塊鏈數(shù)據(jù)驗(yàn)真業(yè)務(wù)流程比較簡(jiǎn)單,各主體發(fā)送查詢請(qǐng)求,即可查詢得到結(jié)果,其流程如圖6所示。用E1表示企業(yè)A的記錄節(jié)點(diǎn),E2表示企業(yè)B的記錄節(jié)點(diǎn),t表示交易時(shí)間,block表示數(shù)據(jù)區(qū)塊,E2public表示E2的公鑰對(duì),abstract為信息摘要,cr表示完整交易記錄。流程為:
BEGIN
query(A, B,t,TS)
/*企業(yè)A查詢企業(yè)B在時(shí)間t是否存在某次交易TS*/
E1=node(A)
/*企業(yè)A所擁有的記錄節(jié)點(diǎn)為E1*/
E2=inform_node(B)
/*企業(yè)B告知A,E2為其記錄節(jié)點(diǎn)*/
block=query_block(E1,t,E2,TS)
/*在節(jié)點(diǎn)E1的交易
區(qū)塊鏈數(shù)據(jù)庫(kù)查詢?cè)跁r(shí)間t存在的E2節(jié)點(diǎn)交易的數(shù)據(jù)區(qū)塊*/
abstract =obtain_ abstract(E1,block)
/*獲取E2的交易信息摘要*/
decrypt(E2public,abstract)
/*利用E2的公鑰對(duì)信息摘要進(jìn)行解密*/
cr=complete_record(B)
/*企業(yè)B提供交易完整記錄cr*/
abs=SHA256(E1,cr)
/*企業(yè)A利用SHA256對(duì)cr運(yùn)算*/
compare(abstract,abs)
/*比較計(jì)算后的結(jié)果和上一步解密后的結(jié)果*/
validate(A,B,Other,account_inform)
/*企業(yè)A
驗(yàn)證在該次交易中和企業(yè)B相關(guān)的其他企業(yè)的記賬信息*/
END
圖4 區(qū)塊鏈的交易流程
圖5 區(qū)塊鏈信息記錄流程
圖6 區(qū)塊鏈數(shù)據(jù)驗(yàn)真業(yè)務(wù)流程
本文針對(duì)現(xiàn)行云制造平臺(tái)系統(tǒng)中信息孤島、信任度低和用戶隱私保護(hù)等痛點(diǎn),充分利用了區(qū)塊鏈的中心化、開發(fā)共識(shí)、去信任和匿名性、集體維護(hù)、不可篡改、可追溯性和可編程的智能合約等技術(shù)特點(diǎn),提出了基于雙鏈架構(gòu)的云制造系統(tǒng)架構(gòu)模型的構(gòu)想,詳細(xì)設(shè)計(jì)了一種基于區(qū)塊鏈交易的信息記錄與查詢驗(yàn)真機(jī)制,提出了一種云制造平臺(tái)上利用區(qū)塊鏈交易的新思路,解決了現(xiàn)有系統(tǒng)中關(guān)鍵問(wèn)題。下一步工作將根據(jù)該架構(gòu)模型實(shí)現(xiàn)出系統(tǒng)原型,逐步優(yōu)化設(shè)計(jì)細(xì)節(jié),同時(shí)解決諸如區(qū)塊鏈交易響應(yīng)速度滯后、交易安全與隱私保護(hù)等問(wèn)題,希望最終能實(shí)際推廣使用。