劉宗妹
(廣東司法警官職業學院信息管理系,廣東 廣州 510520)
根據世界衛生組織數據顯示,每年全球大約有10%的人患過食源性疾病[1]。2019年的人造魚翅事件、農夫山泉“質量門”事件、老鼠肉冒充羊肉門事件、毒大米事件,一個個食品安全問題駭人聽聞,引發了消費信任危機。食品從原材料到成為商品進行買賣,經歷了較長的時間和空間跨度,易出現各種問題[2],是由于食品安全問題根源在于溯源系統不健全,法律懲罰力度不夠。2019年5月,中共中央、國務院印發的食品安全工作意見中提出了構建食品安全追溯體系,實現食品信息化追溯和政府監管有效對接[3]。
區塊鏈利用密碼學技術、分布式存儲技術、網絡協議和共識機制實現了去中心化、不易篡改性、可追溯性和透明性。區塊鏈的廣泛應用在新的產業變革中將起著非常重要的作用,未來將成為一種創造信任的協議[4]。目前,區塊鏈技術的發展不僅推動了產業創新,還推動了與經濟社會的融合發展,已受到多個領域的極大關注,但食品溯源方面的成果較少,通過將區塊鏈技術與食品供應鏈管理的創新融合,優化食品產業結構,保障消費者權益,實現從“田間到舌尖”的全程品質監管。
射頻識別技術(RFID)利用無線電波將標簽中的數據讀取到閱讀器,是一種數據捕獲(AIDC)和自動識別技術[5]。RFID標簽中天線負責獲得讀寫器發射的電磁波,在標簽芯片中作為電源,讀取芯片中的數據,并返回給讀卡器[6]。RFID讀卡器接收標簽返回的射頻信號,通過解析數據完成目標識別,根據具體應用場景,將數據傳送至數據庫的SASS軟件處理。RFID為商品從種植、采購、生產、運輸、銷售提供了精細化的跟蹤,可實現信息流和物流的精準定位。
食品安全監管體系為食品信息化追溯和政府監管吹響了號角,技術層面的提升需依托先進的信息技術,通過系統的改善推廣,借助于大數據分析手段,提升量化粒度,進而做歸因分析,有效風險預警,拓展智慧監管,引領食品監管的風潮,政府監管層面需探索納入政府監管體系,完善構建法律體系,改進監管措施,助力構建食品生態環境[3]。研究擬以優化食品溯源為主線,探索搭建基于區塊鏈技術和RFID的去中心化、可溯源的應用平臺,通過食品流通各個環節的互聯互通[7],實現食品安全事件快速定位責任方,以期為食品溯源的有效開展提供技術支撐。
當前為保障食品安全采取了一系列措施,但由于不能保證溯源信息的準確性,缺少一種民眾認可的信任共識,即便在食品中附上溯源碼,也很少有顧客掃描查詢。經調研,問題主要存在于以下方面:① 供應鏈管理的理念落后,甚至是“一個企業十幾個用戶”的模式,產品銷售過多地依靠中間商,增加了投入成本,提高了商品的銷售價,降低了民眾購物的幸福指數。② 食品供應鏈需要信息流、資金流和物流的全面銜接,但企業和供應鏈各自為政,信息不能透明傳播,信息孤島現象嚴重,難以形成協同效應。③ 食品溯源系統通過電子產品代碼系統(EPC)、RFID、物聯網等實現信息的收集[8],但這種中心化的運作方式缺乏必要的可信度和公信力,出現安全事件較難查找根源,無法使民眾“吃得放心”[9]。④ 生產商、供應商、零售商為自身私欲隨意修改數據庫記錄,隨便偽造防偽標識,真假難辨,進而降低消費者對信息的信任度。⑤ 目前已有部分應用于食品溯源中的區塊鏈技術落地,如京東的“跑步雞”“飛翔鴿”等項目[10],雖然現有成果解決了食品溯源中數據的永久記錄和共享,但企業經濟效益不高。
區塊鏈中的數據利用鏈式結構存儲,時間戳有效記錄創建時間,數據驗證上鏈則無法被篡改,實現食品供應鏈中數據的可靠存儲;區塊鏈是點到點的、去中心化的存儲結構,節點地位平等,即使個別節點出現故障也不影響整個系統的使用,可保證系統7×24 h持續工作,實現食品供應鏈中數據的透明、安全傳輸;食品流通過程中利用鏈碼記錄原材料、生產、存儲、流通過程的詳細認證信息、食品質量檢測報告也需上鏈保存,利用RFID標簽實現數據的可溯源性,客戶可根據自己的需求選擇查看詳細認證信息和質量檢測報告,實現食品的有根可尋[11];利用非對稱加密算法實現基于公鑰的數據傳送,匿名狀態下完成工作,避免了食品供應鏈中經銷商隱私的泄露;通過智能合約按制定的規則自動更新,通過共識機制保持系統的一致性,節省了食品供應鏈中的人力和物力資源[12]。
將農戶、生產者、經銷者、消費者加入Fabric網絡,通過文件配置使其具備運行環境。在食品包裝表面粘貼RFID標簽,它是網絡中標識虛擬身份的唯一的數字加密標識符[13],使用認證通過的賬號將一系列RFID讀寫器收集的信息上傳到區塊鏈保存,區塊鏈中的數據分為多個區塊,區塊之間利用哈希函數計算所得的哈希值互連。最后進行程序的開發,使消費者可在移動端利用掃描RFID標簽來進行食品溯源,客戶端利用賬號查詢網頁[7]。
3.1.1 數據存證共享 食品原始數據在錄入核心業務層后,自動發往區塊鏈接口。區塊鏈API和SDK接收并格式化數據,上鏈存證核心數據簽名并生成生產、流通全過程證書。程序的表現形式有移動終端和電腦客戶端。
3.1.2 數據追溯查驗 用戶可通過掃碼RFID標簽,獲取食品溯源信息和食品質量檢測證書,以校驗食品是否綠色安全。食品溯源時進行數據批量調取,保證調證效率。實時監控交易過程,對客戶反饋的違規信息及時處理,形成審計報告,及時召回不安全食品,并給予消費者適當補償和對商家實施處罰。
3.1.3 信用監管機制 通過協同服務平臺,瀏覽食品生產的各環節,包括商家信用承諾、生產環節信用分級評價、流通環節信用檢測,實現監管的“視角”覆蓋整個食品鏈流程。基于大數據形成食品的綜合評價,出現安全問題的節點自動識別為黑節點。
區塊鏈與傳統的數據庫有相似之處,但可以省去較多中間環節,簡化開發流程。由于區塊鏈的鏈上代碼,需建立塊,但建塊的流程較復雜,執行過程中會浪費很多算力,因此研究將大多數的功能置于應用系統中,可進行增加、刪除、修改、查詢等操作,而使用哈希算法所得的摘要信息等少部分的功能置于鏈上代碼中,只能進行增加和查詢操作。區塊鏈負責所有環節交易的索引信息,對外提供一個商品的ID,交易的哈希作為值上鏈,對于用戶手機號碼、身份證號碼等易遭受暴力破解的數據需加上鹽值再哈希上鏈。智能系統的運行中引入監管檢查,制定黑名單,出現違規即刻停止,去除惡意節點的危害。區塊鏈基礎設施服務平臺框架圖如圖1所示。
3.2.1 應用程序層 API是Fabric使用gRPC協議與底層通信提供的接口;事件是Fabric通過監聽鏈碼中的事件提供的事件通知,事件發生時執行相應的函數;SDK是Fabric在API之上安裝了不同語言的接口,其是Fabric的開發工具,需配置通道名稱、鏈碼名稱、配置文件路徑、組織名稱。
3.2.2 交易層 身份模塊通過底層的成員服務模塊驗證用戶的身份信息;交易模塊分發各功能節點進行校驗及記賬;賬本模塊可查詢區塊鏈的交易,包括交易哈希、交易編號等;智能合約制定了資產的可執行代碼。
3.2.3 底層 成員服務用于成員的注冊和登錄、交易加密及簽名;共識服務中排序節點與組織中的主節點使用gRPC進行通信,各組織內部使用gossip通信;鏈碼服務中使用docker運行鏈碼,完全隔離用戶數據。

