陳 飛,葉春明,陳 濤
1.上海理工大學(xué) 管理學(xué)院,上海200093
2.中央財經(jīng)大學(xué) 管理科學(xué)與工程學(xué)院,北京100081
近年來,食品安全事件頻發(fā),對人們的健康造成了嚴(yán)重威脅,使人們對國內(nèi)食品行業(yè)的信任度逐漸降低[1]。然而隨著社會的快速發(fā)展,使得人們只想著簡單快速賺錢,許多食品企業(yè)為了賺取更多的利潤,完全不顧消費(fèi)者的身體健康安全,其生產(chǎn)出來的食品不求質(zhì)量只看賣相,卻打著高品質(zhì)、營養(yǎng)健康食品的幌子忽悠消費(fèi)者購買,完全不顧誠信二字。食品的質(zhì)量問題并非只是消費(fèi)者的關(guān)注對象,食品生產(chǎn)企業(yè)也同樣希望知道食品的流通過程以及相關(guān)信息。利用食品溯源系統(tǒng)對食品信息進(jìn)行追溯,就能夠知道食品從生產(chǎn)源頭到消費(fèi)終端等一系列詳細(xì)信息[2-3],從而保證了食品的安全可靠。
國家食品安全監(jiān)管部門雖然高度重視食品質(zhì)量安全的防范和處理,但是由于食品供應(yīng)鏈涉及參與主體眾多,導(dǎo)致食品安全監(jiān)管和溯源變得困難重重[4-5]。一方面,為了讓消費(fèi)者對食品行業(yè)重拾信心,滿足消費(fèi)者對食品信息全程追蹤掌握的需求,另一方面,為了提高相關(guān)監(jiān)管部門的監(jiān)管力度與監(jiān)管效率,將新技術(shù)和新的監(jiān)管方式應(yīng)用到食品溯源領(lǐng)域勢在必行,讓食品信息實現(xiàn)全流程可追溯,一旦發(fā)現(xiàn)食品出現(xiàn)質(zhì)量安全問題,利用可追溯性可以快速定位到問題出現(xiàn)環(huán)節(jié)以及具體責(zé)任人,及時召回有質(zhì)量問題的食品,這也是保證食品安全的有效方法之一[6-8]。我國在食品溯源領(lǐng)域起步時間較晚,現(xiàn)有的食品溯源系統(tǒng)對于溯源信息過于集中化控制,供應(yīng)鏈上的核心企業(yè)掌握數(shù)據(jù)的控制管理權(quán)限,導(dǎo)致數(shù)據(jù)的安全性、可靠性出現(xiàn)不確定性,且供應(yīng)鏈主體之間存在著信息不對稱性,使得數(shù)據(jù)在流通過程中是否存在被人為惡意篡改無法驗證,極大增加了監(jiān)管部門對食品安全的監(jiān)管難度。
區(qū)塊鏈技術(shù)作為當(dāng)前研究領(lǐng)域中最熱門的研究方向之一,它是一種分布式賬本技術(shù)[9-10],具有效率高、成本低、安全可靠等特點(diǎn),而在解決溯源系統(tǒng)可信任度方面也被證明具有先天技術(shù)優(yōu)勢[11-12]。數(shù)據(jù)分布式存儲在區(qū)塊鏈上,若要將數(shù)據(jù)進(jìn)行惡意篡改,則必須同時攻破區(qū)塊鏈系統(tǒng)超過51%的節(jié)點(diǎn),而對于節(jié)點(diǎn)數(shù)量龐大的區(qū)塊鏈系統(tǒng)來說這是不切實際的,從而保證了數(shù)據(jù)的不可篡改、安全可信。
本文提出的基于區(qū)塊鏈的食品溯源系統(tǒng)設(shè)計以豬肉為溯源對象,選擇Ethereum(以太坊)作為開發(fā)平臺,將養(yǎng)殖場、屠宰場、物流企業(yè)、銷售單位等作為節(jié)點(diǎn)加入到區(qū)塊鏈網(wǎng)絡(luò)中,對豬肉供應(yīng)鏈進(jìn)行全流程分析,設(shè)計了滿足各環(huán)節(jié)節(jié)點(diǎn)的功能模塊。選取軟件架構(gòu)后,結(jié)合相關(guān)的開發(fā)工具進(jìn)行系統(tǒng)部署與測試。消費(fèi)者可利用食品包裝上的溯源碼在此系統(tǒng)上進(jìn)行溯源查詢。
食品溯源的提出最早起源于歐洲,1996年在英國爆發(fā)瘋牛病,導(dǎo)致人心惶惶,此外,丹麥的豬肉沙門式菌污染事件和蘇格蘭大腸桿菌事件也促使歐盟在法律層面建立起食品安全溯源體系。
國外將區(qū)塊鏈技術(shù)應(yīng)用到食品溯源領(lǐng)域的研究開展較早。Bumblauskas等[13]通過美國中西部的一家公司將區(qū)塊鏈應(yīng)用到雞蛋的生產(chǎn)到流通全過程的實際案例,闡述了如何利用和應(yīng)用區(qū)塊鏈更準(zhǔn)確和透明地通過全球供應(yīng)鏈運(yùn)輸貨物。Prashar 等[14]提出了一種基于區(qū)塊鏈的解決方案,利用智能合約來監(jiān)控和管理供應(yīng)鏈網(wǎng)絡(luò)中利益相關(guān)者的所有通信和交易以保障食品安全。George 等[15]提出了一個基于區(qū)塊鏈和產(chǎn)品標(biāo)識符的可追溯餐廳原型,以實現(xiàn)更可靠的食品溯源。Surasak等[16]使用區(qū)塊鏈技術(shù)和物聯(lián)網(wǎng)技術(shù)成功設(shè)計并開發(fā)了泰國農(nóng)產(chǎn)品可追溯系統(tǒng),使供應(yīng)鏈管理變得更加可靠,且增強(qiáng)了公眾對食品安全和質(zhì)量控制的意識。Kamilaris等[17]研究了區(qū)塊鏈技術(shù)在農(nóng)業(yè)和食品供應(yīng)鏈中的影響,指出在建立公開透明的食品供應(yīng)鏈上是一種很有前途的技術(shù),但在技術(shù)、教育、政策和監(jiān)管上仍存在許多阻礙和挑戰(zhàn)。Tsang等[18]提出了一種基于區(qū)塊鏈和物聯(lián)網(wǎng)的食品可追溯系統(tǒng),將區(qū)塊鏈、物聯(lián)網(wǎng)技術(shù)和模糊邏輯等新技術(shù)應(yīng)用于可追溯性食品保質(zhì)期管理系統(tǒng),為建立食品供應(yīng)鏈決策提供支持。
近年來,國內(nèi)區(qū)塊鏈技術(shù)變得炙手可熱,不少企業(yè)、高校以及創(chuàng)業(yè)公司也都開始在區(qū)塊鏈技術(shù)上投入研究。禹忠等[19]提出了基于區(qū)塊鏈的醫(yī)藥溯源系統(tǒng),實現(xiàn)了藥品防偽及溯源信息查詢功能。董云峰等[20]應(yīng)用區(qū)塊鏈技術(shù)構(gòu)建了糧油食品全供應(yīng)鏈可信追溯模型,保證了存儲數(shù)據(jù)安全可靠、追溯信息精確可信。陶啟等[21]通過區(qū)塊鏈技術(shù)構(gòu)建大米產(chǎn)業(yè)鏈質(zhì)量信息數(shù)據(jù)庫,采用危害因子的食品風(fēng)險評估與安全溯源技術(shù)設(shè)計了智能管理系統(tǒng),實現(xiàn)了食品質(zhì)量安全的高效管控。巫光福等[22]提出了交易區(qū)塊鏈(TBC)和監(jiān)管區(qū)塊鏈(RBC)雙鏈結(jié)構(gòu),證明了雙鏈結(jié)構(gòu)具有高效性和可擴(kuò)展性。
食品溯源對象的選擇不僅要考慮人們的切身利益和強(qiáng)烈需求,還要考慮其是否具有較高的經(jīng)濟(jì)價值。
民以食為天,食品歷來都是消費(fèi)者重點(diǎn)關(guān)注對象,對食品的安全溯源更是保障消費(fèi)者權(quán)益的重中之重。食品一般可分為農(nóng)墾食品類、乳制品類和肉類。在乳制品領(lǐng)域,食品從生產(chǎn)源頭到銷售終端均由單一企業(yè)承包,因此若要篡改數(shù)據(jù)也必須是企業(yè)內(nèi)部人員進(jìn)行操作,所以應(yīng)對這種情況通過立法加大懲處力度更為有效。肉類是人們?nèi)粘I钪凶顬槌R姷囊环N食物,近年來瘦肉精、注水豬肉、病死豬肉等食品安全事件的發(fā)生嚴(yán)重威脅了人們的身體健康,且肉類幾乎是人們每天必備的食物,所以人們對肉類的關(guān)注度極大。此外,肉類從養(yǎng)殖生產(chǎn)到銷售終端都需要經(jīng)過養(yǎng)殖場、屠宰加工企業(yè)、物流企業(yè)和銷售企業(yè)的參與,這就讓各個環(huán)節(jié)的負(fù)責(zé)人都有了修改數(shù)據(jù)的權(quán)利。與肉類相比,農(nóng)墾食品類除了少數(shù)高端產(chǎn)品有較高經(jīng)濟(jì)價值外,其余大多數(shù)都價值低廉,從溯源成本及效益方面考慮而言不適宜對其實施溯源。
綜上所述,相對于乳制品類和農(nóng)墾類而言,消費(fèi)者在肉類食品上的消費(fèi)需求更為強(qiáng)烈,從產(chǎn)品的生產(chǎn)源頭到銷售終端的一系列流程在食品供應(yīng)鏈中也更具代表性。此外,對肉類的溯源具有更高的經(jīng)濟(jì)價值和現(xiàn)實意義,因此,本文選取了在市場中最為常見、價格適中、人們喜愛且消費(fèi)頻率高的豬肉作為溯源系統(tǒng)的溯源對象。
養(yǎng)殖場在新生豬仔的養(yǎng)殖過程中需要對養(yǎng)殖信息進(jìn)行全流程記錄。養(yǎng)殖信息記錄如圖1所示。
屠宰加工環(huán)節(jié)處于豬肉供應(yīng)鏈的中間環(huán)節(jié),具體流程為:宰前檢疫-淋浴-擊暈-刺殺放血-浸燙刨毛-機(jī)械剝皮-胴體加工-同步衛(wèi)檢-副產(chǎn)品加工-白條排酸-分割包裝。其宰前檢疫和宰后同步衛(wèi)檢為豬肉的質(zhì)量安全提供的必要的保障。在屠宰加工環(huán)節(jié)需要追溯的信息包括宰前檢疫信息、宰后同步衛(wèi)檢信息、白條排酸信息、包裝相關(guān)信息及入庫信息等。在豬的屠宰加工環(huán)節(jié)實現(xiàn)可追溯、透明化,不僅能極大提升消費(fèi)者對豬肉安全的信任度,還能促進(jìn)豬肉銷售。經(jīng)過對生豬屠宰加工的流程分析,其屠宰過程以及信息記錄環(huán)節(jié)如圖2所示。
圖1 養(yǎng)殖信息記錄流程圖
在豬肉供應(yīng)鏈中,冷鏈物流是必不可少的重要一環(huán),將豬肉置于低溫環(huán)境中進(jìn)行運(yùn)輸,能極大保證豬肉的新鮮度。物流運(yùn)輸商在運(yùn)輸豬肉產(chǎn)品時需要對豬肉的出庫狀態(tài)進(jìn)行記錄,包括出庫時間、產(chǎn)品加工批次、包裝方式;對冷鏈運(yùn)輸信息進(jìn)行記錄,包括運(yùn)輸時間、車輛內(nèi)部溫濕度、車輛信息、操作員信息;抵達(dá)運(yùn)輸目的地時,需要對抵達(dá)相關(guān)信息進(jìn)行記錄,包括目的地信息、運(yùn)輸批次、驗收信息、接收人信息、操作員信息等。其物流信息記錄流程如圖3所示。
圖2 屠宰加工信息記錄流程圖
圖3 物流信息記錄流程圖
銷售環(huán)節(jié)作為豬肉供應(yīng)鏈的末端環(huán)節(jié),其銷售場所主要分為超市、專門的肉鋪和市場三類。豬肉從冷鏈運(yùn)輸車上卸載下來后一般不會直接擺上架子銷售,而是先將其放入冷庫中存儲,待到需要時再上架銷售。豬肉的存儲對于環(huán)境的溫濕度有一定的要求,豬肉在冷庫中短期存儲溫度一般為0 ~5 ℃,溫度過高或者存儲環(huán)境差都會引發(fā)豬肉變質(zhì)。因此對豬肉的存儲環(huán)境數(shù)據(jù)信息進(jìn)行記錄對于豬肉質(zhì)量安全追溯也是極為重要的。
基于區(qū)塊鏈的豬肉供應(yīng)鏈參與節(jié)點(diǎn)眾多,各個環(huán)節(jié)節(jié)點(diǎn)數(shù)據(jù)采集量大,若一次性全部上傳到區(qū)塊鏈網(wǎng)絡(luò)中,除了上傳速度緩慢之外,也會導(dǎo)致運(yùn)行成本大幅提高,對于每個環(huán)節(jié)節(jié)點(diǎn)配備的硬件要求也會較高。所以在本文中,將采用雙存儲機(jī)制,即將各環(huán)節(jié)節(jié)點(diǎn)的采集數(shù)據(jù)信息一同存入?yún)^(qū)塊鏈網(wǎng)絡(luò)和關(guān)系型數(shù)據(jù)庫中,但區(qū)塊鏈網(wǎng)絡(luò)中存儲的是經(jīng)過SHA3算法生成的信息摘要,而完整信息則存儲在數(shù)據(jù)庫中。這不僅提高了區(qū)塊鏈運(yùn)行效率,還解決了區(qū)塊鏈面臨的可擴(kuò)展性問題。其雙存儲模型如圖4所示。
經(jīng)過上述豬肉供應(yīng)鏈的流程分析與存儲機(jī)制設(shè)計后,設(shè)計了豬肉溯源方案結(jié)構(gòu)圖,如圖5所示。
圖4 豬肉供應(yīng)鏈數(shù)據(jù)存儲模型
該溯源方案中所存儲的數(shù)據(jù)由區(qū)塊鏈系統(tǒng)和數(shù)據(jù)庫共同存儲,引入關(guān)系型數(shù)據(jù)庫可以解決區(qū)塊鏈系統(tǒng)可擴(kuò)展性問題,在區(qū)塊鏈系統(tǒng)中只存儲數(shù)據(jù)的信息摘要,其完整的數(shù)據(jù)信息則存儲在數(shù)據(jù)庫當(dāng)中。數(shù)據(jù)庫由工商管理局進(jìn)行日常維護(hù)工作,而區(qū)塊鏈系統(tǒng)則由養(yǎng)殖場、屠宰場、物流企業(yè)、銷售單位、食藥監(jiān)局、工商管理局共同維護(hù)。此系統(tǒng)設(shè)計初衷便是為消費(fèi)者提供溯源查詢服務(wù),為監(jiān)管部門提供更為便捷高效的監(jiān)管服務(wù),所以還包括監(jiān)管部門和消費(fèi)者等系統(tǒng)外部用戶。
養(yǎng)殖場、屠宰場、物流企業(yè)和銷售單位的信息錄入過程相同,以養(yǎng)殖場為例,養(yǎng)殖場將采集到的數(shù)據(jù)信息打包并同時錄入養(yǎng)殖場節(jié)點(diǎn)和數(shù)據(jù)庫,養(yǎng)殖場節(jié)點(diǎn)對錄入的數(shù)據(jù)進(jìn)行SHA3 算法生成信息摘要并發(fā)送到區(qū)塊鏈上,參與節(jié)點(diǎn)達(dá)成共識后將信息摘要寫入?yún)^(qū)塊。此時區(qū)塊將返回一條哈希值存儲到數(shù)據(jù)庫中,該哈希值可用于數(shù)據(jù)索引。而工商管理局和食品藥品監(jiān)督管理局對上述節(jié)點(diǎn)的行為進(jìn)行監(jiān)督。
消費(fèi)者在購買食品后,可利用包裝上的編碼在數(shù)據(jù)庫中進(jìn)行溯源查詢,若對查詢到的信息持懷疑態(tài)度,則可通過獲取區(qū)塊鏈中的信息摘要和數(shù)據(jù)庫中對查詢信息進(jìn)行相同的SHA3 算法生成的信息摘要進(jìn)行對比來確定數(shù)據(jù)是否被更改,若信息摘要一致,則數(shù)據(jù)真實無更改。當(dāng)發(fā)現(xiàn)查詢數(shù)據(jù)被更改過,消費(fèi)者可以向工商管理局投訴,投訴信息將會被作為憑證以同樣的信息錄入方式存儲到數(shù)據(jù)庫和區(qū)塊鏈系統(tǒng)中。
豬肉供應(yīng)鏈各環(huán)節(jié)所采集的數(shù)據(jù)數(shù)量大,在信息錄入時可能會由于人工操作錯誤或其他外因干擾造成信息漏錄或錄入錯誤問題,又因為信息一旦錄入?yún)^(qū)塊鏈系統(tǒng)中,將不能對數(shù)據(jù)進(jìn)行更改,所以在本方案中引入了食品藥品監(jiān)督管理局,豬肉供應(yīng)鏈各環(huán)節(jié)節(jié)點(diǎn)若發(fā)現(xiàn)錄入信息有誤,可以向食品藥品監(jiān)督管理局發(fā)送信息更正請求,經(jīng)食品藥品監(jiān)督管理局審核確認(rèn)無誤后,可由食藥監(jiān)局節(jié)點(diǎn)將更正信息上傳至區(qū)塊鏈系統(tǒng)中,以此消除因人為操作失誤導(dǎo)致信息錄入錯誤而帶來的巨大損失。
食品質(zhì)量問題近年來頻繁發(fā)生,“注水豬肉”“瘦肉精”等食品安全問題層出不窮,嚴(yán)重威脅了人們的身體健康,構(gòu)建一個可靠高效的問題食品召回體系迫在眉睫。本方案基于現(xiàn)實需求在區(qū)塊鏈溯源系統(tǒng)中創(chuàng)新性地引入了食品召回環(huán)節(jié)。以廣大消費(fèi)者的投訴信息為主要線索來源,食品藥品監(jiān)督管理局對投訴信息進(jìn)行分類整理,對食用后可能對人體造成健康損害的食品按照其嚴(yán)重程度進(jìn)行分級召回,同時,生產(chǎn)企業(yè)應(yīng)立即停止生產(chǎn)不安全食品。以豬肉食品為例,當(dāng)消費(fèi)者將購買到的可能損害身體健康的問題豬肉向食品藥品監(jiān)督管理局進(jìn)行投訴后,食品藥品監(jiān)督管理局審核確認(rèn)該豬肉存在損害他人健康的可能性,將依法對該批次豬肉進(jìn)行召回。根據(jù)消費(fèi)者投訴信息中提供的編號,食品藥品監(jiān)督管理局可在區(qū)塊鏈系統(tǒng)中對其進(jìn)行追溯,從而獲取問題豬肉的所有流程信息,其包括豬肉的來源地養(yǎng)殖場信息、屠宰加工過程的屠宰場信息、運(yùn)輸豬肉的運(yùn)輸企業(yè)信息、銷售豬肉的銷售單位信息,根據(jù)追溯信息定位相關(guān)責(zé)任人。對養(yǎng)殖場責(zé)令其停止輸送生豬,且在所給期限內(nèi)召回問題豬肉并做無害化或銷毀處理;對屠宰場責(zé)令其停止屠宰加工該養(yǎng)殖場輸送的生豬,對已屠宰未輸送的豬肉進(jìn)行嚴(yán)格檢疫,檢疫不合格可做無害化處理或銷毀;對銷售單位責(zé)令其停止銷售并封存未售出的問題豬肉,在經(jīng)營場所張貼召回公告以配合召回工作開展。此外,食品藥品監(jiān)督管理局會將問題豬肉的批次、產(chǎn)地、召回原因等相關(guān)信息及時發(fā)布在區(qū)塊鏈系統(tǒng)上,消費(fèi)者可以通過區(qū)塊鏈系統(tǒng)查看食品召回相關(guān)信息,掌握食品召回進(jìn)度。
圖5 溯源方案結(jié)構(gòu)圖
基于區(qū)塊鏈的豬肉溯源方案設(shè)計,保證了數(shù)據(jù)的不可篡改,去除了中心化結(jié)構(gòu),對信息流的可追溯性實現(xiàn)了快速查找、精確定位功能。根據(jù)現(xiàn)實需求有針對性地引入了食品藥品監(jiān)督管理局和工商管理局。食品藥品監(jiān)督管理局不僅可以處理供應(yīng)鏈各環(huán)節(jié)的信息錄入錯誤問題,提供數(shù)據(jù)更正需求,還具備對有可能造成人體健康損害的問題食品執(zhí)行召回功能。工商管理局負(fù)責(zé)對消費(fèi)者的投訴進(jìn)行受理,對涉及可能損害消費(fèi)者身體健康的投訴信息將會及時分享給食品藥品監(jiān)督管理局,以便及時開展食品召回工作。
圖6 溯源體系層次結(jié)構(gòu)圖
如圖6為基于區(qū)塊鏈的溯源體系層次結(jié)構(gòu)圖,體系結(jié)構(gòu)由下而上主要分為六層,即作業(yè)層、數(shù)據(jù)采集層、數(shù)據(jù)層、共識及網(wǎng)絡(luò)層、表示層、用戶層。最底層是作業(yè)層,指的是在養(yǎng)殖環(huán)節(jié)、屠宰加工環(huán)節(jié)、物流運(yùn)輸環(huán)節(jié)以及銷售環(huán)節(jié)需要進(jìn)行采集數(shù)據(jù)的工作,它是整個追溯數(shù)據(jù)的來源。數(shù)據(jù)采集層指的是利用射頻裝置、信息采集終端和應(yīng)用傳感器對作業(yè)層數(shù)據(jù)進(jìn)行采集、傳輸,且能夠提高豬肉供應(yīng)鏈整體效率。數(shù)據(jù)層是指數(shù)據(jù)采集層中的數(shù)據(jù)傳輸?shù)綌?shù)據(jù)層進(jìn)行存儲,數(shù)據(jù)層采用的是關(guān)系型數(shù)據(jù)庫和區(qū)塊鏈雙存儲機(jī)制,采集數(shù)據(jù)將同時錄入關(guān)系型數(shù)據(jù)庫和對應(yīng)節(jié)點(diǎn),不同的是,對應(yīng)節(jié)點(diǎn)將對錄入的數(shù)據(jù)信息做摘要處理,區(qū)塊鏈網(wǎng)絡(luò)中只存儲處理后的信息摘要,完整數(shù)據(jù)和經(jīng)過摘要處理后返回的哈希值則由關(guān)系型數(shù)據(jù)庫存儲。共識及網(wǎng)絡(luò)層是指包括P2P 網(wǎng)絡(luò)、驗證機(jī)制、傳播機(jī)制、PoW和PoS共識機(jī)制在內(nèi)的區(qū)塊鏈的關(guān)鍵技術(shù)。表示層是指采用B/S架構(gòu)和JSP技術(shù)將數(shù)據(jù)按用戶需求進(jìn)行展示。最上層為用戶層,包括養(yǎng)殖者、加工者、運(yùn)輸者、銷售者、監(jiān)管部門和消費(fèi)者,養(yǎng)殖者、加工者、運(yùn)輸者和銷售者負(fù)責(zé)信息錄入,監(jiān)管部門和消費(fèi)者可根據(jù)需求在系統(tǒng)中查詢產(chǎn)品相關(guān)信息。
溯源系統(tǒng)的設(shè)計主要就是為了實現(xiàn)各個環(huán)節(jié)信息的可追溯功能,按照各環(huán)節(jié)的各自需求設(shè)計滿足要求的業(yè)務(wù)功能模塊。溯源系統(tǒng)的業(yè)務(wù)功能模塊設(shè)計如圖7所示,主要分為六大模塊,即養(yǎng)殖模塊、屠宰加工模塊、物流運(yùn)輸模塊、銷售模塊、監(jiān)管部門模塊、消費(fèi)者模塊。每個模塊都具備相應(yīng)的業(yè)務(wù)功能,下面對各模塊進(jìn)行簡要闡述。
養(yǎng)殖模塊主要是對豬只養(yǎng)殖過程中產(chǎn)生的信息進(jìn)行管理,包括信息錄入和查詢功能,具體為以豬耳標(biāo)編號為主鍵對養(yǎng)殖場編號、養(yǎng)殖場地址、養(yǎng)殖場負(fù)責(zé)人、環(huán)境衛(wèi)生狀況、豬只種類、豬只性別、入欄時間、喂食飼料種類、疫苗接種種類、疫苗接種時間、操作員編號等信息進(jìn)行錄入。
屠宰加工模塊主要是對豬只的宰前檢疫信息和宰后加工的信息進(jìn)行管理,包括信息錄入和查詢功能,具體為豬只編號、健康狀況、檢疫日期、豬肉批次、屠宰日期、排酸時間、環(huán)境溫濕度、包裝編號、包裝材料、包裝時間、肉的部位、操作員編號等信息進(jìn)行錄入。
物流運(yùn)輸模塊主要是對豬肉在運(yùn)輸轉(zhuǎn)移過程中的信息進(jìn)行管理,包括信息錄入和查詢功能,具體為物流訂單編號、企業(yè)名稱、企業(yè)地址、企業(yè)負(fù)責(zé)人、運(yùn)輸車牌號、運(yùn)輸時間、運(yùn)輸起始地、運(yùn)輸目的地、車廂溫濕度、司機(jī)姓名、操作員編號等信息進(jìn)行錄入。
銷售模塊主要是對豬肉的存儲信息和銷售信息進(jìn)行管理,包括信息錄入和查詢功能,具體為銷售信息編號、企業(yè)名稱、企業(yè)地址、入庫時間、庫內(nèi)溫濕度、銷售地點(diǎn)、上架時間、操作員編號等信息進(jìn)行錄入。
監(jiān)管部門模塊主要是對基礎(chǔ)信息進(jìn)行登記、查詢及驗證,各環(huán)節(jié)節(jié)點(diǎn)若因失誤造成錄入信息有誤,可填寫信息變更申請并提交監(jiān)管部門,監(jiān)管部門提供信息變更服務(wù),且對具有危害身體健康的食品監(jiān)管部門擁有食品召回功能。
圖7 溯源系統(tǒng)功能模塊圖
消費(fèi)者模塊主要是擁有豬肉信息全流程溯源查詢及驗證功能,購買產(chǎn)品時,消費(fèi)者可以按照產(chǎn)品上的溯源碼在溯源系統(tǒng)上查詢信息,進(jìn)而挑選自己中意的產(chǎn)品購買。若購買的豬肉產(chǎn)品發(fā)現(xiàn)有質(zhì)量問題,可通過溯源系統(tǒng)進(jìn)行投訴,反映相關(guān)問題,監(jiān)管部門在收到投訴信息后將及時進(jìn)行處理,對相關(guān)責(zé)任人按流程進(jìn)行追查。
5.2.1 養(yǎng)殖階段數(shù)據(jù)庫設(shè)計
養(yǎng)殖階段需要采集大量的數(shù)據(jù),因此對養(yǎng)殖階段的數(shù)據(jù)庫設(shè)計如表1所示,該數(shù)據(jù)表包含了主要的采集信息。
表1 養(yǎng)殖信息表
5.2.2 屠宰加工階段數(shù)據(jù)庫設(shè)計
屠宰加工階段是豬肉供應(yīng)鏈中的重要一環(huán),需要記錄的信息較多,該階段的數(shù)據(jù)庫設(shè)計如表2 所示,該數(shù)據(jù)表包含了主要的記錄信息。
表2 屠宰加工信息表
5.2.3 物流運(yùn)輸階段數(shù)據(jù)庫設(shè)計
物流運(yùn)輸是將豬只或豬肉運(yùn)送到指定目的地的過程,該階段數(shù)據(jù)庫設(shè)計如表3 所示,該表包含了運(yùn)輸過程中主要的記錄信息。
5.2.4 銷售階段數(shù)據(jù)庫設(shè)計
銷售階段主要是對豬肉存儲情況和銷售情況進(jìn)行記錄,該階段的數(shù)據(jù)庫設(shè)計如表4 所示,此數(shù)據(jù)表包含了銷售階段的主要記錄數(shù)據(jù)。
表3 物流運(yùn)輸信息表
表4 銷售信息表
在基于區(qū)塊鏈?zhǔn)秦i肉溯源系統(tǒng)設(shè)計中,需要對豬肉產(chǎn)品的溯源編碼進(jìn)行設(shè)計,以達(dá)到可追溯目的。按照《食品可追溯性通用規(guī)范》中的規(guī)定,豬只必須遵循一畜一標(biāo),每頭豬的個體編號都作為其唯一的身份標(biāo)識,且豬肉產(chǎn)品也要具備唯一標(biāo)識的溯源編碼。溯源編碼的設(shè)計以GSI系統(tǒng)編碼為基礎(chǔ),并對豬肉從單個實體到分割后的多個實體進(jìn)行充分考慮,采取不一樣的編碼規(guī)則,實行一個單元對應(yīng)唯一編碼的形式,對豬肉供應(yīng)鏈的整個流程進(jìn)行精準(zhǔn)溯源。溯源編碼的設(shè)計使用UCC/EAN-128 為載體作為GTIN 及屬性信息代碼標(biāo)記肉塊。對豬只進(jìn)行編號時按照以下編碼規(guī)則:
耳標(biāo)編號設(shè)計為10位,其中養(yǎng)殖場的編號占前3位,豬的性別放在第4位,年號放在第5位和第6位,豬只在養(yǎng)殖場中的序號則放在最后3 位。豬胴體編號設(shè)計為11位,只需在耳標(biāo)編碼的基礎(chǔ)上往后再加上1位標(biāo)記為豬胴體的左邊或者右邊。肉塊編碼設(shè)計為14 位,只需在胴體編碼的基礎(chǔ)上往后再加上3 位標(biāo)記為豬的具體部位和序號。銷售狀態(tài)中的豬肉編碼則是在國際商品標(biāo)識碼的基礎(chǔ)上再加上肉塊編碼。
本文設(shè)計并實現(xiàn)一種基于區(qū)塊鏈的食品溯源方案,并按照方案的設(shè)計選擇Ethereum(以太坊)平臺進(jìn)行區(qū)塊鏈開發(fā),因此需要先進(jìn)行系統(tǒng)基本的環(huán)境搭建。
首先需要安裝node.js,安裝成功后在命令行輸入切換淘寶鏡像:npm config set registry https://registry.npm.taobao.org,之后在命令行輸入npm install -g truffle 安裝truffle,若出現(xiàn)安裝錯誤則需要在命令行輸入setexecutionpolicy remotesigned,然后再輸入y 即可解決。接著在命令行輸入npm config get prefix,得到C:UsersAdministratorAppdateRoaming pm,再打開電腦屬性界面,在高級系統(tǒng)設(shè)置里點(diǎn)擊環(huán)境變量找到path 編輯,點(diǎn)擊新建后復(fù)制C:UsersAdministratorAppdateRoaming pm,將其上移到目錄前三位即可?;经h(huán)境搭建好之后還需安裝Metamask以及Ganache。
一切準(zhǔn)備就緒之后便可以在命令行輸入相應(yīng)的命令啟動溯源系統(tǒng),啟動過程分為三步。第一步,在命令行輸入truffle compile進(jìn)行合約編譯,如圖8所示。
圖8 合約編譯過程圖
第二步,在命令行輸入truffle migrate 進(jìn)行合約部署,如圖9所示。
圖9 合約部署過程圖
第三步,在命令行輸入npm run dev將Web服務(wù)器啟動,如圖10所示。
圖10 Web服務(wù)器啟動過程圖
6.2.1 生產(chǎn)加工信息錄入
該功能可從對應(yīng)的環(huán)節(jié)操作員角色登入,如圖11所示,為豬肉生產(chǎn)加工信息錄入的其中一個環(huán)節(jié),該環(huán)節(jié)為豬只的原始信息錄入。
圖11 豬只信息登記
6.2.2 數(shù)據(jù)變更申請信息錄入
如圖12所示,若因操作失誤導(dǎo)致信息錄入錯誤,可在此頁面上填寫數(shù)據(jù)變更申請,提交后由監(jiān)管部門進(jìn)行審核和重新錄入。
6.2.3 消費(fèi)者投訴信息錄入
如圖13 所示,消費(fèi)者若發(fā)現(xiàn)所購買的食品有質(zhì)量問題,可通過消費(fèi)者投訴頁面進(jìn)行投訴,投訴信息提交后將被錄入平臺,由監(jiān)管部門接收并處理。其查詢結(jié)果如圖14所示。
6.2.4 食品召回信息錄入
圖12 數(shù)據(jù)變更信息登記
圖13 投訴信息登記
如圖15 所示,監(jiān)管部門若發(fā)現(xiàn)食品有危害身體健康風(fēng)險的,可依法進(jìn)行食品召回,食品召回信息也將會及時發(fā)布,任何人都可看到。其查詢結(jié)果如圖16所示。
圖14 查詢結(jié)果
圖15 召回信息登記
圖16 查詢結(jié)果
隨著公眾對食品安全的關(guān)注度越來越高,國內(nèi)學(xué)者在食品溯源領(lǐng)域也進(jìn)行了較多研究。林盛業(yè)等[23]將無線傳感網(wǎng)、二維條碼以及NET 等技術(shù)相結(jié)合設(shè)計了牛肉溯源系統(tǒng),實現(xiàn)了環(huán)境溫濕度的自動采集與上傳,但采集數(shù)據(jù)傳輸?shù)奖镜財?shù)據(jù)庫中,存在人為篡改的可能性。凌菁等[24]應(yīng)用NFC 技術(shù)和物聯(lián)網(wǎng)技術(shù)設(shè)計了稻米溯源系統(tǒng),實現(xiàn)了對稻米生產(chǎn)流通各環(huán)節(jié)的監(jiān)控追蹤,消費(fèi)者可持智能手機(jī)等設(shè)備查詢溯源信息,但當(dāng)出現(xiàn)質(zhì)量問題時,由于供應(yīng)鏈間存在信息孤島問題,難以追責(zé)到具體責(zé)任人。呂芙蓉等[25]提出了基于區(qū)塊鏈的農(nóng)產(chǎn)品追溯體系設(shè)想,但缺乏系統(tǒng)功能設(shè)計,成果還處于技術(shù)解釋層面。劉宗妹[26]將區(qū)塊鏈和RFID相結(jié)合構(gòu)建了食品溯源系統(tǒng),此系統(tǒng)在Fabric 上進(jìn)行開發(fā),消費(fèi)者通過掃碼便可獲取食品溯源信息,出現(xiàn)問題食品也能實現(xiàn)快速定位責(zé)任人,但該系統(tǒng)缺少必要的消費(fèi)者投訴機(jī)制和監(jiān)管部門執(zhí)行的食品安全召回機(jī)制,一旦出現(xiàn)可能危害身體健康的問題產(chǎn)品,將無法及時阻止其繼續(xù)流入市場。柳祺祺等[27]構(gòu)建了基于Fabric的農(nóng)產(chǎn)品溯源系統(tǒng),實現(xiàn)了生產(chǎn)、流通、監(jiān)管、消費(fèi)各方之間信息共享和多方共贏。但由于數(shù)據(jù)一經(jīng)上鏈無法更改,故此系統(tǒng)忽略了各環(huán)節(jié)節(jié)點(diǎn)對錄入數(shù)據(jù)更正的需求。
綜上所述,本文基于區(qū)塊鏈的食品溯源系統(tǒng)設(shè)計具備以下優(yōu)勢:一是多方參與主體信任背書,區(qū)塊鏈去中心化可提高用戶信任度。二是區(qū)塊鏈不可篡改、時間戳等特性可在信息溯源中實現(xiàn)有效追責(zé)。三是增加了必要的投訴功能和食品召回功能。四是為因失誤導(dǎo)致信息錄入錯誤節(jié)點(diǎn)提供數(shù)據(jù)更正申請功能,由監(jiān)管部門進(jìn)行審核和錄入。
結(jié)合上文內(nèi)容,將“瘦肉精”這一重大食品安全事件進(jìn)行案例分析,進(jìn)而對本文溯源系統(tǒng)的有效性進(jìn)行驗證。
7.2.1 案例簡介
2011 年,央視3 ?15 特別行動曝光了雙匯集團(tuán)旗下公司濟(jì)源雙匯食品有限公司流入了含有“瘦肉精”的生豬。該事件一經(jīng)曝光便產(chǎn)生了重大影響,消費(fèi)者對食品安全的信任度大大降低。
濟(jì)源雙匯食品有限公司主要是對生豬進(jìn)行屠宰加工,處于產(chǎn)品供應(yīng)鏈中游,需要與供應(yīng)鏈的上游供應(yīng)商對接。雙匯集團(tuán)方面表示,“瘦肉精”事件的根源在于生豬的養(yǎng)殖環(huán)節(jié)發(fā)生問題,而問題生豬成功流入企業(yè)也表明了企業(yè)在流通環(huán)節(jié)存在把關(guān)不嚴(yán)現(xiàn)象。新聞上也有觀點(diǎn)認(rèn)為企業(yè)內(nèi)部可能存在以權(quán)謀私的問題。因此,為解決上述問題,本文設(shè)計了基于區(qū)塊鏈的食品溯源系統(tǒng)。
7.2.2 改進(jìn)效果
在養(yǎng)殖環(huán)節(jié),養(yǎng)殖場節(jié)點(diǎn)在錄入信息時,誠實錄入含有瘦肉精等違規(guī)飼料信息后,系統(tǒng)會依據(jù)事先制定好的標(biāo)準(zhǔn)規(guī)則對錄入信息進(jìn)行檢查,若查出不符合標(biāo)準(zhǔn)規(guī)則,則判定信息無效不能錄入系統(tǒng);但養(yǎng)殖場若不誠實,在錄入飼料信息中隱瞞了含有瘦肉精成分信息,并經(jīng)私鑰數(shù)字簽名后順利錄入系統(tǒng)。當(dāng)監(jiān)管部門對含有瘦肉精的生豬進(jìn)行抽檢時,將被查出含有瘦肉精成分問題,監(jiān)管部門在阻斷問題產(chǎn)品進(jìn)入消費(fèi)市場的同時也將對養(yǎng)殖場依法進(jìn)行懲處。若問題生豬未被抽檢,使得其順利進(jìn)入下一環(huán)節(jié)與雙匯公司對接,養(yǎng)殖企業(yè)將向雙匯公司交付問題生豬并發(fā)送電子協(xié)議。
在接收交付的生豬時,雙匯公司將對生豬進(jìn)行檢驗,檢驗合格后發(fā)送電子協(xié)議給養(yǎng)殖企業(yè),該協(xié)議上附有雙匯公司的數(shù)字簽名,協(xié)議過程經(jīng)系統(tǒng)驗證通過并記錄后,將通過智能合約技術(shù)授權(quán)雙匯公司對產(chǎn)品相關(guān)數(shù)據(jù)進(jìn)行維護(hù)。若檢測中發(fā)現(xiàn)其結(jié)果與養(yǎng)殖節(jié)點(diǎn)錄入信息不符,檢測人員將從當(dāng)前節(jié)點(diǎn)把檢測結(jié)果錄入到系統(tǒng)中,系統(tǒng)會及時將問題反饋給監(jiān)管部門,等同于一次快速舉報。
若在檢驗過程中存在疏漏,導(dǎo)致問題產(chǎn)品流入市場,經(jīng)消費(fèi)者舉報或監(jiān)管部門在市場抽檢中查出,雙匯公司將承擔(dān)主要責(zé)任,同時可在溯源系統(tǒng)中追蹤到雙匯公司的上游供應(yīng)商,其隱瞞行為也將受到應(yīng)有的懲處,由該供應(yīng)商提供的產(chǎn)品也會及時進(jìn)行召回,防止問題產(chǎn)品繼續(xù)在市場上流通。
綜上所述,在食品溯源中應(yīng)用區(qū)塊鏈技術(shù)能有效改善食品安全現(xiàn)狀,在實現(xiàn)產(chǎn)品溯源的同時也能起到食品安全危機(jī)預(yù)警作用,為消費(fèi)者飲食安全提供強(qiáng)有力的保障。
本文從食品安全角度出發(fā),選取了在市場中最為常見、價格適中、人們喜愛的豬肉為溯源系統(tǒng)的溯源對象,設(shè)計了基于區(qū)塊鏈的食品溯源系統(tǒng),創(chuàng)新性地引入了食品藥品監(jiān)督管理局節(jié)點(diǎn)對各環(huán)節(jié)出現(xiàn)信息錄入錯誤的節(jié)點(diǎn)提供數(shù)據(jù)變更服務(wù)。此外,對發(fā)現(xiàn)可能危害身體健康的食品可依法進(jìn)行食品召回,防止問題食品進(jìn)一步流入市場。消費(fèi)者也可利用食品包裝上的溯源碼對食品進(jìn)行全流程溯源查詢,使食品買得放心,吃得安心。