王志鏵,柳平增,宋成寶,宋云勝,張 超,張 艷,吳曉彤,趙 坤
(山東農(nóng)業(yè)大學(xué) a.信息科學(xué)與工程學(xué)院; b.機(jī)械與電子工程學(xué)院,山東 泰安 271018)
農(nóng)產(chǎn)品溯源,即對農(nóng)產(chǎn)品從生產(chǎn)到流通產(chǎn)業(yè)鏈所有環(huán)節(jié)的正向追蹤與逆向回溯[1]。我國農(nóng)產(chǎn)品溯源體系經(jīng)過多年發(fā)展日趨完善,但仍存在溯源結(jié)果可信度低、系統(tǒng)靈活性差等問題。
為提高農(nóng)產(chǎn)品溯源系統(tǒng)的可信度與靈活性,可采用區(qū)塊鏈替代傳統(tǒng)集中式數(shù)據(jù)庫,以確保溯源數(shù)據(jù)安全存儲與信息源頭不可抵賴,從而實(shí)現(xiàn)農(nóng)產(chǎn)品的可信溯源[2]。此外,還可將完整產(chǎn)業(yè)鏈解耦為多個獨(dú)立環(huán)節(jié),與超級賬本中獨(dú)立通道結(jié)合為環(huán)節(jié)模塊,配合模塊調(diào)配機(jī)制并根據(jù)實(shí)際生產(chǎn)動態(tài)調(diào)整溯源流程,最終實(shí)現(xiàn)農(nóng)產(chǎn)品的動態(tài)溯源。本文在文獻(xiàn)[3-4]所提農(nóng)產(chǎn)品產(chǎn)業(yè)鏈柔性溯源模型的基礎(chǔ)上,結(jié)合超級賬本的特點(diǎn)與農(nóng)產(chǎn)品溯源的可信性及靈活性需求,提出基于區(qū)塊鏈的農(nóng)產(chǎn)品柔性可信溯源模型設(shè)計(jì)方案。
2006年我國提出建立農(nóng)產(chǎn)品質(zhì)量安全追溯體系[5],經(jīng)過多年發(fā)展該項(xiàng)目已經(jīng)取得豐碩的成果。文獻(xiàn)[6]結(jié)合物聯(lián)網(wǎng)技術(shù)特點(diǎn)提出“一核、雙軸、三鏈”的農(nóng)產(chǎn)品質(zhì)量安全追溯系統(tǒng)技術(shù)體系。文獻(xiàn)[7]基于食品鏈提出溯源系統(tǒng)的追溯鏈層次模型。文獻(xiàn)[8]針對我國溯源系統(tǒng)分散不集中的特點(diǎn),設(shè)計(jì)出農(nóng)產(chǎn)品質(zhì)量安全多邊溯源系統(tǒng)。文獻(xiàn)[9]提出基于區(qū)塊鏈的供應(yīng)鏈可信溯源查尋實(shí)現(xiàn)方案。文獻(xiàn)[10]構(gòu)建出基于Fabric區(qū)塊鏈實(shí)現(xiàn)策略的農(nóng)產(chǎn)品質(zhì)量溯源系統(tǒng)設(shè)計(jì)方案。通過分析典型溯源系統(tǒng)得到國內(nèi)傳統(tǒng)農(nóng)產(chǎn)品溯源模型,其結(jié)構(gòu)如圖1所示。

