陳 飛,葉春明,陳 濤
1.上海理工大學(xué) 管理學(xué)院,上海200093
2.中央財(cái)經(jīng)大學(xué) 管理科學(xué)與工程學(xué)院,北京100081
近年來(lái),食品安全事件頻發(fā),對(duì)人們的健康造成了嚴(yán)重威脅,使人們對(duì)國(guó)內(nèi)食品行業(yè)的信任度逐漸降低[1]。然而隨著社會(huì)的快速發(fā)展,使得人們只想著簡(jiǎn)單快速賺錢(qián),許多食品企業(yè)為了賺取更多的利潤(rùn),完全不顧消費(fèi)者的身體健康安全,其生產(chǎn)出來(lái)的食品不求質(zhì)量只看賣(mài)相,卻打著高品質(zhì)、營(yíng)養(yǎng)健康食品的幌子忽悠消費(fèi)者購(gòu)買(mǎi),完全不顧誠(chéng)信二字。食品的質(zhì)量問(wèn)題并非只是消費(fèi)者的關(guān)注對(duì)象,食品生產(chǎn)企業(yè)也同樣希望知道食品的流通過(guò)程以及相關(guān)信息。利用食品溯源系統(tǒng)對(duì)食品信息進(jìn)行追溯,就能夠知道食品從生產(chǎn)源頭到消費(fèi)終端等一系列詳細(xì)信息[2-3],從而保證了食品的安全可靠。
國(guó)家食品安全監(jiān)管部門(mén)雖然高度重視食品質(zhì)量安全的防范和處理,但是由于食品供應(yīng)鏈涉及參與主體眾多,導(dǎo)致食品安全監(jiān)管和溯源變得困難重重[4-5]。一方面,為了讓消費(fèi)者對(duì)食品行業(yè)重拾信心,滿(mǎn)足消費(fèi)者對(duì)食品信息全程追蹤掌握的需求,另一方面,為了提高相關(guān)監(jiān)管部門(mén)的監(jiān)管力度與監(jiān)管效率,將新技術(shù)和新的監(jiān)管方式應(yīng)用到食品溯源領(lǐng)域勢(shì)在必行,讓食品信息實(shí)現(xiàn)全流程可追溯,一旦發(fā)現(xiàn)食品出現(xiàn)質(zhì)量安全問(wèn)題,利用可追溯性可以快速定位到問(wèn)題出現(xiàn)環(huán)節(jié)以及具體責(zé)任人,及時(shí)召回有質(zhì)量問(wèn)題的食品,這也是保證食品安全的有效方法之一[6-8]。我國(guó)在食品溯源領(lǐng)域起步時(shí)間較晚,現(xiàn)有的食品溯源系統(tǒng)對(duì)于溯源信息過(guò)于集中化控制,供應(yīng)鏈上的核心企業(yè)掌握數(shù)據(jù)的控制管理權(quán)限,導(dǎo)致數(shù)據(jù)的安全性、可靠性出現(xiàn)不確定性,且供應(yīng)鏈主體之間存在著信息不對(duì)稱(chēng)性,使得數(shù)據(jù)在流通過(guò)程中是否存在被人為惡意篡改無(wú)法驗(yàn)證,極大增加了監(jiān)管部門(mén)對(duì)食品安全的監(jiān)管難度。
區(qū)塊鏈技術(shù)作為當(dāng)前研究領(lǐng)域中最熱門(mén)的研究方向之一,它是一種分布式賬本技術(shù)[9-10],具有效率高、成本低、安全可靠等特點(diǎn),而在解決溯源系統(tǒng)可信任度方面也被證明具有先天技術(shù)優(yōu)勢(shì)[11-12]。數(shù)據(jù)分布式存儲(chǔ)在區(qū)塊鏈上,若要將數(shù)據(jù)進(jìn)行惡意篡改,則必須同時(shí)攻破區(qū)塊鏈系統(tǒng)超過(guò)51%的節(jié)點(diǎn),而對(duì)于節(jié)點(diǎn)數(shù)量龐大的區(qū)塊鏈系統(tǒng)來(lái)說(shuō)這是不切實(shí)際的,從而保證了數(shù)據(jù)的不可篡改、安全可信。
本文提出的基于區(qū)塊鏈的食品溯源系統(tǒng)設(shè)計(jì)以豬肉為溯源對(duì)象,選擇Ethereum(以太坊)作為開(kāi)發(fā)平臺(tái),將養(yǎng)殖場(chǎng)、屠宰場(chǎng)、物流企業(yè)、銷(xiāo)售單位等作為節(jié)點(diǎn)加入到區(qū)塊鏈網(wǎng)絡(luò)中,對(duì)豬肉供應(yīng)鏈進(jìn)行全流程分析,設(shè)計(jì)了滿(mǎn)足各環(huán)節(jié)節(jié)點(diǎn)的功能模塊。選取軟件架構(gòu)后,結(jié)合相關(guān)的開(kāi)發(fā)工具進(jìn)行系統(tǒng)部署與測(cè)試。消費(fèi)者可利用食品包裝上的溯源碼在此系統(tǒng)上進(jìn)行溯源查詢(xún)。
食品溯源的提出最早起源于歐洲,1996年在英國(guó)爆發(fā)瘋牛病,導(dǎo)致人心惶惶,此外,丹麥的豬肉沙門(mén)式菌污染事件和蘇格蘭大腸桿菌事件也促使歐盟在法律層面建立起食品安全溯源體系。
國(guó)外將區(qū)塊鏈技術(shù)應(yīng)用到食品溯源領(lǐng)域的研究開(kāi)展較早。Bumblauskas等[13]通過(guò)美國(guó)中西部的一家公司將區(qū)塊鏈應(yīng)用到雞蛋的生產(chǎn)到流通全過(guò)程的實(shí)際案例,闡述了如何利用和應(yīng)用區(qū)塊鏈更準(zhǔn)確和透明地通過(guò)全球供應(yīng)鏈運(yùn)輸貨物。Prashar 等[14]提出了一種基于區(qū)塊鏈的解決方案,利用智能合約來(lái)監(jiān)控和管理供應(yīng)鏈網(wǎng)絡(luò)中利益相關(guān)者的所有通信和交易以保障食品安全。George 等[15]提出了一個(gè)基于區(qū)塊鏈和產(chǎn)品標(biāo)識(shí)符的可追溯餐廳原型,以實(shí)現(xiàn)更可靠的食品溯源。Surasak等[16]使用區(qū)塊鏈技術(shù)和物聯(lián)網(wǎng)技術(shù)成功設(shè)計(jì)并開(kāi)發(fā)了泰國(guó)農(nóng)產(chǎn)品可追溯系統(tǒng),使供應(yīng)鏈管理變得更加可靠,且增強(qiáng)了公眾對(duì)食品安全和質(zhì)量控制的意識(shí)。Kamilaris等[17]研究了區(qū)塊鏈技術(shù)在農(nóng)業(yè)和食品供應(yīng)鏈中的影響,指出在建立公開(kāi)透明的食品供應(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)鏈決策提供支持。
近年來(lái),國(guó)內(nèi)區(qū)塊鏈技術(shù)變得炙手可熱,不少企業(yè)、高校以及創(chuàng)業(yè)公司也都開(kāi)始在區(qū)塊鏈技術(shù)上投入研究。禹忠等[19]提出了基于區(qū)塊鏈的醫(yī)藥溯源系統(tǒng),實(shí)現(xiàn)了藥品防偽及溯源信息查詢(xún)功能。董云峰等[20]應(yīng)用區(qū)塊鏈技術(shù)構(gòu)建了糧油食品全供應(yīng)鏈可信追溯模型,保證了存儲(chǔ)數(shù)據(jù)安全可靠、追溯信息精確可信。陶啟等[21]通過(guò)區(qū)塊鏈技術(shù)構(gòu)建大米產(chǎn)業(yè)鏈質(zhì)量信息數(shù)據(jù)庫(kù),采用危害因子的食品風(fēng)險(xiǎn)評(píng)估與安全溯源技術(shù)設(shè)計(jì)了智能管理系統(tǒng),實(shí)現(xiàn)了食品質(zhì)量安全的高效管控。巫光福等[22]提出了交易區(qū)塊鏈(TBC)和監(jiān)管區(qū)塊鏈(RBC)雙鏈結(jié)構(gòu),證明了雙鏈結(jié)構(gòu)具有高效性和可擴(kuò)展性。
食品溯源對(duì)象的選擇不僅要考慮人們的切身利益和強(qiáng)烈需求,還要考慮其是否具有較高的經(jīng)濟(jì)價(jià)值。
民以食為天,食品歷來(lái)都是消費(fèi)者重點(diǎn)關(guān)注對(duì)象,對(duì)食品的安全溯源更是保障消費(fèi)者權(quán)益的重中之重。食品一般可分為農(nóng)墾食品類(lèi)、乳制品類(lèi)和肉類(lèi)。在乳制品領(lǐng)域,食品從生產(chǎn)源頭到銷(xiāo)售終端均由單一企業(yè)承包,因此若要篡改數(shù)據(jù)也必須是企業(yè)內(nèi)部人員進(jìn)行操作,所以應(yīng)對(duì)這種情況通過(guò)立法加大懲處力度更為有效。肉類(lèi)是人們?nèi)粘I钪凶顬槌R?jiàn)的一種食物,近年來(lái)瘦肉精、注水豬肉、病死豬肉等食品安全事件的發(fā)生嚴(yán)重威脅了人們的身體健康,且肉類(lèi)幾乎是人們每天必備的食物,所以人們對(duì)肉類(lèi)的關(guān)注度極大。此外,肉類(lèi)從養(yǎng)殖生產(chǎn)到銷(xiāo)售終端都需要經(jīng)過(guò)養(yǎng)殖場(chǎng)、屠宰加工企業(yè)、物流企業(yè)和銷(xiāo)售企業(yè)的參與,這就讓各個(gè)環(huán)節(jié)的負(fù)責(zé)人都有了修改數(shù)據(jù)的權(quán)利。與肉類(lèi)相比,農(nóng)墾食品類(lèi)除了少數(shù)高端產(chǎn)品有較高經(jīng)濟(jì)價(jià)值外,其余大多數(shù)都價(jià)值低廉,從溯源成本及效益方面考慮而言不適宜對(duì)其實(shí)施溯源。
綜上所述,相對(duì)于乳制品類(lèi)和農(nóng)墾類(lèi)而言,消費(fèi)者在肉類(lèi)食品上的消費(fèi)需求更為強(qiáng)烈,從產(chǎn)品的生產(chǎn)源頭到銷(xiāo)售終端的一系列流程在食品供應(yīng)鏈中也更具代表性。此外,對(duì)肉類(lèi)的溯源具有更高的經(jīng)濟(jì)價(jià)值和現(xiàn)實(shí)意義,因此,本文選取了在市場(chǎng)中最為常見(jiàn)、價(jià)格適中、人們喜愛(ài)且消費(fèi)頻率高的豬肉作為溯源系統(tǒng)的溯源對(duì)象。
養(yǎng)殖場(chǎng)在新生豬仔的養(yǎng)殖過(guò)程中需要對(duì)養(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)信息及入庫(kù)信息等。在豬的屠宰加工環(huán)節(jié)實(shí)現(xiàn)可追溯、透明化,不僅能極大提升消費(fèi)者對(duì)豬肉安全的信任度,還能促進(jìn)豬肉銷(xiāo)售。經(jīng)過(guò)對(duì)生豬屠宰加工的流程分析,其屠宰過(guò)程以及信息記錄環(huán)節(jié)如圖2所示。

