許繼平 王 健 張 新 王小藝 孔建磊 劉 陽
(1.北京工商大學中國輕工業工業互聯網與大數據重點實驗室,北京 100048;2.北京工商大學北京市食品安全大數據技術重點實驗室,北京 100048;3.中國信息通信研究院,北京 100191)
稻米是中國主要糧食作物之一,全國近2/3人口以稻米作為主食[1],稻米的質量安全直接關系到人民健康與國家穩定。近年來,各種稻米質量安全問題時有發生,如鎘大米[2-3]、香精米、陳化糧等事件,因此亟需進行高效的稻米供應鏈信息監管。
稻米不同于其他食品,其供應網絡復雜、循環流通周期長,且各環節風險因素與危害物種類多、分布環節廣、差異大[4-5]。此外,稻米供應鏈各環節相對獨立,相互之間信息交流少,各節點難以形成共識。傳統的監管系統各環節存在不誠信企業篡改檢測數據等問題,從而降低了監管結果的可信度[6]。并且傳統供應鏈監管模式在進行監管時,需要對供應鏈各環節數據進行大量的重復驗證和檢查工作,導致時間成本較高、信息流轉冗長,從而使監管工作效率低下[7-8]。
區塊鏈技術具有通過信任機制根據業務規則自動執行約定代碼的特性,能夠將全流程數據清晰地記錄到鏈上,進而真實可靠地傳遞資金流、物流和信息流[9-11]。近些年,國內外研究人員在區塊鏈結合食品供應鏈監督與管理方面進行了研究探索,通過各種標識技術建立產品標識[12-13],應用傳感器在供應鏈流通環節進行檢測[14],并制定相應管理體系[15],建立對食品進行數據上傳、實時監控、風險預警和信息溯源的供應鏈管理系統[16]。研究發現,區塊鏈技術能夠有效提高食品供應鏈數據的安全性與信息可追溯性,為食品質量安全監管提供了有力保障。但是,由于稻米供應鏈各環節關鍵數據信息繁雜,各企業主體不能形成統一標準,并且區塊鏈網絡內各節點并非完全匿名,其隱私保護存在風險,因此對于上鏈數據進行隱私加密非常必要[17-19]。此外,目前稻米供應鏈監管采用的智能合約流程普遍較短,且各合約分工不明確,不能貫穿全監管流程,難以有效發揮合約功能[20]。因此,構建適用于稻米供應鏈的信息監管機制具有重要的現實意義和應用價值。
本文對稻米供應鏈業務流程及流轉特性進行全方位分析,梳理并提煉供應鏈各業務環節主體及關鍵信息;結合區塊鏈技術構建稻米供應鏈信息監管模型,提出隱私數據分級加密及存儲模式和定制化業務邏輯監管智能合約;設計稻米供應鏈信息監管原型系統,并以某糧油企業為例進行分析驗證。
區塊鏈最初被定義為一種將數據區塊按時間順序相連而成的一種分布式賬本[21]。而隨著研究深入,對于區塊鏈技術的認知逐漸在發生變化[22-23],當前研究認為區塊鏈指利用塊鏈式數據結構來驗證和存儲數據,并采用分布式節點共識算法生成和更新數據,同時應用密碼學原理來確保數據傳輸與信息存儲安全,此外還以智能合約進行數據操作的一種分布式架構與計算范式,其去中心化、不可篡改、可追溯與自洽性的特性,符合供應鏈監管系統對于確保信息安全隱私與高可追溯性等需求。本文以區塊鏈技術為驅動,構建稻米供應鏈信息監管模型,并基于區塊鏈開源框架超級賬本平臺實現原型系統。
密碼學是區塊鏈隱私安全保障的核心,區塊鏈中主要涉及的密碼學算法主要包括非對稱加密算法、默克爾樹和哈希算法。在本文中建立隱私數據分級加密及存儲模式部分采用了哈希算法中SM3密碼雜湊算法與對稱加密算法中高級加密標準加密算法(Advanced encryption standard,AES)。密碼雜湊算法可以將任意長度數據壓縮為固定長度信息摘要,用于數字a簽名和數據完整性保護[24]。AES加密用于保證數據的機密,其通信雙方在加密和解密過程中采用相同的密鑰[25]。AES算法分為多種加密模式,在本文中模型構建時便結合了加密反饋模式(Cipher feedback,CFB)與電子密碼本模式(Electronic codebook,ECB)。
智能合約具有自行校驗、去中心化和自動執行等特點[17,26-28],并能夠自行設置一些可自動觸發的執行條件,為區塊鏈網絡中的用戶提供信息交互與價值轉移等功能,本文中監管模型需要通過智能合約來實現相應業務邏輯。
稻米供應鏈各環節參與企業主體眾多,包括種植者、收購商、倉儲企業、加工企業、物流企業與分銷商等,其中稻米供應鏈生命周期長、環節復雜,鏈上各企業主體普遍存在數據標準差異化與存儲格式不一致的問題。同時,目前市場缺乏統一稻米供應鏈監督與管理系統,導致不相鄰企業主體之間關聯性較小,信息流通差、流轉冗長,部分關鍵數據的隱私安全得不到保障,存在丟失或被篡改的風險,不利于供應鏈節點信息溯源和相關部門監管。此外,由于稻米供應鏈循環流通周期較長且各環節之間信息不對稱,監管者難以確定到達消費者手中的問題稻米是在哪一供應鏈主體環節造成的,并且出現問題不易補救,亟需構建安全高效的監督和管理體系。
針對上述問題,將稻米供應鏈流程從信息監管角度分為上、中、下3個階段,如圖1所示。供應鏈上游包括種植環節;中游包括收儲、加工、倉儲和運輸環節,其中收儲中又包含收購、干燥、除雜和入倉環節,加工包括壟谷、碾米、色選、拋光和包裝環節;下游為銷售環節。銷售商將稻米最終售賣給消費者,監管者則對于供應鏈進行監督管理。其中加工環節是稻米供應鏈核心環節,既能指導限制上游稻米收儲與種植環節,又可以為下游銷售環節提供生產資料,并借助物流企業、倉儲企業和金融機構等對物流、商流、信息流和資金流進行統一分配與管理,因而對糧油加工企業加強監管十分必要。在稻米供應鏈信息監管的過程中,各企業都有一些信息是敏感的,無法完全公開,如交易記錄、成本信息和危害物信息等,因此需要對上傳到區塊鏈上的信息進行分類,以區分敏感度和優先級,保證高效監管的同時保護信息不被泄露。
根據稻米供應鏈流程及供應鏈上各企業主體業務特點,本文將稻米供應鏈13個環節關鍵數據信息分為5類,分別為主體信息、基本信息、危害物信息、環境監測信息和交易記錄與價格信息,如表1所示。表內所提取信息分類皆是各環節關鍵信息摘要,以加工環節為例,加工企業接收來自于倉儲企業在內的多個糧倉存儲的稻米。稻米運送到加工廠后,加工廠對產品進行壟谷、碾米、色選、拋光和包裝等流程。根據文獻查閱及網絡資源調研,稻米中重金屬危害物除了受產地環境因素的影響外,對其影響最大的過程就是稻米加工環節,在這個環節受機器加工的影響,重金屬含量有明顯的增加。因此,在本環節所需要記錄的信息除了包括企業信息、環境監測信息、壟谷方式、出糙率、脫殼率、碾米方式、整米率、碎米率、色選精度、拋光率、產品包裝編號和產品批次號等,還包括不同子環節的真菌毒素和重金屬含量。詳細信息分類能夠進一步優化供應鏈業務體系流程架構,并可作為稻米質量安全全鏈條信息監管模型建立的基礎。

