王麗娟
(上海市水產(chǎn)研究所,上海 200433)
水產(chǎn)品的安全嚴(yán)重威脅到消費(fèi)者的身體健康,建立一套水產(chǎn)品質(zhì)量追溯體系具有迫切的現(xiàn)實(shí)意義。目前,存在的溯源系統(tǒng)在數(shù)據(jù)安全、系統(tǒng)參與主體管理等方面存在問(wèn)題。近年來(lái),區(qū)塊鏈技術(shù)的發(fā)展為水產(chǎn)品溯源提供了技術(shù)保證。因此,本文提出了基于區(qū)塊鏈技術(shù)的水產(chǎn)品質(zhì)量追溯體系課題。
區(qū)塊鏈?zhǔn)怯蓞^(qū)塊構(gòu)成的一種有序鏈型數(shù)據(jù)結(jié)構(gòu),鏈中每個(gè)區(qū)塊都包含前區(qū)塊的哈希值,可以由鏈上任意區(qū)塊追溯到第一個(gè)區(qū)塊(創(chuàng)始?jí)K),結(jié)構(gòu)如圖1所示。
圖1 區(qū)塊鏈結(jié)構(gòu)
系統(tǒng)中區(qū)塊鏈中的數(shù)據(jù)源通過(guò)人工錄入后,數(shù)據(jù)被記錄在區(qū)塊體中,并且采用HASH加密算法保存。這種算法使得互聯(lián)網(wǎng)上其他用戶(hù)難以解密數(shù)據(jù),可以確保區(qū)塊鏈信息的安全性和完整性。圖2為溯源區(qū)塊鏈結(jié)構(gòu)形式。
基于區(qū)塊鏈的追溯系統(tǒng)架構(gòu)包括應(yīng)用層、合約層、網(wǎng)絡(luò)層和數(shù)據(jù)層,如圖3所示。
應(yīng)用層主要包括用戶(hù)管理、追溯信息管理、密鑰管理、權(quán)限管理、用戶(hù)管理、密鑰管理和權(quán)限管理,如圖4所示[1]。應(yīng)用層解決了如何使用區(qū)塊鏈技術(shù)的問(wèn)題,即構(gòu)成了“區(qū)塊鏈+水產(chǎn)品”的各種應(yīng)用場(chǎng)景。記錄水產(chǎn)品的養(yǎng)殖過(guò)程相關(guān)信息,如養(yǎng)殖地點(diǎn)、放養(yǎng)起捕時(shí)間、放養(yǎng)期間的投入品、使用魚(yú)藥、使用飼料和換水記錄等信息;記錄水產(chǎn)品加工過(guò)程中,各個(gè)用料的含量、包裝材料、保質(zhì)期等信息;記錄加工后的水產(chǎn)品最后的銷(xiāo)往場(chǎng)所、銷(xiāo)售價(jià)格、銷(xiāo)售時(shí)間。各個(gè)應(yīng)用場(chǎng)景中產(chǎn)生的數(shù)據(jù),最后都要寫(xiě)入?yún)^(qū)塊鏈。
圖2 溯源區(qū)塊鏈結(jié)構(gòu)形式
圖3 基于區(qū)塊鏈的追溯系統(tǒng)架構(gòu)
圖4 用戶(hù)、密鑰、權(quán)限管理
智能合約層包括合約的注冊(cè)、觸發(fā)、執(zhí)行、注銷(xiāo)4個(gè)部分。合約注冊(cè)是將用戶(hù)編寫(xiě)好的合約安全檢查處理后共識(shí)存儲(chǔ)到區(qū)塊鏈的過(guò)程。合約觸發(fā)是在合約注冊(cè)后通過(guò)外部條件觸發(fā)合約執(zhí)行的過(guò)程。合約執(zhí)行是合約代碼在獨(dú)立環(huán)境中運(yùn)行的過(guò)程。合約注銷(xiāo)是對(duì)已經(jīng)執(zhí)行過(guò)、過(guò)期作廢或者業(yè)務(wù)需求不在需要的合約進(jìn)行清理。
網(wǎng)絡(luò)層承擔(dān)數(shù)據(jù)的傳播和驗(yàn)證,維護(hù)區(qū)塊鏈網(wǎng)絡(luò)的穩(wěn)定運(yùn)行,通過(guò)共識(shí)算法保證節(jié)點(diǎn)的安全。
傳統(tǒng)的水產(chǎn)品質(zhì)量追溯體系與基于區(qū)塊鏈的水產(chǎn)品質(zhì)量追溯體系進(jìn)行比較,如圖5、6所示??梢?jiàn),基于區(qū)塊鏈的水產(chǎn)品質(zhì)量追溯系統(tǒng)具有一定的創(chuàng)新性。
①基于區(qū)塊鏈的水產(chǎn)品追溯系統(tǒng)采用P2P的分布式網(wǎng)絡(luò)架構(gòu),使數(shù)據(jù)分布式存儲(chǔ)于各節(jié)點(diǎn),所有節(jié)點(diǎn)通過(guò)共識(shí)算法保證交易的一致性。任意單個(gè)節(jié)點(diǎn)故障或者少數(shù)節(jié)點(diǎn)故障,系統(tǒng)能正常運(yùn)行,且故障節(jié)點(diǎn)數(shù)據(jù)可以恢復(fù)。所有參與方在區(qū)塊鏈中通過(guò)加密后的ID進(jìn)行標(biāo)識(shí),不需要所有交易者提供身份隱私信息,保證交易者的隱私不被泄露。同一個(gè)交易者可通過(guò)多個(gè)ID進(jìn)行多次交易來(lái)達(dá)到隱私保護(hù)的目的。
②基于區(qū)塊鏈的水產(chǎn)品質(zhì)量追溯系統(tǒng)數(shù)據(jù)是一個(gè)共享式的分布式數(shù)據(jù)庫(kù)。用戶(hù)通過(guò)系統(tǒng)界面注冊(cè)后會(huì)自動(dòng)獲取一對(duì)密鑰(一個(gè)公鑰和一個(gè)私鑰)[2],區(qū)塊鏈網(wǎng)絡(luò)根據(jù)密鑰所屬類(lèi)型開(kāi)放對(duì)應(yīng)權(quán)限。養(yǎng)殖戶(hù)、水產(chǎn)專(zhuān)管員、加工商、銷(xiāo)售商可進(jìn)行數(shù)據(jù)的錄入和查詢(xún),消費(fèi)者只能查詢(xún)和追溯水產(chǎn)品數(shù)據(jù)?;趨^(qū)塊鏈的系統(tǒng)允許全球范圍內(nèi)任何節(jié)點(diǎn)成為區(qū)塊鏈網(wǎng)絡(luò)的成員之一,享受與其他節(jié)點(diǎn)同等的權(quán)利,從而實(shí)現(xiàn)數(shù)據(jù)信息共享,提高數(shù)據(jù)的利用率,減少數(shù)據(jù)資源的浪費(fèi)。
本文采用區(qū)塊鏈技術(shù)實(shí)現(xiàn)水產(chǎn)品質(zhì)量追溯,大量使用反對(duì)稱(chēng)加密技術(shù)來(lái)驗(yàn)證基于公網(wǎng)的消息可靠性,基于哈希算法實(shí)現(xiàn)如快速驗(yàn)證數(shù)據(jù)未被篡改等諸多特性。
圖5 傳統(tǒng)追溯系統(tǒng)
圖6 基于區(qū)塊鏈的追溯系統(tǒng)