圖1 國內(nèi)傳統(tǒng)農(nóng)產(chǎn)品溯源模型結(jié)構(gòu)Fig.1 Structure of domestic traditional agriculturalproducts traceability model
傳統(tǒng)農(nóng)產(chǎn)品溯源系統(tǒng)普遍以集中式數(shù)據(jù)庫為中心[11]。在實(shí)際生產(chǎn)過程中,產(chǎn)業(yè)鏈中生產(chǎn)資料的供應(yīng)、種植、倉儲、物流、銷售等環(huán)節(jié)依次排布[12],溯源數(shù)據(jù)上傳至集中式數(shù)據(jù)庫[13]。質(zhì)量監(jiān)管部門通過調(diào)取集中式數(shù)據(jù)庫的信息以達(dá)到監(jiān)督農(nóng)產(chǎn)品質(zhì)量安全的目的。消費(fèi)者向集中式數(shù)據(jù)庫發(fā)送查詢請求可得到所購農(nóng)產(chǎn)品的溯源信息。
在農(nóng)產(chǎn)品溯源研究的前期階段,國內(nèi)研究人員通常將重點(diǎn)聚焦于溯源數(shù)據(jù)充分采集與產(chǎn)業(yè)鏈完整覆蓋上,而在數(shù)據(jù)安全存儲和系統(tǒng)動態(tài)追溯等方面的研究相對較少,導(dǎo)致傳統(tǒng)農(nóng)產(chǎn)品溯源系統(tǒng)的可信度與靈活性不足。部分研究人員將區(qū)塊鏈技術(shù)應(yīng)用到農(nóng)產(chǎn)品溯源中,卻很少結(jié)合兩者的特點(diǎn)優(yōu)化溯源流程及系統(tǒng)結(jié)構(gòu),雖然得到的溯源結(jié)果具有可信度,但系統(tǒng)靈活性仍有較大提升空間。
1)可信度
傳統(tǒng)農(nóng)產(chǎn)品溯源系統(tǒng)將數(shù)據(jù)存儲在集中式數(shù)據(jù)庫中,這帶來數(shù)據(jù)安全問題:(1)企業(yè)可能會為自身利益篡改數(shù)據(jù),導(dǎo)致無法達(dá)到可信溯源的目標(biāo);(2)如果系統(tǒng)遭受黑客攻擊或者存儲介質(zhì)發(fā)生損壞,溯源數(shù)據(jù)會被破壞甚至消失。數(shù)據(jù)安全問題會導(dǎo)致消費(fèi)者無法查詢到正確的溯源信息,從而降低農(nóng)產(chǎn)品溯源系統(tǒng)的可信度。
2)系統(tǒng)靈活性
傳統(tǒng)溯源系統(tǒng)通常針對較窄范圍內(nèi)特定的農(nóng)產(chǎn)品進(jìn)行溯源,溯源對象與生產(chǎn)過程的局限性導(dǎo)致溯源系統(tǒng)的事務(wù)處理流程被固化,無法根據(jù)實(shí)際生產(chǎn)場景動態(tài)調(diào)整生產(chǎn)環(huán)節(jié)組合順序,不利于系統(tǒng)功能拓展與升級,導(dǎo)致溯源系統(tǒng)的靈活性較差。
2008年NAKAMOTO提出區(qū)塊鏈概念[14],并將其作為比特幣的底層技術(shù)支撐。區(qū)塊鏈?zhǔn)且环N共享賬本,用于數(shù)據(jù)分布式加密存儲,其融合了計(jì)算機(jī)網(wǎng)絡(luò)、概率論、密碼學(xué)等多方面技術(shù),具有去中心化、天然互信、數(shù)據(jù)不可篡改等特性[15],被廣泛用于金融、能源、征信和貿(mào)易等多個領(lǐng)域[16]。
區(qū)塊鏈?zhǔn)怯蓞^(qū)塊有序串聯(lián)形成的鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)[17],區(qū)塊是構(gòu)成區(qū)塊鏈的基本單元,每條區(qū)塊鏈都存在于各自所屬的通道x中。區(qū)塊鏈包括區(qū)塊頭與區(qū)塊體,其結(jié)構(gòu)如圖2所示。區(qū)塊頭包含版本號、前一區(qū)塊Hash、Merkle樹根、時間戳等本區(qū)塊元信息。前一區(qū)塊Hash字段中保存前一區(qū)塊內(nèi)容的Hash值[18],若前一區(qū)塊中任何內(nèi)容被篡改,則對其內(nèi)容再次進(jìn)行Hash運(yùn)算后的結(jié)果就與此字段完全不同[19],由此可定位發(fā)生篡改的區(qū)塊位置。Merkle樹是一種Hash二叉樹,其葉子結(jié)點(diǎn)保存溯源數(shù)據(jù),分支節(jié)點(diǎn)保存子節(jié)點(diǎn)Hash值,底層節(jié)點(diǎn)數(shù)據(jù)發(fā)生變化后會逐級向上傳遞到父節(jié)點(diǎn)直到Merkle樹根,從而可定位發(fā)生篡改的節(jié)點(diǎn)位置。

