王麗娟
(上海市水產研究所,上海 200433)
水產品的安全嚴重威脅到消費者的身體健康,建立一套水產品質量追溯體系具有迫切的現實意義。目前,存在的溯源系統在數據安全、系統參與主體管理等方面存在問題。近年來,區塊鏈技術的發展為水產品溯源提供了技術保證。因此,本文提出了基于區塊鏈技術的水產品質量追溯體系課題。
區塊鏈是由區塊構成的一種有序鏈型數據結構,鏈中每個區塊都包含前區塊的哈希值,可以由鏈上任意區塊追溯到第一個區塊(創始塊),結構如圖1所示。

圖1 區塊鏈結構
系統中區塊鏈中的數據源通過人工錄入后,數據被記錄在區塊體中,并且采用HASH加密算法保存。這種算法使得互聯網上其他用戶難以解密數據,可以確保區塊鏈信息的安全性和完整性。圖2為溯源區塊鏈結構形式。
基于區塊鏈的追溯系統架構包括應用層、合約層、網絡層和數據層,如圖3所示。
應用層主要包括用戶管理、追溯信息管理、密鑰管理、權限管理、用戶管理、密鑰管理和權限管理,如圖4所示[1]。應用層解決了如何使用區塊鏈技術的問題,即構成了“區塊鏈+水產品”的各種應用場景。記錄水產品的養殖過程相關信息,如養殖地點、放養起捕時間、放養期間的投入品、使用魚藥、使用飼料和換水記錄等信息;記錄水產品加工過程中,各個用料的含量、包裝材料、保質期等信息;記錄加工后的水產品最后的銷往場所、銷售價格、銷售時間。各個應用場景中產生的數據,最后都要寫入區塊鏈。

圖2 溯源區塊鏈結構形式

圖3 基于區塊鏈的追溯系統架構

圖4 用戶、密鑰、權限管理
智能合約層包括合約的注冊、觸發、執行、注銷4個部分。合約注冊是將用戶編寫好的合約安全檢查處理后共識存儲到區塊鏈的過程。合約觸發是在合約注冊后通過外部條件觸發合約執行的過程。合約執行是合約代碼在獨立環境中運行的過程。合約注銷是對已經執行過、過期作廢或者業務需求不在需要的合約進行清理。
網絡層承擔數據的傳播和驗證,維護區塊鏈網絡的穩定運行,通過共識算法保證節點的安全。
傳統的水產品質量追溯體系與基于區塊鏈的水產品質量追溯體系進行比較,如圖5、6所示??梢姡趨^塊鏈的水產品質量追溯系統具有一定的創新性。
①基于區塊鏈的水產品追溯系統采用P2P的分布式網絡架構,使數據分布式存儲于各節點,所有節點通過共識算法保證交易的一致性。任意單個節點故障或者少數節點故障,系統能正常運行,且故障節點數據可以恢復。所有參與方在區塊鏈中通過加密后的ID進行標識,不需要所有交易者提供身份隱私信息,保證交易者的隱私不被泄露。同一個交易者可通過多個ID進行多次交易來達到隱私保護的目的。
②基于區塊鏈的水產品質量追溯系統數據是一個共享式的分布式數據庫。用戶通過系統界面注冊后會自動獲取一對密鑰(一個公鑰和一個私鑰)[2],區塊鏈網絡根據密鑰所屬類型開放對應權限。養殖戶、水產專管員、加工商、銷售商可進行數據的錄入和查詢,消費者只能查詢和追溯水產品數據?;趨^塊鏈的系統允許全球范圍內任何節點成為區塊鏈網絡的成員之一,享受與其他節點同等的權利,從而實現數據信息共享,提高數據的利用率,減少數據資源的浪費。
本文采用區塊鏈技術實現水產品質量追溯,大量使用反對稱加密技術來驗證基于公網的消息可靠性,基于哈希算法實現如快速驗證數據未被篡改等諸多特性。

圖5 傳統追溯系統

圖6 基于區塊鏈的追溯系統