圖1 養(yǎng)殖信息記錄流程圖
在豬肉供應(yīng)鏈中,冷鏈物流是必不可少的重要一環(huán),將豬肉置于低溫環(huán)境中進(jìn)行運(yùn)輸,能極大保證豬肉的新鮮度。物流運(yùn)輸商在運(yùn)輸豬肉產(chǎn)品時(shí)需要對(duì)豬肉的出庫(kù)狀態(tài)進(jìn)行記錄,包括出庫(kù)時(shí)間、產(chǎn)品加工批次、包裝方式;對(duì)冷鏈運(yùn)輸信息進(jìn)行記錄,包括運(yùn)輸時(shí)間、車(chē)輛內(nèi)部溫濕度、車(chē)輛信息、操作員信息;抵達(dá)運(yùn)輸目的地時(shí),需要對(duì)抵達(dá)相關(guān)信息進(jìn)行記錄,包括目的地信息、運(yùn)輸批次、驗(yàn)收信息、接收人信息、操作員信息等。其物流信息記錄流程如圖3所示。

圖2 屠宰加工信息記錄流程圖

圖3 物流信息記錄流程圖
銷(xiāo)售環(huán)節(jié)作為豬肉供應(yīng)鏈的末端環(huán)節(jié),其銷(xiāo)售場(chǎng)所主要分為超市、專(zhuān)門(mén)的肉鋪和市場(chǎng)三類(lèi)。豬肉從冷鏈運(yùn)輸車(chē)上卸載下來(lái)后一般不會(huì)直接擺上架子銷(xiāo)售,而是先將其放入冷庫(kù)中存儲(chǔ),待到需要時(shí)再上架銷(xiāo)售。豬肉的存儲(chǔ)對(duì)于環(huán)境的溫濕度有一定的要求,豬肉在冷庫(kù)中短期存儲(chǔ)溫度一般為0 ~5 ℃,溫度過(guò)高或者存儲(chǔ)環(huán)境差都會(huì)引發(fā)豬肉變質(zhì)。因此對(duì)豬肉的存儲(chǔ)環(huán)境數(shù)據(jù)信息進(jìn)行記錄對(duì)于豬肉質(zhì)量安全追溯也是極為重要的。
基于區(qū)塊鏈的豬肉供應(yīng)鏈參與節(jié)點(diǎn)眾多,各個(gè)環(huán)節(jié)節(jié)點(diǎn)數(shù)據(jù)采集量大,若一次性全部上傳到區(qū)塊鏈網(wǎng)絡(luò)中,除了上傳速度緩慢之外,也會(huì)導(dǎo)致運(yùn)行成本大幅提高,對(duì)于每個(gè)環(huán)節(jié)節(jié)點(diǎn)配備的硬件要求也會(huì)較高。所以在本文中,將采用雙存儲(chǔ)機(jī)制,即將各環(huán)節(jié)節(jié)點(diǎn)的采集數(shù)據(jù)信息一同存入?yún)^(qū)塊鏈網(wǎng)絡(luò)和關(guān)系型數(shù)據(jù)庫(kù)中,但區(qū)塊鏈網(wǎng)絡(luò)中存儲(chǔ)的是經(jīng)過(guò)SHA3算法生成的信息摘要,而完整信息則存儲(chǔ)在數(shù)據(jù)庫(kù)中。這不僅提高了區(qū)塊鏈運(yùn)行效率,還解決了區(qū)塊鏈面臨的可擴(kuò)展性問(wèn)題。其雙存儲(chǔ)模型如圖4所示。
經(jīng)過(guò)上述豬肉供應(yīng)鏈的流程分析與存儲(chǔ)機(jī)制設(shè)計(jì)后,設(shè)計(jì)了豬肉溯源方案結(jié)構(gòu)圖,如圖5所示。