圖2 區(qū)塊鏈結(jié)構(gòu)Fig.2 Blockchain structure
區(qū)塊鏈按照其對外開放程度分為公有鏈、私有鏈和聯(lián)盟鏈。其中:所有人都能參與并維護(hù)公有鏈(如比特幣),其在區(qū)塊鏈中信息公開,在公有鏈的基礎(chǔ)上引入身份驗(yàn)證機(jī)制可實(shí)現(xiàn)私有鏈與聯(lián)盟鏈;私有鏈只允許某組織內(nèi)部少數(shù)人參與,對信息保密度要求較高,通常用于企業(yè)內(nèi)部系統(tǒng);聯(lián)盟鏈介于公有鏈與私有鏈之間,由幾個組織共同參與和維護(hù),其所存儲信息也由上述參與方共享,例如銀行聯(lián)盟鏈[20]等。
目前區(qū)塊鏈主要有以太坊和超級賬本2種實(shí)現(xiàn)方式。其中:以太坊屬于公有鏈,對數(shù)據(jù)的保密度較低,且參與方不易管理[21];超級賬本屬于聯(lián)盟鏈,具有權(quán)限控制優(yōu)勢,較以太坊安全程度更高[22]。因此,本文以超級賬本為區(qū)塊鏈實(shí)現(xiàn)方式來設(shè)計(jì)基于區(qū)塊鏈的農(nóng)產(chǎn)品柔性可信溯源模型。
超級賬本具有去中心化、天然互信、數(shù)據(jù)不可篡改以及多通道等特點(diǎn),其與農(nóng)產(chǎn)品溯源相結(jié)合,既可保證溯源數(shù)據(jù)的可信度,又能為柔性可信溯源的實(shí)現(xiàn)提供架構(gòu)基礎(chǔ)。
1)去中心化。超級賬本采用分布式存儲結(jié)構(gòu),其中的peer節(jié)點(diǎn)均有同一賬本的完整備份,所有節(jié)點(diǎn)共同維護(hù)此賬本。超級賬本無集中式管理者,所有peer節(jié)點(diǎn)都可給出提案,并在通過共識機(jī)制后將新數(shù)據(jù)同步到每個節(jié)點(diǎn)的備份數(shù)據(jù)中,從而避免農(nóng)產(chǎn)品溯源系統(tǒng)的控制權(quán)由少數(shù)用戶掌控。
2)天然互信。由于超級賬本屬于聯(lián)盟鏈,要求其必須控制用戶權(quán)限,因此超級賬本中內(nèi)置基于證書等密碼學(xué)機(jī)制的身份驗(yàn)證功能,以確保只有聯(lián)盟中指定組織成員才能對賬本發(fā)起操作,且一旦發(fā)生農(nóng)產(chǎn)品質(zhì)量安全問題可直接追責(zé)至溯源數(shù)據(jù)發(fā)起方,身份的確定性保證了組織成員之間互相信任。
3)數(shù)據(jù)不可篡改。數(shù)據(jù)被加密保存在區(qū)塊的Merkle樹中,隨區(qū)塊同步到多個節(jié)點(diǎn)并持久化,相鄰區(qū)塊通過Hash值產(chǎn)生密切關(guān)聯(lián)。上述加密措施可提高數(shù)據(jù)篡改難度,從而保證農(nóng)產(chǎn)品溯源信息安全。如果要實(shí)現(xiàn)對某個區(qū)塊中數(shù)據(jù)的改動,則需繼續(xù)修改所有后續(xù)區(qū)塊和每個節(jié)點(diǎn)中的對應(yīng)備份。此外,由于超級賬本為分布式存儲,如果某個節(jié)點(diǎn)的數(shù)據(jù)被破壞,則其他節(jié)點(diǎn)可將數(shù)據(jù)恢復(fù)到該節(jié)點(diǎn),因此提高了區(qū)塊鏈系統(tǒng)的容錯性。
4)多通道。多通道是超級賬本特有的概念,1個通道存在1個賬本,該邏輯結(jié)構(gòu)可將賬本相互隔離,賬本之間無法直接通信從而確保賬本的機(jī)密性。操作不同賬本需不同身份加密信息,保證了賬本數(shù)據(jù)的隱私性。多通道為后續(xù)動態(tài)溯源機(jī)制的實(shí)現(xiàn)提供了架構(gòu)基礎(chǔ)。
本文設(shè)計(jì)了基于區(qū)塊鏈的農(nóng)產(chǎn)品柔性可信溯源模型及系統(tǒng)架構(gòu),并以生姜產(chǎn)品為溯源對象實(shí)現(xiàn)對該系統(tǒng)模型的驗(yàn)證。
以下介紹本文所提基于區(qū)塊鏈的農(nóng)產(chǎn)品柔性可信溯源模型系統(tǒng)的設(shè)計(jì)思想與動態(tài)追溯機(jī)制。
1)系統(tǒng)設(shè)計(jì)思想
如果將所有模塊的數(shù)據(jù)存儲在同個賬本中,隨著參與方的加入及環(huán)節(jié)擴(kuò)展,數(shù)據(jù)量會日漸龐大,數(shù)據(jù)內(nèi)容會趨于復(fù)雜,不同環(huán)節(jié)參與方在同個區(qū)塊鏈系統(tǒng)中共享數(shù)據(jù)隱私性也會降低。本文在雙區(qū)塊鏈和側(cè)鏈結(jié)構(gòu)的農(nóng)產(chǎn)品供需系統(tǒng)基礎(chǔ)上[2,20,23],結(jié)合超級賬本的通道概念,進(jìn)一步細(xì)化存儲結(jié)構(gòu),提出“一環(huán)節(jié)一賬本”的設(shè)計(jì)思想[24],將各環(huán)節(jié)數(shù)據(jù)相互隔離存儲在不同賬本中,為后續(xù)實(shí)現(xiàn)動態(tài)溯源所要求的模塊化結(jié)構(gòu)做好準(zhǔn)備,并在保證數(shù)據(jù)安全的基礎(chǔ)上降低存儲結(jié)構(gòu)復(fù)雜度以實(shí)現(xiàn)可信溯源。
2)動態(tài)追溯機(jī)制
農(nóng)產(chǎn)品產(chǎn)業(yè)鏈中各環(huán)節(jié)之間銜接的先后順序并非固定不變,溯源系統(tǒng)需根據(jù)實(shí)際生產(chǎn)的推進(jìn)情況靈活追蹤不同環(huán)節(jié)直到串聯(lián)為完整的溯源鏈,即動態(tài)追溯。本文先遵循“高內(nèi)聚,低耦合”的軟件設(shè)計(jì)標(biāo)準(zhǔn),將復(fù)雜的系統(tǒng)解耦、封裝為一系列功能模塊,再在生產(chǎn)過程中根據(jù)實(shí)際需求選擇后續(xù)環(huán)節(jié),并將現(xiàn)階段農(nóng)產(chǎn)品信息發(fā)送至該環(huán)節(jié)模塊進(jìn)行下一階段處理,從而實(shí)現(xiàn)農(nóng)產(chǎn)品產(chǎn)業(yè)鏈靈活延伸,使溯源系統(tǒng)能適應(yīng)不同場景下的生產(chǎn)流程,最終實(shí)現(xiàn)動態(tài)追溯。
為提高農(nóng)產(chǎn)品溯源系統(tǒng)的可信度與靈活性,本文結(jié)合“一環(huán)節(jié)一賬本”的設(shè)計(jì)思想與動態(tài)追溯機(jī)制,提出基于區(qū)塊鏈的農(nóng)產(chǎn)品柔性可信溯源模型,其結(jié)構(gòu)如圖3所示(圖中實(shí)線表示直接通信,虛線表示間接通信)。在該模型中:產(chǎn)業(yè)鏈各環(huán)節(jié)和模塊管理服務(wù)均由適量的獨(dú)立模塊組成,模塊內(nèi)后臺服務(wù)程序與具備本環(huán)節(jié)賬本操作權(quán)限的peer節(jié)點(diǎn)整合,能獨(dú)立處理環(huán)節(jié)主體的事務(wù)請求并安全存儲溯源數(shù)據(jù);環(huán)節(jié)模塊與模塊管理服務(wù)模塊直接交互,環(huán)節(jié)模塊間通過此服務(wù)模塊實(shí)現(xiàn)間接通信;模塊管理服務(wù)模塊處于溯源模型的核心部位,負(fù)責(zé)管理與調(diào)配系統(tǒng)中各環(huán)節(jié),并處理質(zhì)量監(jiān)管部門與消費(fèi)者的查詢請求,完成環(huán)節(jié)之間動態(tài)組合進(jìn)而實(shí)現(xiàn)靈活溯源。基于區(qū)塊鏈的農(nóng)產(chǎn)品柔性可信溯源模型由區(qū)塊鏈儲存關(guān)鍵數(shù)據(jù)以確保系統(tǒng)的可信性,各環(huán)節(jié)之間無固定銜接順序,其主要根據(jù)模塊管理服務(wù)模塊的統(tǒng)一調(diào)度,按照實(shí)際生產(chǎn)需求靈活排布環(huán)節(jié)模塊,最終實(shí)現(xiàn)產(chǎn)業(yè)鏈的柔性延展。