表1 稻米供應鏈各環節關鍵信息分類
完整的監管模型不僅需要政府機構對供應鏈的監管,還需涵蓋供應鏈各企業主體數據上傳、查詢和消費者商品溯源部分,實現監管一體化。這樣一方面可以從供應鏈對稻米信息進行監督管理,確保稻米供應鏈數據流通時信息安全性與真實性,另一方面也使得供應鏈企業主體之間、監管機構與供應鏈各企業主體之間減少信息差,避免產生信息孤島。本文根據稻米供應鏈流程特點與鏈上各企業主體業務邏輯,結合區塊鏈技術、密碼學與智能合約構建了稻米供應鏈信息監管模型,如圖2所示。
本文將稻米供應鏈上各環節都視為區塊鏈網絡中的一個節點,每個節點都對應一個云數據庫。供應鏈上各節點通過業務系統調用部署在區塊鏈網絡中的智能合約,經過共識后,大部分數據明文與密文記錄到云數據庫中,小部分數據明文、信息摘要與密鑰保存到區塊鏈網絡中。稻米供應鏈企業主體節點由種植企業(種植戶)為起始,由供應鏈流通方向至銷售企業,最終稻米售賣到消費者手中。流通過程中供應鏈各企業主體將采集數據通過合約上傳至區塊鏈網絡與云數據庫。監管部門會向區塊鏈網絡發起請求調用對應合約驗證權限,實現對供應鏈進行實時監管。供應鏈各企業主體與消費者也可以采取不同方式對區塊鏈網絡發起同樣信息查詢溯源請求,在權限范圍內查詢產品信息,以驗證稻米是否符合應達標準或信息是否遭到篡改。
由于區塊鏈網絡內各節點并非完全匿名,因此其隱私保護存在安全性風險。雖然區塊鏈數據傳輸并未直接與真實世界的企業身份相關聯,但區塊鏈中數據是完全公開透明的。隨著各種反匿名甄別技術的發展,對一些關鍵目標的信息破解與定位識別逐步出現,因此對于上鏈數據進行隱私加密十分關鍵。本文結合鏈上鏈下雙模存儲設立了隱私數據分級加密及存儲模式,將數據根據其隱私程度進行分級,并綜合考慮安全性與加密效率,根據隱私級別與數據量采用不同的加密方式對統一格式的數據進行加密并上傳至區塊鏈網絡與云數據庫,如圖3所示。
該模式基于稻米供應鏈各環節關鍵信息分類,并綜合稻米供應鏈各環節不同數據隱私程度、加密算法安全性與算法時間復雜度和空間復雜度,對供應鏈流通數據進行分級加密及安全存儲,具體內容包含以下3點:
(1)交易記錄與價格信息定義為一級隱私數據。對于一級隱私數據,本模式采用AES算法CFB模式進行加密后將數據密文傳入云數據庫,CFB模式能夠加密任意長度的明文,以適應稻米供應鏈各節點用戶不同數據格式需求。此外,數據密鑰由算法隨機生成,并將其上傳至區塊鏈網絡進行存儲,能夠極大確保密鑰的隨機性與安全性,解決了對稱加密存在的密鑰泄露風險。
(2)危害物信息定義為二級隱私數據。本模式則采用AES算法ECB模式對二級隱私數據進行加密后傳入云數據庫。相較于CFB模式,ECB模式較為簡單,并且能夠進行大量的并行計算,適合數據量較大的稻米危害物信息。在這一過程中數據密鑰生成與存儲的方式與一級隱私數據相同。
(3)主體信息、基本信息和環境監測信息定義為公共數據。其中對于主體信息,其數據量少且重要程度高,本模式采用直接將數據傳輸至區塊鏈網絡的方式;而對于全部公共數據則采用SM3密碼雜湊算法進行加密,然后將加密生成的信息摘要上傳至區塊鏈網絡,公共數據明文上傳至云數據庫。
該模式通過采用多種加密算法對數據進行分級加密的方式,在利用最少計算資源的前提下,將稻米供應鏈數據分散化存儲,確保了上傳至區塊鏈網絡與云數據庫中的數據在流通與存儲過程中的安全與隱私。
智能合約是區塊鏈結合稻米供應鏈信息監管模型中的關鍵部分,整個模型都需要通過智能合約來實現相應業務邏輯。通過編寫具有自行校驗功能的智能合約能夠有效彌補傳統監管需進行大量重復驗證檢查工作、時間長和效率低的問題。本文中采用層級化智能合約對整個模型的多個業務邏輯流程進行梳理與構建,這樣能夠進一步劃分各個合約的職能,令模型的邏輯流程更為清晰,并為后續系統模型的進一步優化提供了便利條件。
如圖4所示,本文中應用合約的業務邏輯流程分為2部分:數據上傳與數據查詢(監管)。數據上傳即稻米供應鏈主體將企業數據傳輸至監管系統,包括對數據的采集、驗證與加密;數據查詢即監管部門、主體企業和消費者對鏈上鏈下數據進行數據的溯源查詢,不同節點的主體具有不同的權限。
3.2.1數據采集
稻米供應鏈某環節企業主體數據采集合約算法為:
Input: m份環節數據
Output: return 數據采集結果
for t in range(m):
if 用戶擁有上傳權限:
采集信息:{ 參與環節,主體信息,基本信息,危害物信息,環境監測信息,交易記錄與價格信息}
if 通過信息驗證:
調用數據加密上傳模塊
return"數據采集成功"
return "數據不符合規定指標"
遍歷所有要采集的數據,然后驗證用戶是否擁有數據上傳權限;驗證通過后,若檢測數據數值在規定范圍內,通過物聯網設備和應用平臺將加密并且格式化后的數據上傳至監控系統,合約結束;若過程中出現問題,則返回異常數據信息后合約結束。
采集合約是供應鏈主體數據上傳過程中的核心內容,驗證合約與加密合約皆在數據采集算法中被調用,其合約內容為整個模型邏輯構建奠定了基礎。
3.2.2數據驗證
驗證合約主要是檢驗采集數據是否滿足相關法律法規與規范標準限定的范圍,當滿足不同的條件時合約將觸發不同的功能。以稻米供應鏈加工環節為例,編寫合約時需要根據通用檢測指標,重金屬含量如鉛、鎘、汞,真菌毒素含量如黃曲霉素等,并將編寫好的驗證合約部署至區塊鏈網絡中。
驗證合約算法為:
Input:稻米采集信息
Output: return false/true
if 重金屬含量驗證:
Pb <= 0.2 and G <= 0.2 and Hg <= 0.2
向企業主體和監管部門發送事件報告
return false
else if真菌毒素含量驗證:
AFTB1 <= 10
向企業主體和監管部門發送事件報告
return false
return true
其作用為:當有信息上傳時,節點會調用合約對上傳的數據進行處理,將上傳數據同信息庫中的指標進行對比,如果質量指標不滿足預置的數據準入條件,系統會執行預置的響應規則,上傳數據信息并給企業主體與監管部門發送不良事件報告,如果質量指標符合預置的數據準入條件,系統則會允許其上傳。通過驗證合約實時監管稻米質量全鏈條采集信息,方便企業和監管部門及時發現并處理安全隱患,可以有效避免存在質量問題的稻米在供應鏈上流通。
3.2.3數據加密
上文分級加密隱私模型內容合約化后即為數據加密算法,輸入的參數為統一格式后的數據明文,合約會根據不同的采集數據采取不同的加密方式,將不同格式的密文密鑰等傳入區塊鏈或數據庫,算法為:
Input:數據明文
Output: 數據密文(密鑰)
全部數據格式化
if 公共數據
if 主體信息:
調用區塊鏈網絡信息上傳模塊
else:
SM3密碼雜湊算法加密,生成信息摘要
調用區塊鏈網絡信息上傳模塊(信息摘要)
調用數據庫信息上傳模塊(明文)
else if 隱私數據
if 一級隱私數據:
AES加密算法(CFB模式),生成密文與密鑰
調用區塊鏈網絡信息上傳模塊(密鑰)
調用數據庫信息上傳模塊(密文)
else if 二級隱私數據:
AES加密算法(ECB模式),生成密文與密鑰
調用區塊鏈網絡信息上傳模塊(密鑰)
調用數據庫信息上傳模塊(密文)
數據加密合約即隱私數據分級加密模式的合約化實現,通過智能合約自動執行已封裝好的加密邏輯,完成稻米供應鏈隱私數據分級加密與上傳功能,保證供應鏈信息流通安全的同時提升數據傳輸效率。
3.2.4權限管理
權限管理算法是供應鏈監管與信息查詢的重要組成部分,合約以分發不同密鑰的方式限制節點權限,算法為:
Input:主體環節
Output: 權限級別
if 企業節點:
調用可查詢公開數據模塊
if 相鄰企業節點:
獲取查詢節點對應ECB密鑰
調用數據查詢模塊
else if 監管節點:
獲取監管節點對應CFB密鑰與ECB密鑰
調用數據監管模塊
else if 消費者節點:
調用可查詢公開數據
企業節點能夠查詢供應鏈所有公開數據并可獲得相鄰企業節點的對稱加密密鑰,以查詢相鄰企業節點二級隱私數據(危害物信息);監管節點有權限獲得全部密鑰,以對供應鏈進行監管;消費者能夠消費后掃描商品二維碼默認為消費者節點,可以查詢所購稻米供應鏈公開數據。
3.2.5數據監管查詢
針對稻米供應鏈數據查詢,其合約流程算法為:
Input:企業信息/參與環節/產品ID
Output: return 查詢結果
if 用戶擁有查詢權限:
調用信息查詢模塊
if SM3算法對數據進行運算結果 != 鏈上存儲信息摘要:
return"公共數據被篡改"
return 查詢信息
節點用戶在系統平臺上輸入要查詢的稻米供應鏈相關信息,驗證用戶擁有查詢權限后系統同時將云數據庫與區塊鏈網絡數據下載至本地,并采用哈希算法對數據庫中所下載數據進行信息摘要計算,得到結果與區塊鏈中所存摘要進行比對,若相等則證明數據庫中數據未被篡改,返回查詢信息,合約結束;若值不等,證明公共數據遭到篡改,則返回錯誤信息,合約結束。
監管查詢合約是監管系統模型數據查詢流程的最后一步,返回查詢數據同時能夠驗證數據庫中所存儲公共數據是否遭到篡改,為數據安全存儲設置了雙重保障。
基于稻米供應鏈信息監管模型,設計了稻米供應鏈信息監管原型系統。該系統架構如圖5所示,分為應用服務層、數據存儲層、業務邏輯層和感知采集層。
應用服務層以網頁和手機APP的形式向監管部門、企業和消費者用戶提供相應功能,并根據用戶的不同劃分權限級別。
數據存儲層包括云數據庫與Hyperledger Fabric區塊鏈平臺存儲部分,其中區塊鏈中數據采用文件形式存儲。企業將經過系統加密后的數據分別存儲在區塊鏈與云數據庫,在方便數據查詢的同時令數據存儲去中心化,防止篡改。
業務邏輯層是以智能合約為核心,確保系統高效運轉的同時調用分級隱私加密機制,從而保證存儲數據隱私安全。
感知采集層作為數據終端,主要用于收集稻米供應鏈企業主體全生命周期的各項業務數據和危害物信息。
稻米供應鏈信息監管系統采用Hyperledger Fabric開源區塊鏈平臺實現供應鏈區塊鏈網絡構建,并利用云數據庫對象存儲模式進行相關數據存儲,系統以Golang、Jave、JavaScript作為主要編程語言,并使用Gin、Vue作為前、后端框架進行全平臺開發。系統本質即為供應鏈節點用戶通過客戶端界面對區塊鏈賬本和云數據庫的上傳和查詢(監管)操作,信息監管流程邏輯如圖6所示。
系統用戶通過Web界面填寫和傳感器采集相關數據信息,然后向服務器發送數據上傳請求,服務器根據用戶提供的數據信息和用戶賬戶信息查詢用戶的權限,若滿足權限,則調用對應的功能模塊以根據請求判斷需要使用的智能合約,以向區塊鏈網絡發起一個交易提案。Hyperledger Fabric智能合約又被稱為鏈碼(Chaincode),交易提案可將本次數據上傳所需的鏈碼標識、鏈碼方法、相關的參數和節點用戶簽名等信息發送給背書節點,背書節點為交易作擔保,與交易進行簽名背書,并與鏈碼相綁定,在背書節點收到交易提案后,驗證數字簽名并檢測用戶的操作權限,若擁有權限,則響應請求,繼而模擬執行鏈碼并返回鏈碼執行結果及各背書節點的證書認證機構簽名。
當系統客戶端收到背書節點返回信息之后,將會判斷提案結果的一致性,并確認是否按指定背書策略執行。系統若有足夠的節點背書,應用程序客戶端將會把數據打包到一起組成一個交易并簽名,發送給排序節點,否則將會中止操作。區塊鏈網絡中的排序節點負責從全網的客戶端接受交易,然后將交易按一定規則排序。在本系統中,排序節點將Kafka分布式系統對交易進行共識排序,然后按照區塊生成策略生成新的區塊,并發送給記賬節點;記賬節點驗證交易有效性后記錄交易,其在收到區塊后,會對區塊中的每筆交易信息進行校驗,檢查交易的輸入輸出是否符合當前區塊鏈網絡的狀態,當校驗完成后將區塊追加到本地的區塊鏈,并修改當前世界狀態,之后其它用戶節點會同步更新系統本地區塊鏈網絡信息,以完成數據上鏈。與此同時,數據加密傳入云數據庫,完成數據上云。
通過對湖南省常德市某糧油企業下的稻米供應鏈進行調研,該企業旗下產業涉及稻米供應鏈所有環節,并且各環節監測與檢驗設備齊全,數據記錄詳細且留存完整。但由于各環節分屬不同子企業,信息傳輸存在壁壘,并且之間業務交流繁多,導致監管難度進一步增大,因此選擇采用本文所研發稻米供應鏈監管系統優化該企業對其稻米供應鏈的監督與管理。系統Web端界面如圖7所示,圖7a為監管系統登錄界面,擁有管理員權限的監管者用戶登錄系統后能夠對稻米供應鏈信息流動進行監督與管理。系統監控主界面如圖7b所示,系統將供應鏈信息進行可視化處理,包括供應鏈節點交易總量、活躍節點用戶及新增節點數目等,監管者用戶可以查看當前稻米供應鏈運行狀況,并且實時監控各企業主體節點上鏈信息。供應鏈監管包含稻米供應鏈所有用戶節點詳細信息列表,便于監管者檢索各用戶信息,如圖7c所示。由于監管節點在系統鏈碼中被寫入最高權限,因此監管用戶可以在系統中查詢某一用戶節點全部信息,包括其主體信息、基本信息、危害物信息、環境監測信息、交易記錄和價格信息等,如圖7d所示。所有查詢信息皆為供應鏈企業主體數據經系統加密上傳至區塊鏈網絡與云數據庫后,系統再次進行解密后的數據明文,以保證數據存儲傳輸過程中安全與隱私。而企業用戶登錄后除去增加數據上傳功能外,在信息查詢方面,僅可以在發送查詢請求被同意的條件下對所在供應鏈上其他企業的公共數據與一級隱私數據進行查詢,這樣有效劃分了監管者與企業用戶的系統功能界限,便于權限管理,進一步保證了系統中數據流通安全。
系統移動端為供應鏈中消費者所設計,其界面如圖8所示。圖8a為用戶登錄界面,登錄后對稻米產品標注二維碼進行掃描,以獲取稻米供應鏈除交易記錄和價格信息外全部溯源信息;如圖8b所示,所有信息都是系統解密后明文數據。移動端功能設計簡潔、針對性強,其溯源內容與企業查詢產品內容相同,消費者可以準確快速了解到所購商品信息。
(1)通過對稻米供應鏈業務流程及流轉特性進行全方位分析,進而抽象出稻米供應鏈的典型環節,并在此基礎上構建了全鏈條各環節關鍵信息分類表。
(2)應用對稱加密算法與散列加密算法提出隱私數據分級加密模式,設計了基于智能合約的監管業務邏輯方案,并以二者為基礎結合云數據庫構建基于區塊鏈技術的稻米供應鏈信息監管模型,設計并實現了稻米供應鏈信息監管原型系統,并結合實際案例對系統進行了分析。
(3)構建的稻米供應鏈信息監管模型及原型系統能夠解決稻米供應鏈數據隱私加密、安全存儲及權限管理等問題,實現了供應鏈信息互聯互通和有效監管。本文研究可為糧油質量安全監管提供一種可行務實的應用方法。