圖4 豬肉供應(yīng)鏈數(shù)據(jù)存儲(chǔ)模型
該溯源方案中所存儲(chǔ)的數(shù)據(jù)由區(qū)塊鏈系統(tǒng)和數(shù)據(jù)庫(kù)共同存儲(chǔ),引入關(guān)系型數(shù)據(jù)庫(kù)可以解決區(qū)塊鏈系統(tǒng)可擴(kuò)展性問(wèn)題,在區(qū)塊鏈系統(tǒng)中只存儲(chǔ)數(shù)據(jù)的信息摘要,其完整的數(shù)據(jù)信息則存儲(chǔ)在數(shù)據(jù)庫(kù)當(dāng)中。數(shù)據(jù)庫(kù)由工商管理局進(jìn)行日常維護(hù)工作,而區(qū)塊鏈系統(tǒng)則由養(yǎng)殖場(chǎng)、屠宰場(chǎng)、物流企業(yè)、銷(xiāo)售單位、食藥監(jiān)局、工商管理局共同維護(hù)。此系統(tǒng)設(shè)計(jì)初衷便是為消費(fèi)者提供溯源查詢(xún)服務(wù),為監(jiān)管部門(mén)提供更為便捷高效的監(jiān)管服務(wù),所以還包括監(jiān)管部門(mén)和消費(fèi)者等系統(tǒng)外部用戶(hù)。
養(yǎng)殖場(chǎng)、屠宰場(chǎng)、物流企業(yè)和銷(xiāo)售單位的信息錄入過(guò)程相同,以養(yǎng)殖場(chǎng)為例,養(yǎng)殖場(chǎng)將采集到的數(shù)據(jù)信息打包并同時(shí)錄入養(yǎng)殖場(chǎng)節(jié)點(diǎn)和數(shù)據(jù)庫(kù),養(yǎng)殖場(chǎng)節(jié)點(diǎn)對(duì)錄入的數(shù)據(jù)進(jìn)行SHA3 算法生成信息摘要并發(fā)送到區(qū)塊鏈上,參與節(jié)點(diǎn)達(dá)成共識(shí)后將信息摘要寫(xiě)入?yún)^(qū)塊。此時(shí)區(qū)塊將返回一條哈希值存儲(chǔ)到數(shù)據(jù)庫(kù)中,該哈希值可用于數(shù)據(jù)索引。而工商管理局和食品藥品監(jiān)督管理局對(duì)上述節(jié)點(diǎn)的行為進(jìn)行監(jiān)督。
消費(fèi)者在購(gòu)買(mǎi)食品后,可利用包裝上的編碼在數(shù)據(jù)庫(kù)中進(jìn)行溯源查詢(xún),若對(duì)查詢(xún)到的信息持懷疑態(tài)度,則可通過(guò)獲取區(qū)塊鏈中的信息摘要和數(shù)據(jù)庫(kù)中對(duì)查詢(xún)信息進(jìn)行相同的SHA3 算法生成的信息摘要進(jìn)行對(duì)比來(lái)確定數(shù)據(jù)是否被更改,若信息摘要一致,則數(shù)據(jù)真實(shí)無(wú)更改。當(dāng)發(fā)現(xiàn)查詢(xún)數(shù)據(jù)被更改過(guò),消費(fèi)者可以向工商管理局投訴,投訴信息將會(huì)被作為憑證以同樣的信息錄入方式存儲(chǔ)到數(shù)據(jù)庫(kù)和區(qū)塊鏈系統(tǒng)中。
豬肉供應(yīng)鏈各環(huán)節(jié)所采集的數(shù)據(jù)數(shù)量大,在信息錄入時(shí)可能會(huì)由于人工操作錯(cuò)誤或其他外因干擾造成信息漏錄或錄入錯(cuò)誤問(wèn)題,又因?yàn)樾畔⒁坏╀浫雲(yún)^(qū)塊鏈系統(tǒng)中,將不能對(duì)數(shù)據(jù)進(jìn)行更改,所以在本方案中引入了食品藥品監(jiān)督管理局,豬肉供應(yīng)鏈各環(huán)節(jié)節(jié)點(diǎn)若發(fā)現(xiàn)錄入信息有誤,可以向食品藥品監(jiān)督管理局發(fā)送信息更正請(qǐng)求,經(jīng)食品藥品監(jiān)督管理局審核確認(rèn)無(wú)誤后,可由食藥監(jiān)局節(jié)點(diǎn)將更正信息上傳至區(qū)塊鏈系統(tǒng)中,以此消除因人為操作失誤導(dǎo)致信息錄入錯(cuò)誤而帶來(lái)的巨大損失。
食品質(zhì)量問(wèn)題近年來(lái)頻繁發(fā)生,“注水豬肉”“瘦肉精”等食品安全問(wèn)題層出不窮,嚴(yán)重威脅了人們的身體健康,構(gòu)建一個(gè)可靠高效的問(wèn)題食品召回體系迫在眉睫。本方案基于現(xiàn)實(shí)需求在區(qū)塊鏈溯源系統(tǒng)中創(chuàng)新性地引入了食品召回環(huán)節(jié)。以廣大消費(fèi)者的投訴信息為主要線索來(lái)源,食品藥品監(jiān)督管理局對(duì)投訴信息進(jìn)行分類(lèi)整理,對(duì)食用后可能對(duì)人體造成健康損害的食品按照其嚴(yán)重程度進(jìn)行分級(jí)召回,同時(shí),生產(chǎn)企業(yè)應(yīng)立即停止生產(chǎn)不安全食品。以豬肉食品為例,當(dāng)消費(fèi)者將購(gòu)買(mǎi)到的可能損害身體健康的問(wèn)題豬肉向食品藥品監(jiān)督管理局進(jìn)行投訴后,食品藥品監(jiān)督管理局審核確認(rèn)該豬肉存在損害他人健康的可能性,將依法對(duì)該批次豬肉進(jìn)行召回。根據(jù)消費(fèi)者投訴信息中提供的編號(hào),食品藥品監(jiān)督管理局可在區(qū)塊鏈系統(tǒng)中對(duì)其進(jìn)行追溯,從而獲取問(wèn)題豬肉的所有流程信息,其包括豬肉的來(lái)源地養(yǎng)殖場(chǎng)信息、屠宰加工過(guò)程的屠宰場(chǎng)信息、運(yùn)輸豬肉的運(yùn)輸企業(yè)信息、銷(xiāo)售豬肉的銷(xiāo)售單位信息,根據(jù)追溯信息定位相關(guān)責(zé)任人。對(duì)養(yǎng)殖場(chǎng)責(zé)令其停止輸送生豬,且在所給期限內(nèi)召回問(wèn)題豬肉并做無(wú)害化或銷(xiāo)毀處理;對(duì)屠宰場(chǎng)責(zé)令其停止屠宰加工該養(yǎng)殖場(chǎng)輸送的生豬,對(duì)已屠宰未輸送的豬肉進(jìn)行嚴(yán)格檢疫,檢疫不合格可做無(wú)害化處理或銷(xiāo)毀;對(duì)銷(xiāo)售單位責(zé)令其停止銷(xiāo)售并封存未售出的問(wèn)題豬肉,在經(jīng)營(yíng)場(chǎng)所張貼召回公告以配合召回工作開(kāi)展。此外,食品藥品監(jiān)督管理局會(huì)將問(wèn)題豬肉的批次、產(chǎn)地、召回原因等相關(guān)信息及時(shí)發(fā)布在區(qū)塊鏈系統(tǒng)上,消費(fèi)者可以通過(guò)區(qū)塊鏈系統(tǒng)查看食品召回相關(guān)信息,掌握食品召回進(jìn)度。

