劉宗妹
(廣東司法警官職業(yè)學(xué)院信息管理系,廣東 廣州 510520)
根據(jù)世界衛(wèi)生組織數(shù)據(jù)顯示,每年全球大約有10%的人患過食源性疾病[1]。2019年的人造魚翅事件、農(nóng)夫山泉“質(zhì)量門”事件、老鼠肉冒充羊肉門事件、毒大米事件,一個個食品安全問題駭人聽聞,引發(fā)了消費信任危機(jī)。食品從原材料到成為商品進(jìn)行買賣,經(jīng)歷了較長的時間和空間跨度,易出現(xiàn)各種問題[2],是由于食品安全問題根源在于溯源系統(tǒng)不健全,法律懲罰力度不夠。2019年5月,中共中央、國務(wù)院印發(fā)的食品安全工作意見中提出了構(gòu)建食品安全追溯體系,實現(xiàn)食品信息化追溯和政府監(jiān)管有效對接[3]。
區(qū)塊鏈利用密碼學(xué)技術(shù)、分布式存儲技術(shù)、網(wǎng)絡(luò)協(xié)議和共識機(jī)制實現(xiàn)了去中心化、不易篡改性、可追溯性和透明性。區(qū)塊鏈的廣泛應(yīng)用在新的產(chǎn)業(yè)變革中將起著非常重要的作用,未來將成為一種創(chuàng)造信任的協(xié)議[4]。目前,區(qū)塊鏈技術(shù)的發(fā)展不僅推動了產(chǎn)業(yè)創(chuàng)新,還推動了與經(jīng)濟(jì)社會的融合發(fā)展,已受到多個領(lǐng)域的極大關(guān)注,但食品溯源方面的成果較少,通過將區(qū)塊鏈技術(shù)與食品供應(yīng)鏈管理的創(chuàng)新融合,優(yōu)化食品產(chǎn)業(yè)結(jié)構(gòu),保障消費者權(quán)益,實現(xiàn)從“田間到舌尖”的全程品質(zhì)監(jiān)管。
射頻識別技術(shù)(RFID)利用無線電波將標(biāo)簽中的數(shù)據(jù)讀取到閱讀器,是一種數(shù)據(jù)捕獲(AIDC)和自動識別技術(shù)[5]。RFID標(biāo)簽中天線負(fù)責(zé)獲得讀寫器發(fā)射的電磁波,在標(biāo)簽芯片中作為電源,讀取芯片中的數(shù)據(jù),并返回給讀卡器[6]。RFID讀卡器接收標(biāo)簽返回的射頻信號,通過解析數(shù)據(jù)完成目標(biāo)識別,根據(jù)具體應(yīng)用場景,將數(shù)據(jù)傳送至數(shù)據(jù)庫的SASS軟件處理。RFID為商品從種植、采購、生產(chǎn)、運輸、銷售提供了精細(xì)化的跟蹤,可實現(xiàn)信息流和物流的精準(zhǔn)定位。
食品安全監(jiān)管體系為食品信息化追溯和政府監(jiān)管吹響了號角,技術(shù)層面的提升需依托先進(jìn)的信息技術(shù),通過系統(tǒng)的改善推廣,借助于大數(shù)據(jù)分析手段,提升量化粒度,進(jìn)而做歸因分析,有效風(fēng)險預(yù)警,拓展智慧監(jiān)管,引領(lǐng)食品監(jiān)管的風(fēng)潮,政府監(jiān)管層面需探索納入政府監(jiān)管體系,完善構(gòu)建法律體系,改進(jìn)監(jiān)管措施,助力構(gòu)建食品生態(tài)環(huán)境[3]。研究擬以優(yōu)化食品溯源為主線,探索搭建基于區(qū)塊鏈技術(shù)和RFID的去中心化、可溯源的應(yīng)用平臺,通過食品流通各個環(huán)節(jié)的互聯(lián)互通[7],實現(xiàn)食品安全事件快速定位責(zé)任方,以期為食品溯源的有效開展提供技術(shù)支撐。
當(dāng)前為保障食品安全采取了一系列措施,但由于不能保證溯源信息的準(zhǔn)確性,缺少一種民眾認(rèn)可的信任共識,即便在食品中附上溯源碼,也很少有顧客掃描查詢。經(jīng)調(diào)研,問題主要存在于以下方面:① 供應(yīng)鏈管理的理念落后,甚至是“一個企業(yè)十幾個用戶”的模式,產(chǎn)品銷售過多地依靠中間商,增加了投入成本,提高了商品的銷售價,降低了民眾購物的幸福指數(shù)。② 食品供應(yīng)鏈需要信息流、資金流和物流的全面銜接,但企業(yè)和供應(yīng)鏈各自為政,信息不能透明傳播,信息孤島現(xiàn)象嚴(yán)重,難以形成協(xié)同效應(yīng)。③ 食品溯源系統(tǒng)通過電子產(chǎn)品代碼系統(tǒng)(EPC)、RFID、物聯(lián)網(wǎng)等實現(xiàn)信息的收集[8],但這種中心化的運作方式缺乏必要的可信度和公信力,出現(xiàn)安全事件較難查找根源,無法使民眾“吃得放心”[9]。④ 生產(chǎn)商、供應(yīng)商、零售商為自身私欲隨意修改數(shù)據(jù)庫記錄,隨便偽造防偽標(biāo)識,真假難辨,進(jìn)而降低消費者對信息的信任度。⑤ 目前已有部分應(yīng)用于食品溯源中的區(qū)塊鏈技術(shù)落地,如京東的“跑步雞”“飛翔鴿”等項目[10],雖然現(xiàn)有成果解決了食品溯源中數(shù)據(jù)的永久記錄和共享,但企業(yè)經(jīng)濟(jì)效益不高。
區(qū)塊鏈中的數(shù)據(jù)利用鏈?zhǔn)浇Y(jié)構(gòu)存儲,時間戳有效記錄創(chuàng)建時間,數(shù)據(jù)驗證上鏈則無法被篡改,實現(xiàn)食品供應(yīng)鏈中數(shù)據(jù)的可靠存儲;區(qū)塊鏈?zhǔn)屈c到點的、去中心化的存儲結(jié)構(gòu),節(jié)點地位平等,即使個別節(jié)點出現(xiàn)故障也不影響整個系統(tǒng)的使用,可保證系統(tǒng)7×24 h持續(xù)工作,實現(xiàn)食品供應(yīng)鏈中數(shù)據(jù)的透明、安全傳輸;食品流通過程中利用鏈碼記錄原材料、生產(chǎn)、存儲、流通過程的詳細(xì)認(rèn)證信息、食品質(zhì)量檢測報告也需上鏈保存,利用RFID標(biāo)簽實現(xiàn)數(shù)據(jù)的可溯源性,客戶可根據(jù)自己的需求選擇查看詳細(xì)認(rèn)證信息和質(zhì)量檢測報告,實現(xiàn)食品的有根可尋[11];利用非對稱加密算法實現(xiàn)基于公鑰的數(shù)據(jù)傳送,匿名狀態(tài)下完成工作,避免了食品供應(yīng)鏈中經(jīng)銷商隱私的泄露;通過智能合約按制定的規(guī)則自動更新,通過共識機(jī)制保持系統(tǒng)的一致性,節(jié)省了食品供應(yīng)鏈中的人力和物力資源[12]。
將農(nóng)戶、生產(chǎn)者、經(jīng)銷者、消費者加入Fabric網(wǎng)絡(luò),通過文件配置使其具備運行環(huán)境。在食品包裝表面粘貼RFID標(biāo)簽,它是網(wǎng)絡(luò)中標(biāo)識虛擬身份的唯一的數(shù)字加密標(biāo)識符[13],使用認(rèn)證通過的賬號將一系列RFID讀寫器收集的信息上傳到區(qū)塊鏈保存,區(qū)塊鏈中的數(shù)據(jù)分為多個區(qū)塊,區(qū)塊之間利用哈希函數(shù)計算所得的哈希值互連。最后進(jìn)行程序的開發(fā),使消費者可在移動端利用掃描RFID標(biāo)簽來進(jìn)行食品溯源,客戶端利用賬號查詢網(wǎng)頁[7]。
3.1.1 數(shù)據(jù)存證共享 食品原始數(shù)據(jù)在錄入核心業(yè)務(wù)層后,自動發(fā)往區(qū)塊鏈接口。區(qū)塊鏈API和SDK接收并格式化數(shù)據(jù),上鏈存證核心數(shù)據(jù)簽名并生成生產(chǎn)、流通全過程證書。程序的表現(xiàn)形式有移動終端和電腦客戶端。
3.1.2 數(shù)據(jù)追溯查驗 用戶可通過掃碼RFID標(biāo)簽,獲取食品溯源信息和食品質(zhì)量檢測證書,以校驗食品是否綠色安全。食品溯源時進(jìn)行數(shù)據(jù)批量調(diào)取,保證調(diào)證效率。實時監(jiān)控交易過程,對客戶反饋的違規(guī)信息及時處理,形成審計報告,及時召回不安全食品,并給予消費者適當(dāng)補(bǔ)償和對商家實施處罰。
3.1.3 信用監(jiān)管機(jī)制 通過協(xié)同服務(wù)平臺,瀏覽食品生產(chǎn)的各環(huán)節(jié),包括商家信用承諾、生產(chǎn)環(huán)節(jié)信用分級評價、流通環(huán)節(jié)信用檢測,實現(xiàn)監(jiān)管的“視角”覆蓋整個食品鏈流程?;诖髷?shù)據(jù)形成食品的綜合評價,出現(xiàn)安全問題的節(jié)點自動識別為黑節(jié)點。
區(qū)塊鏈與傳統(tǒng)的數(shù)據(jù)庫有相似之處,但可以省去較多中間環(huán)節(jié),簡化開發(fā)流程。由于區(qū)塊鏈的鏈上代碼,需建立塊,但建塊的流程較復(fù)雜,執(zhí)行過程中會浪費很多算力,因此研究將大多數(shù)的功能置于應(yīng)用系統(tǒng)中,可進(jìn)行增加、刪除、修改、查詢等操作,而使用哈希算法所得的摘要信息等少部分的功能置于鏈上代碼中,只能進(jìn)行增加和查詢操作。區(qū)塊鏈負(fù)責(zé)所有環(huán)節(jié)交易的索引信息,對外提供一個商品的ID,交易的哈希作為值上鏈,對于用戶手機(jī)號碼、身份證號碼等易遭受暴力破解的數(shù)據(jù)需加上鹽值再哈希上鏈。智能系統(tǒng)的運行中引入監(jiān)管檢查,制定黑名單,出現(xiàn)違規(guī)即刻停止,去除惡意節(jié)點的危害。區(qū)塊鏈基礎(chǔ)設(shè)施服務(wù)平臺框架圖如圖1所示。
3.2.1 應(yīng)用程序?qū)?API是Fabric使用gRPC協(xié)議與底層通信提供的接口;事件是Fabric通過監(jiān)聽鏈碼中的事件提供的事件通知,事件發(fā)生時執(zhí)行相應(yīng)的函數(shù);SDK是Fabric在API之上安裝了不同語言的接口,其是Fabric的開發(fā)工具,需配置通道名稱、鏈碼名稱、配置文件路徑、組織名稱。
3.2.2 交易層 身份模塊通過底層的成員服務(wù)模塊驗證用戶的身份信息;交易模塊分發(fā)各功能節(jié)點進(jìn)行校驗及記賬;賬本模塊可查詢區(qū)塊鏈的交易,包括交易哈希、交易編號等;智能合約制定了資產(chǎn)的可執(zhí)行代碼。
3.2.3 底層 成員服務(wù)用于成員的注冊和登錄、交易加密及簽名;共識服務(wù)中排序節(jié)點與組織中的主節(jié)點使用gRPC進(jìn)行通信,各組織內(nèi)部使用gossip通信;鏈碼服務(wù)中使用docker運行鏈碼,完全隔離用戶數(shù)據(jù)。
圖1 區(qū)塊鏈基礎(chǔ)設(shè)施服務(wù)平臺框架圖Figure 1 Blockchain infrastructure service platform framework
3.2.4 基礎(chǔ)設(shè)施層 5G是第5代的移動通信系統(tǒng),極大提升了帶寬、降低了延時、實現(xiàn)了海量接入,基于5G網(wǎng)絡(luò)為供應(yīng)鏈提供實時高速的信息數(shù)據(jù)流傳輸,通過食品云服務(wù)器和高性能數(shù)據(jù)庫實現(xiàn)流通數(shù)據(jù)的存儲、轉(zhuǎn)發(fā)。區(qū)塊鏈采用P2P技術(shù)來組織網(wǎng)絡(luò)節(jié)點,每個節(jié)點利用多播實現(xiàn)路由、數(shù)據(jù)傳播和新節(jié)點識別等功能。
3.2.5 系統(tǒng)監(jiān)管 監(jiān)管措施快速接入,全網(wǎng)有效,為全網(wǎng)協(xié)同提供有效的可操作性。監(jiān)管機(jī)構(gòu)掌握合約的發(fā)布權(quán)限,運行過程中利用監(jiān)管規(guī)則檢查,對違規(guī)賬號采取凍結(jié)措施,惡意節(jié)點直接剔除,對小概率的錯誤由監(jiān)管審計處理,信譽(yù)良好則可利用積分來簡化審核流程。
網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)見圖2??蛻舳思尤?yún)^(qū)塊鏈網(wǎng)絡(luò)后,通過SDK構(gòu)建一個交易提案。發(fā)送交易提案到指定的背書節(jié)點,背書節(jié)點使用成員服務(wù)提供者(MSP)驗證簽名并確定請求者是否被授權(quán)進(jìn)行提案。背書節(jié)點按交易提案發(fā)送給智能合約模擬執(zhí)行,并對執(zhí)行結(jié)果簽名,將交易簽名并返回給客戶端,客戶端對背書結(jié)果進(jìn)行校驗。然后將所有背書結(jié)果、交易提案以及自己的簽名打包成一個交易發(fā)送給排序節(jié)點(orderer)。排序節(jié)點將所有收到的交易按時間排序,然后打包成交易區(qū)塊分發(fā)給通道中的所有節(jié)點。節(jié)點收到交易區(qū)塊后驗證其交易。當(dāng)節(jié)點驗證該區(qū)塊中的所有交易無誤后,寫入賬本中,節(jié)點發(fā)出事件通知客戶端。
圖2 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)Figure 2 Network topology
利用區(qū)塊鏈技術(shù)實現(xiàn)原材料信息、加工信息、物流信息、銷售信息、消費者評價信息均寫入普通數(shù)據(jù)庫,原材料認(rèn)證信息、加工認(rèn)證信息、流通認(rèn)證信息等哈希算法所得摘要編碼寫入RFID標(biāo)簽的EPC編碼體系中,每個RFID芯片有全球唯一編碼(TID),使其不易被篡改[14]。系統(tǒng)流程示意圖如圖3所示。
圖3 “區(qū)塊鏈+RFID”系統(tǒng)流程示意圖Figure 3 Schematic diagram of the “blockchain + RFID” system
3.4.1 數(shù)據(jù)信息錄入 原材料供應(yīng)商將RFID標(biāo)簽貼于食品上,農(nóng)作物種植認(rèn)證信息(種子、施肥次數(shù)、生長環(huán)境)均存于標(biāo)簽。生產(chǎn)商利用RFID標(biāo)簽將食品生產(chǎn)過程認(rèn)證信息(原材料檢驗結(jié)果、員工健康狀況、生產(chǎn)過程、食品批次、生產(chǎn)日期、有效期)錄入?yún)^(qū)塊鏈。商品運輸過程中經(jīng)銷商將流通認(rèn)證信息(發(fā)貨地址、發(fā)貨時間、收貨地址、收貨時間、流通過程中的檢驗及審核情況)錄入?yún)^(qū)塊鏈[5]。
3.4.2 數(shù)據(jù)信息共享 Fabric是基于證書認(rèn)證的區(qū)塊鏈平臺,利用PKI公鑰管理基礎(chǔ)設(shè)施規(guī)范生成的證書[7]。區(qū)塊鏈中所有信息都可通過公開接口進(jìn)行查看,實現(xiàn)了公開透明,對隱私數(shù)據(jù)利用非對稱加密算法來保護(hù),只有授權(quán)用戶才可查看。當(dāng)通過移動端掃描RFID標(biāo)簽時,會發(fā)送食品溯源請求,利用哈希地址查找記錄,消費者利用RFID標(biāo)簽快速獲取信息。也可基于客戶端通過注冊時的ID進(jìn)入?yún)^(qū)塊鏈網(wǎng)絡(luò)來實現(xiàn)信息溯源。
Web前端界面包括信息錄入界面和信息查詢界面,通過智能合約接口與區(qū)塊鏈交互,協(xié)同服務(wù)平臺與普通數(shù)據(jù)庫交互;信息錄入界面使用運行于服務(wù)器端的編程語言Node.js的中間件Passport.js來驗證是否符合對應(yīng)權(quán)限,消費者可用交易ID或掃描RFID標(biāo)簽來實現(xiàn)數(shù)據(jù)溯源[15]。后端代碼使用Go語言編寫,實現(xiàn)封裝合約并存儲數(shù)據(jù)于Fabric中[16]。
確定事務(wù)順序,拒絕錯誤事務(wù)。只有當(dāng)事務(wù)通過共識驗證后才是有效的,該節(jié)點發(fā)布的信息才能被其他誠實節(jié)點記錄在自己的區(qū)塊鏈中,從而實現(xiàn)有效性。系統(tǒng)使用Kafka共識機(jī)制保證系統(tǒng)高效穩(wěn)定運行。數(shù)據(jù)上鏈存儲使用加密體系中國加密標(biāo)準(zhǔn)的SM3(哈希算法的國密)。
為了避免智能合約漏洞影響區(qū)塊鏈的運行,需運行于隔離環(huán)境[16],虛擬機(jī)和容器的資源隔離優(yōu)勢相似,但容器實現(xiàn)的對操作系統(tǒng)的虛擬化,不僅更易移植,而且效率更高[17]。開發(fā)平臺Hyperledger Fabric用Docker容器作沙盒環(huán)境,符合耦合設(shè)計原理,使用Linux運行環(huán)境[18]。啟動網(wǎng)絡(luò)中節(jié)點,需先安裝 DockerCompose、Docker、Go語言環(huán)境,再通過配置Compose文件實現(xiàn)啟動節(jié)點[19]。Hyperledger封裝底層技術(shù),在此基礎(chǔ)上提供API接口,用chaincode編寫智能合約,經(jīng)驗證后在區(qū)塊鏈中運行[20]。代碼層封裝查詢鏈碼,管理層負(fù)責(zé)鏈碼的安裝和調(diào)用[21]。部分chaincode代碼如下:
//商品
type Commodity struct {
ID string
Origin string //產(chǎn)地
}
//訂單
type Order struct {
Commodity*Commodity //商品
ID string
Quantity int//數(shù)量
}
//實現(xiàn)Invoke接口調(diào)用智能合約
func (t *Food) Invoke(stub shim.ChaincodeStubInterface) pb.Response {
funcName, args:= stub.GetFunctionAndParameters()
switch funcName {
//創(chuàng)建商品
case "createCommodity":
return createCommodity(stub, args)
//創(chuàng)建訂單
case "createOrder":
return createOrder(stub, args)
}
}
基于B/S系統(tǒng)架構(gòu)、Windows下安裝虛擬機(jī)VMware、操作系統(tǒng)為Ubuntu、內(nèi)存為2 GB、硬盤為30 GB、IE瀏覽器進(jìn)行仿真試驗。溯源平臺界面見圖4,產(chǎn)品信息圖舉例說明見圖5。
圖4 溯源平臺管理界面圖Figure 4 Management interface of the traceability platform
圖5 產(chǎn)品信息圖Figure 5 Product information diagram
通過在未復(fù)雜化傳統(tǒng)溯源監(jiān)管平臺的基礎(chǔ)上,引入?yún)^(qū)塊鏈技術(shù),針對性地解決了數(shù)據(jù)不安全、系統(tǒng)易攻擊等問題[22],系統(tǒng)性能對比見表1。雖然基于區(qū)塊鏈的平臺有諸多優(yōu)點,但區(qū)塊鏈與算力有較大關(guān)系,若算力遭受黑客攻擊,也可能破壞去信任化[23]。
表1 系統(tǒng)性能對比分析表
“區(qū)塊鏈+RFID+食品供應(yīng)鏈”實現(xiàn)的科技與民生問題的結(jié)合,有利于進(jìn)一步推動構(gòu)建算法式的可信社會[22]。文章設(shè)計了“區(qū)塊鏈+RFID”兩位一體的食品溯源平臺,利用區(qū)塊鏈不易被篡改的特性,實現(xiàn)食品供應(yīng)鏈流程的公正透明。利用食品附有的“身份證”實現(xiàn)客戶端可查來源。利用RFID技術(shù)通過閱讀器識別產(chǎn)品的ID并讀取食品電子信息[24]。利用鏈上時間戳和哈希值實現(xiàn)可追去向。從終端追溯到出產(chǎn)地需20 h以上,而借助此技術(shù)只需10 s即可實現(xiàn),極大提升了追溯性能,客戶可以實時溯源數(shù)據(jù)變化的全流程,具有法律效力,保證了數(shù)據(jù)的可信度。后續(xù)將對食品溯源平臺的數(shù)據(jù)進(jìn)行探索分析,通過大數(shù)據(jù)、人工智能、數(shù)據(jù)挖掘等技術(shù),進(jìn)行風(fēng)險預(yù)警和追責(zé)溯源,進(jìn)一步向智慧監(jiān)管邁進(jìn)[25]。