巫光福 ,王蒙蒙
(江西理工大學 信息工程學院,江西 贛州 341000)
生鮮農產品從采摘下來,并最終到達消費者手里,需要經過包裝、加工、冷鏈、物流運輸等多個環節[1]。然而,在這些環節中極易出現氧化腐蝕的現象,不僅容易造成大量的浪費,而且容易發生食品安全事故[2]。因此,對生鮮農產品供應鏈要求嚴格,不僅要求生鮮農產品本身的品質好,而且要對生鮮農產品供應鏈系統進行統籌規劃和優化整個鏈條功能,才能保證優質的生鮮農產品到達消費者手里[3]。
目前,已有的生鮮農產品供應鏈已經初具規模,能夠完成運輸、倉儲等基本的任務。但是存在不同參與者間信任度不夠、信息不對稱和產品安全無法保證等問題。這些問題會導致供應鏈中不同環節之間的協調效率低下,影響產品的生產和銷售。為了解決這些問題,可以通過建立信任機制、建立信息共享平臺等措施來實現生鮮農產品全產業鏈溯源,以提高整個供應鏈的運作效率和產品的質量[4]。
現有的生鮮農產品供應鏈溯源系統通常使用中心化架構和傳統的數據庫記錄交易和企業間的交換數據,這會產生很大的弊端。首先,中心化系統只有一個可信賴的控制中心,面對大量的分級供應商,把大量的存儲和管理負擔放在一個中央組織上,存在中心化、溯源信息容易被篡改的問題。此外,每個公司為了信息安全和保守商業機密,只使用和管理自己獨立的數據庫,導致供應鏈中嚴重的信息缺口,信息難以在系統內流通[5],給數據共享帶來障礙,影響了整個供應計劃[6]。生鮮農產品供應鏈溯源系統亟需解決如實時調度能力差、信息易被操縱、供應鏈透明度不高、溯源機制不夠完善和監管不到位[7]等問題,以實現完全的數據透明和保護機密性。
使用區塊鏈技術對生鮮農產品供應鏈進行升級,并通過物聯網等技術收集生鮮農產品生產到最終消費者的可靠數據[8],能有效改善生鮮農產品供應鏈溯源監管難、成本高、效率低和安全性差的問題。因此,該文將設計一種基于區塊鏈技術的生鮮農產品供應鏈溯源系統,將生鮮農產品的全生命周期信息存儲在區塊鏈上,以實現信息不變性和可追溯性。并實現生鮮農產品供應鏈的交易系統,實現生鮮農產品的線上交易,確保交易安全可控。
區塊鏈技術[9]是一種利用加密算法將數據生成按時間順序組成鏈的數據存儲手段。一個區塊是一個包含數據以及來自前一個區塊的哈希信息的記錄,這將導致一個代表其自身唯一哈希的值。區塊體中存儲的是各個交易信息的交易記錄,然后通過Merkle樹的根節點校驗區塊中的數據判斷是否被篡改或者攻擊。這種驗證方式保證了區塊鏈的數據不可篡改性和安全性。正如文獻綜述[10]中所解釋的,區塊鏈技術應用于生鮮農產品供應鏈中有諸多好處,比如透明性、可追溯性、信息共享、統一調度、合約自動執行、監控以及不可篡改等。有望解決生鮮農產品供應鏈中幾個不受信任的參與者之間的交易資源分配問題。
智能合約是在區塊鏈上運行的一種不可隨意纂改的計算機程序,同時是上層應用程序和底層區塊鏈系統之間的媒介,可以實現處理和存儲交易的信息和價值,也可以將信息和價值發送給其他賬戶,允許在沒有第三方參與的情況下進行可信交易。智能合約的運行原理[11]一般是:區塊鏈上部署并由所有節點共識確認后,按照預設的規則和條件執行和管理合約,自動化地執行和記錄所有交易和操作信息,確保交易的可信和安全,最終完成合約執行。目前主流的智能合約設計包括Ethereum和Fabric[12]。其中在Hyperledger Fabric中,智能合約又稱為鏈碼(Chaincode),是將具體條款以計算機語言而非法律語言記錄的智能化合同,運行在分布式的區塊鏈的多個節點上,新建和調用都是由區塊鏈的交易觸發。
由于生鮮農產品供應鏈的復雜性,沒有完美的模型可以代表生鮮農產品供應鏈。為了解決這些問題,該文采用區塊鏈技術作為開發框架,提出一個基于區塊鏈技術的生鮮農產品信息共享和可追溯框架(Blockchain-based Information Sharing and Traceability Framework for the Fresh Agricultural Produce Supply Chain,BIST-FAPSC)模型方案。
一般情況下,生鮮農產品供應鏈可按業務關系劃分為供應鏈內部主體和外部主體。其中,內部主體包括農民、加工企業、物流公司、經銷商等,外部參與主體是消費者和政府監管部門等[13]。
農民:農民是生鮮農產品供應鏈中的第一個調用智能合約進行交易的實體。農民生產大量作物,并負責確保和監控作物的生長細節,以及所有農業活動的其它信息,并由農民簽署和確認之后,再將作物賣給加工企業。
加工企業:加工企業主要負責對作物消毒、清潔、挑選、保鮮、打蠟、分級和包裝等操作,轉化為最終產品,并進行詳細的記錄,然后通過數字標簽將信息聚合到網絡,再將成品賣給經銷商。
物流公司:物流公司主要承接生鮮農產品的冷鏈物流。通過溫度、濕度、壓力和GPS系統等傳感器,記錄生鮮農產品的運輸方式、時間、地點、發貨人/收貨人信息,上傳生鮮農產品的環境條件和行駛軌跡。最終實現產品從產品所有者到購買者的可審核交付。
經銷商:經銷商主要分為分銷商和零售商,負責從加工企業購買成品并銷售給消費者。分銷商通過從加工企業處購買成品來存入倉庫,使用傳感器和其他設備用于記錄生鮮農產品的儲存條件、時間和基本生理指標等信息,并負責將其分發給零售商。接著零售商再小批量銷售給消費者。
消費者:消費者是消費產品的最終用戶。消費者在購買商品之前,可以通過溯源系統驗證生鮮農產品質量安全的可信度。
政府監管部門:政府監管部門是一個鏈下實體,主要用來監控管理整個網絡和處理糾紛,對生鮮農產品供應全過程進行監管,制定質量標準,對交易糾紛、產品欺詐、涉及虛假數據等違法行為進行追查和責任劃分。
生鮮農產品供應鏈的參與者中的農民、加工企業、物流公司、經銷商必須記錄生鮮農產品的來源等產品信息以及生鮮農產品金融交易信息。在所有記錄的信息通過數字技術,比如條形碼、RFID、NFC、二維碼、在線認證和數字簽名,以及傳感器和執行器等授權后,互聯網/網絡作為連接基礎設施傳輸信息,通過API將信息傳輸到網絡,最后上傳到區塊鏈,所有信息經過驗證和共識后,由整個供應鏈共享,確保生鮮農產品的真實性和透明度。
為了對生鮮農產品的質量安全進行全方位的溯源監管,該文設計了基于區塊鏈技術的生鮮農產品溯源系統架構[14],如圖1所示,包括基礎設施層、數據傳輸層、數據存儲層、智能合約層和應用接口層五個部分。
基礎設施層:由部署智能合約的各種智能傳感器、RFID和GPS等物聯網設備組成。以區塊鏈技術為核心,將物聯網與產品的研發過程相結合,通過智能傳感器設備對農產品的生產環境、存儲狀態、生產過程、運輸過程等信息進行記錄,并為其提供遠程電子合同簽署的底層基礎框架,將采集的信息上傳到數據庫。
數據傳輸層:完成數據權限的審查,通過點對點網絡進行節點間的數據傳輸通信,使用通信驗證機制進行廣播和驗證數據的真實性。并通過加密技術和身份驗證機制保護本地數據的安全性和隱私性,對數據上傳者進行身份識別,驗證通過才有權限上鏈采集到的數據。
數據存儲層:通過物聯網傳感器設備對農產品的生產、加工、倉儲和運輸采集的數據進行完整記錄,利用哈希算法將生鮮農產品的信息存儲到區塊鏈中并蓋上時間戳,保證了信息數據不可篡改和數據的安全性。并將納入區塊鏈中的非公開性的隱私數據需要通過加密技術進行數據加密,只有在產品溯源時需要對整個流程進行全面檢測時,通過加密解密技術進行隱私數據進行查詢。
智能合約層:引進智能合約流程機制。生鮮農產品的流通過程都要通過智能合約進行記錄和管理,并且規定供應鏈系統中各個環節的行為和規則,在滿足特定條件時自動執行相應的操作。每個參與者都有一個獨特的身份標識,通過該標識在區塊鏈上進行身份驗證和溯源查詢。同時,專門的機構負責制定符合條件的上鏈規則,并確保規則的正確執行。隨著生鮮農產品在供應鏈中的流動,參與者要通過智能合約記錄和更新產品的狀態,并將這些信息永久記錄在區塊鏈上,供后續查詢和審計。