圖1 區塊鏈基礎設施服務平臺框架圖Figure 1 Blockchain infrastructure service platform framework
3.2.4 基礎設施層 5G是第5代的移動通信系統,極大提升了帶寬、降低了延時、實現了海量接入,基于5G網絡為供應鏈提供實時高速的信息數據流傳輸,通過食品云服務器和高性能數據庫實現流通數據的存儲、轉發。區塊鏈采用P2P技術來組織網絡節點,每個節點利用多播實現路由、數據傳播和新節點識別等功能。
3.2.5 系統監管 監管措施快速接入,全網有效,為全網協同提供有效的可操作性。監管機構掌握合約的發布權限,運行過程中利用監管規則檢查,對違規賬號采取凍結措施,惡意節點直接剔除,對小概率的錯誤由監管審計處理,信譽良好則可利用積分來簡化審核流程。
網絡拓撲結構見圖2。客戶端加入區塊鏈網絡后,通過SDK構建一個交易提案。發送交易提案到指定的背書節點,背書節點使用成員服務提供者(MSP)驗證簽名并確定請求者是否被授權進行提案。背書節點按交易提案發送給智能合約模擬執行,并對執行結果簽名,將交易簽名并返回給客戶端,客戶端對背書結果進行校驗。然后將所有背書結果、交易提案以及自己的簽名打包成一個交易發送給排序節點(orderer)。排序節點將所有收到的交易按時間排序,然后打包成交易區塊分發給通道中的所有節點。節點收到交易區塊后驗證其交易。當節點驗證該區塊中的所有交易無誤后,寫入賬本中,節點發出事件通知客戶端。

圖2 網絡拓撲結構Figure 2 Network topology
利用區塊鏈技術實現原材料信息、加工信息、物流信息、銷售信息、消費者評價信息均寫入普通數據庫,原材料認證信息、加工認證信息、流通認證信息等哈希算法所得摘要編碼寫入RFID標簽的EPC編碼體系中,每個RFID芯片有全球唯一編碼(TID),使其不易被篡改[14]。系統流程示意圖如圖3所示。