圖5 溯源方案結(jié)構(gòu)圖
基于區(qū)塊鏈的豬肉溯源方案設(shè)計(jì),保證了數(shù)據(jù)的不可篡改,去除了中心化結(jié)構(gòu),對(duì)信息流的可追溯性實(shí)現(xiàn)了快速查找、精確定位功能。根據(jù)現(xiàn)實(shí)需求有針對(duì)性地引入了食品藥品監(jiān)督管理局和工商管理局。食品藥品監(jiān)督管理局不僅可以處理供應(yīng)鏈各環(huán)節(jié)的信息錄入錯(cuò)誤問(wèn)題,提供數(shù)據(jù)更正需求,還具備對(duì)有可能造成人體健康損害的問(wèn)題食品執(zhí)行召回功能。工商管理局負(fù)責(zé)對(duì)消費(fèi)者的投訴進(jìn)行受理,對(duì)涉及可能損害消費(fèi)者身體健康的投訴信息將會(huì)及時(shí)分享給食品藥品監(jiān)督管理局,以便及時(shí)開(kāi)展食品召回工作。

圖6 溯源體系層次結(jié)構(gòu)圖
如圖6為基于區(qū)塊鏈的溯源體系層次結(jié)構(gòu)圖,體系結(jié)構(gòu)由下而上主要分為六層,即作業(yè)層、數(shù)據(jù)采集層、數(shù)據(jù)層、共識(shí)及網(wǎng)絡(luò)層、表示層、用戶(hù)層。最底層是作業(yè)層,指的是在養(yǎng)殖環(huán)節(jié)、屠宰加工環(huán)節(jié)、物流運(yùn)輸環(huán)節(jié)以及銷(xiāo)售環(huán)節(jié)需要進(jìn)行采集數(shù)據(jù)的工作,它是整個(gè)追溯數(shù)據(jù)的來(lái)源。數(shù)據(jù)采集層指的是利用射頻裝置、信息采集終端和應(yīng)用傳感器對(duì)作業(yè)層數(shù)據(jù)進(jìn)行采集、傳輸,且能夠提高豬肉供應(yīng)鏈整體效率。數(shù)據(jù)層是指數(shù)據(jù)采集層中的數(shù)據(jù)傳輸?shù)綌?shù)據(jù)層進(jìn)行存儲(chǔ),數(shù)據(jù)層采用的是關(guān)系型數(shù)據(jù)庫(kù)和區(qū)塊鏈雙存儲(chǔ)機(jī)制,采集數(shù)據(jù)將同時(shí)錄入關(guān)系型數(shù)據(jù)庫(kù)和對(duì)應(yīng)節(jié)點(diǎn),不同的是,對(duì)應(yīng)節(jié)點(diǎn)將對(duì)錄入的數(shù)據(jù)信息做摘要處理,區(qū)塊鏈網(wǎng)絡(luò)中只存儲(chǔ)處理后的信息摘要,完整數(shù)據(jù)和經(jīng)過(guò)摘要處理后返回的哈希值則由關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)。共識(shí)及網(wǎng)絡(luò)層是指包括P2P 網(wǎng)絡(luò)、驗(yàn)證機(jī)制、傳播機(jī)制、PoW和PoS共識(shí)機(jī)制在內(nèi)的區(qū)塊鏈的關(guān)鍵技術(shù)。表示層是指采用B/S架構(gòu)和JSP技術(shù)將數(shù)據(jù)按用戶(hù)需求進(jìn)行展示。最上層為用戶(hù)層,包括養(yǎng)殖者、加工者、運(yùn)輸者、銷(xiāo)售者、監(jiān)管部門(mén)和消費(fèi)者,養(yǎng)殖者、加工者、運(yùn)輸者和銷(xiāo)售者負(fù)責(zé)信息錄入,監(jiān)管部門(mén)和消費(fèi)者可根據(jù)需求在系統(tǒng)中查詢(xún)產(chǎn)品相關(guān)信息。
溯源系統(tǒng)的設(shè)計(jì)主要就是為了實(shí)現(xiàn)各個(gè)環(huán)節(jié)信息的可追溯功能,按照各環(huán)節(jié)的各自需求設(shè)計(jì)滿(mǎn)足要求的業(yè)務(wù)功能模塊。溯源系統(tǒng)的業(yè)務(wù)功能模塊設(shè)計(jì)如圖7所示,主要分為六大模塊,即養(yǎng)殖模塊、屠宰加工模塊、物流運(yùn)輸模塊、銷(xiāo)售模塊、監(jiān)管部門(mén)模塊、消費(fèi)者模塊。每個(gè)模塊都具備相應(yīng)的業(yè)務(wù)功能,下面對(duì)各模塊進(jìn)行簡(jiǎn)要闡述。
養(yǎng)殖模塊主要是對(duì)豬只養(yǎng)殖過(guò)程中產(chǎn)生的信息進(jìn)行管理,包括信息錄入和查詢(xún)功能,具體為以豬耳標(biāo)編號(hào)為主鍵對(duì)養(yǎng)殖場(chǎng)編號(hào)、養(yǎng)殖場(chǎng)地址、養(yǎng)殖場(chǎng)負(fù)責(zé)人、環(huán)境衛(wèi)生狀況、豬只種類(lèi)、豬只性別、入欄時(shí)間、喂食飼料種類(lèi)、疫苗接種種類(lèi)、疫苗接種時(shí)間、操作員編號(hào)等信息進(jìn)行錄入。
屠宰加工模塊主要是對(duì)豬只的宰前檢疫信息和宰后加工的信息進(jìn)行管理,包括信息錄入和查詢(xún)功能,具體為豬只編號(hào)、健康狀況、檢疫日期、豬肉批次、屠宰日期、排酸時(shí)間、環(huán)境溫濕度、包裝編號(hào)、包裝材料、包裝時(shí)間、肉的部位、操作員編號(hào)等信息進(jìn)行錄入。
物流運(yùn)輸模塊主要是對(duì)豬肉在運(yùn)輸轉(zhuǎn)移過(guò)程中的信息進(jìn)行管理,包括信息錄入和查詢(xún)功能,具體為物流訂單編號(hào)、企業(yè)名稱(chēng)、企業(yè)地址、企業(yè)負(fù)責(zé)人、運(yùn)輸車(chē)牌號(hào)、運(yùn)輸時(shí)間、運(yùn)輸起始地、運(yùn)輸目的地、車(chē)廂溫濕度、司機(jī)姓名、操作員編號(hào)等信息進(jìn)行錄入。
銷(xiāo)售模塊主要是對(duì)豬肉的存儲(chǔ)信息和銷(xiāo)售信息進(jìn)行管理,包括信息錄入和查詢(xún)功能,具體為銷(xiāo)售信息編號(hào)、企業(yè)名稱(chēng)、企業(yè)地址、入庫(kù)時(shí)間、庫(kù)內(nèi)溫濕度、銷(xiāo)售地點(diǎn)、上架時(shí)間、操作員編號(hào)等信息進(jìn)行錄入。
監(jiān)管部門(mén)模塊主要是對(duì)基礎(chǔ)信息進(jìn)行登記、查詢(xún)及驗(yàn)證,各環(huán)節(jié)節(jié)點(diǎn)若因失誤造成錄入信息有誤,可填寫(xiě)信息變更申請(qǐng)并提交監(jiān)管部門(mén),監(jiān)管部門(mén)提供信息變更服務(wù),且對(duì)具有危害身體健康的食品監(jiān)管部門(mén)擁有食品召回功能。