圖1 BIST-FAPSC模型中的生鮮農產品溯源系統架構
應用接口層:為了多方企業用戶方便操作業務,通過瀏覽器、客戶端、網絡服務為平臺提供各種應用API和開發者工具,根據需求進行數據定制和軟件開發,提高系統的可擴展性和靈活性,使用者只要在移動端進行身份認證,便可隨時隨地使用該平臺操作業務。比如,供應鏈各參與方可以在經過授權中心認證的情況下,進行供應過程信息的輸入和查詢,各個參與方之間實行相互監督;政府等監管部門則還要對輸入的加密信息,例如生產線及錄入信息的人員進行身份權限驗證,并對錄入的信息進行核驗和審查,確保錄入信息的準確性與真實性,在產品出現問題時,及時溯源到出現問題環節,并進行責任認定處理;消費者可以通過系統網頁端或者產品上的溯源二維碼對產品的全供應過程進行溯源信息查詢。
為了實現提案模型可追溯信息共享的目的,該文將采用Hyperledger Fabric平臺構建BIST-FAPSC模型,選取多個重要信息存儲到賬本中,作為BIST-FAPSC模型的生鮮農產品信息。采用開發語言Golang進行智能合約的編寫,智能合約算法如表1所示。在生鮮農產品供應鏈中,首先對生產商和供應商的結構體進行定義,然后驗證兩者間的交易過程,只有在合同內容和交易申請的執行條件達成一致時,才能將該智能合約部署到區塊鏈上。最后,使用區塊鏈客戶端軟件進行區塊地址的連接,并且由Hyperledger Fabric實現交易提案模型的接口交互,完成智能合約部署,具體的步驟如下所示:

表1 BIST-FAPSC模型中的鏈碼
(1)在實現過程中,首先引入包和shim庫,其中shim層是節點與鏈碼交互的中間層。通過使用shim包,可以獲得鏈碼和Fabric交互的接口,并且在鏈碼中執行賦值、查詢等功能都需要通過shim進行。同時,還使用peer包來獲取鏈碼執行后的響應信息。
(2)定義智能合約結構體和組件結構體,客戶端可以通過使用函數名稱和參數來初始化交易,從而實現Init函數和5個操作函數:queryFAP,produceFAP,processFAP,transportFAP以及deliverFAP。
(3)對等端可以通過鏈碼來訪問或修改賬本,通常涉及到初始化和調用兩種操作。在初始化或升級鏈碼時,將調用init函數;根據參數調用相應的操作函數時,Invoke函數用于響應交易請求、查詢或更新賬本。
(4)在可追溯信息共享提案模型中,"invoke"功能主要由六個模塊組成:initledger,queryFAP,produceFAP,processFAP,transportFAP和deliverFAP。每個操作函數具體實現功能,其中,initledger函數用于創建多個FAP記錄的初始輸入,queryFAP函數用于實時獲取FAP信息和屬性值,后面四個函數分別是在FAP生產、加工、運輸和交付的過程中進行調用,用于修改組件狀態和更新操作的時間。
(5)最后在main函數中調用shim.Start函數運行智能合約。
該文采用了區塊鏈聯盟[15]技術,以實現生產工廠、倉儲中心、加工供應商、經銷商和物流供應商之間的信息共享。生鮮農產品供應鏈的主要流程包括生鮮農產品的生產階段、加工階段、物流管理階段和產品銷售階段。該文研究主要在供應的生產階段和物流管理階段。經銷商首先訂購FAP并根據其應有的時間安排FAP的生產。當生產出來的FAP達到交貨標準時,加工工廠需要聯系經銷商和物流公司來安排運輸。一旦參與者達成一致意見,FAP就會被運送到加工中心進行加工。經銷商可以通過系統上的實時信息面板監控所有的操作過程。這個交易信息代表了生鮮農產品交易供應鏈中所有的供應信息,包括FAP信息、生產信息、發貨信息和到貨信息。所有與交易有關的數據通過數據層傳輸到區塊鏈網絡上,這種類型的區塊鏈可以提供對參與者的信息控制和隱私保護,想要驗證交易過程必須經過注冊。圖2展示了文中模型的交易流程,生鮮農產品供應鏈中的每一個操作都視為一種提案類型,區塊鏈網絡交易過程共五個步驟:
(1)提出交易。生鮮農產品需要在監管部門對原材料供應、農產品采購、農產品加工等一系列監管過程通過的情況下完成生產。同時運輸業務也需要在此前提下開始進行,供應商通過客戶申請將運輸提案提交給受認可節點,即倉儲、加工企業、供應商、經銷商、零售商和物流方。所有參與節點必須記錄生鮮農產品的種類、來源、規格、運輸時間、運輸狀態和交易記錄等信息。在所有記錄的信息通過數字技術授權后,互聯網/網絡作為連接基礎設施來傳輸提案信息。提案信息包括被調用的函數名稱和輸入參數,例如和“09/22/2022”,被調用的鏈碼也應在提案中告知。
(2)執行提案。在執行提案時,認可的同行檢查提案的有效性,負責將響應與簽名一起發送回提案。通過節點驗證供應商是否被合法授權執行提議,檢查運輸時間是否與訂單進度一致等。只有在所有相關利益方的確認下,交易的真實性才能得到提升。此外,交易建議作為參數輸入,以invoke命名鏈碼來獲得執行結果。每個執行捕獲響應值、讀集和寫集。除了背書節點的簽名外,這些信息還作為“提案響應”傳回給供應商的客戶應用程序。注意,此時賬本并沒有更新,這個過程可以看作是模擬執行交易以獲得執行結果。
(3)訂購交易。在完成執行提案后,將進行訂購交易,該過程將對響應進行驗證,檢查背書節點的簽名以及是否遵循了背書政策。為了避免作弊,下一步還會進行驗證。隨后,提案響應被組裝為訂購服務的事務,在該服務中,特定時間段內來自應用程序的所有事務都被訂購。訂購服務按時間順序訂購交易,并按通道將它們收集到新的區塊中。訂購服務無權訪問詳細的交易內容,也無權更新賬本,這保證了操作的公正性和賬本的安全性。
(4)驗證交易。收集的交易區塊會被廣播到通道中所有對等節點,驗證交易。每個對等方標記每個事務。經過驗證和共識后的交易上傳到區塊鏈網絡,通過預言機應用程序接口將交易信息傳輸到智能合約的鏈碼上,并在分類賬中更新世界狀態,該信息由整個供應鏈共享,確保生鮮農產品的真實性和透明度。如果運輸建議有效,FAP001在世界狀態中的狀態更改為“運輸”,運行時間更新為“09/22/2022”。每個節點持有的賬本同時被修改。
(5)通知交易。發出驗證事件以通知客戶端運輸交易是否成功執行。如果提案獲得批準,則可以進行運輸交易。此外,節點將被告知新區塊已添加到區塊鏈,交易不再可編輯。