圖3 “區塊鏈+RFID”系統流程示意圖Figure 3 Schematic diagram of the “blockchain + RFID” system
3.4.1 數據信息錄入 原材料供應商將RFID標簽貼于食品上,農作物種植認證信息(種子、施肥次數、生長環境)均存于標簽。生產商利用RFID標簽將食品生產過程認證信息(原材料檢驗結果、員工健康狀況、生產過程、食品批次、生產日期、有效期)錄入區塊鏈。商品運輸過程中經銷商將流通認證信息(發貨地址、發貨時間、收貨地址、收貨時間、流通過程中的檢驗及審核情況)錄入區塊鏈[5]。
3.4.2 數據信息共享 Fabric是基于證書認證的區塊鏈平臺,利用PKI公鑰管理基礎設施規范生成的證書[7]。區塊鏈中所有信息都可通過公開接口進行查看,實現了公開透明,對隱私數據利用非對稱加密算法來保護,只有授權用戶才可查看。當通過移動端掃描RFID標簽時,會發送食品溯源請求,利用哈希地址查找記錄,消費者利用RFID標簽快速獲取信息。也可基于客戶端通過注冊時的ID進入區塊鏈網絡來實現信息溯源。
Web前端界面包括信息錄入界面和信息查詢界面,通過智能合約接口與區塊鏈交互,協同服務平臺與普通數據庫交互;信息錄入界面使用運行于服務器端的編程語言Node.js的中間件Passport.js來驗證是否符合對應權限,消費者可用交易ID或掃描RFID標簽來實現數據溯源[15]。后端代碼使用Go語言編寫,實現封裝合約并存儲數據于Fabric中[16]。
確定事務順序,拒絕錯誤事務。只有當事務通過共識驗證后才是有效的,該節點發布的信息才能被其他誠實節點記錄在自己的區塊鏈中,從而實現有效性。系統使用Kafka共識機制保證系統高效穩定運行。數據上鏈存儲使用加密體系中國加密標準的SM3(哈希算法的國密)。
為了避免智能合約漏洞影響區塊鏈的運行,需運行于隔離環境[16],虛擬機和容器的資源隔離優勢相似,但容器實現的對操作系統的虛擬化,不僅更易移植,而且效率更高[17]。開發平臺Hyperledger Fabric用Docker容器作沙盒環境,符合耦合設計原理,使用Linux運行環境[18]。啟動網絡中節點,需先安裝 DockerCompose、Docker、Go語言環境,再通過配置Compose文件實現啟動節點[19]。Hyperledger封裝底層技術,在此基礎上提供API接口,用chaincode編寫智能合約,經驗證后在區塊鏈中運行[20]。代碼層封裝查詢鏈碼,管理層負責鏈碼的安裝和調用[21]。部分chaincode代碼如下:
//商品
type Commodity struct {
ID string
Origin string //產地
}
//訂單
type Order struct {
Commodity*Commodity //商品
ID string
Quantity int//數量
}
//實現Invoke接口調用智能合約
func (t *Food) Invoke(stub shim.ChaincodeStubInterface) pb.Response {
funcName, args:= stub.GetFunctionAndParameters()
switch funcName {
//創建商品
case "createCommodity":
return createCommodity(stub, args)
//創建訂單
case "createOrder":
return createOrder(stub, args)
}
}
基于B/S系統架構、Windows下安裝虛擬機VMware、操作系統為Ubuntu、內存為2 GB、硬盤為30 GB、IE瀏覽器進行仿真試驗。溯源平臺界面見圖4,產品信息圖舉例說明見圖5。

圖4 溯源平臺管理界面圖Figure 4 Management interface of the traceability platform

圖5 產品信息圖Figure 5 Product information diagram
通過在未復雜化傳統溯源監管平臺的基礎上,引入區塊鏈技術,針對性地解決了數據不安全、系統易攻擊等問題[22],系統性能對比見表1。雖然基于區塊鏈的平臺有諸多優點,但區塊鏈與算力有較大關系,若算力遭受黑客攻擊,也可能破壞去信任化[23]。

表1 系統性能對比分析表
“區塊鏈+RFID+食品供應鏈”實現的科技與民生問題的結合,有利于進一步推動構建算法式的可信社會[22]。文章設計了“區塊鏈+RFID”兩位一體的食品溯源平臺,利用區塊鏈不易被篡改的特性,實現食品供應鏈流程的公正透明。利用食品附有的“身份證”實現客戶端可查來源。利用RFID技術通過閱讀器識別產品的ID并讀取食品電子信息[24]。利用鏈上時間戳和哈希值實現可追去向。從終端追溯到出產地需20 h以上,而借助此技術只需10 s即可實現,極大提升了追溯性能,客戶可以實時溯源數據變化的全流程,具有法律效力,保證了數據的可信度。后續將對食品溯源平臺的數據進行探索分析,通過大數據、人工智能、數據挖掘等技術,進行風險預警和追責溯源,進一步向智慧監管邁進[25]。