圖7 溯源系統(tǒng)功能模塊圖
消費(fèi)者模塊主要是擁有豬肉信息全流程溯源查詢(xún)及驗(yàn)證功能,購(gòu)買(mǎi)產(chǎn)品時(shí),消費(fèi)者可以按照產(chǎn)品上的溯源碼在溯源系統(tǒng)上查詢(xún)信息,進(jìn)而挑選自己中意的產(chǎn)品購(gòu)買(mǎi)。若購(gòu)買(mǎi)的豬肉產(chǎn)品發(fā)現(xiàn)有質(zhì)量問(wèn)題,可通過(guò)溯源系統(tǒng)進(jìn)行投訴,反映相關(guān)問(wèn)題,監(jiān)管部門(mén)在收到投訴信息后將及時(shí)進(jìn)行處理,對(duì)相關(guān)責(zé)任人按流程進(jìn)行追查。
5.2.1 養(yǎng)殖階段數(shù)據(jù)庫(kù)設(shè)計(jì)
養(yǎng)殖階段需要采集大量的數(shù)據(jù),因此對(duì)養(yǎng)殖階段的數(shù)據(jù)庫(kù)設(shè)計(jì)如表1所示,該數(shù)據(jù)表包含了主要的采集信息。

表1 養(yǎng)殖信息表
5.2.2 屠宰加工階段數(shù)據(jù)庫(kù)設(shè)計(jì)
屠宰加工階段是豬肉供應(yīng)鏈中的重要一環(huán),需要記錄的信息較多,該階段的數(shù)據(jù)庫(kù)設(shè)計(jì)如表2 所示,該數(shù)據(jù)表包含了主要的記錄信息。