圖2 BIST-FAPSC模型中的交易流程
該文設計的系統將在Hyperledger Fabric平臺上進行仿真實驗,通過對不同操作和系統配置下的交易時延進行測試分析,驗證該原型系統的可行性,最后與現有幾個農產品溯源應用系統進行對比,分析該系統模型的優勢。
(1)參與者之間的信息共享。
生鮮農產品信息存儲在BIST-FAPSC模型的分布式賬本中,每個參與者都持有一份賬本副本,可以在任何時候使用該賬本訪問FAP狀態信息,信息存儲在BIST-FAPSC模型的共享賬本中。在FAP供應開始時,通過使用鏈碼調用“initledger”函數添加到總賬中,每個FAP的狀態被設置為“空”。在此之后,賬本中的FAP信息將根據生鮮農產品供應鏈的處理情況,由“orderFAP”,“produceFAP”,“transportFAP”,“deliverFAP”功能進行更新。請求客戶端需要輸入每個提案中的參數:args=[“函數名稱”“FAPSP”“狀態”“操作時間”],就可以修改賬本中FAP的狀態和操作時間。在每個流程中,當交易提案被批準時,FAP的屬性就會根據輸入參數進行修改。在BIST-FAPSC模型中,所有同行的賬本都會進行同步更新,生鮮農產品信息會在不同的利益相關者之間進行共享。