圖3 基于區(qū)塊鏈的農(nóng)產(chǎn)品柔性可信溯源模型結(jié)構(gòu)Fig.3 Flexible and reliable blockchain-based traceability model structure of agricultural products
基于區(qū)塊鏈的農(nóng)產(chǎn)品柔性可信溯源系統(tǒng)架構(gòu)如圖4所示,該系統(tǒng)主要由數(shù)據(jù)采集層、存儲層、應(yīng)用層以及交互層構(gòu)成。

圖4 基于區(qū)塊鏈的農(nóng)產(chǎn)品柔性可信溯源系統(tǒng)架構(gòu)Fig.4 Architecture of flexible and credible blockchain-basedtraceability system for agricultural products
1)數(shù)據(jù)采集層
數(shù)據(jù)采集層是由生產(chǎn)資料供應(yīng)商、種植農(nóng)戶、倉庫、物流公司、銷售商等產(chǎn)業(yè)鏈中間環(huán)節(jié)參與者通過配套的農(nóng)殘檢測儀、溫濕度傳感器、掃描設(shè)備、RFID標(biāo)簽等物聯(lián)網(wǎng)設(shè)備,詳盡地采集各環(huán)節(jié)數(shù)據(jù),以實(shí)現(xiàn)農(nóng)產(chǎn)品產(chǎn)業(yè)鏈信息的完整輸入。
2)存儲層
存儲層由超級賬本與傳統(tǒng)集中式數(shù)據(jù)庫組成,超級賬本與集中式數(shù)據(jù)庫分別保存溯源數(shù)據(jù)與非溯源數(shù)據(jù)。產(chǎn)業(yè)鏈各環(huán)節(jié)的參與者在對應(yīng)賬本中均有其特定身份標(biāo)識,根據(jù)溯源數(shù)據(jù)的加密信息可直接對發(fā)布者進(jìn)行定位,從源頭確保數(shù)據(jù)的不可抵賴性。產(chǎn)業(yè)鏈各環(huán)節(jié)數(shù)據(jù)只保存于對應(yīng)模塊的賬本內(nèi),以降低數(shù)據(jù)結(jié)構(gòu)復(fù)雜度,并提高系統(tǒng)的可拓展性與靈活性。結(jié)合圖3可知,模塊管理服務(wù)模塊處于系統(tǒng)中心,其他模塊均僅與其直接交互并由其統(tǒng)一管理,各環(huán)節(jié)模塊的狀態(tài)信息也由模塊信息賬本統(tǒng)一保存,通過集中式管理機(jī)制實(shí)現(xiàn)環(huán)節(jié)模塊的規(guī)范管理與靈活調(diào)配。超級賬本與傳統(tǒng)的集中式數(shù)據(jù)庫互相配合存儲農(nóng)產(chǎn)品溯源系統(tǒng)全部數(shù)據(jù)。
3)應(yīng)用層
應(yīng)用層為系統(tǒng)管理員、數(shù)據(jù)提供者、質(zhì)量監(jiān)管部門以及消費(fèi)者提供服務(wù)。其中:系統(tǒng)管理員負(fù)責(zé)維護(hù)農(nóng)產(chǎn)品溯源系統(tǒng)與超級賬本,保證其穩(wěn)定運(yùn)行;數(shù)據(jù)提供者即產(chǎn)業(yè)鏈中間環(huán)節(jié)的參與者,其主要負(fù)責(zé)采集產(chǎn)業(yè)鏈中的溯源數(shù)據(jù)并上傳到系統(tǒng);質(zhì)量監(jiān)管部門負(fù)責(zé)監(jiān)督上鏈的農(nóng)產(chǎn)品是否符合質(zhì)量安全標(biāo)準(zhǔn),并對存在問題的農(nóng)產(chǎn)品發(fā)出警告;消費(fèi)者是農(nóng)產(chǎn)品產(chǎn)業(yè)鏈的最后一環(huán),其主要負(fù)責(zé)對所購農(nóng)產(chǎn)品的溯源數(shù)據(jù)進(jìn)行查詢。
4)交互層
交互層包括Web應(yīng)用、手機(jī)APP、微信小程序以及溯源終端,是系統(tǒng)與使用者之間的接口,可提供快捷方便的系統(tǒng)操作途徑。
本文以生姜產(chǎn)業(yè)鏈為例,從動態(tài)溯源機(jī)制角度出發(fā)介紹基于區(qū)塊鏈的農(nóng)產(chǎn)品柔性可信溯源系統(tǒng)應(yīng)用場景并分析動態(tài)溯源過程。
3.4.1 溯源系統(tǒng)的運(yùn)行
假設(shè)某生姜產(chǎn)品依次經(jīng)歷種植、物流、倉儲、物流和銷售5個環(huán)節(jié)后到達(dá)消費(fèi)者手中,參照圖4的系統(tǒng)架構(gòu),溯源模型的運(yùn)行流程如下:
1)種植環(huán)節(jié)
該生姜溯源產(chǎn)品的流程由種植環(huán)節(jié)開始。在種植環(huán)節(jié)運(yùn)行過程中,種植戶將地塊信息、種植人員信息、生產(chǎn)資料數(shù)據(jù)、生產(chǎn)過程數(shù)據(jù)等錄入種植數(shù)據(jù)賬本。在種植環(huán)節(jié)完成后,系統(tǒng)自動為該環(huán)節(jié)輸出產(chǎn)品生成批次碼,同時模塊管理服務(wù)模塊為種植戶提供可選的下一環(huán)節(jié)。種植戶根據(jù)實(shí)際生產(chǎn)需要選定物流環(huán)節(jié),種植環(huán)節(jié)的產(chǎn)品批次碼會即刻通過模塊管理服務(wù)模塊提交到所選物流環(huán)節(jié),并在該環(huán)節(jié)完成后續(xù)過程。
2)物流環(huán)節(jié)
在物流環(huán)節(jié)運(yùn)行過程中,物流公司將農(nóng)產(chǎn)品的發(fā)貨地、目的地、配送人員、配送路線等信息錄入物流數(shù)據(jù)賬本。在物流環(huán)節(jié)完成后,相關(guān)操作與種植環(huán)節(jié)相同,系統(tǒng)自動生成批次碼,物流公司選擇倉儲環(huán)節(jié)作為下一環(huán)節(jié)并將批次碼提交至該環(huán)節(jié),然后在所選倉儲環(huán)節(jié)完成后續(xù)過程。
3)倉儲環(huán)節(jié)
在倉儲環(huán)節(jié)運(yùn)行過程中,倉庫管理員將農(nóng)產(chǎn)品的入庫時間、出庫時間、倉庫環(huán)境信息等錄入倉儲數(shù)據(jù)賬本。在倉儲環(huán)節(jié)完成后,重復(fù)與物流環(huán)節(jié)類似的操作,系統(tǒng)自動生成批次碼,倉儲管理員選擇物流環(huán)節(jié)作為下一環(huán)節(jié)并將批次碼提交至該環(huán)節(jié),然后在所選物流環(huán)節(jié)完成后續(xù)過程。
4)物流環(huán)節(jié)
物流環(huán)節(jié)的運(yùn)行過程與上個物流環(huán)節(jié)相同。在物流環(huán)節(jié)完成后,系統(tǒng)會自動生成批次碼,物流公司選擇銷售環(huán)節(jié)作為下一環(huán)節(jié)并將批次碼提交至該環(huán)節(jié),然后在所選銷售環(huán)節(jié)完成后續(xù)過程。值得注意的是,這批生姜雖經(jīng)歷過2次不同的物流運(yùn)輸過程,但其物流數(shù)據(jù)的提交、處理、保存等操作均在物流環(huán)節(jié)模塊中完成。
5)銷售環(huán)節(jié)
在銷售環(huán)節(jié)運(yùn)行過程中,分銷商將農(nóng)產(chǎn)品的價格、銷售地點(diǎn)、上架時間等錄入銷售數(shù)據(jù)賬本,系統(tǒng)自動為商品生成批次碼。在銷售環(huán)節(jié)完成后,消費(fèi)者可憑借銷售環(huán)節(jié)批次碼查詢商品所經(jīng)歷的全部環(huán)節(jié)數(shù)據(jù)。
3.4.2 溯源流程的優(yōu)化
結(jié)合上述系統(tǒng)運(yùn)行流程可知,柔性可信溯源模型使溯源流程較傳統(tǒng)農(nóng)產(chǎn)品溯源模型在靈活性方面有本質(zhì)提升,上述模型的邏輯流程如圖5所示。與傳統(tǒng)農(nóng)產(chǎn)品溯源流程的一維邏輯結(jié)構(gòu)相比,柔性可信溯源流程的邏輯結(jié)構(gòu)升級為二維有向連通結(jié)構(gòu),環(huán)節(jié)順序不再固定,產(chǎn)業(yè)鏈中任意兩節(jié)點(diǎn)可前后相繼,進(jìn)而實(shí)現(xiàn)隨著實(shí)際需求動態(tài)改變生產(chǎn)流程走向的目的。

