李 琳,陳甲偉
(1.北京聯合大學,北京100101;2.北方工業大學,北京100144)
蔬菜是重要的日常食物之一,隨著人們生活質量的提升,已經從過去的溫飽問題轉為質量問題,人們追求高質量、安全的生活方式,因此蔬菜食品的安全問題愈來愈重要,建立蔬菜的溯源系統是一種保證蔬菜食品安全的模式。目前國內對蔬菜食品信息溯源系統的研究也越來越成熟。王林生提出基于Android和QR碼的有機蔬菜溯源系統來避免蔬菜食品安全信息不對稱的問題;閻世江實現對蔬菜供應鏈信息的溯源并提出基于二維碼以及web界面實現對信息的展示;趙璐瑩提出基于RFⅠD實現對蔬菜食品信息的追溯。綜上所述,蔬菜食品溯源系統都是中心化的,中心化系統易導致信息被篡改、偽造、刪除,區塊鏈是一種去中心化數據庫,可以避免數據被非法刪除、偽造、篡改,因此本文提出基于區塊鏈實現對蔬菜食品信息的溯源。
本文設計的蔬菜食品追溯系統的作用是對蔬菜的選種環節、種植環節、用藥環節、收獲環節、運輸環節等環節信息實現采集,并對蔬菜食品的生長環境信息進行采集,保證信息的完整性,實現對蔬菜食品信息的溯源。為了保證信息的安全性,本文利用區塊鏈技術去中心化的特點實現對采集數據的安全存儲,并且利用區塊鏈的分布式存儲模式實現多節點數據傳輸、同步存儲,有效防止某個節點數據被偽造,避免出現蔬菜食品安全問題時責任難以劃分、不能快速定位的情況,提高了追溯蔬菜食品信息的效率。根據中國國情,建立適合中國蔬菜食品的溯源系統:便于監管部門追責;參與企業信息透明化;消費者有查詢產品溯源信息的權利,實現對蔬菜食品從種植環節到出售環節的所有信息的溯源,強化了監管部門的能力與手段,提高了蔬菜食品的安全指數,保障了消費者的權益與健康。
目前國內研究的追溯系統的參與企業在地理上呈分布式存在,并且數量較多,很難對參與企業的多源異構數據進行統一化、標準化的集合存儲,因此難以實現參與企業之間溯源信息的共享。區塊鏈技術是一種新興技術,相較于目前傳統的存儲方式,區塊鏈是一種去中心化且分布式存儲的數據庫,利用其分布式存儲的特點,實現異構多源數據的融合。
由于公有鏈、聯盟鏈和私有鏈的特點各不相同,因此適用于不同的行業溯源系統。私有鏈、聯盟鏈、公有鏈特點如表1所示。由表1可知,聯盟鏈相較于其他兩種,聯盟鏈的中心化程度低、追溯效率高,并且符合中國的國情,因此本文采用聯盟鏈中的Hyperledger Fabric技術實現對蔬菜食品信息的溯源,如圖1所示。蔬菜食品溯源系統主體框架包括了應用層、合約層、共識層、網絡層、數據層以及采集層。

表1 私有鏈、聯盟鏈、公有鏈特點表

