劉秀升 郝秋梅 羅詩棟 和斌濤
摘要:區(qū)塊鏈技術(shù)具有去中心、防篡改、分布存儲等特性,本文利用私有鏈的高效性和聯(lián)盟鏈的可擴(kuò)展性好這些特點(diǎn)設(shè)計(jì)了基于雙區(qū)塊鏈結(jié)構(gòu)的農(nóng)業(yè)食品追溯方案,實(shí)現(xiàn)對農(nóng)業(yè)食品種植、加工、質(zhì)檢、倉儲、運(yùn)輸、銷售等過程的追溯,將各個生產(chǎn)過程的詳細(xì)信息存儲在IPFS系統(tǒng)中,將各個生產(chǎn)過程追溯信息的Hash值存儲在私有區(qū)塊鏈上,前一階段在私有鏈中的交易ID將記錄在下一階段的追溯信息中,消費(fèi)者通過銷售階段的追溯信息結(jié)合IPFS可以獲得農(nóng)業(yè)食品完整的溯源信息,通過將最后銷售階段追溯信息的Hash值作為交易鏈接到聯(lián)盟鏈上,加強(qiáng)方案的安全性和可信度。私有鏈的功能是溯源信息的收集、追蹤,聯(lián)盟鏈的功能是溯源信息的防篡改和驗(yàn)證。本追溯方案可以實(shí)現(xiàn)對農(nóng)業(yè)食品的信息查詢、源頭追溯、商標(biāo)防偽、責(zé)任追究,從而保證農(nóng)業(yè)食品安全。
關(guān)鍵詞:區(qū)塊鏈;Hash函數(shù);追溯;IPFS
中圖分類號:TP393? ? ? ?文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)36-0227-02
1 引言
農(nóng)業(yè)食品安全關(guān)系到每個人的健康,食品安全事故時有發(fā)生,消費(fèi)者買了一桶菜籽油,諸如油菜產(chǎn)地、油菜等級、加工工藝、加工時間、質(zhì)檢部門的質(zhì)檢結(jié)論、包裝倉儲信息、運(yùn)輸記錄以及銷售者的資質(zhì)等信息都是消費(fèi)者關(guān)心的問題,但是由于農(nóng)業(yè)食品從種植、加工、質(zhì)檢、倉儲、運(yùn)輸、銷售環(huán)節(jié)眾多,涉及人員復(fù)雜,責(zé)任不明確。難以實(shí)現(xiàn)對農(nóng)業(yè)食品信息的完全追溯。區(qū)塊鏈技術(shù)可以實(shí)現(xiàn)數(shù)據(jù)的分布存儲,利用區(qū)塊鏈可以保證數(shù)據(jù)不可篡改、信息公開透明、可追溯。已經(jīng)有一些學(xué)者基于區(qū)塊鏈技術(shù)來完成對農(nóng)業(yè)食品各個生產(chǎn)環(huán)節(jié)的追溯[1-4]。
2 區(qū)塊鏈技術(shù)
區(qū)塊鏈中的每個區(qū)塊由區(qū)塊頭和區(qū)塊體構(gòu)成,區(qū)塊頭包含前一個區(qū)塊的哈希值、版本號、難度、隨機(jī)數(shù)、區(qū)塊大小、時間戳以及Merkle根,Merkle根由該區(qū)塊中所有交易的Hash值生成,一個交易信息發(fā)生改變則該區(qū)塊的Merkle根就發(fā)生變化,從而可以防止交易篡改,新區(qū)塊中存儲上一區(qū)塊的哈希值,通過這種方式形成一條從當(dāng)前區(qū)塊追蹤到初始區(qū)塊的數(shù)據(jù)鏈,從而實(shí)現(xiàn)區(qū)塊鏈中每條數(shù)據(jù)可以追溯,進(jìn)一步實(shí)現(xiàn)監(jiān)管和追責(zé)。
區(qū)塊鏈可以分為公有鏈、私有鏈、聯(lián)盟鏈[5]
公有鏈:公有鏈中每個節(jié)點(diǎn)都允許加入?yún)^(qū)塊鏈進(jìn)行交易和驗(yàn)證,可以真正實(shí)現(xiàn)完全去中心化,公有鏈安全性高、效率低,比特幣和以太坊都屬于公有鏈。
私有鏈:只有企業(yè)內(nèi)部經(jīng)過許可的節(jié)點(diǎn)可以加入私有鏈,私有鏈具有高效、大容量等優(yōu)點(diǎn)。
聯(lián)盟鏈:經(jīng)過認(rèn)證后的組織成員可以加入聯(lián)盟鏈,聯(lián)盟鏈介于公有鏈和私有鏈之間,可以實(shí)現(xiàn)部分去中心化,超級賬本是聯(lián)盟鏈中的代表。
3 基于雙區(qū)塊鏈結(jié)構(gòu)的農(nóng)業(yè)食品追溯方案
3.1 實(shí)體介紹
如圖2所示:本追溯體系包括私有鏈、IPFS(星際文件系統(tǒng)),公有鏈、消費(fèi)者四個實(shí)體。
(1)IPFS:? IPFS是區(qū)別于傳統(tǒng)的基于路徑查找的新的基于內(nèi)容的尋址方法,IPFS系統(tǒng)中每個文件都有一個唯一的哈希標(biāo)識(256Bit),擁有 256比特的哈希值就可以從IPFS系統(tǒng)得到對應(yīng)的文件。
(2)私有鏈:私有鏈由企業(yè)內(nèi)部各個部門構(gòu)成獨(dú)立節(jié)點(diǎn),完成企業(yè)對某產(chǎn)品的信息采集,包括種植部門、加工部門、政府質(zhì)檢部門、倉儲部門、運(yùn)輸部門、銷售部門以及企業(yè)的監(jiān)管中心對企業(yè)各部門的行為進(jìn)行監(jiān)管。
(3)聯(lián)盟鏈: 聯(lián)盟鏈中的節(jié)點(diǎn)為各個企業(yè),企業(yè)間相互監(jiān)督、防止對數(shù)據(jù)進(jìn)行篡改。
(4)消費(fèi)者:? 消費(fèi)者有權(quán)限了解所購買的農(nóng)業(yè)食品的詳細(xì)追溯信息以及該產(chǎn)品商標(biāo)是否為復(fù)制品。
3.2基于雙區(qū)塊鏈的追溯方案設(shè)計(jì)
1)種植階段交易:種植階段的追溯信息包括農(nóng)作物詳細(xì)種植信息[M0],種植責(zé)任人簽名[s0],將本階段哈希值[H0]作為交易上傳到私有鏈中,其中[H0=h(h(M0),h(s0))]同時返回該交易在私有鏈中的交易地址[TX0_ID],用[H0]為索引上傳到IPFS系統(tǒng)。企業(yè)內(nèi)部擁有[H0]就有權(quán)限從IPFS系統(tǒng)提取完整的種植信息。
2)加工階段交易:加工階段的朔源信息包括詳細(xì)的加工信息諸如加工輔料、加工設(shè)備、加工時間,這些信息記為[M1],加工責(zé)任人簽名[s1],上一階段在私有鏈中的交易地址[TX0_ID],計(jì)算[H1=h(h(M1),h(s1),H0,TX0-ID)],將[H1]作為交易上傳到私有區(qū)塊鏈中,同時返回該交易在私有鏈中的交易地址[TX1_ID],用[H1]為索引上傳到IPFS系統(tǒng)。企業(yè)內(nèi)部擁有[H1]就有權(quán)限從IPFS系統(tǒng)提取完整的加工信息。
3)按照此種鏈接方法生成銷售階段的交易,銷售階段的朔源信息包括詳細(xì)的銷售數(shù)量、銷售地點(diǎn)、銷售時間打包記為[M5],銷售責(zé)任人簽名[s5],上一階段(運(yùn)輸階段)在私有鏈中的交易地址[TX4_ID],計(jì)算[H5=h(h(M5),h(s5),H4,TX4-ID)],將[H5]作為交易上傳到私有區(qū)塊鏈中,同時返回該交易在私有鏈中的交易地址[TX5_ID],用[H5]為索引上傳到IPFS系統(tǒng)。企業(yè)內(nèi)部擁有[H5]就有權(quán)限從IPFS系統(tǒng)提取完整的加工信息。企業(yè)內(nèi)部各節(jié)點(diǎn)對前面節(jié)點(diǎn)的交易有驗(yàn)證和監(jiān)管的權(quán)限。
4)私有鏈和公有鏈的鏈接,銷售階段完成后以[H5]為交易來生生成聯(lián)盟鏈中的區(qū)塊,同時返回該交易在聯(lián)盟中的地址[TX_id],這樣對每個商品建立標(biāo)簽,標(biāo)簽包括在私有鏈中的銷售階段的交易地址[TX5_ID]和聯(lián)盟鏈中的地址[TX_id]。
5)消費(fèi)者溯源:通過掃碼就可以獲得銷售階段的追溯信息在私有鏈中的交易地址,結(jié)合IPFS系統(tǒng)就可以獲得詳細(xì)的銷售信息以及前一階段(運(yùn)輸階段)溯源信息交易地址[TX4_ID]進(jìn)而獲取運(yùn)輸信息、依次向前追溯可以獲得倉儲信息、質(zhì)檢信息、加工信息、種植信息。從而得到農(nóng)業(yè)食品的完整溯源信息。如圖3所示。
6)驗(yàn)證:如果消費(fèi)者對溯源信息存在質(zhì)疑,可以在權(quán)威監(jiān)管部門(屬于聯(lián)盟鏈中的節(jié)點(diǎn))的配合下獲取企業(yè)上傳到聯(lián)盟鏈中的[H5]進(jìn)行對比驗(yàn)證,因?yàn)槁?lián)盟鏈的節(jié)點(diǎn)為各個企業(yè)和權(quán)威監(jiān)管部門組成,企業(yè)之間相互競爭相互監(jiān)督,加上權(quán)威部門要篡改聯(lián)盟鏈中的交易信息難度較大,這樣可以驗(yàn)證企業(yè)是否有篡改交易記錄的行為。
7)追責(zé):交易生成的每個階段都有責(zé)任人簽名,這樣可以防止抵賴行為,一旦發(fā)現(xiàn)有食品質(zhì)量問題和信息造假行為將追究責(zé)任人的責(zé)任。
8)防復(fù)制:為了防止一些名優(yōu)產(chǎn)品的商標(biāo)被復(fù)制和偽造本文利用劉家稷等在文獻(xiàn)[6]中的balance方案,企業(yè)為每個產(chǎn)品在私有鏈中間建立balance賬號,當(dāng)該產(chǎn)品已經(jīng)銷售時,balance標(biāo)記為1,產(chǎn)品銷售時balance標(biāo)記為0,消費(fèi)者可以通過balance來判別是否存在商標(biāo)復(fù)制和偽造。這樣也保護(hù)了合法企業(yè)的權(quán)益。
4 結(jié)論
本文利用私有鏈和聯(lián)盟鏈構(gòu)建農(nóng)業(yè)食品追溯方案,在保證系統(tǒng)高效性的同還使得方案有較高的可信度,可以追溯到農(nóng)業(yè)食品生產(chǎn)的各階段完整信息,一定程度上保證了食品安全。但是方案中只是將銷售階段的追溯信息哈希值[H5]作為交易上傳到聯(lián)盟鏈,聯(lián)盟鏈中的其他企業(yè)在商品完成銷售后才發(fā)揮監(jiān)管功能,對種植、加工、質(zhì)檢、倉儲、運(yùn)輸信息只是企業(yè)內(nèi)部進(jìn)行監(jiān)管驗(yàn)證,可信度不強(qiáng),后續(xù)的研究需要考慮讓聯(lián)盟鏈發(fā)揮更強(qiáng)的監(jiān)管功能。
本方案中將區(qū)塊鏈技術(shù)和IPFS系統(tǒng)相結(jié)合,在私有鏈階段,各生產(chǎn)階段的詳細(xì)溯源信息、相關(guān)責(zé)任人的簽名、前一階段的溯源信息在私有鏈中的地址都將存貯在IPFS系統(tǒng)中,而只將對應(yīng)的哈希值存儲在私有鏈中,從而保證私有鏈能夠高效、大容量的存儲各種溯源信息,本方案沒有對溯源信息進(jìn)行分類加密,合理的做法應(yīng)該是講溯源信息區(qū)分為敏感隱私信息(可能涉及企業(yè)商業(yè)隱私)和非敏感信息,針對消費(fèi)者和權(quán)威部門設(shè)定不同的追溯權(quán)限,在實(shí)現(xiàn)農(nóng)業(yè)食品安全追溯的同時合理保護(hù)企業(yè)的隱私。
本追溯方案私有鏈中的企業(yè)內(nèi)部節(jié)點(diǎn)有權(quán)對各種生產(chǎn)過程進(jìn)行監(jiān)管,后續(xù)節(jié)點(diǎn)可以通過提取IPFS系統(tǒng)中前面節(jié)點(diǎn)的溯源信息,通過比對溯源信息及簽名哈希值來判定是否存在信息篡改行為,在一定程度上可以實(shí)現(xiàn)企業(yè)內(nèi)部的監(jiān)管功能。本方案沒有考慮物聯(lián)網(wǎng)技術(shù),各生產(chǎn)階段的數(shù)據(jù)都是人工采集,在下一步研究中,可以將物聯(lián)網(wǎng)技術(shù)和區(qū)塊鏈技術(shù)相結(jié)合來完善本農(nóng)業(yè)食品追溯方案,將考慮利用各種智能傳感器來定位各環(huán)節(jié)的準(zhǔn)確地理位置,智能采集作物的生長信息,物聯(lián)網(wǎng)觀測節(jié)點(diǎn)來記錄農(nóng)作物的種植過程、農(nóng)藥使用過程、施肥過程等信息,同時采集農(nóng)業(yè)食品的生產(chǎn)、倉儲、運(yùn)輸過程的實(shí)時視頻,把采集到的視頻信息推送到企業(yè)的云服務(wù)器上,供消費(fèi)者和監(jiān)管部門查詢?yōu)g覽,消費(fèi)者通過掃碼就能和田間地頭零距離接觸,讓消費(fèi)者可以隨時監(jiān)督農(nóng)戶的種植過程,真正從源頭上保證農(nóng)業(yè)食品的安全。
參考文獻(xiàn):
[1] 李宣,柳毅.基于雙區(qū)塊鏈及物聯(lián)網(wǎng)技術(shù)的防偽溯源系統(tǒng)[J/OL].計(jì)算機(jī)應(yīng)用研究.[2020-06-16].https://doi.org/10.19734/j.issn.1001-3695.2019.08.0291.
[2] 董云峰,張新,許繼平,等.基于區(qū)塊鏈的糧油食品全供應(yīng)鏈可信追溯模型[J].食品科學(xué),2020,41(9):30-36.
[3] 曾小青,彭越,王琪.物聯(lián)網(wǎng)加區(qū)塊鏈的食品安全追溯系統(tǒng)研究[J].食品與機(jī)械,2018,34(9):100-105.
[4] 付永貴,朱建明.基于區(qū)塊鏈的數(shù)據(jù)庫訪問控制機(jī)制設(shè)計(jì)[J].通信學(xué)報,2020,41(5):130-140.
[5] 張利,童舟.基于區(qū)塊鏈技術(shù)的農(nóng)產(chǎn)品溯源體系研究[J].江蘇農(nóng)業(yè)科學(xué),2019,47(13):245-249.
[6] 劉家稷,楊挺,汪文勇.使用雙區(qū)塊鏈的防偽溯源系統(tǒng)[J].信息安全學(xué)報,2018,3(3):17-29.
【通聯(lián)編輯:唐一東】