于連軍,于蘊(yùn)吉,劉嘯天,張 浩,陳桂芬
(1.長(zhǎng)春市農(nóng)業(yè)信息中心,吉林長(zhǎng)春 130118;2.農(nóng)安縣動(dòng)物衛(wèi)生監(jiān)督所,吉林農(nóng)安 130216;3.東北師范大學(xué)長(zhǎng)春人文學(xué)院,吉林長(zhǎng)春 130117)
近幾年,因食品質(zhì)量問題引發(fā)的糾紛、事故等屢見不鮮,所以食品安全問題逐漸受到各界的廣泛關(guān)注[1,2]。食品安全問題的屢次發(fā)生,不僅打擊了消費(fèi)者對(duì)食品行業(yè)的信心,同時(shí)也對(duì)食品種植地、生產(chǎn)地的經(jīng)濟(jì)造成了嚴(yán)重影響。大米作為我國(guó)主要的糧食之一,保證其食品安全就顯得尤為重要[3]。大米從種植到銷售,步驟繁多,涉及的人員更是很廣泛,因此要想從根源保證大米的質(zhì)量是非常困難的。尤其目前用于大米溯源的系統(tǒng)非常單一,并且存在管理人員隨意篡改大米信息的現(xiàn)象,因而就導(dǎo)致了大米信息可信度低的問題?;诖耍瑯?gòu)建一套大米追溯系統(tǒng)是非常必要的。本文基于區(qū)塊鏈、RFID技術(shù)等設(shè)計(jì)了一款可以應(yīng)用于大米信息追溯的追溯系統(tǒng)。
區(qū)塊鏈從本質(zhì)上來(lái)說(shuō)就是一個(gè)去中心化的數(shù)據(jù)庫(kù),其將不同數(shù)量的區(qū)塊按照鏈?zhǔn)椒绞竭B接在一起。鏈中的每一個(gè)區(qū)塊都保存了相應(yīng)的信息,并嚴(yán)格按照時(shí)間順序連接在一起。在區(qū)塊鏈中,這些區(qū)塊稱為節(jié)點(diǎn),每一個(gè)節(jié)點(diǎn)都保存在不同的個(gè)體手中,因此要想對(duì)區(qū)塊鏈內(nèi)任一節(jié)點(diǎn)中的信息進(jìn)行更改,都必須經(jīng)過一半以上的節(jié)點(diǎn)同意,不然更改信息的要求就無(wú)法實(shí)現(xiàn)。區(qū)塊鏈結(jié)構(gòu)圖如圖1所示,區(qū)塊鏈中的每一個(gè)區(qū)塊都包含兩個(gè)部分,分別是區(qū)塊頭和區(qū)塊主體。其中區(qū)塊頭包含區(qū)塊好、哈希值以及時(shí)間戳等信息;區(qū)塊主體則包含所有的交易信息。
AES的全稱是Advanced Encryption Standard,意思是高級(jí)加密標(biāo)準(zhǔn)。AES是經(jīng)典的加密算法,加密流程圖如圖2。
AES加密過程包括三個(gè)輪次,分別是初始輪、普通輪和最終輪。密鑰長(zhǎng)度不同,輪次也會(huì)不同。除去初始輪,密鑰為128位,設(shè)置10輪;密鑰為192位,設(shè)置12輪;密鑰為256位,設(shè)置14輪(后續(xù)介紹以10輪為例)。除最后一輪外,每一輪都包含四個(gè)處理步驟,分別是字節(jié)替換、移位行、列混合轉(zhuǎn)換和輪密鑰添加。
ECB模式全稱為Electronic CodeBook,是一種加密模式,其基本工作原理是先將需要進(jìn)行加密的數(shù)據(jù)進(jìn)行分組,然后嚴(yán)格按照分組進(jìn)行加密和解密操作。在區(qū)塊鏈中,ECB模式會(huì)將明文按照一定的位長(zhǎng)進(jìn)行分組,然后對(duì)明文塊進(jìn)行加密處理,處理以后得到密文組。在后續(xù)進(jìn)行解密的時(shí)候,操作相似,只不過是將經(jīng)過加密以后由明文變成密文的密文塊再轉(zhuǎn)換為明文。
超級(jí)賬本(Hyperledger Fabric)屬于聯(lián)盟鏈,參與者需要進(jìn)行成員身份管理和驗(yàn)證,且超級(jí)賬本同時(shí)可以支持多種不同的成員管理。超級(jí)賬本的參與者可以建立不同的通道,在相同通道內(nèi)的參與者可以共享該通道內(nèi)的賬內(nèi),而不屬于該通道的參與者則不能擁有該通道內(nèi)賬本的信息。
為了約束區(qū)塊鏈內(nèi)各節(jié)點(diǎn)的行為會(huì)設(shè)置智能合約,智能合約實(shí)質(zhì)上就是一種計(jì)算機(jī)交易協(xié)議,被稱為Chaincode。在不屬于區(qū)塊鏈內(nèi)部程序需要調(diào)用區(qū)塊鏈內(nèi)賬本的情況下,智能合約才會(huì)被調(diào)用。且在通常情況下,智能合約是不會(huì)查閱區(qū)塊鏈主體內(nèi)的交易記錄的。
二維碼技術(shù)是近幾年應(yīng)用較為廣泛的一種編碼技術(shù),與其他編碼技術(shù)相比,二維碼技術(shù)不僅可以存儲(chǔ)更多的信息,同時(shí)還可以表示更多的數(shù)據(jù)類型。本次編碼規(guī)則依據(jù)農(nóng)業(yè)農(nóng)村部發(fā)布的《中華人民共和國(guó)農(nóng)業(yè)行業(yè)標(biāo)準(zhǔn)》中的編碼規(guī)則進(jìn)行編碼。
2.1.1 系統(tǒng)需求設(shè)計(jì)分析
大米在種植、加工、運(yùn)輸、銷售等過程中都會(huì)涉及很多工作步驟,同時(shí)也會(huì)涉及很多參與人員,所以整個(gè)追溯系統(tǒng)是一個(gè)綜合性的系統(tǒng)。為保證可以對(duì)追溯系統(tǒng)的需求進(jìn)行準(zhǔn)確分析,將追溯系統(tǒng)的參與者分為三個(gè)部分,分別是服務(wù)提供者、消費(fèi)者和監(jiān)管者以及管理者。其中服務(wù)者、提供者包括所有提供服務(wù)的參與人員,包括農(nóng)民、倉(cāng)庫(kù)工作人員、銷售人員等等,這些人員需要完成身份認(rèn)證,然后還需要將所有有關(guān)大米的信息都錄入到區(qū)塊鏈內(nèi)。消費(fèi)和監(jiān)督者包括消費(fèi)者以及監(jiān)管部門的人員等,無(wú)論是消費(fèi)者,還是監(jiān)管部門的人員,都可以通過查詢大米的追溯碼以查看大米的所有信息,且可以進(jìn)行監(jiān)督,如果發(fā)現(xiàn)大米存在質(zhì)量問題,或者是信息不真實(shí)的問題,就可以進(jìn)行舉報(bào),尤其是監(jiān)管部門人員,一旦發(fā)現(xiàn)上述問題就應(yīng)該立刻根據(jù)區(qū)塊鏈內(nèi)保存的信息對(duì)大米生產(chǎn)地、銷售地等進(jìn)行追蹤溯源,將不合格的產(chǎn)品追回,且還要對(duì)相關(guān)人員進(jìn)行相應(yīng)的懲罰。區(qū)塊鏈管理人員是區(qū)塊鏈內(nèi)部重要的組成成員之一,其負(fù)責(zé)區(qū)塊鏈內(nèi)部的數(shù)據(jù)管理以及用戶管理等等,因此區(qū)塊鏈管理人員直接決定著區(qū)塊鏈的使用效能。
2.1.2 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
區(qū)塊鏈內(nèi)部的信息是公開的,因此很多用戶在上傳信息的時(shí)候就涉及隱私問題。比如,在大米種植技術(shù)上,不同農(nóng)戶使用的可能是不同的種植技術(shù),而這些種植技術(shù)農(nóng)戶是不想公開的;工廠在進(jìn)行加工的時(shí)候,不同工廠可能也會(huì)采用不同的加工技術(shù),而這些技術(shù)同樣是工廠不想公開的等等,所以為了解決這個(gè)問題,就應(yīng)用到了AES算法以及EBC模式。依托于這兩種技術(shù),參與者可以將隱私信息加密以后再上傳。為減少區(qū)塊鏈內(nèi)出現(xiàn)信息冗余的現(xiàn)象,在此對(duì)不同參與者需要上傳的信息進(jìn)行規(guī)定,具體信息見表1。
2.1.3 系統(tǒng)框架設(shè)計(jì)
大米追溯系統(tǒng)總共包括5層,分別是數(shù)據(jù)采集層、存儲(chǔ)層、合約層、共識(shí)層和應(yīng)用層。其中,數(shù)據(jù)采集層包括各個(gè)階段的數(shù)據(jù)信息采集,比如,利用RFID射頻技術(shù)采集大米條形碼信息;應(yīng)用各種傳感器獲取大米種植的濕度信息、溫度信息以及氧氣信息;應(yīng)用GPS技術(shù)獲取地理位置信息等等。存儲(chǔ)層主要負(fù)責(zé)各個(gè)階段上傳信息的存儲(chǔ),尤其對(duì)于需要加密的數(shù)據(jù)信息,要在加密以后才能上傳至區(qū)塊鏈,這樣才能有效保證數(shù)據(jù)信息的安全性。合約層則是存放了各種交易規(guī)則以及相關(guān)的法律法規(guī),這樣才能保證區(qū)塊鏈內(nèi)的所有行為都按照相應(yīng)的規(guī)則進(jìn)行,且在特定情況下不需要人為調(diào)用,可以自動(dòng)調(diào)取,這樣還可以提升交易的速度。共識(shí)層的主要職責(zé)是對(duì)交易的信息進(jìn)行驗(yàn)證,只有在保證所有節(jié)點(diǎn)的信息都一致的情況下,才能進(jìn)行交易,不然是無(wú)法進(jìn)行交易的,這樣可以充分保證交易的信息不會(huì)被篡改。應(yīng)用層則保證了參與者可以通過鏈上錄入信息,同時(shí)還可以通過二維碼查詢信息。
2.2.1 區(qū)塊鏈交易查詢頁(yè)面
區(qū)塊鏈交易信息查詢網(wǎng)頁(yè)左側(cè),有主頁(yè)、消息、賬戶三個(gè)選項(xiàng)欄,用戶可根據(jù)需要選擇。在網(wǎng)頁(yè)上方,可以通過合約號(hào)查詢相應(yīng)的交易信息。也可以根據(jù)交易發(fā)生的時(shí)間,通過搜索具體的時(shí)間查找在規(guī)定時(shí)間發(fā)生的交易信息。在網(wǎng)頁(yè)主體部分,展示了符合搜索信息的所有交易信息,可以看到有關(guān)交易的交易時(shí)間、哈希值等等。
2.2.2 二維碼實(shí)現(xiàn)
每一份大米產(chǎn)品都有單獨(dú)的二維碼和追溯碼,用戶可以通過在Web端輸入可追溯碼查詢,同時(shí)也可以通過手機(jī)端掃描二維碼查詢。
2.2.3 Web端和手機(jī)端查詢實(shí)現(xiàn)
網(wǎng)頁(yè)有四個(gè)選項(xiàng),用戶可根據(jù)需要選擇,如發(fā)現(xiàn)質(zhì)量問題也可以通過售后服務(wù)解決問題,同時(shí)也可以通過投訴渠道投訴。只要輸入可追溯碼,就可以查看到有關(guān)產(chǎn)品的基本信息、產(chǎn)地信息、加工信息、運(yùn)輸信息。用戶在掃描二維碼以后,同樣可以看到與Web端相同的產(chǎn)品信息。
在充分查閱了國(guó)內(nèi)外有關(guān)可追溯系統(tǒng)的資料以后,我們從大米食品安全角度出發(fā),將區(qū)塊鏈融合在可追溯系統(tǒng)內(nèi),研發(fā)了一套大米可追溯系統(tǒng)。基于區(qū)塊鏈,融合了智能合約、AES算法、ECB模式、RFID射頻技術(shù)、二維碼技術(shù)等,記錄了大米從種植到售賣到消費(fèi)者的所有信息,AES技術(shù)保證了隱私數(shù)據(jù)可以加密上傳,區(qū)塊鏈保證了大米信息不可隨意篡改,從根本上解決了大米信息造假問題。同時(shí)我們還研發(fā)了Web端和手機(jī)端,消費(fèi)者和監(jiān)管者可以隨時(shí)通過電子設(shè)備查詢大米信息,實(shí)現(xiàn)了可以隨時(shí)監(jiān)管,這樣就可以給保證大米質(zhì)量再加一道屏障。在未來(lái)工作中,我們會(huì)著力于改進(jìn)區(qū)塊鏈,使大米可追溯系統(tǒng)更完善。