表2 屠宰加工信息表
5.2.3 物流運(yùn)輸階段數(shù)據(jù)庫(kù)設(shè)計(jì)
物流運(yùn)輸是將豬只或豬肉運(yùn)送到指定目的地的過(guò)程,該階段數(shù)據(jù)庫(kù)設(shè)計(jì)如表3 所示,該表包含了運(yùn)輸過(guò)程中主要的記錄信息。
5.2.4 銷(xiāo)售階段數(shù)據(jù)庫(kù)設(shè)計(jì)
銷(xiāo)售階段主要是對(duì)豬肉存儲(chǔ)情況和銷(xiāo)售情況進(jìn)行記錄,該階段的數(shù)據(jù)庫(kù)設(shè)計(jì)如表4 所示,此數(shù)據(jù)表包含了銷(xiāo)售階段的主要記錄數(shù)據(jù)。

表3 物流運(yùn)輸信息表

表4 銷(xiāo)售信息表
在基于區(qū)塊鏈?zhǔn)秦i肉溯源系統(tǒng)設(shè)計(jì)中,需要對(duì)豬肉產(chǎn)品的溯源編碼進(jìn)行設(shè)計(jì),以達(dá)到可追溯目的。按照《食品可追溯性通用規(guī)范》中的規(guī)定,豬只必須遵循一畜一標(biāo),每頭豬的個(gè)體編號(hào)都作為其唯一的身份標(biāo)識(shí),且豬肉產(chǎn)品也要具備唯一標(biāo)識(shí)的溯源編碼。溯源編碼的設(shè)計(jì)以GSI系統(tǒng)編碼為基礎(chǔ),并對(duì)豬肉從單個(gè)實(shí)體到分割后的多個(gè)實(shí)體進(jìn)行充分考慮,采取不一樣的編碼規(guī)則,實(shí)行一個(gè)單元對(duì)應(yīng)唯一編碼的形式,對(duì)豬肉供應(yīng)鏈的整個(gè)流程進(jìn)行精準(zhǔn)溯源。溯源編碼的設(shè)計(jì)使用UCC/EAN-128 為載體作為GTIN 及屬性信息代碼標(biāo)記肉塊。對(duì)豬只進(jìn)行編號(hào)時(shí)按照以下編碼規(guī)則:
耳標(biāo)編號(hào)設(shè)計(jì)為10位,其中養(yǎng)殖場(chǎng)的編號(hào)占前3位,豬的性別放在第4位,年號(hào)放在第5位和第6位,豬只在養(yǎng)殖場(chǎng)中的序號(hào)則放在最后3 位。豬胴體編號(hào)設(shè)計(jì)為11位,只需在耳標(biāo)編碼的基礎(chǔ)上往后再加上1位標(biāo)記為豬胴體的左邊或者右邊。肉塊編碼設(shè)計(jì)為14 位,只需在胴體編碼的基礎(chǔ)上往后再加上3 位標(biāo)記為豬的具體部位和序號(hào)。銷(xiāo)售狀態(tài)中的豬肉編碼則是在國(guó)際商品標(biāo)識(shí)碼的基礎(chǔ)上再加上肉塊編碼。
本文設(shè)計(jì)并實(shí)現(xiàn)一種基于區(qū)塊鏈的食品溯源方案,并按照方案的設(shè)計(jì)選擇Ethereum(以太坊)平臺(tái)進(jìn)行區(qū)塊鏈開(kāi)發(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)安裝錯(cuò)誤則需要在命令行輸入setexecutionpolicy remotesigned,然后再輸入y 即可解決。接著在命令行輸入npm config get prefix,得到C:UsersAdministratorAppdateRoaming pm,再打開(kāi)電腦屬性界面,在高級(jí)系統(tǒng)設(shè)置里點(diǎn)擊環(huán)境變量找到path 編輯,點(diǎn)擊新建后復(fù)制C:UsersAdministratorAppdateRoaming pm,將其上移到目錄前三位即可。基本環(huán)境搭建好之后還需安裝Metamask以及Ganache。
一切準(zhǔn)備就緒之后便可以在命令行輸入相應(yīng)的命令啟動(dòng)溯源系統(tǒng),啟動(dòng)過(guò)程分為三步。第一步,在命令行輸入truffle compile進(jìn)行合約編譯,如圖8所示。