圖5 不同模型的邏輯流程Fig.5 Logical flow of different models
3.5.1 溯源碼標(biāo)識對象的確定
農(nóng)產(chǎn)品產(chǎn)業(yè)鏈各環(huán)節(jié)生產(chǎn)信息通過溯源碼前后銜接形成完整的溯源數(shù)據(jù),但是以哪種粒度的農(nóng)產(chǎn)品作為溯源碼標(biāo)識對象值得考慮。本文從產(chǎn)業(yè)鏈網(wǎng)絡(luò)中剝離并分析得到上、下游環(huán)節(jié)輸出產(chǎn)品之間的對應(yīng)關(guān)系模型,并選取輸出產(chǎn)品作為溯源對象。
由于產(chǎn)業(yè)鏈各環(huán)節(jié)形成復(fù)雜的供需關(guān)系網(wǎng)絡(luò),對某一環(huán)節(jié)而言,可能同時有多個上游環(huán)節(jié)發(fā)來不同生產(chǎn)原料,也可能向多個下游環(huán)節(jié)同時輸出本環(huán)節(jié)的不同產(chǎn)品,產(chǎn)品之間供需關(guān)系較復(fù)雜,因此上下游關(guān)系可分別從環(huán)節(jié)層次與產(chǎn)品層次來分析。值得注意的是,產(chǎn)品層次的分析結(jié)果是在環(huán)節(jié)層次分析的基礎(chǔ)上形成,環(huán)節(jié)之間與產(chǎn)品之間的上下游對應(yīng)關(guān)系如圖6所示。其中:a模塊為復(fù)雜的農(nóng)產(chǎn)品產(chǎn)業(yè)鏈,A、B、C、D分別代表種植、加工、倉儲、物流等農(nóng)產(chǎn)品產(chǎn)業(yè)鏈環(huán)節(jié),由于這些環(huán)節(jié)會出現(xiàn)在產(chǎn)業(yè)鏈中任何位置,因此其既可作為上游環(huán)節(jié)向下游環(huán)節(jié)輸出原料,也可作為下游環(huán)節(jié)接收原料并運(yùn)行本環(huán)節(jié)處理過程;b模塊將C作為輸入環(huán)節(jié),并剔除a模塊中多余的上下游關(guān)系,A、B等n個輸出環(huán)節(jié)向環(huán)節(jié)C輸出原料,環(huán)節(jié)C接收原料并進(jìn)行本環(huán)節(jié)內(nèi)的生產(chǎn)活動,這種上下游關(guān)系可視為環(huán)節(jié)間復(fù)雜關(guān)系的基本組成單位;c模塊將上下游關(guān)系的粒度進(jìn)一步細(xì)化到產(chǎn)品層次,上游環(huán)節(jié)輸出原料就是該環(huán)節(jié)的產(chǎn)品,下游環(huán)節(jié)接收原料為生產(chǎn)本環(huán)節(jié)產(chǎn)品,環(huán)節(jié)間上下游關(guān)系的實(shí)質(zhì)是產(chǎn)品間上下游關(guān)系;d模塊在c模塊的基礎(chǔ)上減少了環(huán)節(jié)層次和其他無關(guān)產(chǎn)品,只保留C環(huán)節(jié)某一輸出產(chǎn)品及其對應(yīng)的上游原料產(chǎn)品,簡化后產(chǎn)品上下游關(guān)系可視為產(chǎn)品間復(fù)雜關(guān)系的基本組成單位。