圖1 溯源系統主體框架圖
采集層:蔬菜食品包括種植環節、物流環節、加工環節。種植環節包括種子名稱、肥料名稱、藥物名稱等信息;物流環節包括裝車地點、物流時間、物流人員、卸貨地點等信息;加工環節包括加工人員、加工時間、加工地點等信息。此外對于數據的安全存儲設計,本文利用區塊鏈技術保證上鏈數據的安全性、可靠性、完整性、真實性,避免了中心化系統數據被篡改、偽造、刪除,解決了多節點數據和信息整合困難的問題,但是為了保證數據來源的真實性,本文采用二維碼技術、物聯網技術進行數據的采集,確保數據來源的真實性。
數據層:數據層包括區塊的數據結構,區塊由區塊體和區塊頭組成,區塊頭包含版本號、父區塊哈希值、默克爾根、時間戳、難度值、隨機數,區塊體包括交易數量和交易數據。然后將區塊進行鏈接組成區塊鏈,實現數據的存儲。
網絡層:網絡層包括身份的認證、節點接入的規則以及區塊鏈存儲信息通過網絡傳輸的規則。
共識層:鏈上各節點對上鏈信息進行算法驗證,保證信息同步存儲在鏈上的其他節點。目前主要包括如下共識算法,如實用拜占庭容錯算法(practicalbyzantine fault tolerance,PBFT)、工作證明(Proof of Work,POW)、股權證明(Proof of Stake,Pos)等。
合約層:主要包括各類算法、腳本或智能合約,當區塊鏈上的節點進行的操作滿足預先設定好的規則或條件時,智能合約自動執行,因此合約層是區塊鏈技術去中心化以及信任機制的基礎。
應用層:基于區塊鏈技術的蔬菜食品溯源系統的Android終端應用軟件,利用Android Studio進行開發,主要包括數據采集、查詢、展示等功能,實現對蔬菜視頻信息的追溯。
本文提出的蔬菜信息溯源系統主要包括如下環節:種植環節、配送環節、加工環節,各環節采集的溯源信息不同。蔬菜食品不同于單體牛、羊等畜類產品,不能進行單體識別,所以本文對同一種植期和同一種植地的蔬菜食品進行編碼標識,編碼格式為種植時間加場地序號。
由于蔬菜食品的參與組織多,因此需要在區塊鏈上對這些組織進行身份驗證,再授權加入區塊鏈。種植機構將蔬菜食品的種植信息進行上鏈,如種子名稱、肥料名稱、藥物名稱等信息。其他節點利用算法對上鏈的溯源信息進行算法驗證。當算法驗證成功,各節點對上鏈的信息進行存儲,實現數據在鏈上的多節點存儲,便于追溯查詢,避免數據被篡改。
以A種植基地為例,種植機構將A基地的蔬菜從種子培育成蔬菜,記錄種植環節的選種信息、施肥信息、用藥信息,當蔬菜成熟收獲時,為該批次蔬菜設定唯一編碼,再將種植環節的信息進行上鏈存儲,其他節點收到上鏈信息后,通過共識算法驗證,完成分布式賬本信息同步存儲。隨后對A基地該批次蔬菜食品的運輸環節的信息進行上鏈存儲,其他節點收到上鏈信息后,通過共識算法驗證,完成運輸信息分布式賬本同步存儲,再對A基地該批次蔬菜食品的加工環節的信息進行上鏈存儲,其他節點收到上鏈信息后,通過共識算法驗證,完成加工信息分布式賬本同步存儲,通過對如上3個環節信息的采集,將A基地該編碼標識的批次蔬菜產品完整溯源信息存儲在區塊鏈,如圖2所示。消費者可以通過編碼獲取該批次食品的所有信息,保證信息透明化,也保障了消費者的權益。此外,當蔬菜食品出現安全問題時,監管部門通過查詢溯源信息,可以快速找到責任主體并追責、定責。

圖2 蔬菜食品追溯系統
將基地編號、時間、批次號進行組合生成蔬菜食品的編碼,如01號基地,在2020-10-30種植了一批蔬菜,當該蔬菜成熟時進行運輸、銷售,因此該蔬菜食品對應編碼為0120201030。并采用二維碼作為載體對編碼進行存儲呈現,如圖3所示。

圖3 溯源編碼二維碼圖
基于區塊鏈的蔬菜食品追溯系統的應用終端是基于Android studio開發的,終端軟件的載體設備要求:Android系統4.0以上、運行內存4 G以上、16 G存儲等主要要求。
區塊鏈部署在4臺linux系統的虛擬機上,在局域網下互相連接。其中1個為order節點,3個為peer節點。虛擬機的環境設置為:1個CPU,2 GB運行內存和25 GB存儲內存,保證hyperledger fabric能夠正常運行。實現溯源數據的上鏈,避免數據被非法篡改、刪除、偽造,實現對數據的溯源。
本文完成溯源系統環境的搭建以及軟件的開發,如圖4所示,利用開發的軟件實現對蔬菜食品溯源信息的采集、存儲,實現了多源異構數據的融合,并利用本文設計的溯源二維碼完成蔬菜食品溯源信息的查詢、展示。圖4(a)為信息查詢界面,消費者可選擇輸入追溯碼或掃描追溯二維碼實現對蔬菜食品信息的查詢;圖4(b)為各參與機構獲得監管部門授權后,可通過該溯源系統對對應階段信息進行上鏈存儲;圖4(c)為蔬菜信息展示界面,包括蔬菜的種子、施肥、用藥等信息,還包含物流環節、加工環節等信息。

圖4 溯源軟件
基于區塊鏈技術建立的蔬菜食品追溯系統,相比目前傳統的中心化系統能夠防止數據被非法篡改、偽造、刪除,并且加入區塊鏈上的組織能夠有效解決多源數據問題,打破傳統企業數據不連通常規,實現數據的互通共用,提高信息追溯的效率。