圖8 合約編譯過(guò)程圖
第二步,在命令行輸入truffle migrate 進(jìn)行合約部署,如圖9所示。

圖9 合約部署過(guò)程圖
第三步,在命令行輸入npm run dev將Web服務(wù)器啟動(dòng),如圖10所示。

圖10 Web服務(wù)器啟動(dòng)過(guò)程圖
6.2.1 生產(chǎn)加工信息錄入
該功能可從對(duì)應(yīng)的環(huán)節(jié)操作員角色登入,如圖11所示,為豬肉生產(chǎn)加工信息錄入的其中一個(gè)環(huán)節(jié),該環(huán)節(jié)為豬只的原始信息錄入。

圖11 豬只信息登記
6.2.2 數(shù)據(jù)變更申請(qǐng)信息錄入
如圖12所示,若因操作失誤導(dǎo)致信息錄入錯(cuò)誤,可在此頁(yè)面上填寫(xiě)數(shù)據(jù)變更申請(qǐng),提交后由監(jiān)管部門(mén)進(jìn)行審核和重新錄入。
6.2.3 消費(fèi)者投訴信息錄入
如圖13 所示,消費(fèi)者若發(fā)現(xiàn)所購(gòu)買(mǎi)的食品有質(zhì)量問(wèn)題,可通過(guò)消費(fèi)者投訴頁(yè)面進(jìn)行投訴,投訴信息提交后將被錄入平臺(tái),由監(jiān)管部門(mén)接收并處理。其查詢(xún)結(jié)果如圖14所示。
6.2.4 食品召回信息錄入

圖12 數(shù)據(jù)變更信息登記

圖13 投訴信息登記
如圖15 所示,監(jiān)管部門(mén)若發(fā)現(xiàn)食品有危害身體健康風(fēng)險(xiǎn)的,可依法進(jìn)行食品召回,食品召回信息也將會(huì)及時(shí)發(fā)布,任何人都可看到。其查詢(xún)結(jié)果如圖16所示。

圖14 查詢(xún)結(jié)果

圖15 召回信息登記

