








收稿日期:2021-11-04;修回日期:2022-01-04" 基金項目:國家自然科學(xué)基金資助項目(61772387);廣東省高校科研平臺特色創(chuàng)新項目(2020KTSCX275);廣州市科技創(chuàng)新發(fā)展專項資金資助項目(202102080614)
作者簡介:張燕麗(1975-),女(通信作者),河南鄭州人,副教授,碩士,主要研究方向為大數(shù)據(jù)、軟件開發(fā)(zhangyanli@gdaib.edu.cn);李波(1996-),男,河北邯鄲人,博士研究生,主要研究方向為區(qū)塊鏈、多智能體強化學(xué)習(xí)、無線網(wǎng)絡(luò)通信.
摘 要:針對目前農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)存在的數(shù)據(jù)存儲容量低、管理中心化、可擴展性差、參與主體隱私信息得不到保證等問題,使用Hyperledger Fabric v2.0平臺設(shè)計了基于主從聯(lián)盟鏈結(jié)構(gòu)的農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)。該系統(tǒng)基于已構(gòu)建的主從聯(lián)盟鏈模型存儲供應(yīng)鏈的信息,利用聯(lián)盟鏈的多通道設(shè)計方案保證了供應(yīng)鏈各參與主體隱私信息的安全性。通過在供應(yīng)鏈的各參與主體中部署物聯(lián)網(wǎng)設(shè)備進(jìn)行信息的采集、處理和上傳,保證了供應(yīng)鏈存儲的信息無人為竄改且安全可信。同時,基于《食品安全國家標(biāo)準(zhǔn)》設(shè)計了主從鏈間的智能合約,用于判斷各參與主體上傳信息的合理性,以實現(xiàn)從源頭保證食品的安全質(zhì)量。此外,設(shè)計了分簇集群傳輸方法以較低的能耗上傳農(nóng)場中物聯(lián)網(wǎng)設(shè)備產(chǎn)生的大量數(shù)據(jù)。實驗結(jié)果表明,該系統(tǒng)可以以較低的時延構(gòu)建農(nóng)產(chǎn)品供應(yīng)鏈,并且可以在較短時間內(nèi)返回消費者查詢的信息。另外,使用分簇集群傳輸方法可以明顯降低物聯(lián)網(wǎng)設(shè)備傳輸數(shù)據(jù)產(chǎn)生的能耗。所設(shè)計的農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)最終實現(xiàn)了農(nóng)產(chǎn)品供應(yīng)鏈的公開透明,提高了供應(yīng)鏈信息溯源效率,增加了消費者對食品安全的信任度。
關(guān)鍵詞:主從聯(lián)盟鏈;農(nóng)產(chǎn)品供應(yīng)鏈;物聯(lián)網(wǎng);智能合約
中圖分類號:TP391"" 文獻(xiàn)標(biāo)志碼:A
文章編號:1001-3695(2022)06-006-1638-07
doi:10.19734/j.issn.1001-3695.2021.11.0624
Agricultural product supply chain traceability system design based on master-slave alliance chain structure
Zhang Yanli1,Li Bo2
(1.Computer Science Dept.,Guangdong AIB Polytechnic,Guangzhou 510507,China;2.State Key Laboratory of Integrated Services Networks, Xidian University,Xi’an 710071,China)
Abstract:The current agricultural products supply chain traceability system has problems such as low data storage capacity,centralized management,poor scalability,and the inability to guarantee the privacy information of participants.This paper used the Hyperledger Fabric v2.0 platform to design an agricultural products supply chain traceability system based on master-slave federated chain structure to solve the above problems.This system used the constructed master-slave federated chain model to store information of the supply chain,and used the multi-channel design scheme of the federated chain to ensure the security of the private information of each participating subject in the supply chain.This system deployed IoT devices in each supply chain participant to collect,process and upload information to ensure that the information stored in the supply chain wasn’t tampered with,safe and reliable.At the same time,this paper designed a smart contract between the master chain and the slave chain to determine the rationality of the information uploaded by each participant following the “National Food Safety Standard” to ensure the quality of the food at the source.In addition,it designed a clustered transmission method to upload the large amount of data generated by IoT devices in the farm with low energy consumption.The experimental results show that the system builds the agricultural products supply chain with low latency and returns the information for consumer queries in a shorter time.Meanwhile,the clustered transmission method can significantly reduce the energy consumption generated by uploading data from IoT devices.The designed agricultural products supply chain traceability system realizes the openness and transparency of the agricultural products supply chain,improves the efficiency of supply chain information traceability,and increases consu-mers’ food safety trust.
Key words:master-slave alliance chain;agricultural product supply chain;Internet of Things (IoT);smart contract
0 引言
隨著經(jīng)濟的快速發(fā)展,人們的生活水平不斷提升,食品安全問題受到人們的高度關(guān)注,并已發(fā)展成為世界性難題。在過去二十多年里,食品安全事件層出不窮,如1997年香港禽流感事件、1998年東南亞豬腦炎事件、2001年歐洲爆發(fā)的口蹄疫、2006年美國菠菜大腸桿菌事件、2008年中國三鹿奶粉事件、2009年全球H1N1流感事件以及2017—2018年南非李斯特菌病事件等[1]。導(dǎo)致這些食品安全事件的原因主要歸為四個方面:a)部分蔬菜、水果等食品過度使用化肥、農(nóng)藥等物質(zhì),導(dǎo)致食品中農(nóng)藥殘余量超標(biāo);b)農(nóng)場使用被重金屬污染的水灌溉、使用含重金屬元素的包裝紙、包裝袋盛放食品,導(dǎo)致食品重金屬污染;c)使用病畜、廢棄食用油等劣質(zhì)原料生產(chǎn)、加工食品;d)食品加工過程中過量使用食品添加劑、抗生素、激素和其他化工產(chǎn)品等[2]。為了預(yù)防這些問題的發(fā)生,各國政府都制定了相應(yīng)的法律、法規(guī),如歐盟出臺的178/2002法規(guī),要求在歐盟國家內(nèi)銷售的食品必須具備食品生產(chǎn)、運營過程的完整文檔,而消費者則傾向于花費更多的資金購買可以得到原產(chǎn)地認(rèn)證的食品。目前,農(nóng)產(chǎn)品供應(yīng)鏈記錄了農(nóng)產(chǎn)品從種植到人類餐桌全過程的詳細(xì)信息,通過在農(nóng)業(yè)中引入農(nóng)產(chǎn)品供應(yīng)鏈技術(shù),既方便了政府等部門對食品質(zhì)量安全的監(jiān)管,又提升了消費者對購買食品的信任度[3]。當(dāng)發(fā)生食品安全問題時,借助農(nóng)產(chǎn)品供應(yīng)鏈可快速定位出問題的環(huán)節(jié)并制定相應(yīng)的解決措施,從而在一定程度上解決了食品安全問題[3,4]。此外,通過在農(nóng)產(chǎn)品供應(yīng)鏈中引入可追溯性,可以更全面地了解食品的整個生命周期,提高供應(yīng)鏈過程的透明度和可靠性,實現(xiàn)了供應(yīng)鏈的前向追蹤信息及后向溯源信息[5~7]。然而,目前農(nóng)產(chǎn)品供應(yīng)鏈可追溯機制存在的問題包括:a)由于受到數(shù)據(jù)碎片化和集中控制的影響,導(dǎo)致供應(yīng)鏈存儲的數(shù)據(jù)易被竄改,使供應(yīng)鏈的透明度下降、可靠性降低[8,9];b)農(nóng)產(chǎn)品供應(yīng)鏈可追溯機制是一條從原材料到最終消費者的長鏈,供應(yīng)鏈雖然提供了良好的可追溯性,但是在進(jìn)行信息溯源時仍十分困難和耗時[8];c)農(nóng)產(chǎn)品供應(yīng)鏈中部分參與者存儲的隱私信息不進(jìn)行共享,阻礙了食品監(jiān)管的進(jìn)行,并且降低了供應(yīng)鏈信息的可靠性[4,10];d)傳統(tǒng)供應(yīng)鏈中部分環(huán)節(jié)需要人工記錄數(shù)據(jù)并上傳到計算機系統(tǒng),導(dǎo)致供應(yīng)鏈數(shù)據(jù)可靠性降低[1]。針對這些問題,有必要建立一個去中心化、可擴展、透明度高、能保證上鏈信息真實性的農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)。
區(qū)塊鏈作為一種分布式數(shù)據(jù)存儲技術(shù),具有公開透明、去中心化、不可竄改、時序存儲數(shù)據(jù)、非對稱加密和安全可信等特點,將區(qū)塊鏈應(yīng)用于農(nóng)產(chǎn)品供應(yīng)鏈可實時管理、集成所有交易。區(qū)塊鏈存儲了供應(yīng)鏈中所有參與主體的記錄,允許參與主體相互監(jiān)督信息的真實性,提高各參與主體間的信任,使供應(yīng)鏈更易監(jiān)管[11]。另外,物聯(lián)網(wǎng)技術(shù)可將嵌入式設(shè)備、計算機連接到網(wǎng)絡(luò)中,以便于進(jìn)行通信和信息交換。將物聯(lián)網(wǎng)技術(shù)應(yīng)用于農(nóng)業(yè)可對農(nóng)產(chǎn)品環(huán)境進(jìn)行實時檢測、觀察并記錄作物生長狀況,自動將觀察數(shù)據(jù)上傳到供應(yīng)鏈追溯系統(tǒng)中。國內(nèi)外研究學(xué)者對區(qū)塊鏈、物聯(lián)網(wǎng)技術(shù)在農(nóng)產(chǎn)品追溯系統(tǒng)方面的應(yīng)用進(jìn)行了大量研究。文獻(xiàn)[2]提出了基于區(qū)塊鏈和物聯(lián)網(wǎng)技術(shù)的食品可追溯系統(tǒng),該系統(tǒng)盡可能地使用物聯(lián)網(wǎng)設(shè)備代替人工記錄、驗證信息,有效地減少了系統(tǒng)的人為干預(yù);文獻(xiàn)[8]提出利用以太區(qū)塊鏈和智能合約執(zhí)行業(yè)務(wù)交易來實現(xiàn)大豆的可追溯性,該方案使用智能合約管理供應(yīng)鏈中所有參與實體的交易,并將交易記錄在與區(qū)塊鏈相鏈接的IPFS(inter planetary file system)中;文獻(xiàn)[12]將區(qū)塊鏈應(yīng)用于農(nóng)產(chǎn)品供應(yīng)鏈,并以墨西哥芒果作為案例進(jìn)行研究,研究結(jié)果表明,使用傳統(tǒng)農(nóng)產(chǎn)品供應(yīng)鏈追溯芒果從超市到原產(chǎn)地的路徑需要花費6.5天時間,而使用區(qū)塊鏈只需要幾秒鐘;文獻(xiàn)[13]提出了基于Hyperledger Fabric架構(gòu)的農(nóng)產(chǎn)品聯(lián)盟鏈溯源系統(tǒng),提升了大規(guī)模數(shù)據(jù)的上鏈和溯源查詢速度;文獻(xiàn)[14]構(gòu)建了一個基于HACCP(hazard analysis and critical control point)、區(qū)塊鏈和物聯(lián)網(wǎng)的食品供應(yīng)鏈追溯系統(tǒng),為供應(yīng)鏈成員提供食品安全狀況的實時信息,該系統(tǒng)顯著提高了食品供應(yīng)鏈的效率和透明度,增加了消費者對食品行業(yè)的信任度;文獻(xiàn)[15]介紹了一個基于區(qū)塊鏈的農(nóng)產(chǎn)品供應(yīng)鏈可追溯性解決方案AgriBlockIoT,該方案設(shè)計了一個從農(nóng)場到餐桌產(chǎn)品的用例,集成了供應(yīng)鏈上所有物聯(lián)網(wǎng)設(shè)備的數(shù)據(jù),然后使用Hyperledger Sawtooth和Ethereum兩種區(qū)塊鏈實現(xiàn)該方案,并比較了兩種實現(xiàn)在延遲、網(wǎng)絡(luò)使用等方面的性能。上述文獻(xiàn)中,將區(qū)塊鏈和物聯(lián)網(wǎng)技術(shù)應(yīng)用到農(nóng)產(chǎn)品追溯系統(tǒng)帶來了很多益處,但大多是針對某些特定方面的解決方案,并沒有完全解決農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)中存在的數(shù)據(jù)易竄改、可擴展性差、管理中心化、參與主體隱私信息得不到保證等問題。在綜合考慮這些問題后,本文提出了基于主從聯(lián)盟鏈結(jié)構(gòu)的農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)。
本文的主要貢獻(xiàn)如下:a)在調(diào)查了與農(nóng)產(chǎn)品供應(yīng)鏈相關(guān)的文獻(xiàn)后,總結(jié)出農(nóng)產(chǎn)品供應(yīng)鏈的一般流程和各環(huán)節(jié)需要記錄的信息;b)對于單一區(qū)塊鏈存在的存儲容量小、存儲效率低、可擴展性差、節(jié)點隱私信息保護(hù)性差等問題,設(shè)計了主從聯(lián)盟鏈模型;c)結(jié)合農(nóng)產(chǎn)品供應(yīng)鏈和所設(shè)計的主從聯(lián)盟鏈模型的特點,提出了基于主從聯(lián)盟鏈結(jié)構(gòu)的農(nóng)產(chǎn)品供應(yīng)鏈追溯模型,并基于Hyperledger Fabric v2.0設(shè)計了相應(yīng)的系統(tǒng)框架。
1 基于主從聯(lián)盟鏈結(jié)構(gòu)的農(nóng)產(chǎn)品供應(yīng)鏈追溯模型
1.1 農(nóng)產(chǎn)品供應(yīng)鏈環(huán)節(jié)分析
農(nóng)產(chǎn)品供應(yīng)鏈中產(chǎn)品的可追溯性要求通過精確識別供應(yīng)鏈中的產(chǎn)品來源、分析各環(huán)節(jié)間的信息交換,從而對農(nóng)產(chǎn)品的質(zhì)量及其相關(guān)信息進(jìn)行順向追蹤(農(nóng)產(chǎn)品生產(chǎn)到消費者購買)或者逆向回溯(消費者購買到農(nóng)產(chǎn)品生產(chǎn)),使得農(nóng)產(chǎn)品供應(yīng)鏈的整個生產(chǎn)、運輸、交易活動始終處于有效監(jiān)管中[8]。在調(diào)查了農(nóng)產(chǎn)品供應(yīng)鏈方面的相關(guān)文獻(xiàn)后,總結(jié)得到農(nóng)產(chǎn)品供應(yīng)鏈的產(chǎn)品流程如圖1所示,其中涉及到的參與主體包括原料供應(yīng)商、農(nóng)場、農(nóng)作物采購商、農(nóng)作物儲藏室、食品生產(chǎn)商、經(jīng)銷商、零售商、消費者和第三方監(jiān)管機構(gòu)[8,11,12]。為了在滿足供應(yīng)鏈信息可追溯要求的前提下保護(hù)各參與主體的隱私信息,將參與主體上傳的信息分為公開信息和隱私信息。供應(yīng)鏈中各參與主體的作用及上傳的信息概述如下:
a)原料供應(yīng)商。原料供應(yīng)商向農(nóng)場出售使用標(biāo)識符進(jìn)行唯一標(biāo)識的種子、化肥及其他與農(nóng)作物生長有關(guān)的種植材料[11]。這些標(biāo)識符是按照GS1-128標(biāo)準(zhǔn)進(jìn)行設(shè)計的。原料供應(yīng)商需要記錄的公開信息包括種子質(zhì)量、萌發(fā)的信息,銷售的化肥、其他種植材料的具體成分信息以及第三方監(jiān)管機構(gòu)的質(zhì)檢結(jié)果等信息;需要記錄的隱私信息包括種子、化肥和種植材料的成本費用,儲存數(shù)量與農(nóng)場的交易信息。
b)農(nóng)場。農(nóng)場從原料供應(yīng)商購買種子等產(chǎn)品進(jìn)行耕作。農(nóng)場為銷售的農(nóng)作物分配唯一標(biāo)識的二維碼,便于銷售過程中查詢農(nóng)作物的生長信息;農(nóng)場還負(fù)責(zé)定期檢測、記錄作物的生長狀況。為了保證農(nóng)產(chǎn)品供應(yīng)鏈中記錄的農(nóng)作物生長信息準(zhǔn)確無誤、無人為竄改、安全可信,在農(nóng)場布設(shè)物聯(lián)網(wǎng)設(shè)備以便自動記錄、驗證、上傳農(nóng)作物的生長信息。農(nóng)場需要記錄的公開信息包括三部分:(a)物聯(lián)網(wǎng)傳感器檢測得到的土壤質(zhì)量、溫度、水分、農(nóng)藥殘余量、害蟲侵?jǐn)_等農(nóng)作物生長環(huán)境信息;(b)作物病害情況、攝像頭定期拍攝的作物圖像等農(nóng)作物生長信息;(c)第三方監(jiān)管機構(gòu)的質(zhì)檢結(jié)果信息。農(nóng)場需要記錄的隱私信息包括種植農(nóng)作物的成本費用、農(nóng)作物的產(chǎn)量、農(nóng)作物對外交易信息。
c)農(nóng)作物采購商。農(nóng)作物采購商是從農(nóng)場采購農(nóng)作物并將其出售給食品生產(chǎn)商的公司[11]。農(nóng)作物采購商銷售的農(nóng)作物使用按照全球貿(mào)易項目代碼生成的條形碼進(jìn)行標(biāo)志,便于對銷售的產(chǎn)品進(jìn)行追溯。農(nóng)作物采購商需要記錄的公開信息包括農(nóng)作物儲存的環(huán)境信息、第三方監(jiān)管機構(gòu)對公司的審核信息;需要記錄的隱私信息包括農(nóng)作物的采購成本、存儲容量、銷售價格。
d)農(nóng)作物儲藏室。農(nóng)作物儲藏室用于儲存農(nóng)作物,需要記錄儲存期間農(nóng)作物周圍的環(huán)境數(shù)據(jù)等公開信息以及儲藏室入庫農(nóng)作物數(shù)量、出庫農(nóng)作物數(shù)量等隱私信息[11]。農(nóng)作物儲藏室一般不單獨作為農(nóng)產(chǎn)品供應(yīng)鏈的參與主體,而是存在于農(nóng)場、農(nóng)作物采購商及食品生產(chǎn)商中。
e)食品生產(chǎn)商。食品生產(chǎn)商從農(nóng)作物采購商或農(nóng)場采購農(nóng)作物,經(jīng)過一系列加工得到最終產(chǎn)品并進(jìn)行銷售。食品生產(chǎn)商為銷售的產(chǎn)品生成二維碼附在產(chǎn)品外包裝上,并將按照全球貿(mào)易項目代碼生成的條形碼附在物流包上。通過掃描二維碼可獲得與產(chǎn)品加工相關(guān)的公開信息,通過掃描條形碼可獲得產(chǎn)品自食品生產(chǎn)商開始的物流信息。食品生產(chǎn)商需要記錄的公開信息包括產(chǎn)品加工過程信息、加工環(huán)境信息、產(chǎn)品成分信息及第三方監(jiān)管機構(gòu)的質(zhì)檢信息;需要記錄的隱私信息包括農(nóng)作物購入成本、產(chǎn)品加工成本及產(chǎn)品的銷售信息。
f)經(jīng)銷商。經(jīng)銷商從食品生產(chǎn)商購買最終產(chǎn)品并賣給零售商或消費者。經(jīng)銷商將按照全球貿(mào)易項目代碼生成的條形碼附在出售產(chǎn)品的物流包上,以記錄產(chǎn)品的物流信息。經(jīng)銷商需要記錄的公開信息包括產(chǎn)品的儲存環(huán)境、物流信息及第三方監(jiān)管機構(gòu)的質(zhì)檢信息;需要記錄的隱私信息包括產(chǎn)品的購入成本、與零售商的交易信息。
g)零售商。零售商通過經(jīng)銷商成批購買產(chǎn)品,然后以較低計量單位出售給消費者。零售商需要記錄的公開信息包括產(chǎn)品的上架時間及第三方監(jiān)管機構(gòu)的質(zhì)檢信息;需要記錄的隱私信息是產(chǎn)品的購入價格。
h)消費者。消費者是從零售商或經(jīng)銷商購買產(chǎn)品的最終用戶。消費者通過掃描產(chǎn)品二維碼可獲得產(chǎn)品種植、生產(chǎn)、銷售的所有信息[12]。
i)第三方監(jiān)管機構(gòu)。第三方監(jiān)管機構(gòu)主要是檢測農(nóng)產(chǎn)品供應(yīng)鏈中各參與主體是否符合相應(yīng)的規(guī)定、規(guī)范。第三方監(jiān)管機構(gòu)不單獨存在于農(nóng)產(chǎn)品供應(yīng)鏈中某一環(huán)節(jié),而是與參與主體一同作為供應(yīng)鏈的一個環(huán)節(jié)。
針對農(nóng)產(chǎn)品供應(yīng)鏈中參與實體范圍固定、各參與實體的信息需要實時更新及需要保證隱私信息的安全性這幾個特點,本文設(shè)計了主從聯(lián)盟鏈結(jié)構(gòu)來存儲供應(yīng)鏈的數(shù)據(jù)。其中,主鏈存放了參與實體的不變信息、區(qū)塊哈希值及從鏈索引信息,從鏈存放了參與實體可變的公開信息和隱私信息。
1.2 主從聯(lián)盟鏈模型
區(qū)塊鏈通過分散的計算網(wǎng)絡(luò)以區(qū)塊形式存儲數(shù)據(jù),每個區(qū)塊包括前一個區(qū)塊散列值、當(dāng)前區(qū)塊散列值、時間戳及其他包含交易等的信息[16]。數(shù)據(jù)存儲方上傳經(jīng)過私鑰簽名的數(shù)據(jù)以保證數(shù)據(jù)的可驗證性,并將數(shù)據(jù)廣播給其余計算網(wǎng)絡(luò)成員;其余計算網(wǎng)絡(luò)成員使用公鑰驗證數(shù)據(jù)的可信性,通過驗證后的數(shù)據(jù)將以塊形式連接到區(qū)塊鏈上。現(xiàn)有的區(qū)塊鏈類型包括公有鏈、聯(lián)盟鏈和私有鏈,三種區(qū)塊鏈類型在參與節(jié)點身份、中心化程度、共識機制、激勵機制、承載能力和交易速率方面的對比如表1所示[17,18]。農(nóng)產(chǎn)品供應(yīng)鏈的參與主體是具有不同權(quán)限地位的機構(gòu)和企業(yè),每個參與主體都是經(jīng)過商定后的可信參與方,所有參與主體作為供應(yīng)鏈利益相關(guān)者組成了有共同目的的企業(yè)聯(lián)盟。聯(lián)盟鏈由多個預(yù)選節(jié)點進(jìn)行管理并控制共識過程,其他接入節(jié)點可參與交易并通過聯(lián)盟鏈開放的API(application programming interface)查詢限定信息。由于農(nóng)產(chǎn)品供應(yīng)鏈與聯(lián)盟鏈的結(jié)構(gòu)相似,可將農(nóng)產(chǎn)品供應(yīng)鏈的參與實體作為聯(lián)盟鏈物理節(jié)點構(gòu)建聯(lián)盟區(qū)塊鏈。相較于使用公有鏈構(gòu)建農(nóng)產(chǎn)品供應(yīng)鏈,選用聯(lián)盟鏈構(gòu)建的農(nóng)產(chǎn)品供應(yīng)鏈,一方面通過降低中心化程度以減少共識過程中的資源浪費;另一方面聯(lián)盟鏈的運行不需要激勵機制、不依賴于數(shù)字貨幣,從而簡化了聯(lián)盟鏈的記錄賬簿,并且降低了系統(tǒng)運行所需的計算、帶寬資源[19]。
現(xiàn)有區(qū)塊鏈主要是在單鏈架構(gòu)下存儲數(shù)據(jù)信息,每個節(jié)點都要存儲所有的信息。因此,在面對需要實時更新、部分公開的具有龐大數(shù)據(jù)信息的場景中,單一區(qū)塊鏈存在隔離性、隱私、容量和可擴展性問題[16,20],如在由多個參與主體構(gòu)成的農(nóng)產(chǎn)品供應(yīng)鏈場景中,采用單一區(qū)塊鏈的缺陷具體表現(xiàn)為兩方面:
a)對于所構(gòu)建的區(qū)塊鏈,農(nóng)場及農(nóng)作物儲藏室中與作物生長有關(guān)的各類信息、參與主體間的交易信息需要實時上傳到區(qū)塊鏈中,此時,如果僅將節(jié)點或節(jié)點間需要更新的信息上傳到區(qū)塊鏈中,會導(dǎo)致節(jié)點信息存儲位置雜亂,降低區(qū)塊鏈的查詢效率;如果將節(jié)點或節(jié)點間需要更新的信息及歷史信息一起上傳到區(qū)塊鏈中,會面臨區(qū)塊鏈節(jié)點存儲上限問題[20],即將單一區(qū)塊鏈用于農(nóng)產(chǎn)品供應(yīng)鏈會存在可擴展性差、存儲容量有限的問題。
b)為了保障農(nóng)產(chǎn)品供應(yīng)鏈中參與主體的利益,部分參與主體內(nèi)部信息及一些參與主體間的交易信息不便對外公開。然而采用單一區(qū)塊鏈構(gòu)建的農(nóng)產(chǎn)品供應(yīng)鏈存在區(qū)塊鏈節(jié)點隔離性差,難以保證參與主體隱私信息安全性的問題[16]。
針對以上兩個問題設(shè)計了主從多鏈結(jié)構(gòu)。主鏈由作為物理節(jié)點的農(nóng)產(chǎn)品供應(yīng)鏈參與主體構(gòu)成,存儲參與主體的不變信息。各主鏈節(jié)點連接著一條從鏈,存儲相應(yīng)參與主體隱私或可公開的可變信息,并且各參與主體間的交易信息存儲在不同從鏈中,保證參與主體的隱私安全問題。主鏈與從鏈間基于相應(yīng)主鏈區(qū)塊的唯一性信息生成的哈希值相互錨定。使用主從多鏈構(gòu)建的農(nóng)產(chǎn)品供應(yīng)鏈進(jìn)行溯源查詢時,只需通過索引找到參與主體相對應(yīng)的主鏈區(qū)塊就可以直接查看該參與主體所有公開的歷史信息,提高了供應(yīng)鏈溯源查詢的效率及區(qū)塊鏈的數(shù)據(jù)隱私性,降低了區(qū)塊鏈節(jié)點數(shù)據(jù)冗余性。
綜上所述,本文提出了一個主從聯(lián)盟鏈模型,其結(jié)構(gòu)如圖2所示。農(nóng)產(chǎn)品供應(yīng)鏈中各部分參與實體可由多個個體或團體組成。在本文構(gòu)建的主從聯(lián)盟鏈模型中,主鏈?zhǔn)怯缮勺罱K消費產(chǎn)品的所有參與實體作為物理節(jié)點構(gòu)成的聯(lián)盟鏈,每個主鏈節(jié)點連接著兩條從鏈,主鏈與從鏈之間通過哈希值相互錨定。每個主鏈節(jié)點下的所有從鏈擁有獨立通信通道,即在通信通道內(nèi)產(chǎn)生的信息僅本通道內(nèi)的成員可見,而通道外的成員無法訪問鏈上信息,使各主鏈節(jié)點下的從鏈數(shù)據(jù)相互隔離。主鏈物理節(jié)點對應(yīng)的參與主體和第三方監(jiān)管機構(gòu)通過certificate authority(CA)認(rèn)證后加入從鏈區(qū)塊鏈網(wǎng)絡(luò)中,參與主體產(chǎn)生的實時數(shù)據(jù)和第三方監(jiān)管機構(gòu)對參與主體進(jìn)行質(zhì)量檢測后生成的質(zhì)檢結(jié)果數(shù)據(jù)滿足智能合約條件后生成區(qū)塊。由于從鏈?zhǔn)怯上鄳?yīng)的主鏈節(jié)點對應(yīng)的參與主體和第三方監(jiān)管機構(gòu)作為物理節(jié)點形成的,隨著主鏈的建立,構(gòu)成從鏈的物理節(jié)點不發(fā)生變化。所以從鏈?zhǔn)褂肞BFT(practical Byzantine fault tolerance)共識算法對區(qū)塊數(shù)據(jù)進(jìn)行共識,最終形成由公開信息組成的從鏈和由隱私信息組成的從鏈。從鏈通過智能合約將從鏈ID、區(qū)塊哈希值和生成的條形碼或二維碼上傳到主鏈節(jié)點。在建立主鏈時,作為主鏈物理節(jié)點的參與主體會逐漸增多且會發(fā)生變化,導(dǎo)致使用PBFT共識算法進(jìn)行視圖切換和節(jié)點共識的時間開銷和通信開銷增加,因此,主鏈節(jié)點使用基于投票機制的IPBFT共識算法對區(qū)塊數(shù)據(jù)進(jìn)行共識。消費者查詢產(chǎn)品信息時,通過條形碼或二維碼首先定位到相應(yīng)的主鏈節(jié)點,然后通過智能合約讀取從鏈中的產(chǎn)品信息。Hyperledger Fabric v2.0是開源的聯(lián)盟區(qū)塊鏈平臺,其多通道設(shè)計方案使得聯(lián)盟鏈易于擴展從鏈架構(gòu)[13]。基于Hyperledger Fabric v2.0平臺構(gòu)建的主從聯(lián)盟鏈可并行進(jìn)行交易處理,且各個節(jié)點只存儲本通道內(nèi)的信息,提供了完善的準(zhǔn)入、隱私信息保護(hù)和可配置的共識機制[21]。本文就是基于Hyperledger Fabric v2.0平臺開發(fā)設(shè)計了主從聯(lián)盟鏈模型。
1.3 基于主從聯(lián)盟鏈結(jié)構(gòu)的農(nóng)產(chǎn)品供應(yīng)鏈追溯模型
利用所設(shè)計的主從聯(lián)盟鏈模型,結(jié)合農(nóng)產(chǎn)品供應(yīng)鏈流程,以供應(yīng)鏈各環(huán)節(jié)參與主體為主鏈物理節(jié)點構(gòu)建主從聯(lián)盟鏈農(nóng)產(chǎn)品追溯模型,實現(xiàn)農(nóng)產(chǎn)品在供應(yīng)鏈中的追蹤與溯源。在構(gòu)建的主從聯(lián)盟鏈農(nóng)產(chǎn)品追溯模型中,主鏈物理節(jié)點由原料供應(yīng)商、農(nóng)場、農(nóng)作物采購商、食品生產(chǎn)商、經(jīng)銷商和零售商組成,從鏈由主鏈節(jié)點對應(yīng)的參與主體和第三方監(jiān)管機構(gòu)生成。對于從鏈,使用物聯(lián)網(wǎng)設(shè)備自動采集參與主體需要記錄的數(shù)據(jù),并使用非對稱加密算法對數(shù)據(jù)進(jìn)行加密以保證數(shù)據(jù)上傳到從鏈區(qū)塊鏈過程的安全性和防竄改性。此外,第三方監(jiān)管機構(gòu)將相應(yīng)參與主體的質(zhì)檢結(jié)果數(shù)據(jù)上傳到從鏈區(qū)塊鏈。主鏈的創(chuàng)世區(qū)塊對應(yīng)的從鏈在滿足智能合約條件后生成條形碼或二維碼并上傳到主鏈節(jié)點,該條形碼或二維碼鏈接到Web端記錄著從鏈的信息。主鏈節(jié)點使用基于投票機制的IPBFT共識算法對信息進(jìn)行共識,然后主鏈其余區(qū)塊將條形碼或二維碼通過智能合約下發(fā)給從鏈,從鏈在滿足智能合約條件后向條形碼或二維碼鏈接的Web端添加信息。主從鏈間的智能合約是根據(jù)《食品安全國家標(biāo)準(zhǔn)》設(shè)計的,用于監(jiān)控農(nóng)產(chǎn)品供應(yīng)鏈各個環(huán)節(jié)上傳的信息是否符合規(guī)定、規(guī)范,從信息源頭保證食品的質(zhì)量安全。
由于農(nóng)場需要部署大量的物聯(lián)網(wǎng)設(shè)備來檢測、記錄、上傳與農(nóng)作物生長有關(guān)的信息,為了降低物聯(lián)網(wǎng)設(shè)備傳輸產(chǎn)生的能耗、提高網(wǎng)絡(luò)的穩(wěn)定性,提出了分簇集群傳輸方法,該方法框架如圖3所示。將農(nóng)場按種植區(qū)域分為多個種植集群,每個種植集群按種植面積劃分為多個簇,每個簇部署一個微處理器用于收集簇內(nèi)所有物聯(lián)網(wǎng)設(shè)備檢測的數(shù)據(jù),并進(jìn)行數(shù)據(jù)預(yù)處理、集成等操作。在規(guī)定的時間點,集群內(nèi)所有簇的微處理器將收集的數(shù)據(jù)通過網(wǎng)絡(luò)匯聚節(jié)點上傳到用于構(gòu)建農(nóng)產(chǎn)品供應(yīng)鏈的云服務(wù)器中。農(nóng)場上傳到服務(wù)器中的數(shù)據(jù)和第三方監(jiān)管機構(gòu)的質(zhì)檢結(jié)果數(shù)據(jù)一起形成從鏈的區(qū)塊,并將上傳的數(shù)據(jù)存儲在與區(qū)塊連接的IPFS中。通過在農(nóng)場中使用分簇集群傳輸方法上傳物聯(lián)網(wǎng)設(shè)備的數(shù)據(jù),可降低傳輸產(chǎn)生的能耗、提高網(wǎng)絡(luò)的穩(wěn)定性。
對于所構(gòu)建的農(nóng)產(chǎn)品供應(yīng)鏈追溯模型,主鏈由主鏈上的參與實體共同維護(hù),從鏈由對應(yīng)的參與實體和第三方監(jiān)管機構(gòu)共同維護(hù),消費者可以使用手機、平板等電子設(shè)備掃描產(chǎn)品條形碼或二維碼查詢與產(chǎn)品溯源有關(guān)的公開信息。
2 基于主從聯(lián)盟鏈結(jié)構(gòu)的農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)設(shè)計與實現(xiàn)
2.1 追溯系統(tǒng)總體框架設(shè)計
本文利用區(qū)塊鏈技術(shù),結(jié)合農(nóng)產(chǎn)品供應(yīng)鏈典型流程構(gòu)建供應(yīng)鏈追溯系統(tǒng)。為保證供應(yīng)鏈追溯系統(tǒng)中存儲的信息無人為竄改、安全可信,引入物聯(lián)網(wǎng)設(shè)備自動記錄、驗證、上傳農(nóng)產(chǎn)品相關(guān)信息,從信息源頭防止虛假信息的上傳[1]。所構(gòu)建的農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)總體框架如圖4所示,根據(jù)功能劃分,自下往上依次是物理層、數(shù)據(jù)層、網(wǎng)絡(luò)層、智能合約層和應(yīng)用層。
物理層是為供應(yīng)鏈中各參與主體部署傳感器、微處理器、攝像頭等物聯(lián)網(wǎng)設(shè)備并結(jié)合人工記錄采集供應(yīng)鏈各環(huán)節(jié)農(nóng)產(chǎn)品生產(chǎn)環(huán)境數(shù)據(jù)、生產(chǎn)數(shù)據(jù)及產(chǎn)品交易數(shù)據(jù)等[16]。數(shù)據(jù)層包括數(shù)據(jù)源和數(shù)據(jù)存儲。數(shù)據(jù)源是指所構(gòu)建的農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)的主鏈節(jié)點,通過使用物理層設(shè)備采集得到農(nóng)產(chǎn)品信息;數(shù)據(jù)存儲是指將物理層上傳的數(shù)據(jù)生成數(shù)據(jù)區(qū)塊,其中區(qū)塊頭使用時間戳、哈希算法進(jìn)行加密,區(qū)塊體的Merkle樹存儲著上傳的數(shù)據(jù)并使用非對稱加密方式進(jìn)行數(shù)據(jù)加密,各個區(qū)塊通過哈希值串聯(lián)起來形成鏈?zhǔn)浇Y(jié)構(gòu)[17,18]。網(wǎng)絡(luò)層規(guī)定了主鏈、從鏈上區(qū)塊通過點對點方式進(jìn)行傳播,并規(guī)定了區(qū)塊的共識和驗證規(guī)則[18]。合約層包括智能合約和追溯信息的調(diào)用,使用智能合約判斷上傳的信息是否滿足相應(yīng)條件并添加到區(qū)塊鏈上,若不滿足相應(yīng)條件,則通知相應(yīng)數(shù)據(jù)源進(jìn)行整改,通過調(diào)用追溯信息實現(xiàn)農(nóng)產(chǎn)品的信息追蹤和質(zhì)量溯源[16]。應(yīng)用層是農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)的Web應(yīng)用,向參與實體提供信息交互的界面操作服務(wù),消費者掃描產(chǎn)品二維碼連接到Web可進(jìn)行產(chǎn)品溯源查詢。
2.2 智能合約的設(shè)計
智能合約是區(qū)塊鏈上的一個計算機交易協(xié)議,由區(qū)塊鏈的交易觸發(fā),可讀取、寫入?yún)^(qū)塊鏈數(shù)據(jù)庫中的數(shù)據(jù)[22]。本文構(gòu)建的農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)包括兩個智能合約,分別位于主鏈節(jié)點之間和主從鏈之間。位于主鏈節(jié)點間的智能合約,用于保證各節(jié)點之間在無中介機構(gòu)的情況下公平、可靠地進(jìn)行交易;位于主從鏈之間的智能合約是根據(jù)《食品安全國家標(biāo)準(zhǔn)》設(shè)計的,用于管理從鏈數(shù)據(jù)信息上鏈和溯源信息查詢。從鏈上傳的數(shù)據(jù)經(jīng)智能合約判定后,若符合規(guī)定,則更新Web應(yīng)用端中的信息并將二維碼等從鏈信息上傳到主鏈;若不符合規(guī)定,則通過相應(yīng)參與主體進(jìn)行整改。通過使用主從鏈之間的智能合約可以對各個參與主體進(jìn)行智能監(jiān)管,從而避免供應(yīng)鏈各環(huán)節(jié)出現(xiàn)質(zhì)量安全問題。消費者掃描產(chǎn)品二維碼可通過智能合約查看從鏈上傳的信息,便于產(chǎn)品的溯源信息查詢。
2.3 供應(yīng)鏈追溯系統(tǒng)的實現(xiàn)
根據(jù)農(nóng)產(chǎn)品供應(yīng)鏈涉及的參與主體眾多,且實時生成的數(shù)據(jù)類型多樣、數(shù)據(jù)量龐大的特點,本文設(shè)計主從聯(lián)盟鏈模型來構(gòu)建農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)。所構(gòu)建的供應(yīng)鏈追溯系統(tǒng)包括Web應(yīng)用服務(wù)和以Hyperledger Fabric v2.0為底層架構(gòu)的區(qū)塊鏈網(wǎng)絡(luò)。Web應(yīng)用服務(wù)在服務(wù)器上使用Node.js開發(fā),前端頁面使用CSS+HTML編寫。Web應(yīng)用服務(wù)接收前端網(wǎng)絡(luò)請求,經(jīng)服務(wù)器處理返回JSON數(shù)據(jù)格式。主從聯(lián)盟鏈?zhǔn)窃赨buntu 20.04操作系統(tǒng)下基于Docker搭建運行環(huán)境,以Hyperledger Fabric v2.0為底層架構(gòu),使用CouchDB構(gòu)成分布式存儲數(shù)據(jù)庫,并用Go語言在GoLand編譯器中編寫聯(lián)盟鏈中的智能合約。
供應(yīng)鏈追溯系統(tǒng)將系統(tǒng)總體架構(gòu)中的數(shù)據(jù)源作為物理節(jié)點加入到主鏈,各主鏈節(jié)點和第三方監(jiān)管機構(gòu)作為從鏈節(jié)點一起構(gòu)建從鏈。從鏈節(jié)點通過Hyperledger Fabric v2.0的通道機制連接到主鏈時,通道會給從鏈節(jié)點分配權(quán)限,使得同一通道中的節(jié)點可通過智能合約查看該通道內(nèi)的所有信息,而其他通道的節(jié)點在授予權(quán)限后才可查看本通道的公開信息但無法查看隱私信息。供應(yīng)鏈追溯系統(tǒng)的運行流程如圖5所示。Web前端網(wǎng)絡(luò)包括消費者信息查詢和數(shù)據(jù)源數(shù)據(jù)上鏈兩種請求,對于消費者信息查詢請求,消費者通過掃描產(chǎn)品二維碼鏈接到Web前端,并根據(jù)產(chǎn)品ID查找主鏈區(qū)塊索引,然后將對應(yīng)的從鏈數(shù)據(jù)和主鏈區(qū)塊交易數(shù)據(jù)打包為JSON格式顯示在Web前端頁面供消費者查看;對于數(shù)據(jù)源數(shù)據(jù)上鏈請求,使用Node.js建立兩個服務(wù)器分別監(jiān)聽數(shù)據(jù)上傳端口和推送服務(wù)至Web前端的端口。用于監(jiān)聽數(shù)據(jù)上傳的端口收到數(shù)據(jù)源數(shù)據(jù)上鏈請求后,將數(shù)據(jù)打包為JSON格式暫時存儲在從鏈,當(dāng)從鏈經(jīng)過主從鏈間智能合約驗證通過后,將數(shù)據(jù)存儲在從鏈連接的IPFS中,并將從鏈ID上傳到對應(yīng)的主鏈區(qū)塊中;然后將從鏈ID等信息和主鏈運行信息打包為JSON格式的數(shù)據(jù)轉(zhuǎn)發(fā)至服務(wù)推送端口;服務(wù)推送端口通過Socket將數(shù)據(jù)推送到Web前端,從而可以在Web前端頁面顯示從鏈相關(guān)信息和主鏈區(qū)塊運行信息。
在服務(wù)器上以系統(tǒng)總體架構(gòu)的數(shù)據(jù)源個數(shù)為主鏈物理節(jié)點數(shù),每個主鏈節(jié)點包括兩條從鏈構(gòu)建區(qū)塊鏈。在服務(wù)器的終端命令窗口可對生成的區(qū)塊鏈進(jìn)行的可選操作包括查看區(qū)塊鏈主鏈結(jié)構(gòu)、向區(qū)塊鏈輸入交易、查看未經(jīng)驗證的交易、驗證上傳到區(qū)塊鏈的交易、驗證整個區(qū)塊鏈結(jié)構(gòu)、回溯信息、退出,如圖6所示。
以可選操作中的查看區(qū)塊鏈主鏈結(jié)構(gòu)操作為例,終端命令窗口顯示當(dāng)前主鏈區(qū)塊的信息,包括主鏈區(qū)塊索引號、區(qū)塊創(chuàng)建時間、區(qū)塊哈希值、前一個區(qū)塊哈希值、區(qū)塊數(shù)據(jù),如圖7所示。
為了測試本文構(gòu)建的供應(yīng)鏈追溯系統(tǒng)的性能,使用吞吐量和共識時延兩個性能指標(biāo)來衡量區(qū)塊鏈構(gòu)建過程的性能,并使用信息查詢時間來衡量構(gòu)建的供應(yīng)鏈追溯系統(tǒng)的信息溯源性能。其中吞吐量是指單位時間內(nèi)完成的交易數(shù)量,共識時延是指從交易提交到交易完成消耗的時間。首先,使用系統(tǒng)架構(gòu)中的數(shù)據(jù)源作為物理節(jié)點生成五個主鏈區(qū)塊,測試主鏈?zhǔn)褂肐PBFT和PBFT兩種共識算法在信息交易量依次為200、400、600、800、1 000、1 200時的吞吐量,實驗結(jié)果如圖8所示。可以得出,當(dāng)信息交易量在主鏈區(qū)塊處理能力范圍內(nèi)時,隨著交易量的增加,兩種共識算法的吞吐量都會增加;但當(dāng)交易量超過800時,由于超出主鏈區(qū)塊處理能力范圍導(dǎo)致系統(tǒng)線程的堵塞,隨著交易量的增加系統(tǒng)吞吐量會下降。此外,主鏈?zhǔn)褂肐PBFT共識算法得到的吞吐量要高于使用PBFT共識算法的吞吐量。本文選取信息交易量為800進(jìn)行區(qū)塊鏈構(gòu)建過程性能的測試。為了測試區(qū)塊鏈構(gòu)建過程的性能,分別計算主鏈區(qū)塊為5、10、15、20、25時的吞吐量和區(qū)塊共識時延,實驗結(jié)果如圖9、10所示。可以得出,隨著主鏈區(qū)塊數(shù)量的增加,系統(tǒng)吞吐量下降,區(qū)塊間共識時延上升。此外,主鏈?zhǔn)褂肐PBFT共識算法時,系統(tǒng)吞吐量高于使用PBFT共識算法的,并且區(qū)塊間共識時延優(yōu)于使用PBFT共識算法的。
為了測試構(gòu)建的供應(yīng)鏈追溯系統(tǒng)的信息溯源性能,計算該系統(tǒng)在相同情況下執(zhí)行不同追溯次數(shù)所需的查詢時間,實驗結(jié)果如圖11所示。可以得出,本文設(shè)計的供應(yīng)鏈追溯系統(tǒng)在面臨大量信息追溯的情況下只需要較短的查詢時間,具有較高的查詢效率。此外,為了對比本文設(shè)計的主從聯(lián)盟鏈結(jié)構(gòu)供應(yīng)鏈追溯系統(tǒng)與傳統(tǒng)單鏈結(jié)構(gòu)供應(yīng)鏈追溯系統(tǒng)的信息追溯效率,在兩者存儲著相同數(shù)據(jù)的情況下,比較兩者隨機查詢相同信息量所需的時間。由于單鏈結(jié)構(gòu)供應(yīng)鏈追溯系統(tǒng)可存儲的信息量有限,設(shè)置了兩個系統(tǒng)在存儲著0.5 M、1 M、1.5 M、2 M、2.5 M、3 M數(shù)據(jù)量情況下查詢相同信息量需要的時間,結(jié)果如圖12所示。由于主從聯(lián)盟鏈結(jié)構(gòu)的供應(yīng)鏈追溯系統(tǒng)存儲的數(shù)據(jù)量較大,當(dāng)系統(tǒng)存儲的數(shù)據(jù)量較小時,數(shù)據(jù)量在小范圍內(nèi)發(fā)生變化對信息查詢時間的影響較小。通過比較兩個系統(tǒng)查詢相同信息量所需要的時間可得,本文設(shè)計的主從聯(lián)盟鏈結(jié)構(gòu)供應(yīng)鏈追溯系統(tǒng)信息查詢效率更高,并且在進(jìn)行隱私信息查詢時,單鏈結(jié)構(gòu)供應(yīng)鏈追溯系統(tǒng)可返回相應(yīng)的信息,而主從聯(lián)盟鏈結(jié)構(gòu)供應(yīng)鏈追溯系統(tǒng)則無法返回相應(yīng)的信息,因此主從聯(lián)盟鏈結(jié)構(gòu)供應(yīng)鏈追溯系統(tǒng)有效地保護(hù)了節(jié)點的隱私信息。
本文設(shè)計的供應(yīng)鏈追溯系統(tǒng)使用了分簇集群傳輸方法來降低農(nóng)場中物聯(lián)網(wǎng)設(shè)備上傳信息產(chǎn)生的能耗。在此設(shè)置了單獨的模擬實驗來測試使用分簇集群傳輸方法前后農(nóng)場中所有物聯(lián)網(wǎng)設(shè)備產(chǎn)生的能耗變化。將200 m×200 m的農(nóng)場分為三個種植集群,在農(nóng)場隨機布置100個物聯(lián)網(wǎng)節(jié)點,并在農(nóng)場中心位置部署大型服務(wù)器。然后根據(jù)每個種植集群內(nèi)物聯(lián)網(wǎng)節(jié)點的分布,使用K-means算法分為三個簇,并在每個簇中心位置部署一個微處理器。每個簇中的物聯(lián)網(wǎng)節(jié)點將信息上傳到相應(yīng)的微處理器,然后所有種植集群中的微處理器將信息上傳到農(nóng)場中的大型服務(wù)器。在進(jìn)行信息傳輸時,使用一階無線電模型作為能量消耗模型來估計傳輸過程中產(chǎn)生的能耗,其表達(dá)式為
ETX (b,d)=
b×(Eelec+Efs×d2)" dlt;d0
b×(Eelec+Emp×d4)d≥d0
(1)
其中:ETX(b,d)為傳輸信息能耗;Eelec為傳輸單位比特數(shù)據(jù)所需能量,在此設(shè)為50 nJ/bit;Efs、Emp為不同信道傳播模型下的功率放大電路能量損耗系數(shù),在此Efs設(shè)為10 pJ/bit/m2、Emp設(shè)為0.013 pJ/bit/m4;b為傳輸?shù)男畔⒘浚籨為傳輸距離; d0=Efs/Emp為傳輸距離閾值。模擬物聯(lián)網(wǎng)設(shè)備上傳2 M、4 M、6 M、8 M數(shù)據(jù)量時,使用分簇集群傳輸方法和直接將數(shù)據(jù)上傳到大型服務(wù)器這兩種方式產(chǎn)生的能耗,結(jié)果如圖13所示。通過比較物聯(lián)網(wǎng)設(shè)備的兩種數(shù)據(jù)上傳方式可得,使用分簇集群傳輸方法可以降低農(nóng)場中物聯(lián)網(wǎng)設(shè)備總的能量消耗,從而延長物聯(lián)網(wǎng)設(shè)備的使用壽命,提高系統(tǒng)的穩(wěn)定性。
3 結(jié)束語
本文調(diào)查了當(dāng)下農(nóng)產(chǎn)品供應(yīng)鏈的研究現(xiàn)狀,總結(jié)了其中存在的主要問題,基于Hyperledger Fabric v2.0平臺設(shè)計了主從聯(lián)盟鏈結(jié)構(gòu)的農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)。該系統(tǒng)使用聯(lián)盟鏈作為供應(yīng)鏈追溯系統(tǒng)的主鏈,提高了數(shù)據(jù)的上鏈速度和信息溯源效率。通過在參與主體中部署物聯(lián)網(wǎng)設(shè)備進(jìn)行信息的采集、處理,并在經(jīng)過主從鏈間智能合約的驗證后將信息存儲在主從聯(lián)盟鏈中,從而保證存儲在供應(yīng)鏈中的信息無人為竄改、安全可信并且有一定保障。此外,由于農(nóng)場上傳的數(shù)據(jù)量較大,將農(nóng)場節(jié)點對應(yīng)的從鏈信息上傳到IPFS中。實驗結(jié)果表明,本文設(shè)計的基于主從聯(lián)盟鏈結(jié)構(gòu)的農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)性能良好,能夠滿足消費者的實際需求,可以實現(xiàn)食品信息的溯源,保證食品的安全質(zhì)量,對農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)的研究具有一定的參考意義。
參考文獻(xiàn):
[1]Demestichas K,Peppes N,Alexakis T,et al.Blockchain in agriculture traceability systems:a review[J].Applied Sciences,2020,10(12):4113.
[2]Lin Jun,Shen Zhiqi,Zhang Anting,et al.Blockchain and IoT based food traceability for smart agriculture[C]//Proc of the 3rd International Conference on Crowd Science and Engineering.New York:ACM Press,2018:article No.3.
[3]Jin Shaosheng,Zhang Yan,Xu Yining.Amount of information and the willingness of consumers to pay for food traceability in China[J].Food Control,2017,77(7):163-170.
[4]Casino F,Kanakaris V,Dasaklis T K, et al.Blockchain-based food supply chain traceability:a case study in the dairy sector[J].International Journal of Production Research,2021,59(19):5758-5770.
[5]Casino F,Kanakaris V,Dasaklis T K,et al.Modeling food supply chain traceability based on blockchain technology[J].IFAC-Papers-OnLine,2019,52(13):2728-2733.
[6]Bosona T,Gebresenbet G.Food traceability as an integral part of logistics management in food and agricultural supply chain[J].Food Control,2013,33(1):32-48.
[7]Aung M M,Chang Y S.Traceability in a food supply chain:safety and quality perspectives[J].Food Control,2014,39(5):172-184.
[8]Salah K,Nizamuddin N,Jayaraman R,et al.Blockchain-based soybean traceability in agricultural supply chain[J].IEEE Access,2019,7:73295-73305.
[9]Storoy J,Thakur M,Olsen P.The TraceFood framework:principles and guidelines for implementing traceability in food value chains[J].Journal of Food Engineering,2013,115(1):41-48.
[10]Saikouk T,Spalanzani A.Review,typology and evaluation of traceabi-lity technologies:case of the French forest supply chain[J].Supply Chain Forum,2016,17(1):39-53.
[11]Awan S,Ahmed S,Ullah F,et al.IoT with blockchain:a futuristic approach in agriculture and food supply chain[J].Wireless Communications and Mobile Computing,2021,2021:article ID 5580179.
[12]Kamilaris A,F(xiàn)onts A,Prenafeta-Boldv′ F X.The rise of blockchain technology in agriculture and food supply chains[J].Trends in Food Science amp; Technology,2019,91(9):640-652.
[13]盧瑞元,王子恒,李領(lǐng)治,等.基于Hyperledger Fabric的區(qū)塊鏈農(nóng)產(chǎn)品溯源方案[J].計算機科學(xué)與應(yīng)用,2020,10(5):811-823.(Lu Ruiyuan,Wang Ziheng,Li Lingzhi,et al.A scheme about agricultural produce traceability using blockchain based on Hyperledger Fabric[J].Computer Science and Applications,2020,10(5):811-823.)
[14]Tian Feng.A supply chain traceability system for food safety based on HACCP,blockchain amp; Internet of Things[C]//Proc of International Conference on Service Systems and Service Management.Piscataway,NJ:IEEE Press,2017:1-6.
[15]Caro M P,Ali M S,Vecchio M, et al.Blockchain-based traceability in Agri-Food supply chain management:a practical implementation[C]//Proc of IoT Vertical and Topical Summit on Agriculture-Tuscany.Piscataway,NJ:IEEE Press,2018:1-4.
[16]李夢琪,楊信廷,徐大明,等.基于主從多鏈的水產(chǎn)品區(qū)塊鏈溯源信息管理系統(tǒng)設(shè)計與實現(xiàn)[J].漁業(yè)現(xiàn)代化,2021,48(3):80-89.(Li Mengqi,Yang Xinting,Xu Daming,et al.Design and implementation of aquatic product blockchain traceability information management system based on master-slave multi-chain[J].Fishery Modernization,2021,48(3):80-89.)
[17]吳曉彤.基于區(qū)塊鏈的農(nóng)產(chǎn)品可信溯源系統(tǒng)研究與實現(xiàn)[D].泰安:山東農(nóng)業(yè)大學(xué),2020.(Wu Xiaotong.Research and implementation of trusted traceability system for agricultural products based on blockchain[D].Tai’an:Shandong Agricultural University,2020.)
[18]洪坤明,劉新亮,高圣喬.基于聯(lián)盟區(qū)塊鏈的水產(chǎn)養(yǎng)殖品質(zhì)量追溯系統(tǒng)的設(shè)計與實現(xiàn)[J].科學(xué)技術(shù)與工程,2019,19(35):79-86.(Hong Kunming,Liu Xinliang,Gao Shengqiao.Design and implementation of traceability system for aquaculture products based on coalition blockchain[J].Science Technology amp; Engineering,2019,19(35):79-86.)
[19]佘維,楊曉宇,胡躍,等.基于聯(lián)盟區(qū)塊鏈的分布式能源交易認(rèn)證模型[J].中國科學(xué)技術(shù)大學(xué)學(xué)報,2018,48(4):307-313.(She Wei,Yang Xiaoyu,Hu Yue,et al.Transaction certification model of distributed energy based on consortium blockchain[J].Journal of the University of Science and Technology of China,2018,48(4):307-313.)
[20]譚朋柳,萬里旭冉.一種具有主從區(qū)塊的區(qū)塊鏈架構(gòu)[J].物聯(lián)網(wǎng)學(xué)報,2021,5(2):116-124.(Tan Pengliu,Wan Lixuran.A blockchain architecture with master-slave blocks[J].Chinese Journal on Internet of Things,2021,5(2):116-124.)
[21]于澤偉.基于區(qū)塊鏈的農(nóng)產(chǎn)品追溯系統(tǒng)設(shè)計與實現(xiàn)[D].大連:大連理工大學(xué),2019.(Yu Zewei.Design and implementation of blockchain-based traceability system for agricultural products[D].Dalian:Dalian University of Technology,2019.)
[22]Chang S E,Chen Y C,Lu Mingfang.Supply chain re-engineering using blockchain technology:a case of smart contract based tracking process[J].Technological Forecasting and Social Change,2019,144(7):1-11.