謝春輝,熊蔚維,李國妹,楊 毅
(云南農業大學 大數據學院,云南 昆明 650201)
中藥材的質量安全一直以來都是國家和社會關注的熱點問題.黨中央、國務院高度重視食品藥品的溯源體系建設[1].到2020年,國家重要產品追溯體系建設要求采用新一代的信息技術實現追溯信息的互通共享,提升社會公眾對追溯產品的認知度和接受度.中藥材的溯源是對中藥在育苗育種、種植、加工、流通和交易等過程中產生的信息進行采集和處理.采用區塊鏈技術構建的溯源體系不僅具有去中心化、可信度高、自治性、信息無法篡改等優點,還能實現中藥材全程監控,讓來源可追溯,去向可查詢,發生安全事故可以明確責任主體,查明原因,保證藥材質量的安全,從而促進中藥產業的可持續健康發展.根據查閱文獻資料,近年來國內學者針對中藥材的質量安全溯源提出了很多切實可行的技術方案,比如曹國均等[2]討論了區塊鏈技術在中藥溯源的創新體系,積極推動“互聯網+區塊鏈”溯源平臺的建設;陶啟等[3]提出結合區塊鏈技術,采用基于危害因子的食品風險評估與安全溯源,構建從農田到餐桌的大米全產業鏈質量全息數據庫;張尚鋒等[4]分析了臨安筍干質量現狀和問題,結合區塊鏈和物聯網等新一代互聯網技術設計和實現臨安筍干質量安全溯源系統.
隨著區塊鏈技術的日益成熟,區塊鏈技術具有去中心化、信息無法篡改等優良特性[5],所以文章提出采用區塊鏈技術構建中藥材的溯源體系.與傳統的中心化數據庫溯源系統相比,該體系不僅能保證信息的可靠和可信,還能實現藥材從種子育苗、種植、加工、流通到交易5大環節的全方面監管,從而保證了藥材的質量安全.
溯源系統是對農產品等生產、加工、流通和交易等環節進行數據的采集和記錄,運用互聯網技術建立供應鏈信息庫,實現產品在每個環節信息可查詢,流向可追蹤,發生安全責任事故可快速明確責任主體的功能.國內外政府和企業都積極參與溯源系統的建設[6].相比于傳統的農產品,藥材具有“治病救人”的特殊性,所以藥材的質量可能直接關乎到病人的治療效果,甚至會影響到病人的生命安全,因此中藥材的質量監管相比傳統的農產品更加嚴格.但是由于中藥材品種多、情況復雜,追溯鏈長,流程繁瑣,種植加工信息不透明,缺乏業內統一的標準,監管難度大,發生安全問題不容易判定責任主體,存在摻假的突出問題,使得流入市場的中藥材質量難以保證.
傳統的中藥材溯源系統普遍采用的是中心化數據庫(MySQL、Oracle等)存儲數據,這種存儲方式在數據安全性和真實性等方面很大程度由數據的擁有者決定.不管是源頭加工的企業,還是中間的物流、銷售商,甚至是政府的職能部門擁有和保存溯源鏈的核心數據,只要是流通上的利益相關者,當出現數據不利于某一方時,很有可能出現數據造假,偽造等情況.因此,傳統的溯源系統不管是系統流程、體系框架、隱私安全方面都普遍得不到消費者的信任.
在中藥材質量安全溯源方面,利用區塊鏈技術構建新的中藥材質量溯源系統,借助區塊鏈可信度高、自治性強、信息無法篡改等優點可以很好的解決傳統溯源系統存在的不足與弊端.
區塊鏈是一種利用區塊存儲的鏈式結構,除了創世區塊以外的區塊由區塊頭和區塊體兩部分組成,區塊頭存放上一個區塊的哈希值(prev block Hash)、隨機數(nonce)、Merkle根(Merkle root)等.區塊結構見圖1[7].每一個區塊的頭部包含前一個區塊經過哈希算法計算得到的哈希值,將該值保存到當前區塊中,使其與前一個區塊相連,同時利用時間戳記錄區塊數據寫入的時間,為區塊鏈中的區塊添加可以認證的時間節點,從而提高數據的可信度.

區塊鏈利用數字簽名算法[8]來確保鏈上數據不被篡改,保證參與主體身份的真實性和消息的完整性.在區塊鏈技術中,數字簽名使用的是非對稱加密算法和哈希函數,采用“簽名+驗證”互補運算來驗證數據的真偽.非對稱加密算法技術包括一組密鑰對,即公鑰和私鑰.公鑰是密鑰對中可以被公開的部分,而私鑰則只能由所有者保存,不對外公開.通過非對稱加密算法得到的一個密鑰對可以用來數據的加密,數字簽名即是用私鑰加密公鑰解密.在應用中,對實體成員身份管理驗證和數據信息驗證可以通過數字簽名算法實現,數字簽名的“簽名+驗證”見圖3.

