董 蓉,苑明海,周 灼
(河海大學(xué) 機電工程學(xué)院,江蘇 常州 213000)
隨著信息技術(shù)的飛速發(fā)展,云制造平臺的應(yīng)用日益廣泛。在云制造服務(wù)平臺中,數(shù)據(jù)信息的記錄和存儲十分重要,信息的共享和信息的隱私保護對于云制造服務(wù)具有重要意義。
現(xiàn)階段云制造平臺中的數(shù)據(jù)記錄主要依靠中心化的網(wǎng)絡(luò)。曹佳碩[1]對資源描述框架數(shù)據(jù)的存儲方法進行研究,提出了基于Hbase的存儲方案,對資源描述框架查詢語言進行研究,提出了語義擴展的查詢方法,實現(xiàn)了基于語義與基于關(guān)鍵字相結(jié)合的查詢;趙淳等[2]針對云制造環(huán)境中的企業(yè)交易過程,設(shè)計并實現(xiàn)了一個仿真平臺,該平臺采用服務(wù)智能體對企業(yè)行為進行描述,通過定義不同規(guī)則實現(xiàn)了不同交易模式的仿真。以上研究均對云平臺中交易的記錄與存儲起到了極大的推動作用。
然而在上述研究中,云服務(wù)平臺主要依賴于傳統(tǒng)的中心化網(wǎng)絡(luò)記錄和存儲信息,這使得數(shù)據(jù)信息的保護存在部分潛在漏洞,若網(wǎng)絡(luò)中心遭到威脅,平臺中的所有數(shù)據(jù)信息將面臨被篡改或者丟失的風(fēng)險。并且傳統(tǒng)的數(shù)據(jù)中心控制全網(wǎng),使得信息資源難以達到高度共享,存在資源浪費、效率低下等問題。
針對上述問題,文中提出一種基于區(qū)塊鏈的云制造服務(wù)數(shù)據(jù)記錄與存儲方法。首先,利用區(qū)塊鏈技術(shù)的去中心化、不可篡改性、透明化和匿名性等特點[3-6],將區(qū)塊鏈技術(shù)與云平臺相結(jié)合,提出了交易區(qū)塊鏈體系結(jié)構(gòu),為區(qū)塊鏈技術(shù)在云制造平臺中的應(yīng)用奠定基礎(chǔ)。然后,提出了云制造平臺中數(shù)據(jù)記錄的方法,并將該方法應(yīng)用于設(shè)備資源信息記錄中,以提高數(shù)據(jù)記錄的安全性。
利用區(qū)塊鏈技術(shù)和云服務(wù)平臺實現(xiàn)云制造服務(wù)交易信息的記錄與存儲,提出了交易區(qū)塊鏈,具體如圖1所示。
圖1 交易區(qū)塊鏈體系結(jié)構(gòu)
在交易區(qū)塊鏈中主要有資源提供者和資源使用者兩大主體,資源提供者可以是不同的企業(yè)或個人,負責(zé)給相應(yīng)的使用者提供制造資源及能力,當交易完成時,雙方均可記錄此交易。區(qū)塊鏈中的信息記錄均是公開的,但私有的信息可進行加密保護,即可以通過相關(guān)技術(shù)進行隱藏,只有擁有其對應(yīng)的密碼,才可訪問到該記錄。在交易區(qū)塊鏈的公共賬本中,只出現(xiàn)相應(yīng)的交易記錄概要,以及為實現(xiàn)價值流通的基本功能,并且由于區(qū)塊鏈的存儲空間有限,詳細的交易記錄都存儲在云服務(wù)平臺中。
圖2為交易區(qū)塊鏈各層的具體設(shè)計。
交易區(qū)塊鏈的數(shù)據(jù)層存儲著各資源信息交易摘要及其詳細數(shù)據(jù)在云服務(wù)平臺中的存儲位置,哈希函數(shù)保證了數(shù)據(jù)的不可篡改性,時間戳保證了數(shù)據(jù)的可追溯性。在數(shù)據(jù)存儲中,資源信息的數(shù)據(jù)D、元數(shù)據(jù)data等記入到區(qū)塊鏈里,如{D;data;Sig(D;data)}。資源提供者對自身資源信息數(shù)據(jù)的使用具有決定權(quán),在訪問控制交易中,資源提供者將主體對資源信息的權(quán)限寫入?yún)^(qū)塊鏈,主體用資源使用者的公鑰pku表示,用訪問對象公鑰pku對資源信息數(shù)據(jù)解密密鑰key加密,再加上簽名。
網(wǎng)絡(luò)層的作用是保證各個節(jié)點之間的相互通信,是一個P2P網(wǎng)絡(luò),在網(wǎng)絡(luò)中每一個節(jié)點都是同等的,都具有生成數(shù)據(jù)和接收數(shù)據(jù)的能力。
圖2 交易區(qū)塊鏈基礎(chǔ)架構(gòu)模型
共識層主要通過一種共識機制,使得網(wǎng)絡(luò)中的所有節(jié)點在平等的去中心化的情況下可以達成一致共識。
在激勵層中,由一定的激勵機制促進節(jié)點參與區(qū)塊鏈的交易驗證,區(qū)塊鏈中許多節(jié)點共同工作參與保證了區(qū)塊鏈中的安全。文中定義的交易區(qū)塊鏈不是加密貨幣,因此原本區(qū)塊鏈中由挖礦產(chǎn)生的貨幣機制不適用,不能依賴原本的機制維護公共賬本安全有效。在此交易鏈中,使用法幣以代幣的形式進行流通,進行支付交易,每次交易會產(chǎn)生相應(yīng)交易費,在挖礦比賽中獲勝方所得,作為挖礦獎勵,在每個時間周期中都會產(chǎn)生新的區(qū)塊。
合約層主要是對區(qū)塊鏈中所有的腳本代碼及算法進行封裝。
應(yīng)用層中主要包括制造資源及能力等信息在云平臺中的保存記錄及共享。交易信息的記錄過程為:首先網(wǎng)絡(luò)中某一個記賬節(jié)點完成一個交易過程后形成一個交易記錄并存儲,生成一條交易信息摘要;接著,對該交易信息摘要進行私鑰加密,并在全網(wǎng)公布,所有節(jié)點均可接收到加密后的交易信息摘要;在當前周期里,整個網(wǎng)絡(luò)中新公開的交易信息摘要由具有記賬權(quán)限的節(jié)點記錄下來,并在網(wǎng)絡(luò)中公開該記賬節(jié)點,由此形成一個新的交易區(qū)塊;再將新的交易區(qū)塊與時間戳一起加入到原本的交易區(qū)塊鏈,形成新的交易區(qū)塊鏈,并在全網(wǎng)公布;最后,通過P2P技術(shù),各記賬節(jié)點將全網(wǎng)中所有新形成的交易區(qū)塊鏈同步到自身節(jié)點中。
在云制造服務(wù)交易記錄過程中,包括多個記賬節(jié)點,每一個記賬節(jié)點都具有獨立記賬能力。各記賬節(jié)點中又包括交易信息數(shù)據(jù)存儲庫、交易區(qū)塊鏈數(shù)據(jù)存儲庫、競爭記賬權(quán)限模塊、生成信息摘要模塊、生成交易區(qū)塊鏈模塊和更新模塊,如圖3所示。
圖3 記賬節(jié)點的基本組成
交易信息數(shù)據(jù)存儲庫主要用于存儲記錄自身的交易信息;交易區(qū)塊鏈數(shù)據(jù)存儲庫用于存儲交易區(qū)塊鏈;競爭記賬權(quán)限模塊是通過競爭機制爭奪記賬權(quán)限;生成信息摘要模塊主要包括交易完成后記錄到記賬信息數(shù)據(jù)庫,根據(jù)交易記錄形成交易信息摘要,對摘要進行加密后,在全網(wǎng)進行公布,全網(wǎng)中的其他節(jié)點均能接收到該交易信息摘要;生成交易區(qū)塊鏈模塊中包含當具有記賬權(quán)限的節(jié)點記錄所有新公開的交易信息摘要,形成一個新的區(qū)塊,再將新的區(qū)塊加上時間戳加入到自身原本的交易區(qū)塊鏈,形成一個新的交易區(qū)塊鏈并在全網(wǎng)公布;更新模塊是通過P2P技術(shù),將全網(wǎng)中新公開的所有新的交易區(qū)塊鏈更新到自身節(jié)點中。
當云制造服務(wù)平臺中某一企業(yè)完成一項交易后,需進行記錄。信息交易的過程形成一個交易記錄,記錄中包含對象、名稱、實際、數(shù)量及金額等內(nèi)容。由區(qū)塊鏈中的技術(shù)方法,即采用哈希方法形成交易記錄摘要,再通過節(jié)點處的私鑰進行加密,加密后在全網(wǎng)公開。網(wǎng)絡(luò)中具有記賬功能的節(jié)點通過競爭機制(PoW或PoS)獲得記賬權(quán)限,再將全網(wǎng)中所有沒有記錄過的新的交易信息摘要組合成一個新區(qū)塊,加上時間戳,把新區(qū)塊再加入到原來的交易區(qū)塊鏈中,形成一個新的交易區(qū)塊鏈。形成新的交易區(qū)塊鏈之后,其他沒有記賬權(quán)限的節(jié)點將新形成的交易區(qū)塊鏈更新到自身的數(shù)據(jù)庫中。
為了更好地支持云制造資源的接入,實現(xiàn)制造資源的優(yōu)化配置,以設(shè)備資源為例,將資源的屬性信息分為四類,即基本信息、功能信息、評價信息和狀態(tài)信息[7-11]。形式化描述為:
CMRI={CMRBasI,CMRFunI,CMREvaI,CMRStaI}
其中,CMRI表示云制造資源屬性信息;CMRBasI表示制造資源的基本信息;CMRFunI表示制造資源的功能信息;CMREvaI表示制造資源的評價信息;CMRStaI表示制造資源的狀態(tài)信息。
(1)基本信息。
基本信息是資源最基本的身份信息,包括設(shè)備信息即資源的編號、名稱、型號及功率等,還包括企業(yè)信息即制造廠商以及購買日期及價格等。
(2)功能信息。
功能信息主要包括零件信息和能力信息,零件信息主要包括零件的類別、材料、尺寸、重量及生產(chǎn)類型,能力信息包括加工類型、精度、方法、尺寸及幾何特征。
(3)評價信息。
評價信息主要包括質(zhì)量合格率、故障率、操作人員等級、質(zhì)量保證體系、質(zhì)量管理水平、企業(yè)資源種類、同類資源數(shù)量等。
(4)狀態(tài)信息。
狀態(tài)信息主要包括閑置、使用中或維修中以及超負荷、滿負荷或未滿負荷。
根據(jù)上述屬性模型劃分,為了對公共信息進行合理的分享以及對私密信息進行保護,提出公有域和私有域,引入?yún)^(qū)塊鏈技術(shù),數(shù)據(jù)加密技術(shù)對信息進行匿名保護,分布式網(wǎng)絡(luò)使信息實現(xiàn)高效共享。公有域中的信息包含可以體現(xiàn)企業(yè)制造能力的一些信息但不包含核心技術(shù),私有域中包含企業(yè)的機密核心信息。由此,建立制造資源的屬性信息模型,如圖4所示,基本信息和功能信息中的能力信息屬于私有域,狀態(tài)信息、評價信息和功能信息中的零件信息屬于公有域[12-14]。
如上述企業(yè)作為資源提供者,首先將資源的屬性信息進行分類,再按照區(qū)塊鏈中的形式將屬性信息分為公有域信息和私有域信息,將自己所具備的設(shè)備資源屬性信息進行編排,形成一系列的資源屬性信息數(shù)據(jù)(A)。信息數(shù)據(jù)生成后,資源提供者為資源信息數(shù)據(jù)生成哈希值,并將信息摘要(Summary)及其私鑰(self key)簽名后發(fā)布。網(wǎng)絡(luò)中具有記賬功能的節(jié)點通過競爭機制獲得記賬權(quán)限,再將全網(wǎng)中所有沒有記錄過的新的交易信息摘要組合成一個新區(qū)塊,加上時間戳,把新區(qū)塊再加入到原來的交易區(qū)塊鏈中,形成一個新的交易區(qū)塊鏈。公有域中的屬性信息可直接發(fā)布,私有域中的資源信息用密鑰(key)加密,以及將加密密鑰用資源提供者的公鑰(public key)加密后再發(fā)送給資源提供者,算法1如下:
圖4 制造資源屬性信息模型
算法1:制造資源信息的發(fā)布。
Procedure Issuing(A)
Input:A
Output:制造資源屬性信息
Begin
資源提供者產(chǎn)生資源屬性信息A;
生成數(shù)據(jù){Summary;H(A);Sig(Summary|H(A))}并創(chuàng)建數(shù)據(jù)存儲發(fā)布在全網(wǎng);
將制造資源屬性信息和經(jīng)過哈希值簽名后用密鑰加密,將加密密鑰用資源提供者的公鑰加密,形成消息{Enckey(Summary|A|H(A)|Sig(Summary|A|H(A)));Enc(key)}后一起發(fā)送給資源提供者;
End
制造資源屬性信息共享,該企業(yè)作為資源提供者可決定自身資源及能力的使用權(quán)限,通過訪問控制交易授權(quán)資源使用者訪問其制造資源信息數(shù)據(jù)。公有域中的信息在全網(wǎng)公開,不作權(quán)限設(shè)置,私有域中的信息需擁有解密密鑰才能訪問。授權(quán)時,將共享在云服務(wù)平臺中的存儲位置記錄,以及資源屬性信息的使用期限和權(quán)限通過資源使用者的公鑰的解密密鑰同時記入到區(qū)塊鏈中,具體算法如下。
算法2:制造資源屬性信息共享。
Procedure Sharing(A)
Input:資源使用者的公鑰和所需的資源屬性信息
Output:生成一個訪問控制交易
Begin
接收資源使用者請求,提取出資源使用者的公鑰和資源屬性信息需求;
根據(jù)資源使用者的資源屬性信息請求,查找相關(guān)資源屬性信息數(shù)據(jù)的存儲位置LCT和其加密密鑰key;
創(chuàng)建訪問控制交易,并寫入交易
{LCT;permission;pku;expiration;Sig(LCT;permission;pku);Epko(key)}向全網(wǎng)廣播;
End
由上述方法,將企業(yè)的設(shè)備資源信息發(fā)布到云制造平臺中,部分信息對全網(wǎng)公開,但部分私密信息并不公開,這時需要提供對應(yīng)的加密密鑰才能看到私密信息具體內(nèi)容,保證了信息數(shù)據(jù)的安全性,保護了資源提供者的隱私。在去中心化的特征下,保證了制造資源信息共享的同時,也保證了在某一節(jié)點可能存在數(shù)據(jù)丟失的情況下,對全網(wǎng)影響幾乎微乎其微,使得云制造服務(wù)平臺中的數(shù)據(jù)安全得到了保證。
提出一種基于區(qū)塊鏈的云制造服務(wù)數(shù)據(jù)記錄與存儲方法。首先,將區(qū)塊鏈技術(shù)與云平臺相結(jié)合,提出交易區(qū)塊鏈體系結(jié)構(gòu),對交易區(qū)塊鏈中的數(shù)據(jù)層、網(wǎng)絡(luò)層、共識層、激勵層、合約層及應(yīng)用層進行了分析。然后,對應(yīng)用層中數(shù)據(jù)記錄及存儲進行研究,提出了云制造平臺中數(shù)據(jù)記錄的方法,并將該方法應(yīng)用于設(shè)備資源信息記錄中。結(jié)果表明,該方法明顯增強了數(shù)據(jù)記錄的安全性,提高了云制造平臺中的資源共享效率。