圖6 環(huán)節(jié)之間與產(chǎn)品之間的上下游對應(yīng)關(guān)系Fig.6 Corresponding relationship between upstream and downstream between links and products
3.5.2 賬本內(nèi)容及數(shù)據(jù)格式
超級賬本主要用來存儲鍵值對數(shù)據(jù)。本文結(jié)合溯源碼標(biāo)識對象的確定,以環(huán)節(jié)輸出產(chǎn)品批次碼和數(shù)據(jù)所屬環(huán)節(jié)標(biāo)識碼為鍵,以環(huán)節(jié)輸入原料批次碼集、生產(chǎn)過程負(fù)責(zé)人姓名和編號、加工步驟名稱為值,以JSON格式書寫鍵、值信息并作為農(nóng)產(chǎn)品溯源數(shù)據(jù)的存儲格式,具體樣例如下:
1.{"traceCode":"12345","linkCode":"CLink"}:
2.{
3."rawMaterialTraceCodes":[
4.{"rawMaterialTraceCode":"678",
5."linkCode":"ALink"},
6.{"rawMaterialTraceCode":"789",
7."linkCode":"BLink"}
8.],
9."producer":"oneProducer",
10."producerCode":"12345",
11."productionProcess":[
12.{"stepName":"firstStep"},
13.{"stepName":"secondStep"}
14.]
15.}
3.6.1 應(yīng)用背景
山東省萬興食品有限公司(以下簡稱萬興),是全國生姜出口第一大戶,也是農(nóng)業(yè)產(chǎn)業(yè)化國家重點(diǎn)龍頭企業(yè),該公司已具有多年溯源系統(tǒng)應(yīng)用經(jīng)驗(yàn)。本文結(jié)合萬興生姜產(chǎn)業(yè)鏈流程分析其環(huán)節(jié)之間與產(chǎn)品之間的上下游關(guān)系,將原有系統(tǒng)進(jìn)行升級,充分利用超級賬本的多通道架構(gòu)和模塊化設(shè)計(jì)思想,建立基于區(qū)塊鏈的生姜產(chǎn)品質(zhì)量安全管理柔性可信溯源系統(tǒng)。
3.6.2 系統(tǒng)模型實(shí)現(xiàn)
本文在Hyperledger Fabric v1.1版本開源框架的基礎(chǔ)上,采用4臺服務(wù)器組建具有3個orderer節(jié)點(diǎn)、4個peer節(jié)點(diǎn)、基于Kafka共識機(jī)制的超級賬本后端,將fabric-sdk-java植入?yún)^(qū)塊鏈前端代碼并根據(jù)具體功能需求做出適配,初步實(shí)現(xiàn)基于區(qū)塊鏈的生姜產(chǎn)品質(zhì)量安全管理柔性可信溯源系統(tǒng)。該系統(tǒng)自2019年7月開始測試運(yùn)行,到2019年9月已穩(wěn)定運(yùn)行70多天,各區(qū)塊鏈存儲數(shù)據(jù)共計(jì)800余條。生姜脫水類產(chǎn)品系統(tǒng)、生姜脫水類產(chǎn)品向上與向下溯源信息、區(qū)塊鏈后臺測試樣例信息輸出等系統(tǒng)運(yùn)行界面如圖7~圖9所示。在實(shí)際運(yùn)行過程中可以看到,系統(tǒng)將完整產(chǎn)業(yè)鏈數(shù)據(jù)按環(huán)節(jié)劃分存儲在不同模塊的區(qū)塊鏈中,模塊間通過網(wǎng)絡(luò)交互數(shù)據(jù)合作完成系統(tǒng)功能,并能根據(jù)生姜生產(chǎn)流程的變化改變或追加追溯環(huán)節(jié),柔性貼合實(shí)際的產(chǎn)業(yè)鏈走向,實(shí)現(xiàn)了基于區(qū)塊鏈的農(nóng)產(chǎn)品質(zhì)量安全可信溯源,這表明該系統(tǒng)可有效提高溯源信息安全性和溯源結(jié)果可信度,靈活性較傳統(tǒng)溯源系統(tǒng)有本質(zhì)提升。

