唐 松,王志強(qiáng),馬艷東
(1.河北省科學(xué)院應(yīng)用數(shù)學(xué)研究所, 河北 石家莊 050081;2.河北省信息安全認(rèn)證工程技術(shù)研究中心,河北 石家莊 050081;3.巨鹿縣應(yīng)用技術(shù)研究院, 河北 巨鹿 055250)
食品安全關(guān)系到人民群眾的身體健康,生命安全。隨著市場(chǎng)經(jīng)濟(jì)的快速發(fā)展,食品多樣性不斷增加,與此同時(shí)食品安全問(wèn)題也逐漸暴露。提高對(duì)食品安全監(jiān)管的水平已成為國(guó)家的重要目標(biāo),也是市場(chǎng)監(jiān)管部門(mén)的首要任務(wù)。伴隨著信息技術(shù)的飛速發(fā)展,全球主要國(guó)家紛紛將眼光瞄準(zhǔn)5G、大數(shù)據(jù)、云計(jì)算、物聯(lián)網(wǎng)、區(qū)塊鏈等戰(zhàn)略新興技術(shù),將數(shù)字經(jīng)濟(jì)視為實(shí)現(xiàn)經(jīng)濟(jì)復(fù)蘇和可持續(xù)發(fā)展的關(guān)鍵抓手[1]。大數(shù)據(jù)、區(qū)塊鏈、數(shù)字孿生等新技術(shù)在各行業(yè)中不斷得到試用和推廣,也給食品安全監(jiān)管和追溯帶來(lái)了新思路?!吨腥A人民共和國(guó)食品安全法實(shí)施條例》中明確了食品安全追溯的基本要求和食品安全有關(guān)部門(mén)的基本職責(zé),并提出了食品生產(chǎn)企業(yè)可以通過(guò)提高信息技術(shù)建立和完善食品追溯體系[2]。各地市也相繼出臺(tái)了要求加快推進(jìn)重要產(chǎn)品追溯體系建設(shè)實(shí)施方案的通知[3]。習(xí)近平總書(shū)記在中央政治局第十八次集體學(xué)習(xí)時(shí)強(qiáng)調(diào):要探索“區(qū)塊鏈+”在民生領(lǐng)域的運(yùn)用,積極推動(dòng)區(qū)塊鏈技術(shù)在教育、商品防偽、食品安全等領(lǐng)域的應(yīng)用,為人民群眾提供更加智能、便捷、優(yōu)質(zhì)的公共服務(wù)[4]。
近年來(lái)食品安全事件頻發(fā),國(guó)內(nèi)瘦肉精、大米鎘超標(biāo)[5],國(guó)外禽流感、瘋牛病[6]等一系列的質(zhì)量安全問(wèn)題引發(fā)了消費(fèi)者信任危機(jī),自2015年《中華人民共和國(guó)食品安全法》修訂開(kāi)始,中央政府對(duì)食品追蹤溯源系統(tǒng)的重視程度不斷提高[7],多次發(fā)文強(qiáng)調(diào)建設(shè)追溯系統(tǒng),所涉及追溯對(duì)象集中在農(nóng)產(chǎn)品(包括肉類、蔬菜、水果等)、食品(包括茶葉、乳品、酒類產(chǎn)品與保健食品)、藥品(包括中藥材)等[8]。
近年來(lái),我國(guó)科研人員對(duì)區(qū)塊鏈技術(shù)在食品溯源領(lǐng)域中應(yīng)用開(kāi)展了研究。如于堅(jiān)、孫嘉笛等人研究了利用區(qū)塊鏈進(jìn)行常見(jiàn)食品、藥食兩用食品行業(yè)溯源體系建設(shè)的方法,并探索區(qū)塊鏈技術(shù)在促進(jìn)食品溯源體系建設(shè)方面更深層的作用[9]。王虹、楊旭等人研究通過(guò)區(qū)塊鏈構(gòu)建從農(nóng)田到餐桌的大米全產(chǎn)業(yè)鏈質(zhì)量全息數(shù)據(jù)庫(kù),建立低成本高效率、多中心化、信息可靠的執(zhí)行環(huán)境,以實(shí)現(xiàn)食品質(zhì)量安全的高效管控[10]。于合龍、陳邦越等人通過(guò)研究使用區(qū)塊鏈技術(shù)在水稻供應(yīng)鏈在追溯過(guò)程中進(jìn)行數(shù)據(jù)共享時(shí)如何對(duì)隱私數(shù)據(jù)進(jìn)行保護(hù)的問(wèn)題,建立了以聯(lián)盟區(qū)塊鏈為基礎(chǔ)的水稻供應(yīng)鏈信息保護(hù)模型[11]。
國(guó)外研究人員對(duì)區(qū)塊鏈技術(shù)應(yīng)用于溯源領(lǐng)域的研究起步早,2016年6月荷蘭國(guó)家應(yīng)用科學(xué)研究院聯(lián)合一些其他機(jī)構(gòu)共同組建了聯(lián)盟區(qū)塊鏈,成為世界首個(gè)針對(duì)供應(yīng)鏈和溯源搭建的案例[12]。Tsang等人提出了將區(qū)塊鏈技術(shù)與物聯(lián)網(wǎng)技術(shù)相結(jié)合,為食品安全追溯系統(tǒng)提供技術(shù)支撐,并設(shè)計(jì)了新的共識(shí)算法,結(jié)合物聯(lián)網(wǎng)和區(qū)塊鏈,使得食品信息更容易采集,提高了溯源查詢的效率[13]。Giovanni Mirabellia與Vittorio Solina結(jié)合食品可追溯性問(wèn)題,研究在農(nóng)產(chǎn)品領(lǐng)域如何應(yīng)用區(qū)塊鏈溯源技術(shù)[14]。IBM公司利用區(qū)塊鏈建立數(shù)字區(qū)塊鏈海鮮食品溯源鏈,以及在Fishcoin平臺(tái)上建立了海鮮食品供應(yīng)鏈上的區(qū)塊鏈溯源技術(shù)研究[15]。
傳統(tǒng)食品質(zhì)量安全監(jiān)管和追溯技術(shù)重點(diǎn)是對(duì)食品的生產(chǎn)、加工用料和環(huán)境進(jìn)行控制,以保證在整個(gè)生產(chǎn)過(guò)程中食品免受可能發(fā)生的化學(xué)、生物、物理因素的危害,在生產(chǎn)過(guò)程中把可能發(fā)生的危害消除。隨著新型信息技術(shù)的發(fā)展,大數(shù)據(jù)、區(qū)塊鏈、物聯(lián)網(wǎng)等新技術(shù)的出現(xiàn)為食品質(zhì)量安全從生產(chǎn)到消費(fèi)的全程供應(yīng)鏈追蹤成為可能。通過(guò)云服務(wù)平臺(tái),加強(qiáng)數(shù)據(jù)治理,通過(guò)區(qū)塊鏈技術(shù)打造數(shù)據(jù)分布式存儲(chǔ)的賬本,達(dá)到數(shù)據(jù)流動(dòng)可追溯、數(shù)據(jù)安全有保證的誠(chéng)信的數(shù)據(jù)交易環(huán)境[1]。
區(qū)塊鏈技術(shù)的分布式共識(shí)存儲(chǔ)結(jié)構(gòu)、基于PKI (Public Key Infrastructure) 的成員管理以及經(jīng)過(guò)數(shù)字簽名后難以篡改的Merkle Tree(默克爾樹(shù))等技術(shù),具有多中心、防篡改、抗抵賴、可追溯等特性,使其能彌補(bǔ)傳統(tǒng)追溯技術(shù)的局限性。
(1)防篡改:通過(guò)采集和跟蹤食品從生產(chǎn)到消費(fèi)的各環(huán)節(jié)數(shù)據(jù),構(gòu)建基于區(qū)塊鏈的食品質(zhì)量安全溯源信息共享平臺(tái),利用存入?yún)^(qū)塊鏈平臺(tái)后不可修改特性,可對(duì)那些在流通過(guò)程中出現(xiàn)的問(wèn)題進(jìn)行固化,防篡改,事后進(jìn)行回溯監(jiān)控。
(2)多中心:利用其多中心特性,鏈接食品倉(cāng)儲(chǔ)物流平臺(tái)、經(jīng)銷商、分銷商、零售商、監(jiān)管機(jī)構(gòu)等個(gè)參與方,構(gòu)建多方信任、不可篡改的區(qū)塊鏈溯源平臺(tái),能夠準(zhǔn)確、快速地,從而實(shí)現(xiàn)追溯透明化以便及時(shí)找出問(wèn)題食品根源并采取有效措施。
(3)抗抵賴:以聯(lián)盟區(qū)塊鏈為基礎(chǔ),將食品基礎(chǔ)數(shù)據(jù)、進(jìn)銷存記錄、檢驗(yàn)報(bào)告和按時(shí)間戳標(biāo)記的索證索票信息都存入?yún)^(qū)塊鏈平臺(tái)上,且不能修改,利用其抗抵賴、可追溯特性明確相關(guān)主體責(zé)任,實(shí)現(xiàn)食品質(zhì)量安全的完整追溯。
因此,研究區(qū)塊鏈技術(shù)在食品質(zhì)量安全追溯領(lǐng)域的應(yīng)用,采用模塊化開(kāi)發(fā),通過(guò)對(duì)敏感數(shù)據(jù)的加密定向授權(quán),記錄食品進(jìn)進(jìn)銷存、檢驗(yàn)等信息。全面實(shí)現(xiàn)食品質(zhì)量安全追溯,確保食品源頭可溯、去向可追、風(fēng)險(xiǎn)可控,是本文研究的重要出發(fā)點(diǎn)。
在綜合參考國(guó)內(nèi)外研究方向和成果的基礎(chǔ)上,結(jié)合國(guó)內(nèi)的實(shí)際情況,構(gòu)建了基于區(qū)塊鏈的食品質(zhì)量安全追溯系統(tǒng),利用區(qū)塊鏈多中心、防篡改、抗抵賴、可追溯等特點(diǎn),有效構(gòu)建政府監(jiān)管部門(mén)、企業(yè)主體、第三方檢測(cè)機(jī)構(gòu)等的聯(lián)盟區(qū)塊鏈,解決多方參與信任傳遞的問(wèn)題。引入隱私計(jì)算,保護(hù)了數(shù)據(jù)安全,避免了泄露供貨渠道等商業(yè)機(jī)密。使用支持拜占庭容錯(cuò)的PBFT (Practical Byzantine Fault Tolerance) 共識(shí)算法,進(jìn)行信用創(chuàng)造,通過(guò)聯(lián)盟區(qū)塊鏈網(wǎng)絡(luò)中多方參與,帶來(lái)更多的數(shù)據(jù)信任背書(shū)。
區(qū)塊鏈?zhǔn)称焚|(zhì)量安全追溯系統(tǒng)是基于聯(lián)盟鏈技術(shù),并以我國(guó)完全自主知識(shí)產(chǎn)權(quán)的Fisco Bcos區(qū)塊鏈底層為框架,設(shè)計(jì)的追溯系統(tǒng)信息安全可靠?;赑KI (Public Key Infrastructure) 的證書(shū)管理體系,使系統(tǒng)具有高度的安全性、防篡改、分布式共識(shí)存儲(chǔ)、一致性和穩(wěn)定性,滿足在監(jiān)管部門(mén)、第三方檢測(cè)機(jī)構(gòu)、食品企業(yè)之間的信息共享、互相監(jiān)督、相互背書(shū)。
如圖1所示,基于Fisco Bcos聯(lián)盟區(qū)塊鏈技術(shù)的食品質(zhì)量安全追溯系統(tǒng)架構(gòu)可分為5層,自下而上分別是:存儲(chǔ)層、核心層、服務(wù)層、接口層和應(yīng)用層。
圖1 基于Fisco Bcos 食品質(zhì)量安全追溯系統(tǒng)架構(gòu)圖
(1)存儲(chǔ)層。為了保證存儲(chǔ)效率,存儲(chǔ)層將查詢和交易模塊進(jìn)行了分離,分為區(qū)塊鏈數(shù)據(jù)存儲(chǔ)和狀態(tài)數(shù)據(jù)存儲(chǔ)。狀態(tài)數(shù)據(jù)存儲(chǔ)在NoSql數(shù)據(jù)庫(kù)CouchDB中,從而提升讀寫(xiě)效率,聯(lián)盟區(qū)塊鏈網(wǎng)絡(luò)各個(gè)節(jié)點(diǎn)的CouchDB一起構(gòu)成狀態(tài)數(shù)據(jù)庫(kù)。CouchDB可在監(jiān)管部門(mén)、第三方檢測(cè)機(jī)構(gòu)、食品企業(yè)各節(jié)點(diǎn)進(jìn)行分布式存儲(chǔ),再通過(guò)PBFT共識(shí)算法同步,保證網(wǎng)絡(luò)各節(jié)點(diǎn)數(shù)據(jù)的最終一致性。
(2)核心層。核心層主要包含共識(shí)節(jié)點(diǎn)管理模塊、區(qū)塊鏈管理模塊、區(qū)塊/交易執(zhí)行引擎、共識(shí)算法模塊、區(qū)塊同步模塊、P2P (peer to peer lending) 通信模塊。核心層保證區(qū)塊鏈數(shù)據(jù)共識(shí)和同步的正常運(yùn)行,其主要由區(qū)塊鏈中的共識(shí)節(jié)點(diǎn)及觀察節(jié)點(diǎn)組成。
(3)服務(wù)層。服務(wù)層中智能合約的鏈代碼由solidity語(yǔ)言編寫(xiě),負(fù)責(zé)與區(qū)塊鏈賬本交互,通過(guò)智能合約進(jìn)行數(shù)據(jù)更新和查詢操作,在合約通過(guò)測(cè)試后,采用部署指令發(fā)布到鏈上,經(jīng)過(guò)共識(shí)算法確認(rèn)后,合約生效并被后續(xù)的交易調(diào)用。此外,食品質(zhì)量安全追溯系統(tǒng)證書(shū)管理體系CA進(jìn)行權(quán)限驗(yàn)證,通過(guò)證書(shū)頒發(fā)與驗(yàn)證,完成節(jié)點(diǎn)的身份認(rèn)證,以保證操作安全可靠。
(4)接口層。接口層面向區(qū)塊鏈用戶,提供應(yīng)用層對(duì)區(qū)塊鏈底層數(shù)據(jù)的讀寫(xiě)操作,接口層主要通過(guò)調(diào)用JAVA SDK、多種協(xié)議的RPC接口、交互式控制臺(tái)對(duì)系統(tǒng)中鏈碼進(jìn)行升級(jí)、部署、調(diào)用的相關(guān)操作。
(5)應(yīng)用層。應(yīng)用層主要包括食品元數(shù)據(jù)管理模塊,食品流通追溯模塊、食品質(zhì)量安全管理模塊以及消費(fèi)者查詢模塊。該系統(tǒng)采用前后端分離設(shè)計(jì),前端主要完成功能展示和與用戶交互,前后端通信采用JSON (RFC 4627)作為數(shù)據(jù)格式。
由于數(shù)據(jù)隱私性要求,本文選擇聯(lián)盟區(qū)塊鏈來(lái)構(gòu)建食品質(zhì)量安全追溯系統(tǒng),區(qū)塊鏈網(wǎng)絡(luò)中組員節(jié)點(diǎn)管理分為游離節(jié)點(diǎn)、觀察者節(jié)點(diǎn)和共識(shí)節(jié)點(diǎn),通過(guò)控制臺(tái)可以將這三種類型節(jié)點(diǎn)可相互轉(zhuǎn)換,新成員的加入和權(quán)限修改需要其他成員的同意。
共識(shí)節(jié)點(diǎn):能夠參與到共識(shí)流程的節(jié)點(diǎn),擁有聯(lián)盟區(qū)塊鏈內(nèi)所有數(shù)據(jù)。
觀察者節(jié)點(diǎn):不能參與共識(shí)留,但能實(shí)時(shí)同步鏈上數(shù)據(jù)的節(jié)點(diǎn)。
游離節(jié)點(diǎn):已啟動(dòng),待等待加入群組的節(jié)點(diǎn),處在一種暫時(shí)的節(jié)點(diǎn)狀態(tài),不能獲取鏈上的數(shù)據(jù)。
該平臺(tái)聯(lián)盟鏈主要由監(jiān)管機(jī)構(gòu)、第三方檢測(cè)機(jī)構(gòu)、物流企業(yè)、食品生產(chǎn)企業(yè)、銷售企業(yè)及消費(fèi)者之間的節(jié)點(diǎn)構(gòu)成,節(jié)點(diǎn)間通過(guò)RPC協(xié)議進(jìn)行通訊,按PBFT共識(shí)算法達(dá)成共識(shí),實(shí)現(xiàn)數(shù)據(jù)交互同步。
智能合約為去中心化應(yīng)用實(shí)現(xiàn)成為可能,該平臺(tái)智能合約語(yǔ)言與以太坊相同選擇Solidity編譯實(shí)現(xiàn),使用KVTable合約的讀寫(xiě)接口CRUD(Create, Read, Update, Delete),通過(guò)在Solidity合約中支持分布式存儲(chǔ)預(yù)編譯合約,實(shí)現(xiàn)區(qū)塊鏈的數(shù)據(jù)存儲(chǔ)以及AMDB存儲(chǔ)世界狀態(tài)信息,實(shí)現(xiàn)合約邏輯與數(shù)據(jù)分離[16]。
系統(tǒng)的智能合約運(yùn)行在EVM虛擬機(jī),虛擬機(jī)在強(qiáng)調(diào)安全性、事務(wù)性和一致性的區(qū)塊鏈系統(tǒng)里,具有沙盒特征,可以屏蔽硬件運(yùn)行環(huán)境影響而導(dǎo)致的不確定性因素,抵御系統(tǒng)中惡意代碼攻擊的同時(shí),保證同一個(gè)交易在不同物理主機(jī)上執(zhí)行結(jié)果一致性,執(zhí)行過(guò)程是安全的。
節(jié)點(diǎn)在收到打包的區(qū)塊數(shù)據(jù)后,首先會(huì)調(diào)用區(qū)塊驗(yàn)證模塊從打包的區(qū)塊中把交易分別取出,然后執(zhí)行引擎把交易交給EVM虛擬機(jī)執(zhí)行,進(jìn)行模擬執(zhí)行,交互過(guò)程如圖2所示。
圖2 Fisco Bcos智能合約執(zhí)行流程圖
該系統(tǒng)是建立一個(gè)基于聯(lián)盟區(qū)塊鏈的食品質(zhì)量安全信息溯源一體化平臺(tái),整合貫通生產(chǎn)、流通、終端消費(fèi)者等環(huán)節(jié),支持消費(fèi)者驗(yàn)真、監(jiān)管部門(mén)監(jiān)管。依托區(qū)塊鏈技術(shù),探索創(chuàng)新食品質(zhì)量安全追溯體系的構(gòu)建,從而提升監(jiān)管的信息化、規(guī)范化水平。本系統(tǒng)雖然充分利用區(qū)塊鏈新型信息化手段,將食品全產(chǎn)業(yè)鏈數(shù)據(jù)實(shí)現(xiàn)了防篡改、可追溯,但是,上鏈后的數(shù)據(jù)管理功能還有待于完善,后續(xù)可以考慮引入數(shù)據(jù)挖掘方法,應(yīng)用到對(duì)食品安全風(fēng)險(xiǎn)的分析上,可以更有效的從已有食品質(zhì)量安全追溯數(shù)據(jù)中發(fā)掘有用信息。