數字簽名的“簽名+驗證”可以概述為:發送方通過哈希函數計算得到哈希值,使用發送方的私鑰對哈希值進行加密操作后生成數字簽名,通過網絡傳輸把數據和簽名一同發送給接收方.接收方將接收到的數據后進行解密操作,使用公鑰解密和哈希函數生成2個哈希值,通過對這2個哈希值的比較,倘若相等數據無篡改,否則被篡改.
共識機制是區塊鏈技術中的重要組成部分.在區塊鏈系統中,不存在傳統的中心化數據庫,每一個節點都是一個賬本,每個節點都需要承擔網絡中的網絡路由、數據驗證和傳播等任務[9].區塊鏈技術有助于在不安全網絡環境下在用戶間建立信任,利用共識機制保證數據和交易的安全.與傳統的中心化數據庫相比,區塊鏈可以在無需第三方認證機構的介入下完成每次交易,并且這每次交易都是安全和可信的,但是前提是用戶都必須遵循事先約定好的共識.在設計時,為了避免由于硬件錯誤、網絡堵塞、中斷,甚至是遭到黑客攻擊導致系統出現不可預料的行為,可以采用了分布式計算領域較為出名的拜占庭容錯算法.
實用拜占庭容錯算法(practical Byzantine fault tolerance,簡稱PBFT)由Miguel Castro和Barbara Liskov提出,該算法能容忍少于三分之一的節點出現宕機或者被惡意攻擊的情況下,依舊保證系統能正常運行.PBFT算法采用了密碼學相關技術,比如RSA簽名算法,消息驗證機制等確保信息傳遞過程中無法被篡改和破壞.PBFT算法的一致性協議見圖3所示[10].每1個客戶端的請求分為request、pre-prepare、prepare、commit和reply 5個階段,需要通過采用兩次兩兩交互的方式在服務器達成一致后再執行客戶端請求.該算法具有高交易通量和吞吐量,高可用性等優點.目前適用于聯盟鏈和私有鏈場景中.

中藥材溯源系統中的信息與追溯模型見圖4.

中藥材從生產種植到消費者涉及到的追溯鏈流程長而復雜.中藥材的質量安全溯源從生產源頭到消費終端大致可以分為:育種育苗、種植管理、初加工、倉存、物流、二次加工、交易、消費者等環節和主體.整個溯源體系,參與主體眾多,環節復雜,需求差異性大.中藥材質量安全溯源系統的建立應該以參與主體為驅動設計,系統應當操作方便,數據來源可信度高,追溯信息存儲安全,利用農業物聯網技術和移動網絡進行溯源數據的實時采集,使用區塊鏈技術進行數據的存儲、調用、挖掘和共享,最終向參與主體提供操作便捷的系統.系統設計應該顧及到每一個參與主體,各自信息記錄不僅要保證時效性、有效性和完整性,還要讓每個環節參與的主體都能共享其他主體的數據.
區塊鏈平臺按照網絡范圍可以分為公有鏈、私有鏈和聯盟鏈,按照項目可以分為幣類、平臺類、應用類和資產代幣化.2013年12月Buterin提出了以太坊(Ethereum)平臺,2015年12月Linux基金會發起了Hyperledger開源區塊鏈項目,2016年4月R3公司發布Corda去中心化數據庫[11].隨后幾年的時間里,各大組織和企業都陸續發布了滿足各種需求,面向不同用戶的平臺.4種常見的區塊鏈平臺對比,見表1.

表1 區塊鏈平臺對比
根據表1,基于對個平臺的對比和項目的總體構架,整個溯源體系研究在聯盟鏈基礎上實現,平臺選擇的是Hyperleder Fabric.
根據圖5,基于區塊鏈技術的中藥材質量安全溯源系統在設計時考慮到政府職能部門和每個環節實體之前需求存在的差異性,因此數據的存儲的設計由兩部分組成:傳統的中心化數據庫(系統使用的是MySQL數據庫)存儲常規化數據(溯源主體信息等)和基于區塊鏈技術分布式存儲每個環節溯源主體產生的數據信息.系統采用Hyperleder Fabric作為區塊鏈底層框架,使用Go語言作為開發語言,軟件框架選用C/S框架.由于在溯源環節中會產生大量的數據,在溯源環節中使用農業物聯網、傳感器以及手持端的設備進行數據的采集.藥材最后會流入到消費者手中,消費者則使用微信小程序等移動終端進行藥材的回溯.在整個過程中,藥材流通的核心數據保存在區塊鏈中,而政府職能部門管理的數據則以中心化數據庫形式進行保存,這樣可以確保藥材流通過程中數據的保密、安全和不可篡改,同時還可以在發生重大的安全事故時,能快速定位事故出錯環節,明確責任主體,查明事故原因.