圖3 交易詳情和FAP001訂單的實際執行情況
(2)調度的實時控制。
通過提出“查詢”交易,生鮮農產品供應鏈的參與者可以隨時訪問FAP信息。消費者和政府監管部門可實時信息了解FAP銷售的詳細過程。生產農場、物流供應商和生鮮農產品經銷商等其他參與者可查詢FAP信息獲得詳細的操作時間,以便監控并及時調整計劃。例如,如果任何客戶端發送帶有輸入參數的提案:Args=[“queryFAP”,“FAP001”],可獲得SP=FAP001的FAP信息。交易詳情如圖3上所示,FAP001的實時狀態是“發貨”,2022年9月21日完成,而此前計劃的發貨時間是2022年9月22日,當上述提案被執行時,這一過程提前了。同樣可以發送“訂單”“生產”和“運輸”的提案,獲得每個流程的操作細節。這樣就可以與計劃進度進行對比,分析FAP001訂單的實際執行情況,如圖3下所示,計劃從生產作業開始就提前了。通過使用BIST-FAPSC模型,每個進程的操作時間可由任何參與者查詢,并與計劃進度比較,可指示實際執行是否符合最初的訂單需求。如果提前查詢FAP訂單交易的狀態,這種變動情況可以立即得到解決。因此可以證明,所提出的模型可以方便地獲取FAP訂單交易的實時信息,并控制生鮮農產品生產運輸交付計劃的執行,以提前應對一些生產供應過程中潛在的干擾。
(3)信息的可追溯性。
系統中記錄了所有的提案客戶、提案運行時間和交易SP等信息。從FAP訂單訂購開始,FAP流通的細節會在系統模型中自動存儲和更新,在任何FAP上執行的所有操作都可以在任何時候被追蹤。每分鐘的交易次數在圖4中呈現,并且可以自動更新。圖5呈現了系統中所有FAP完成的操作序列,包括每分鐘的交易數量和區塊數量都在平臺上顯示出來,以隨時跟蹤操作。

圖4 每分鐘的交易次數