圖16 查詢(xún)結(jié)果
隨著公眾對(duì)食品安全的關(guān)注度越來(lái)越高,國(guó)內(nèi)學(xué)者在食品溯源領(lǐng)域也進(jìn)行了較多研究。林盛業(yè)等[23]將無(wú)線傳感網(wǎng)、二維條碼以及NET 等技術(shù)相結(jié)合設(shè)計(jì)了牛肉溯源系統(tǒng),實(shí)現(xiàn)了環(huán)境溫濕度的自動(dòng)采集與上傳,但采集數(shù)據(jù)傳輸?shù)奖镜財(cái)?shù)據(jù)庫(kù)中,存在人為篡改的可能性。凌菁等[24]應(yīng)用NFC 技術(shù)和物聯(lián)網(wǎng)技術(shù)設(shè)計(jì)了稻米溯源系統(tǒng),實(shí)現(xiàn)了對(duì)稻米生產(chǎn)流通各環(huán)節(jié)的監(jiān)控追蹤,消費(fèi)者可持智能手機(jī)等設(shè)備查詢(xún)溯源信息,但當(dāng)出現(xiàn)質(zhì)量問(wèn)題時(shí),由于供應(yīng)鏈間存在信息孤島問(wèn)題,難以追責(zé)到具體責(zé)任人。呂芙蓉等[25]提出了基于區(qū)塊鏈的農(nóng)產(chǎn)品追溯體系設(shè)想,但缺乏系統(tǒng)功能設(shè)計(jì),成果還處于技術(shù)解釋層面。劉宗妹[26]將區(qū)塊鏈和RFID相結(jié)合構(gòu)建了食品溯源系統(tǒng),此系統(tǒng)在Fabric 上進(jìn)行開(kāi)發(fā),消費(fèi)者通過(guò)掃碼便可獲取食品溯源信息,出現(xiàn)問(wèn)題食品也能實(shí)現(xiàn)快速定位責(zé)任人,但該系統(tǒng)缺少必要的消費(fèi)者投訴機(jī)制和監(jiān)管部門(mén)執(zhí)行的食品安全召回機(jī)制,一旦出現(xiàn)可能危害身體健康的問(wèn)題產(chǎn)品,將無(wú)法及時(shí)阻止其繼續(xù)流入市場(chǎng)。柳祺祺等[27]構(gòu)建了基于Fabric的農(nóng)產(chǎn)品溯源系統(tǒng),實(shí)現(xiàn)了生產(chǎn)、流通、監(jiān)管、消費(fèi)各方之間信息共享和多方共贏。但由于數(shù)據(jù)一經(jīng)上鏈無(wú)法更改,故此系統(tǒng)忽略了各環(huán)節(jié)節(jié)點(diǎn)對(duì)錄入數(shù)據(jù)更正的需求。
綜上所述,本文基于區(qū)塊鏈的食品溯源系統(tǒng)設(shè)計(jì)具備以下優(yōu)勢(shì):一是多方參與主體信任背書(shū),區(qū)塊鏈去中心化可提高用戶(hù)信任度。二是區(qū)塊鏈不可篡改、時(shí)間戳等特性可在信息溯源中實(shí)現(xiàn)有效追責(zé)。三是增加了必要的投訴功能和食品召回功能。四是為因失誤導(dǎo)致信息錄入錯(cuò)誤節(jié)點(diǎn)提供數(shù)據(jù)更正申請(qǐng)功能,由監(jiān)管部門(mén)進(jìn)行審核和錄入。
結(jié)合上文內(nèi)容,將“瘦肉精”這一重大食品安全事件進(jìn)行案例分析,進(jìn)而對(duì)本文溯源系統(tǒng)的有效性進(jìn)行驗(yàn)證。
7.2.1 案例簡(jiǎn)介
2011 年,央視3 ?15 特別行動(dòng)曝光了雙匯集團(tuán)旗下公司濟(jì)源雙匯食品有限公司流入了含有“瘦肉精”的生豬。該事件一經(jīng)曝光便產(chǎn)生了重大影響,消費(fèi)者對(duì)食品安全的信任度大大降低。
濟(jì)源雙匯食品有限公司主要是對(duì)生豬進(jìn)行屠宰加工,處于產(chǎn)品供應(yīng)鏈中游,需要與供應(yīng)鏈的上游供應(yīng)商對(duì)接。雙匯集團(tuán)方面表示,“瘦肉精”事件的根源在于生豬的養(yǎng)殖環(huán)節(jié)發(fā)生問(wèn)題,而問(wèn)題生豬成功流入企業(yè)也表明了企業(yè)在流通環(huán)節(jié)存在把關(guān)不嚴(yán)現(xiàn)象。新聞上也有觀點(diǎn)認(rèn)為企業(yè)內(nèi)部可能存在以權(quán)謀私的問(wèn)題。因此,為解決上述問(wèn)題,本文設(shè)計(jì)了基于區(qū)塊鏈的食品溯源系統(tǒng)。
7.2.2 改進(jìn)效果
在養(yǎng)殖環(huán)節(jié),養(yǎng)殖場(chǎng)節(jié)點(diǎn)在錄入信息時(shí),誠(chéng)實(shí)錄入含有瘦肉精等違規(guī)飼料信息后,系統(tǒng)會(huì)依據(jù)事先制定好的標(biāo)準(zhǔn)規(guī)則對(duì)錄入信息進(jìn)行檢查,若查出不符合標(biāo)準(zhǔn)規(guī)則,則判定信息無(wú)效不能錄入系統(tǒng);但養(yǎng)殖場(chǎng)若不誠(chéng)實(shí),在錄入飼料信息中隱瞞了含有瘦肉精成分信息,并經(jīng)私鑰數(shù)字簽名后順利錄入系統(tǒng)。當(dāng)監(jiān)管部門(mén)對(duì)含有瘦肉精的生豬進(jìn)行抽檢時(shí),將被查出含有瘦肉精成分問(wèn)題,監(jiān)管部門(mén)在阻斷問(wèn)題產(chǎn)品進(jìn)入消費(fèi)市場(chǎng)的同時(shí)也將對(duì)養(yǎng)殖場(chǎng)依法進(jìn)行懲處。若問(wèn)題生豬未被抽檢,使得其順利進(jìn)入下一環(huán)節(jié)與雙匯公司對(duì)接,養(yǎng)殖企業(yè)將向雙匯公司交付問(wèn)題生豬并發(fā)送電子協(xié)議。
在接收交付的生豬時(shí),雙匯公司將對(duì)生豬進(jìn)行檢驗(yàn),檢驗(yàn)合格后發(fā)送電子協(xié)議給養(yǎng)殖企業(yè),該協(xié)議上附有雙匯公司的數(shù)字簽名,協(xié)議過(guò)程經(jīng)系統(tǒng)驗(yàn)證通過(guò)并記錄后,將通過(guò)智能合約技術(shù)授權(quán)雙匯公司對(duì)產(chǎn)品相關(guān)數(shù)據(jù)進(jìn)行維護(hù)。若檢測(cè)中發(fā)現(xiàn)其結(jié)果與養(yǎng)殖節(jié)點(diǎn)錄入信息不符,檢測(cè)人員將從當(dāng)前節(jié)點(diǎn)把檢測(cè)結(jié)果錄入到系統(tǒng)中,系統(tǒng)會(huì)及時(shí)將問(wèn)題反饋給監(jiān)管部門(mén),等同于一次快速舉報(bào)。
若在檢驗(yàn)過(guò)程中存在疏漏,導(dǎo)致問(wèn)題產(chǎn)品流入市場(chǎng),經(jīng)消費(fèi)者舉報(bào)或監(jiān)管部門(mén)在市場(chǎng)抽檢中查出,雙匯公司將承擔(dān)主要責(zé)任,同時(shí)可在溯源系統(tǒng)中追蹤到雙匯公司的上游供應(yīng)商,其隱瞞行為也將受到應(yīng)有的懲處,由該供應(yīng)商提供的產(chǎn)品也會(huì)及時(shí)進(jìn)行召回,防止問(wèn)題產(chǎn)品繼續(xù)在市場(chǎng)上流通。
綜上所述,在食品溯源中應(yīng)用區(qū)塊鏈技術(shù)能有效改善食品安全現(xiàn)狀,在實(shí)現(xiàn)產(chǎn)品溯源的同時(shí)也能起到食品安全危機(jī)預(yù)警作用,為消費(fèi)者飲食安全提供強(qiáng)有力的保障。
本文從食品安全角度出發(fā),選取了在市場(chǎng)中最為常見(jiàn)、價(jià)格適中、人們喜愛(ài)的豬肉為溯源系統(tǒng)的溯源對(duì)象,設(shè)計(jì)了基于區(qū)塊鏈的食品溯源系統(tǒng),創(chuàng)新性地引入了食品藥品監(jiān)督管理局節(jié)點(diǎn)對(duì)各環(huán)節(jié)出現(xiàn)信息錄入錯(cuò)誤的節(jié)點(diǎn)提供數(shù)據(jù)變更服務(wù)。此外,對(duì)發(fā)現(xiàn)可能危害身體健康的食品可依法進(jìn)行食品召回,防止問(wèn)題食品進(jìn)一步流入市場(chǎng)。消費(fèi)者也可利用食品包裝上的溯源碼對(duì)食品進(jìn)行全流程溯源查詢(xún),使食品買(mǎi)得放心,吃得安心。