參見圖6的溯源方案流程圖.育種公司每培育一批次的種苗(種子)經過檢驗合格后,向政府職能監管部門或者第三方認證機構申請種苗批號或備案登記,育種公司使用私鑰簽名批號及信息后,將數據同步至區塊鏈上;種植戶向育種公司或者代理商購買種苗后,雙方達成交易共識,種植戶可以直接通過手機端應用在鏈上或者委托相關監管部門和第三方驗證機構,確保種苗無病蟲害并且是所需種植的品種,驗證通過后種植戶使用私鑰簽名該批號的種苗,然后把簽名數據回傳給育種公司,由育種公司進行種苗(種子)的更新.

溯源過程中的田間管理是整個追溯方案的核心環節,該環節對藥材的農業活動(施肥、澆水、除蟲等)會直接影響藥材的質量.該環節應該由政府主管農業部門牽頭制定管理標準和規范流程,對農藥、化肥等實行量化標準.在人工栽培的幾百種中藥材中,每一種藥材對環境溫度、濕度、土壤溫度以及光照強度等外部環境都有很嚴格的要求,比如三七喜陰涼,苗期透光度不能低于35%[12],生長適宜溫度18~25 ℃,以土壤疏松,排水良好.為了保證田間管理數據的來源可靠,田間管理的數據可以采用傳感器技術,數字化大棚等新一代農業物聯網技術進行采集和整理.隨著規模農業大棚的快速發展,農業自動化控制、物聯網技術以及無線網絡技術都得到了廣泛應用[13].在田間管理過程中把物聯網采集到的環境數據以及自動化控制的操作日志,使用種植戶的私鑰進行簽名后同步更新至區塊鏈上.整個田間管理的結構圖見圖7.

當種植戶完成種植,收獲采摘后,委托育種公司和第三方藥材鑒定機構對中藥材進行鑒定和評級并且出具鑒定報告.種植戶用私鑰進行簽名材料后,將數據更新至鏈上,加工商采購中藥材進行二次加工前核對驗證信息.當中藥經過加工后經過物流、二次加工、直到交易前整個過程,鏈上數據更新同上,當前所處于的階段信息由所有者持有,并且負責更新藥材狀態.中藥材會由藥店和藥廠、醫院和醫療機構,或者是多級代理商進行銷售流入消費者手中,那么最終的去向以及受眾信息由這些持信息狀態的所有者機構或者組織進行更新.
這樣,整個中藥材的流通痕跡都會被記錄到區塊鏈上.育種公司和種植戶可以通過鏈上的流通痕跡追蹤藥材的流向,加工商、倉庫和銷售主體可以對采購的藥材進行定向查詢,消費者或其他使用藥材的終端用戶可以追溯整個生產和流通過程,并且進行真偽驗證,確保藥材的質量安全,監管部門則可以參考整條鏈上的數據和信息制定更加規范合理和有科學依據政策方針.當發生重大的中藥材安全責任事故時,根據鏈上的數據進行追責處理.
4.3.2 系統界面
基于上述區塊鏈溯源框架,設計并實現了基于區塊鏈技術的中藥材質量安全溯源系統,終端用戶使用微信小程序或者移動應用直接訪問.用戶輸入或者掃描藥材上的溯源碼,系統從區塊鏈交易鏈條中提取出需要回溯的信息.
圖8展示的是系統終端消費者使用的溯源界面.由于系統涉及到的參與實體眾多,流程復雜,同時系統還要兼顧和遵循現有的業內流程,所以系統在設計研發過程中采用“末端驅動,逐步向前”的設計理念,先完成消費者終端溯源的需求,再分步向前,加強與每個環節實體間的溝通,同時積極與地方政府和相關部門的交流.

本文利用區塊鏈技術設計和實現中藥材質量安全溯源系統,闡述了系統關鍵技術.為溯源系統研究和建設提供新的思路和方法.通過對中藥材整個生命周期活動環節信息的采集和記錄,如果發生藥材質量安全問題,可以使用溯源系統追溯到藥材的育種單位、田間管理、加工商、物流運輸和銷售企業等關鍵信息,這樣不僅可以保證銷售者的合法權益,還能促進中藥材行業的健康平穩發展.系統技術先進,邏輯嚴密,安全可靠,操作簡單,有較好的推廣應用價值.