圖5 區塊鏈網絡示例
圖3上展示了一筆特定交易的交易細節,在賬本中,FAP001的狀態和操作時間分別為“交付”和“09/21/2022”,這說明要求物流公司在2022年9月22日上午6點48分交付FAP001。此功能可以通過追蹤FAP操作細節,追溯出導致FAP訂單延遲交付或FAP質量缺陷的原始錯誤,解決FAP的溯源難題,大大提升生鮮農產品供應鏈的溯源管理,有助于解決食品安全問題,保證監管力度,減少欺詐行為。
區塊鏈中的交易時延指的是從交易提交到交易被確認和寫入區塊鏈中所經過的時間。在區塊鏈中,交易需要經過一系列的驗證和確認,包括驗證交易的有效性、驗證交易費用、驗證交易的合法性等。這些驗證和確認的過程需要參與區塊鏈網絡中的節點共同完成,因此交易時延會受到網絡擁堵、交易量、區塊大小等因素的影響。較長的交易時延會影響用戶的體驗,并且也會影響交易的可靠性和安全性。在客戶端節點上使用Caliper向測試網絡提交不同數量的交易示例,在驗證節點上監控區塊鏈網絡,記錄和統計每個交易的確認時間和寫入區塊鏈的時間,測試最大延遲、最小延遲,并計算平均交易時延。實驗結果如圖6所示。

圖6 交易時延
從實驗結果可知,在處理不同交易量時,交易時延結果不同,隨著輸入量的增加,最大延遲逐漸增加,但增長的速度減緩,從125到130的輸入量,最大延遲反而有所下降。平均延遲隨著輸入量的增加而減少,但不是單調的,有些輸入量增加平均延遲反而降低。在輸入量為25到100的范圍內,最大延遲、最小延遲和平均延遲的變化范圍較小,輸入量對延遲的影響比較小,而在輸入量超過100之后,平均時延變化不大,輸入量對延遲的影響并不顯著。綜上,表明輸入量對溯源系統的交易延遲有影響,但平均交易時延并不會隨著交易輸入量的增加而增加,由此分析得知,該生鮮農產品供應鏈的溯源系統具有較好的性能優勢。
傳統的生鮮農產品供應鏈系統通常采用中心化管理,其溯源數據易被篡改,交易系統安全性不高,且查詢速度較慢,這些特點很大程度上限制了消費者的信息查詢和監管方的管理能力。相比之下,基于BIST-FAPSC模型的生鮮農產品供應鏈溯源系統具有可靠且安全的溯源數據,由多參與方共同維護,并且信息查詢方便高效。在與其他現有的區塊鏈生鮮農產品供應鏈溯源系統進行性能對比分析后,結果如表2所示。
通過對比可以發現,現有的基于區塊鏈技術實現的農產品供應鏈溯源系統,大多數只滿足了供應鏈系統的可追溯性,尤其是在信息共享、實時調度控制、透明可追溯性以及供應鏈各環節的節點間數據交互性方面,則或多或少存在一些缺陷。而文中系統在供應鏈各環節的交互性、數據可追溯性、信息共享、監管能力、實時調度以及交易可靠性等方面均達到要求。

表2 生鮮農產品供應鏈系統性能對比分析
首先,詳細介紹了溯源系統的框架及其開發過程,提出了一種基于區塊鏈技術的BIST-FAPSC模型,以一個可視化平臺展示該模型的功能,并對模型性能進行了評估,通過增強不同利益相關者之間的實時信息共享,提高供應鏈溯源管理效率,解決了生鮮農產品供應鏈中自動化信息共享、信息可追溯性和供應環節透明度等問題。同時,通過對智能合約的調整,該系統也可以用于解決其他傳統供應鏈中的問題,驗證了該原型系統的高可用性。
最后,總結了該模型的局限性和未來的研究方向。在未來的工作中,將質檢中心、監管部門進一步整合到模型中,以建立一個完整的支持生鮮農產品供應鏈溯源系統,同時繼續完善原型系統,例如開發一個功能完備的前端頁面,對共識算法進行研究和改進,將基于區塊鏈技術的生鮮農產品供應鏈行業的具體數據應用于實際,進一步驗證該模型的性能。