圖7 生姜脫水類產(chǎn)品系統(tǒng)Fig.7 Ginger dehydration product system

圖8 生姜脫水類產(chǎn)品向上與向下溯源信息Fig.8 Upward and downward traceability informationof ginger dehydration products

圖9 區(qū)塊鏈后臺測試樣例信息輸出Fig.9 Information output of blockchain backgroundtest sample
本文在傳統(tǒng)農(nóng)產(chǎn)品溯源模型的基礎(chǔ)上,結(jié)合超級賬本與農(nóng)產(chǎn)品供應(yīng)鏈的特點(diǎn),提出“一環(huán)節(jié)一賬本”的系統(tǒng)設(shè)計(jì)思想與動態(tài)追溯機(jī)制,建立基于區(qū)塊鏈的農(nóng)產(chǎn)品柔性可信溯源模型及系統(tǒng)架構(gòu),針對模型應(yīng)用過程中出現(xiàn)的追溯粒度與溯源數(shù)據(jù)結(jié)構(gòu)問題給出解決方案,并以生姜產(chǎn)品為追溯對象進(jìn)行溯源模型的驗(yàn)證。分析及應(yīng)用結(jié)果表明,該系統(tǒng)具有數(shù)據(jù)存儲安全、農(nóng)產(chǎn)品質(zhì)量安全責(zé)任主體明確以及系統(tǒng)拓展性強(qiáng)等特點(diǎn),實(shí)現(xiàn)了農(nóng)產(chǎn)品的柔性可信溯源,系統(tǒng)追溯產(chǎn)品信息可信度高,可適用于多種生產(chǎn)場景。后續(xù)將針對本文模型設(shè)計(jì)溯源碼標(biāo)準(zhǔn)和追溯機(jī)制提高系統(tǒng)效率,研究用于數(shù)據(jù)批量處理應(yīng)用場景的數(shù)據(jù)安全保障方案,同時在農(nóng)產(chǎn)品溯源系統(tǒng)中加入供需交易功能,利用大數(shù)據(jù)分析并根據(jù)供需雙方交易行為定向推送其所需農(nóng)產(chǎn)品信息。