關(guān)鍵詞:區(qū)塊鏈;海產(chǎn)品供應(yīng)鏈;溯源;食品安全
隨著消費者對食品安全問題的日益關(guān)注,海產(chǎn)品溯源系統(tǒng)的需求也愈發(fā)強烈[1]。傳統(tǒng)的溯源系統(tǒng)往往存在數(shù)據(jù)易被篡改、可信度不高等問題,而區(qū)塊鏈技術(shù)以其去中心化、數(shù)據(jù)不可篡改的特性,為海產(chǎn)品溯源提供了有效的解決方案[2]。
本文將從系統(tǒng)解決方案、系統(tǒng)設(shè)計、系統(tǒng)實現(xiàn)3個方面闡述基于區(qū)塊鏈技術(shù)的海產(chǎn)品溯源系統(tǒng)實現(xiàn)全過程。
1 系統(tǒng)解決方案
本系統(tǒng)解決方案主要從業(yè)務(wù)流程優(yōu)化、系統(tǒng)目標實現(xiàn)、功能需求3個方面著手,構(gòu)建一個高效、可靠的海產(chǎn)品溯源系統(tǒng),以提升行業(yè)的透明度和可信度,保障消費者的權(quán)益和安全。
1.1 業(yè)務(wù)流程優(yōu)化
對海產(chǎn)品的捕撈、加工、運輸、銷售等各環(huán)節(jié)制定標準化操作流程[3],確保每個步驟有明確的規(guī)范和流程,各環(huán)節(jié)的數(shù)據(jù)格式、內(nèi)容和質(zhì)量保持一致;利用物聯(lián)網(wǎng)技術(shù)減少人工干預(yù),實時采集各環(huán)節(jié)的關(guān)鍵信息,確保信息的準確性和完整性。
1.2 系統(tǒng)目標實現(xiàn)
為提高數(shù)據(jù)的安全性和可靠性,該系統(tǒng)采用分布式存儲技術(shù),將數(shù)據(jù)分散存儲在多個節(jié)點上;為防止數(shù)據(jù)丟失或損壞,系統(tǒng)提供定期備份數(shù)據(jù)功能,并建立數(shù)據(jù)恢復(fù)機制。
為確保數(shù)據(jù)的不可篡改性并保證數(shù)據(jù)在傳輸和存儲過程中的完整性和真實性,引入?yún)^(qū)塊鏈技術(shù)[4],將數(shù)據(jù)以鏈式結(jié)構(gòu)進行存儲和傳輸。
為驗證數(shù)據(jù)的可信度并防止數(shù)據(jù)在傳輸過程中被篡改或竊取,采用數(shù)字簽名和加密技術(shù),驗證數(shù)據(jù)的來源和完整性,對數(shù)據(jù)進行加密處理。
為確保系統(tǒng)的合規(guī)性和有效性,引入第三方監(jiān)管機構(gòu)定期對溯源系統(tǒng)進行審計和評估,并對違規(guī)行為進行處罰和糾正。
為保證數(shù)據(jù)對消費者、政府監(jiān)管部門和企業(yè)三方透明可追溯,建立溯源信息查詢平臺,使用者可以通過產(chǎn)品溯源碼查詢產(chǎn)品的完整溯源信息。
1.3 功能需求
1) 信息采集:利用GPS、視頻監(jiān)控設(shè)備和各類傳感器,實時采集捕撈、養(yǎng)殖、加工、運輸、銷售等各個環(huán)節(jié)的時空信息、環(huán)境參數(shù)和質(zhì)量數(shù)據(jù),并由各環(huán)節(jié)參與企業(yè)手工錄入各環(huán)節(jié)基本信息。
2) 行為監(jiān)控:政府監(jiān)管部門上傳水源檢測和產(chǎn)品抽檢報告,并對違規(guī)行為進行處罰和通報。
3) 追溯與反饋:消費者通過溯源碼驗證海產(chǎn)品的原產(chǎn)地、加工地、品質(zhì)認證等信息,確保購買到安全、高品質(zhì)的產(chǎn)品;消費者提供產(chǎn)品反饋,為生產(chǎn)者和監(jiān)管部門提供改進產(chǎn)品質(zhì)量和市場營銷的依據(jù)。
4) 平臺運營:系統(tǒng)管理員對申請加入聯(lián)盟鏈的企業(yè)進行審核,若審核通過則為其分配角色權(quán)限,并對平臺數(shù)據(jù)進行備份存儲管理。
2 系統(tǒng)設(shè)計
2.1 系統(tǒng)架構(gòu)設(shè)計
基于區(qū)塊鏈技術(shù)的海產(chǎn)品溯源系統(tǒng)采用分布式架構(gòu),其核心內(nèi)容包括區(qū)塊鏈網(wǎng)絡(luò)、溯源數(shù)據(jù)存儲和海產(chǎn)品溯源系統(tǒng)[5]。區(qū)塊鏈網(wǎng)絡(luò)是系統(tǒng)的核心基礎(chǔ),負責存儲和驗證溯源數(shù)據(jù);溯源數(shù)據(jù)存儲負責全部溯源數(shù)據(jù)的收集、整理和存儲;海產(chǎn)品溯源系統(tǒng)則是為方便用戶使用而提供的基于區(qū)塊鏈網(wǎng)絡(luò)和溯源數(shù)據(jù)存儲的應(yīng)用平臺。
2.1.1 溯源數(shù)據(jù)存儲
溯源數(shù)據(jù)存儲采用鏈上/鏈下協(xié)同工作的方式,以滿足不同數(shù)據(jù)類型的存儲需求,同時確保數(shù)據(jù)的完整性、安全性和可追溯性。鏈上部分,即區(qū)塊鏈數(shù)據(jù)庫,主要存儲交易ID及與當前交易相關(guān)的全部數(shù)據(jù)的哈希值。鏈下部分包括分布式文件系統(tǒng)和MySQL數(shù)據(jù)庫,前者存儲體積較大、數(shù)量較多的多媒體文件以提高訪問速度,后者存儲結(jié)構(gòu)化數(shù)據(jù)以便于查詢和分析。此外,通過區(qū)塊鏈上的哈希值也能快速地索引和驗證鏈下數(shù)據(jù)。
2.1.2 海產(chǎn)品溯源系統(tǒng)
海產(chǎn)品溯源系統(tǒng)采用B/S三層架構(gòu),如圖1所示。頁面表現(xiàn)層借助瀏覽器,為用戶提供直觀、友好的操作界面。業(yè)務(wù)邏輯層是海產(chǎn)品溯源系統(tǒng)的核心,主要包括根據(jù)業(yè)務(wù)規(guī)則對數(shù)據(jù)進行處理,與區(qū)塊鏈網(wǎng)絡(luò)進行交互。數(shù)據(jù)訪問層負責存儲和管理海產(chǎn)品溯源系統(tǒng)的所有數(shù)據(jù),確保鏈上數(shù)據(jù)和鏈下數(shù)據(jù)的一致性。
2.2 數(shù)據(jù)庫設(shè)計
為確保數(shù)據(jù)的完整性、真實性、透明性以及可追溯性,海產(chǎn)品溯源系統(tǒng)的全部溯源數(shù)據(jù)按供應(yīng)鏈關(guān)鍵環(huán)節(jié)分為七大模塊信息,分別是通用信息、漁獲信息、加工信息、運輸信息、銷售信息、溯源信息和監(jiān)管信息。
2.2.1 通用信息
通用信息模塊是供應(yīng)鏈各環(huán)節(jié)參與者都需要涉及的數(shù)據(jù),如賬號表、企業(yè)表和設(shè)備表。
賬號表:包括用戶名、密碼、上次登錄日期、企業(yè)ID和權(quán)限等級等字段。
企業(yè)表:包括企業(yè)ID、企業(yè)名稱、注冊號、成立日期、法人代表、公司地址、聯(lián)系方式、經(jīng)營許可證和鏈上哈希值等字段。
設(shè)備表:包括設(shè)備ID、設(shè)備名稱、設(shè)備類型、固件版本、MAC地址、IP地址、安裝位置、數(shù)據(jù)存儲位置和鏈上哈希值等字段。
2.2.2 漁獲信息
漁獲信息模塊記錄漁獲環(huán)節(jié)的完整數(shù)據(jù),包括漁船表和漁獲表。
漁船表的字段:包括漁船ID、漁船名稱、漁船類型、漁船圖片、船舶注冊號、船籍港、船長、船寬、噸位、發(fā)動機功率、企業(yè)ID、捕撈許可證和鏈上哈希值等。
漁獲表的字段:包括漁獲ID、漁船ID、捕撈日期、捕撈地點、捕撈方式、漁獲種類、漁獲重量、漁獲質(zhì)量、捕撈人員名單、漁船軌跡、漁獲照片/視頻和鏈上哈希值等。其中,漁船軌跡、照片/視頻字段僅記錄文件存放位置,格式為“IP地址:文件路徑”。
2.2.3 加工信息
加工信息模塊記錄加工環(huán)節(jié)的完整數(shù)據(jù),包括加工工段表、產(chǎn)品基本表和產(chǎn)品生產(chǎn)表。
加工工段表的字段:包括加工ID、產(chǎn)品ID、加工批次、加工起始時間、加工結(jié)束時間、原材料、加工設(shè)備、操作人員、加工工藝、加工參數(shù)和鏈上哈希值等。
產(chǎn)品基本表的字段:包括產(chǎn)品ID、產(chǎn)品名稱、企業(yè)ID和鏈上哈希值等。
產(chǎn)品生產(chǎn)表的字段:包括生產(chǎn)ID、產(chǎn)品ID、生產(chǎn)批次、生產(chǎn)日期、有效期限和鏈上哈希值等。
2.2.4 運輸信息
運輸信息模塊記錄運輸環(huán)節(jié)的完整數(shù)據(jù),包括車輛表、運輸基本表和產(chǎn)品運輸表。
車輛表字段:包括車輛ID、車牌號碼、車型、企業(yè)ID、車輛照片、運輸許可證和鏈上哈希值等。
運輸表字段:包括運輸ID、車輛ID、物流單號、駕駛員、收貨方、發(fā)貨方、運輸軌跡、倉儲條件和鏈上哈希值等。
產(chǎn)品運輸表字段:包括運輸ID、產(chǎn)品ID、生產(chǎn)批次和鏈上哈希值等。
2.2.5 銷售信息
銷售信息模塊記錄銷售環(huán)節(jié)的完整數(shù)據(jù),包括倉庫表、產(chǎn)品存儲表和產(chǎn)品銷售表。
倉庫表字段:包括倉庫ID、倉庫名稱、倉庫地址、倉庫類型、倉庫面積、企業(yè)ID和鏈上哈希值等。
產(chǎn)品存儲表字段:包括存儲ID、倉庫ID、產(chǎn)品ID、生產(chǎn)批次、負責人、存儲條件和鏈上哈希值等。
產(chǎn)品銷售表字段:包括銷售ID、產(chǎn)品ID、生產(chǎn)批次、銷售數(shù)量、銷售日期和鏈上哈希值等。
2.2.6 溯源信息
溯源信息模塊記錄溯源環(huán)節(jié)消費者對產(chǎn)品的反饋信息,該表的主要字段包括反饋ID、產(chǎn)品ID、生產(chǎn)批次、問題描述、處理結(jié)果、提交時間和鏈上哈希值等。
2.2.7 監(jiān)管信息
監(jiān)管信息模塊記錄監(jiān)管環(huán)節(jié)的完整數(shù)據(jù),包括召回產(chǎn)品表、違法行為表和質(zhì)量檢測表。
召回產(chǎn)品表字段:包括召回ID、產(chǎn)品ID、生產(chǎn)批次、召回原因、發(fā)布時間和鏈上哈希值等。
違法行為表字段:包括違法ID、違法主體、違法行為、處罰結(jié)果、處罰時間和鏈上哈希值等。
質(zhì)量檢測表字段:包括檢測ID、檢測物品、檢測報告和鏈上哈希值等。
2.3 權(quán)限管理設(shè)計
為了確保數(shù)據(jù)的安全性和隱私性,該溯源系統(tǒng)采用分級權(quán)限管理方式。不同的參與方(如生產(chǎn)者、運輸商、銷售商等)具有不同的權(quán)限,只能訪問和修改自己負責環(huán)節(jié)的數(shù)據(jù),從而實現(xiàn)權(quán)限的有效控制和管理。同時,監(jiān)管部門應(yīng)具有更高的權(quán)限,能夠查看整個供應(yīng)鏈的溯源信息。根據(jù)其執(zhí)行業(yè)務(wù)的不同,權(quán)限等級分為1~7級。
3 系統(tǒng)實現(xiàn)
3.1 區(qū)塊鏈節(jié)點部署
本文采用FISCO搭建單群組的區(qū)塊鏈網(wǎng)絡(luò),該網(wǎng)絡(luò)由海產(chǎn)品供應(yīng)鏈中的參與企業(yè)及政府部門等組織作為節(jié)點共同組成,形成一個緊密的聯(lián)盟鏈網(wǎng)絡(luò)[6]。
假設(shè)漁獲企業(yè)、加工企業(yè)、運輸企業(yè)、銷售企業(yè)及政府監(jiān)管部門的節(jié)點IP 地址分別為192.168.0.1 至192.168.0.5,則區(qū)塊鏈網(wǎng)絡(luò)配置文件ipconfig如圖2所示。每個節(jié)點都需要根據(jù)配置文件ipconfig,使用build_chain.sh工具生成節(jié)點配置并啟動區(qū)塊鏈系統(tǒng),如圖3所示。
3.2 智能合約開發(fā)與部署
本文借助WeBASE 平臺以及SmartDev-Contract 智能合約庫,成功實現(xiàn)了智能合約的快速開發(fā)、編譯和部署。根據(jù)功能需求,使用CRUD在FISCO鏈上創(chuàng)建數(shù)據(jù)表,并對表進行增刪改查操作,從而實現(xiàn)了數(shù)據(jù)上鏈、更新和查詢功能,對應(yīng)接口如圖4所示。
3.3 海產(chǎn)品溯源系統(tǒng)實現(xiàn)
本文采用SSM框架實現(xiàn)海產(chǎn)品溯源系統(tǒng)。每個用戶類別必須經(jīng)過身份認證才能使用該系統(tǒng)所提供的功能,例如提交或查看各環(huán)節(jié)的數(shù)據(jù)。圖5展示了用戶新增數(shù)據(jù)時,系統(tǒng)的完整處理流程。
4 總結(jié)
基于區(qū)塊鏈技術(shù)的海產(chǎn)品溯源系統(tǒng)利用區(qū)塊鏈技術(shù)解決了傳統(tǒng)溯源系統(tǒng)存在的問題。通過合理規(guī)劃數(shù)據(jù)模型,確保了海產(chǎn)品溯源數(shù)據(jù)的完整性、透明度和可追溯性;同時,通過權(quán)限管理機制,保證了數(shù)據(jù)的安全性和隱私性。