楊萬龍 陳琳
摘 要:針對(duì)傳統(tǒng)蜂蜜溯源效率低下、可信度較低等問題進(jìn)行了研究,在分析了蜂蜜溯源標(biāo)準(zhǔn)后,結(jié)合區(qū)塊鏈技術(shù)和IPFS技術(shù)構(gòu)建了高可信蜂蜜溯源方案。首先提出了分層存儲(chǔ)策略,解決了信息上鏈及溯源效率較低的問題;然后以多鏈構(gòu)架隔離數(shù)據(jù),提出基于外部隨機(jī)預(yù)言的代理重加密方案,由智能合約完成密文重加密,同時(shí)附上消息認(rèn)證碼,解決了信息可信度低、假冒偽造和隱私數(shù)據(jù)泄露風(fēng)險(xiǎn);最后,為防止突發(fā)性負(fù)載導(dǎo)致的數(shù)據(jù)不一致,提出了預(yù)上鏈機(jī)制,即“高流量打包預(yù)先上鏈,低流量補(bǔ)充上鏈”方案。為驗(yàn)證可行性,對(duì)上述方案使用Apache Bench工具進(jìn)行仿真測(cè)試,結(jié)果表明,該方案實(shí)現(xiàn)了基本數(shù)據(jù)的有效上鏈、可控監(jiān)管和可信溯源,能夠滿足企業(yè)、監(jiān)管部門和用戶的多級(jí)需求。
關(guān)鍵詞:區(qū)塊鏈;多鏈;代理重加密;突發(fā)性負(fù)載;星際文件系統(tǒng)
中圖分類號(hào):TP311.3?? 文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2024)03-004-0671-05
doi:10.19734/j.issn.1001-3695.2023.07.0292
Trustworthy regulatory traceability model for honey supply chain under blockchain architecture
Yang Wanlong,Chen Lin
(School of Computer Science,Yangtze University,Jingzhou Hubei 434023,China)
Abstract:Considering that the problems of low efficiency and credibility in traditional honey traceability,this paper constructed a solution which combined blockchain technology and interplanetary file system technology to establish a highly reliable honey traceability system after analyzing the honey traceability standards.Firstly,this paper introduced a hierarchical storage strategy to enhance the efficiency of on-chain information and traceability.Subsequently,it employed a multi-chain architecture to isolate data,and utilized a proxy re-encryption scheme based on external random oracles,whereby executed ciphertext re-encryption through smart contracts.Simultaneously,it integrated message authentication codes to effectively address challenges such as low information credibility,forgery,and potential privacy data leaks.Lastly,this paper proposed a pre-commit mechanism to prevent inconsistencies in data caused by sudden loads,that was,the scheme of “high-traffic package pre-commit,low-traffic supplementary on-chain”.To assess the feasibility of the proposed solution,simulations and tests were conducted using Apache Bench tools.The results demonstrate that the scheme effectively achieves the chaining of basic data,controllable supervision,and credible traceability.Furthermore,it fulfills the multi-level requirements of enterprises,regulatory authorities,and users.
Key words:blockchain;multi-chain;proxy re-encryption;burst load;interplanetary file system
0 引言
近年來,激素添加、摻假造假、農(nóng)藥殘留等蜂蜜食品安全問題頻發(fā),不僅對(duì)消費(fèi)者的健康安全構(gòu)成潛在威脅,還對(duì)整個(gè)蜂蜜行業(yè)帶來了較大的負(fù)面影響。2018年,國(guó)內(nèi)某公司違反《食品安全法》有關(guān)規(guī)定,將過期蜂蜜回收繼續(xù)加工,次年市場(chǎng)監(jiān)管部門對(duì)其作出行政處罰決定;同年,歐洲食品安全局(European Food Safety Authority,EFSA)發(fā)布了一份關(guān)于蜂蜜產(chǎn)品中農(nóng)藥殘留的報(bào)告,該報(bào)告指出,采自歐洲各國(guó)的蜂蜜樣品中,約有20%超過了農(nóng)藥殘留的安全標(biāo)準(zhǔn)。由此可見,構(gòu)建完備的蜂蜜溯源監(jiān)管平臺(tái)迫在眉睫,理應(yīng)將其作為提升蜂蜜食品安全質(zhì)量以及促進(jìn)蜂蜜產(chǎn)業(yè)合作共贏的重要手段。
中心化的供應(yīng)鏈嚴(yán)重依賴中央節(jié)點(diǎn)來控制信息流,從而導(dǎo)致信息不平等和信任問題[1]。區(qū)塊鏈具有可追溯、無須信任、去中心化、不可竄改、匿名性等特性[2]。利用區(qū)塊鏈助力農(nóng)產(chǎn)品溯源不僅提高了溯源信息的透明度和安全性,打破了傳統(tǒng)溯源系統(tǒng)數(shù)據(jù)存儲(chǔ)中心化的局面[3],而且增強(qiáng)了供應(yīng)鏈各追溯主體之間的信息互通性[4]。學(xué)者們對(duì)此展開了大量研究,主要致力于如下幾個(gè)方向:
a)隱私保護(hù)和權(quán)限管理。集中于設(shè)計(jì)可控的訪問權(quán)限控制和身份驗(yàn)證機(jī)制,以及解決數(shù)據(jù)共享問題。文獻(xiàn)[5]針對(duì)多監(jiān)管部門審查隱私數(shù)據(jù)問題,基于CP-ABE提出了密文訪問驗(yàn)證樹方案,確保了監(jiān)管過程中隱私數(shù)據(jù)的安全性。文獻(xiàn)[6]分析了大米供應(yīng)鏈信息,在PBFT共識(shí)算法中引入信用評(píng)分機(jī)制,結(jié)合AES和SM3算法提出分級(jí)數(shù)據(jù)加密方式來保護(hù)隱私數(shù)據(jù)。
b)可擴(kuò)展性和性能優(yōu)化。針對(duì)農(nóng)業(yè)溯源領(lǐng)域的應(yīng)用,優(yōu)化原生的共識(shí)算法、分布式存儲(chǔ)方案和網(wǎng)絡(luò)傳輸協(xié)議,以提高系統(tǒng)整體的吞吐量,從而滿足大規(guī)模農(nóng)產(chǎn)品溯源要求。文獻(xiàn)[7]建立了“溯源鏈+共享鏈+隱私鏈+監(jiān)管鏈”模型,利用溯源鏈追溯數(shù)據(jù),共享鏈和隱私鏈實(shí)現(xiàn)數(shù)據(jù)流轉(zhuǎn)和保護(hù),最后通過監(jiān)管鏈監(jiān)管各個(gè)環(huán)節(jié)的風(fēng)險(xiǎn)數(shù)據(jù),解決了異構(gòu)數(shù)據(jù)的存儲(chǔ)保護(hù)和驗(yàn)證問題。文獻(xiàn)[8]通過分析糧食供應(yīng)鏈各環(huán)節(jié)的流程和數(shù)據(jù)特征,提出了主從多鏈溯源模型,并在此基礎(chǔ)上為主鏈設(shè)計(jì)了Raft和改進(jìn)PoW算法的PLEW共識(shí)算法,為從鏈設(shè)計(jì)了基于可信信息度的CI-PBFT共識(shí)算法,提升了區(qū)塊鏈網(wǎng)絡(luò)的交易吞吐量和糧食溯源效率。
c)結(jié)合物聯(lián)網(wǎng)技術(shù)。利用物聯(lián)網(wǎng)和傳感器技術(shù)自動(dòng)實(shí)時(shí)感知數(shù)據(jù),提升信息采集的可信度。文獻(xiàn)[9]提出了果蔬供應(yīng)鏈數(shù)據(jù)流通模型,將數(shù)據(jù)存儲(chǔ)至IPFS網(wǎng)絡(luò),通過Blake2改進(jìn)型Ed25519算法實(shí)現(xiàn)了物聯(lián)網(wǎng)設(shè)備的身份驗(yàn)證機(jī)制,提高了數(shù)據(jù)的安全性。文獻(xiàn)[10]結(jié)合區(qū)塊鏈和物聯(lián)網(wǎng)技術(shù),Stm32開發(fā)板自動(dòng)采集數(shù)據(jù)后憑借MOTT協(xié)議傳輸?shù)桨⒗镌莆锫?lián)網(wǎng)平臺(tái),用戶通過AMQP協(xié)議溯源數(shù)據(jù),提升了系統(tǒng)的安全性、降低了交易延遲和通信成本。
上述研究針對(duì)農(nóng)產(chǎn)品溯源中可信度不足、效率低下及隱私保護(hù)和共享問題提出了諸多解決方案,但是沒有針對(duì)且符合蜂蜜溯源標(biāo)準(zhǔn)的研究。另一方面,在農(nóng)產(chǎn)品信息上鏈以及溯源過程中,將溯源信息單獨(dú)處理,彼此分離,忽略了各條溯源數(shù)據(jù)的關(guān)聯(lián)性。對(duì)上述問題作出分析之后,本文提出了相應(yīng)解決方案。
本文依據(jù)文獻(xiàn)[11]蜂蜜溯源標(biāo)準(zhǔn),分析各環(huán)節(jié)溯源數(shù)據(jù)項(xiàng)的特性,提出了分層存儲(chǔ)策略;將區(qū)塊鏈作為重加密的中間委托方,結(jié)合消息認(rèn)證碼,通過基于外部隨機(jī)預(yù)言的代理重加密方案實(shí)現(xiàn)了隱私數(shù)據(jù)的有效監(jiān)管和共享;為解決實(shí)際數(shù)據(jù)上鏈過程中出現(xiàn)的突發(fā)性負(fù)載問題,提出了數(shù)據(jù)預(yù)上鏈機(jī)制。
1 關(guān)鍵技術(shù)
1.1 區(qū)塊鏈技術(shù)
文獻(xiàn)[12]集成密碼學(xué)、智能合約、共識(shí)算法等多種技術(shù)提出區(qū)塊鏈概念。區(qū)塊以默克爾樹為數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)交易,并使用哈希指針按照時(shí)間戳順序?qū)^(qū)塊鏈接在一起,保證網(wǎng)絡(luò)內(nèi)交易的完整性和可追溯性[13],可以將其劃分為公有鏈、聯(lián)盟鏈與私有鏈[14]。其中聯(lián)盟鏈多個(gè)授權(quán)的可信成員共同管理,提供了更為安全的授權(quán)準(zhǔn)入機(jī)制,實(shí)現(xiàn)了完善的身份驗(yàn)證和訪問控制。另一方面,相較于公鏈而言,聯(lián)盟鏈能夠更好地應(yīng)用隱私保護(hù)技術(shù),為企業(yè)隱私數(shù)據(jù)的共享和監(jiān)管提供更為安全的保障。
1.2 代理重加密
代理重加密(proxy re-encryption,PRE)[15]技術(shù)是一種允許第三方在不知道明文的情形下,經(jīng)代理密鑰對(duì)原始密文重加密,使其能夠被接收方密鑰解密的密碼學(xué)技術(shù)。加密流程如下:
a)密鑰生成keyGen(par)→(sk,pk):通過參數(shù)par生成用戶的公私鑰對(duì)。
b)代理密鑰生成RkKeyGen(par,skA,pkB)→rkA→B:通過參數(shù)par,數(shù)據(jù)所有者私鑰skA以及被授權(quán)用戶公鑰pkB,生成從授權(quán)用戶A到被授權(quán)用戶B的單向重加密密鑰。其中(skA,pkA)為數(shù)據(jù)所有者公私鑰對(duì),(skB,pkB)為被授權(quán)用戶公私鑰對(duì)。
c)加密算法Enc(par,m,pkA)→C0:通過參數(shù)par和發(fā)送方公鑰pkA加密明文m,得到原始密文C0,其中0表示密文未被重加密。
d)重加密算法ReEnc(par,rkA→B,C0)→C1:通過參數(shù)par,用戶A到用戶B的重加密密鑰rkA→B,將原始密文C0重加密得到密文C1,其中C1表示僅經(jīng)過1次重加密。
e)解密算法Dec(par,skB,C1)→m:通過參數(shù)par,被授權(quán)者私鑰skB和解密密文C1得到數(shù)據(jù)明文m。
f)對(duì)于任意一組參數(shù)par,上述算法還需滿足如下一致性:
Dec(par,skA,Enc(par,m,pkA))=m(1)
Dec(par,skB,ReEnc(par,ReKeyGen(par,skA,pkB),C1))=m(2)
2 面向蜂蜜溯源的存儲(chǔ)模型設(shè)計(jì)
信息溯源包含生產(chǎn)、加工、運(yùn)輸和銷售多個(gè)環(huán)節(jié),基本溯源信息如表1所示。各環(huán)節(jié)的基本信息項(xiàng)又由多個(gè)子數(shù)據(jù)項(xiàng)組合而成,由此可見溯源信息具有高度復(fù)雜性。若將各環(huán)節(jié)每條溯源信息項(xiàng)都視作彼此完全獨(dú)立的數(shù)據(jù)處理,無疑增加了信息溯源所需工作量。分析最終溯源信息不難發(fā)現(xiàn),多數(shù)溯源數(shù)據(jù)項(xiàng)之間存在大量的交集,每次信息溯源訪問區(qū)塊鏈賬本、第三方可信數(shù)據(jù)庫(kù)以及哈希錨定次數(shù)正比于全流程基本信息項(xiàng)總和,從而導(dǎo)致信息溯源效率低下。
2.1 總體架構(gòu)設(shè)計(jì)
生產(chǎn)環(huán)節(jié)中,蜜蜂養(yǎng)殖呈現(xiàn)多養(yǎng)殖戶小規(guī)模性,難以部署物聯(lián)網(wǎng)集群,該環(huán)節(jié)數(shù)據(jù)手動(dòng)采集。而加工、運(yùn)輸和銷售環(huán)節(jié)模式相對(duì)固定,具有大規(guī)模性,支持物聯(lián)網(wǎng)集群的大規(guī)模部署和基本信息的自動(dòng)感知采集。本文數(shù)據(jù)嚴(yán)格依照GB/Z 40948—2021標(biāo)準(zhǔn)要求設(shè)計(jì),對(duì)各環(huán)節(jié)的基本信息構(gòu)建分層存儲(chǔ)策略,采用鏈上鏈下存儲(chǔ)模式。標(biāo)準(zhǔn)文件要求信息記錄和相關(guān)憑證的保存期限應(yīng)比最終產(chǎn)品的保質(zhì)期長(zhǎng)2年[11],因此將數(shù)據(jù)原文遷移至SQL數(shù)據(jù)庫(kù)和IPFS網(wǎng)絡(luò)中,用于持久化存儲(chǔ)溯源信息項(xiàng),減輕區(qū)塊鏈網(wǎng)絡(luò)的存儲(chǔ)壓力。
農(nóng)產(chǎn)品全產(chǎn)業(yè)鏈具有參與主體節(jié)點(diǎn)多、產(chǎn)業(yè)鏈長(zhǎng)、涉及范圍廣、數(shù)據(jù)量大且多源異構(gòu)等特征[16]。單一區(qū)塊鏈存在隔離性、隱私、容量和可擴(kuò)展性問題[17]。而多鏈結(jié)構(gòu)支持網(wǎng)絡(luò)通道和節(jié)點(diǎn)數(shù)量的水平拓展,能夠滿足大規(guī)模數(shù)據(jù)存儲(chǔ)和交易需求,同時(shí)以通道隔離數(shù)據(jù),進(jìn)一步保證了數(shù)據(jù)的安全性。
如圖1所示,本文針對(duì)生產(chǎn)、加工、運(yùn)輸、銷售四個(gè)環(huán)節(jié)設(shè)立四條獨(dú)立鏈。各子鏈中,將直接面向消費(fèi)者的溯源數(shù)據(jù)明文存儲(chǔ)在MySQL和IFPS中,區(qū)塊鏈賬本則負(fù)責(zé)存儲(chǔ)數(shù)據(jù)原文哈希值,用于校驗(yàn)數(shù)據(jù)的真實(shí)性。隱私數(shù)據(jù)經(jīng)數(shù)據(jù)所有者私鑰加密之后,交由智能合約經(jīng)代理重加密算法將原始密文重加密,并對(duì)密文哈希上鏈。訪問隱私數(shù)據(jù)時(shí),被授權(quán)企業(yè)或監(jiān)管部門使用自己的私鑰解密即可得到隱私數(shù)據(jù)明文。最后,為應(yīng)對(duì)實(shí)際生產(chǎn)過程中出現(xiàn)的突發(fā)性負(fù)載問題,單獨(dú)設(shè)計(jì)預(yù)鏈,實(shí)施高流量數(shù)據(jù)打包上鏈。
2.2 分層存儲(chǔ)策略
將整個(gè)環(huán)節(jié)的溯源數(shù)據(jù)直接存儲(chǔ)至區(qū)塊鏈網(wǎng)絡(luò),會(huì)顯著增加賬本的存儲(chǔ)壓力及網(wǎng)絡(luò)帶寬的壓力,致使系統(tǒng)性能下降[3]。因此,本文提出改進(jìn)的鏈上鏈下存儲(chǔ)方案。依據(jù)各階段溯源數(shù)據(jù)項(xiàng)的變動(dòng)頻次,將單個(gè)階段內(nèi)的數(shù)據(jù)項(xiàng)分別劃分為靜態(tài)數(shù)據(jù)、半靜態(tài)數(shù)據(jù)和動(dòng)態(tài)數(shù)據(jù),并據(jù)此構(gòu)建分層存儲(chǔ)策略。定義數(shù)據(jù)結(jié)構(gòu):
PrevInfo=[OwnHash,PrevHash,IpfsCID](3)
其中:OwnHash為當(dāng)前數(shù)據(jù)項(xiàng)經(jīng)SHA-256算法散列后所得哈希值,用于對(duì)原文數(shù)據(jù)的校驗(yàn);PrevHash為所引用的上層數(shù)據(jù)段哈希值,用于關(guān)聯(lián)上層數(shù)據(jù);IpfsCID值為當(dāng)前層數(shù)據(jù)拼接所引用的上層數(shù)據(jù)并上傳至IPFS網(wǎng)絡(luò)后所得的CID值。存儲(chǔ)策略結(jié)構(gòu)如圖2所示。
企業(yè)上傳產(chǎn)品基本信息時(shí),對(duì)于不同數(shù)據(jù)處理方式不同。
a)靜態(tài)數(shù)據(jù):該層數(shù)據(jù)變動(dòng)頻次最低,短期內(nèi)基本可視作固定數(shù)據(jù)項(xiàng),即圖中根數(shù)據(jù)。原始數(shù)據(jù)存儲(chǔ)至SQL數(shù)據(jù)庫(kù)中,區(qū)塊鏈記錄原始數(shù)據(jù)及哈希值。
b)半靜態(tài)數(shù)據(jù):該層數(shù)據(jù)更新頻次高于靜態(tài)數(shù)據(jù),但遠(yuǎn)遠(yuǎn)低于動(dòng)態(tài)數(shù)據(jù),需向前索引,用于關(guān)聯(lián)上層數(shù)據(jù),同時(shí)同自身信息形成中間數(shù)據(jù)向后被引用。終端接收到數(shù)據(jù)D及索引值ID,智能合約由ID獲取上層CID,并依據(jù)該CID在IPFS網(wǎng)絡(luò)中讀取上層數(shù)據(jù),同本層數(shù)據(jù)拼接:
D′=D+IPFS(CID)(4)
得到數(shù)據(jù)D′后,上傳至IPFS網(wǎng)絡(luò)獲取數(shù)據(jù)唯一的CID,同數(shù)據(jù)摘要一起構(gòu)成基本數(shù)據(jù)上鏈。
c)動(dòng)態(tài)數(shù)據(jù):該層信息屬于重復(fù)率最低、變動(dòng)率最高的數(shù)據(jù),只需關(guān)聯(lián)上層數(shù)據(jù)即可。
2.3 隱私數(shù)據(jù)保護(hù)
隱私和安全是獲得信任的關(guān)鍵。因?yàn)槿绻槐Wo(hù)隱私和安全,就會(huì)發(fā)生惡意攻擊[18]。本文采用改進(jìn)的基于隨機(jī)預(yù)言的代理重加密算法加密隱私數(shù)據(jù)。傳統(tǒng)基于身份密碼算法存在密鑰托管的問題,私鑰生成中心易被攻擊[19],且多通過第三方可信云服務(wù)器完成密文重加密工作,存在密文被竄改的風(fēng)險(xiǎn)。本文提出基于外部隨機(jī)預(yù)言的代理重加密方案,在合約外部生成隨機(jī)數(shù)種子R,代理密鑰的生成以及密文重加密交由智能合約自動(dòng)完成,為防止數(shù)據(jù)偽造和仿冒,在明文加密時(shí)附加消息認(rèn)證碼。該方案相較于傳統(tǒng)的加密方案而言,通過聯(lián)盟鏈的弱中心化和智能合約的自動(dòng)化執(zhí)行等特點(diǎn),有效避免了中心化的第三方云服務(wù)器對(duì)密文信息的竄改和濫用,不僅增加了惡意攻擊者攻擊的難度,也提高了重加密密文的可信度。具體加密流程如圖3所示。
a)密鑰生成:(sk,pk)←GenerateKey(R)。
智能合約外部通過CSPRNG生成64 Byte隨機(jī)切片seed,合約內(nèi)部使用SHA-512算法散列seed得到哈希值R,同 P-256曲線生成ECDSA密鑰對(duì)。后續(xù)算法中,均采用該方式生成隨機(jī)數(shù),同時(shí)規(guī)定隱私數(shù)據(jù)所有者的密鑰對(duì)(skA,pkA),被授權(quán)監(jiān)管部門或共享企業(yè)密鑰對(duì)(skB,pkB)。
sk←REuclid Math TwoZApp,pk=gsk(5)
b)代理密鑰生成:(rk,pubX)←ReKeyGen(R,skA,pkB)。
獲取隨機(jī)數(shù)R,從p階循環(huán)群Euclid Math TwoZApp上選取一個(gè)隨機(jī)數(shù)xA,通過生成元g計(jì)算XA=gxA得到XA,將其作為pubX返回。計(jì)算d=H3(XA‖pkB‖pkxAB),將XA、pkB和pkxAB連接散列并映射到橢圓曲線有限字段中的大整數(shù)d,最后使用私鑰skA乘以整數(shù)d在橢圓曲線下的乘法逆元得到代理密鑰rk,即rk=skA×d-1。
c)加密算法:(cipher,capsule)←Encrypt(RE,RV,m,skSA)。
加密算法分為明文加密和消息認(rèn)證碼兩部分。明文消息經(jīng)SHA-256算法哈希摘要后使用私鑰skA經(jīng)橢圓曲線簽名算法簽名得到(rs,ss),該方式使得多次數(shù)據(jù)分享只需一次簽名即可。通過合約外部生成的隨機(jī)數(shù)Re和Rv從整數(shù)環(huán)Euclid Math TwoZApp上選擇兩個(gè)元素e和v,并應(yīng)用到生成元g上分別得到E和V,計(jì)算s=v+e·H2(E‖V)得到中間值s,計(jì)算(pkA)e+v結(jié)果使用SHA-3哈希算法用于生成中間密鑰K,將K的前12 Byte作為初始化向量,經(jīng)AES-GCM算法加密明文消息,最后定義加密容器為capsule=(E,V,s),其中V為驗(yàn)證因子。
d)代理重加密:newCapsule←ReEncrypt(rk,capsule)。
計(jì)算gs和V×EH2(E‖V)驗(yàn)證加密容器的完整性,驗(yàn)證通過后,則通過代理密鑰rk對(duì)加密容器中的E和V進(jìn)一步操作E′=Erk,V′=Vrk得到新的加密容器(E′,V′,s)。
e)解密:m←Decrypt(skB,newCapsule,pubX,cipher)。
解密算法包含密文解密和消息認(rèn)證兩部分。同原始密文加密類似,計(jì)算d=H3(XA‖pkB‖SskB)得到d,結(jié)合重加密所得到的加密容器計(jì)算(E′×V′)d并散列,生成解密密鑰K,通過密鑰K和AES-GCM解密算法解密密文得到明文m。消息認(rèn)證:通過授權(quán)者公鑰驗(yàn)證分解明文得到消息認(rèn)證碼(rs,ss),即可驗(yàn)證消息的真實(shí)性。
2.4 預(yù)上鏈方案
在蜂蜜產(chǎn)品實(shí)際生產(chǎn)過程中,可能出現(xiàn)峰值負(fù)載的情況。受限于聯(lián)盟鏈網(wǎng)絡(luò)的交易速度限制,當(dāng)面臨大量上鏈請(qǐng)求時(shí),短期內(nèi)過多的交易數(shù)量會(huì)導(dǎo)致區(qū)塊鏈網(wǎng)絡(luò)阻塞[20],致使數(shù)據(jù)無法上鏈,破壞了數(shù)據(jù)的一致性。為應(yīng)對(duì)上述情況,本文提出預(yù)上鏈機(jī)制,即在上鏈請(qǐng)求高峰期,數(shù)據(jù)批量打包預(yù)先上鏈,待流量低峰期時(shí),利用網(wǎng)絡(luò)空閑,拆分?jǐn)?shù)據(jù)包后逐一補(bǔ)充上鏈。
當(dāng)數(shù)據(jù)上鏈請(qǐng)求RPS大于閾值ω時(shí),打包數(shù)據(jù)B=[D1,D2,…,Dp],其中Di表示一條商品基本數(shù)據(jù),P表示數(shù)據(jù)打包的粒度,每次打包以P條基本數(shù)據(jù)為單位批量打包。將打包后的完整數(shù)據(jù)上傳至IPFS網(wǎng)絡(luò)中,保證數(shù)據(jù)的完整性,同時(shí)序列化數(shù)據(jù)包并取其哈希值,將哈希值同CID均存儲(chǔ)至預(yù)鏈(prechain)中,從而實(shí)現(xiàn)數(shù)據(jù)打包預(yù)先上鏈。由于該階段內(nèi)數(shù)據(jù)項(xiàng)采用分層存儲(chǔ)策略,所以需要對(duì)數(shù)據(jù)分級(jí)預(yù)先上鏈。靜態(tài)數(shù)據(jù)和半靜態(tài)數(shù)據(jù)優(yōu)先直接上鏈,而動(dòng)態(tài)數(shù)據(jù)則選擇性打包上鏈,這是因?yàn)樵诜謱哟鎯?chǔ)方案之中,底層數(shù)據(jù)需要向前遞歸引用上一層的數(shù)據(jù),所以下層數(shù)據(jù)對(duì)于上層數(shù)據(jù)具有依賴性,只有保證上層數(shù)據(jù)穩(wěn)定,方能保證下層數(shù)據(jù)可靠。當(dāng)上鏈請(qǐng)求低于閾值ω′并趨于穩(wěn)定之后,由智能合約事件自動(dòng)觸發(fā)低流量補(bǔ)充上鏈機(jī)制,依據(jù)賬本中所存儲(chǔ)的CID獲取IPFS網(wǎng)絡(luò)中的數(shù)據(jù)包,驗(yàn)證數(shù)據(jù)包哈希值并解析,最后逐一補(bǔ)充上鏈,從而保證整個(gè)溯源網(wǎng)絡(luò)中數(shù)據(jù)的完整性。
2.5 信息驗(yàn)證
溯源信息驗(yàn)證流程如圖4所示。溯源請(qǐng)求方通過唯一溯源碼獲取商品基本信息,智能合約依據(jù)該溯源碼獲取賬本中相關(guān)數(shù)據(jù)hash值及所依賴上層信息的CID,在可信SQL數(shù)據(jù)庫(kù)中獲取原始明文數(shù)據(jù),同前面所得hash值哈希錨定,驗(yàn)證數(shù)據(jù)真實(shí)性。對(duì)于上層數(shù)據(jù)而言,IPFS是基于文件內(nèi)容的hash,不同文件對(duì)應(yīng)的hash值不相同[21],只需確保所關(guān)聯(lián)的上層數(shù)據(jù)CID真實(shí)存在即可,無須多重驗(yàn)證。最后將所引用的上層數(shù)據(jù)同當(dāng)前層數(shù)據(jù)拼接返回給消費(fèi)者。隱私數(shù)據(jù)需要同時(shí)驗(yàn)證信息正確性及所有者。首先通過密文哈希值驗(yàn)證密文未被竄改,之后由企業(yè)或者監(jiān)管部門私鑰解密,獲取明文數(shù)據(jù);解密明文數(shù)據(jù)并用所有者公鑰驗(yàn)證消息認(rèn)證碼,確保數(shù)據(jù)所有者歸屬正確。
3 實(shí)驗(yàn)結(jié)果
3.1 測(cè)試環(huán)境
蜂蜜溯源涉及多環(huán)節(jié)多主體,數(shù)據(jù)量龐大且樣式復(fù)雜多樣,本文在此背景下構(gòu)建蜂蜜溯源模型。系統(tǒng)部署在Ubuntu-Server 22.04上,以Hyperledger Fabric v2.4.9聯(lián)盟鏈框架和gin框架為主體搭建,將CouchDB作為區(qū)塊鏈賬本數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)哈希值,星際文件系統(tǒng)IPFS和MySQL作為鏈下數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)原文。硬件方面,為虛擬機(jī)分配1個(gè)處理器,每個(gè)處理器分配8個(gè)內(nèi)核,內(nèi)存8 GB,具體網(wǎng)絡(luò)架構(gòu)環(huán)境如表2所示。以下性能測(cè)試均使用Apache Bench工具進(jìn)行多線程測(cè)試。
本實(shí)驗(yàn)將本文方案同如下兩個(gè)方案進(jìn)行對(duì)比:方案1為將溯源信息項(xiàng)直接存儲(chǔ)至區(qū)塊鏈賬本之中;方案2為文獻(xiàn)[3]方案,即“on-chain+off-chain”。
3.2 信息上鏈
整個(gè)溯源流程所包含的信息可分為面向溯源需求方的公開明文數(shù)據(jù),以及供監(jiān)管部門和共享企業(yè)查看的隱私數(shù)據(jù)兩類。分層存儲(chǔ)策略將溯源明文數(shù)據(jù)劃分為靜態(tài)數(shù)據(jù)、半靜態(tài)數(shù)據(jù)及動(dòng)態(tài)數(shù)據(jù),其中靜態(tài)數(shù)據(jù)較為特殊,因?yàn)槠湫枰蚯八饕唇訑?shù)據(jù),同時(shí)向后被引用,而靜態(tài)數(shù)據(jù)和動(dòng)態(tài)數(shù)據(jù)都只有單次哈希上鏈,所以性能相似。雖然各環(huán)節(jié)記錄的產(chǎn)品信息項(xiàng)不同,但是都采取了相同的信息上鏈策略,且以生產(chǎn)環(huán)節(jié)信息最為復(fù)雜,所以下面以生產(chǎn)環(huán)節(jié)為例,測(cè)試系統(tǒng)信息上鏈性能,分別測(cè)試靜態(tài)明文數(shù)據(jù)、半靜態(tài)明文數(shù)據(jù)、動(dòng)態(tài)明文數(shù)據(jù)及隱私數(shù)據(jù)加/解密的TPS,每組測(cè)試數(shù)據(jù)量為3 000條,測(cè)試20組共6萬條數(shù)據(jù),3類公開明文數(shù)據(jù)測(cè)試結(jié)果如圖5所示??梢园l(fā)現(xiàn),半靜態(tài)數(shù)據(jù)上鏈效率低于動(dòng)態(tài)數(shù)據(jù),但是半靜態(tài)數(shù)據(jù)的實(shí)際上鏈和變動(dòng)需求少于動(dòng)態(tài)數(shù)據(jù),因此仍能滿足實(shí)際生產(chǎn)記錄需求。隱私數(shù)據(jù)加/解密性能如圖6所示,依托于智能合約完成原始密文的重加密,防止了原始密文被竄改。其平均TPS為106.8 TPS,能夠滿足隱私數(shù)據(jù)加密需求。
此外,本文還提出了預(yù)上鏈機(jī)制,批量打包數(shù)據(jù)記錄,預(yù)先上鏈。測(cè)試中分別對(duì)粒度為2~10的上鏈速度及補(bǔ)充上鏈速度進(jìn)行測(cè)試,結(jié)果如圖7所示。隨著預(yù)上鏈粒度的增大,整體數(shù)據(jù)預(yù)上鏈性能也隨之提升,但是相對(duì)應(yīng)的補(bǔ)充上鏈效率卻處于較大波動(dòng)狀態(tài),當(dāng)粒度為5時(shí),補(bǔ)充上鏈TPS只有67.3 TPS,而當(dāng)打包粒度為10時(shí),其補(bǔ)充上鏈速度為98 TPS,兩者相差30.7 TPS。所以上鏈粒度需要依據(jù)實(shí)際需求,選擇合適的粒度值。
3.3 信息溯源
方案1將溯源信息全部存儲(chǔ)至區(qū)塊鏈賬本之中,導(dǎo)致鏈上數(shù)據(jù)極速膨脹,給區(qū)塊鏈網(wǎng)絡(luò)的存儲(chǔ)帶來了巨大負(fù)擔(dān);方案2鏈上存儲(chǔ)數(shù)據(jù)哈希,鏈下存儲(chǔ)數(shù)據(jù)原文,減輕了區(qū)塊鏈賬本的存儲(chǔ)壓力,但是溯源時(shí),對(duì)于每一數(shù)據(jù)項(xiàng)需要逐一查詢并驗(yàn)證,增加了溯源耗時(shí)。本文在存儲(chǔ)上構(gòu)建分層存儲(chǔ)策略,依此減輕了區(qū)塊鏈賬本上溯源信息的存儲(chǔ)壓力,依賴分層存儲(chǔ)策略的設(shè)計(jì)以及IFPS網(wǎng)絡(luò)CID生成的特性,本文完整信息溯源的哈希錨定次數(shù)遠(yuǎn)遠(yuǎn)少于傳統(tǒng)方案。
方案1耗時(shí):
T1=q×n×tb(6)
方案2溯源耗時(shí):
T1=q×n(tb+tv)(7)
本文方案溯源耗時(shí):
T′=q×(tb+tv+tI)(8)
其中:tb為區(qū)塊鏈賬本查詢數(shù)據(jù)耗時(shí);tI為依據(jù)CID在IFPS網(wǎng)絡(luò)上讀取數(shù)據(jù)耗時(shí);tv為查詢MySQL數(shù)據(jù)庫(kù)并哈希驗(yàn)證耗時(shí)。
使用AB工具分別測(cè)試三個(gè)方案整體信息的QPS,測(cè)試效率如圖8所示,其平均吞吐量可以達(dá)到536.66 TPS。通過前面對(duì)信息上鏈和信息溯源的測(cè)試,發(fā)現(xiàn)整體性能可以滿足實(shí)際需求,并且能夠通過升級(jí)網(wǎng)絡(luò)環(huán)境的物理配置來進(jìn)一步提升性能,從而滿足更加復(fù)雜的市場(chǎng)需求。
4 結(jié)束語(yǔ)
在2022年發(fā)生的影響力較大的十起食品安全事件中,保健蜂蜜成為了公眾所關(guān)心的食品安全輿論熱點(diǎn)之一。蜂蜜食品安全問題日益凸顯。為此,本文將區(qū)塊鏈技術(shù)應(yīng)用到蜂蜜產(chǎn)品溯源,用于解決溯源效率及可信度較低的問題。依據(jù)蜂蜜溯源標(biāo)準(zhǔn)文件分析了各基本數(shù)據(jù)項(xiàng)特征,分別設(shè)計(jì)了生產(chǎn)鏈、加工鏈、運(yùn)輸鏈和銷售鏈四條獨(dú)立企業(yè)鏈,以及分層存儲(chǔ)策略,將數(shù)據(jù)存儲(chǔ)至可信SQL數(shù)據(jù)庫(kù)和IPFS網(wǎng)絡(luò)。一方面通過并行操作提升整體網(wǎng)絡(luò)運(yùn)行效率,以通道隔離各階段數(shù)據(jù),進(jìn)一步保護(hù)了數(shù)據(jù)安全;另一方面,達(dá)到了產(chǎn)品信息的持久化存儲(chǔ)和溯源備份要求。代理重加密方案的設(shè)計(jì)中以聯(lián)盟鏈為信任依托,同時(shí)結(jié)合消息認(rèn)證碼,實(shí)現(xiàn)了用戶單次私鑰加密簽名,智能合約單向代理重加密,多用戶消息認(rèn)證,為企業(yè)隱私數(shù)據(jù)的共享和監(jiān)管提供了更為安全的保障。最后建立預(yù)鏈用于防止實(shí)際生產(chǎn)過程中的突發(fā)性負(fù)載問題。本文針對(duì)以上各個(gè)設(shè)計(jì)方案分別進(jìn)行了壓力測(cè)試,結(jié)果反饋出本文方案在一定程度上足以滿足實(shí)際各階段蜂蜜食品加工生產(chǎn)的日常需求,能夠?qū)崿F(xiàn)蜂蜜產(chǎn)品信息的有效上鏈、可控監(jiān)管、可信溯源,為蜂蜜產(chǎn)業(yè)鏈的健康可持續(xù)發(fā)展提供一定的保障。
參考文獻(xiàn):
[1]Duan Jiang,Zhang Chen,Gong Yu,et al.A content-analysis based li-terature review in blockchain adoption within food supply chain[J].International Journal of Environmental Research and Public Health,2020,17(5):1784.
[2]何云華,劉昭陽(yáng),胡堰,等.基于區(qū)塊鏈的分布式激勵(lì)機(jī)制研究[J].計(jì)算機(jī)應(yīng)用研究,2021,38(3):664-670.(He Yunhua,Liu Zhaoyang,Hu Yan,et al.Research on distributed incentive mechanism based on blockchain[J].Application Research of Computers,2021,38(3):664-670.)
[3]劉雙印,雷墨鹥兮,徐龍琴,等.基于區(qū)塊鏈的農(nóng)產(chǎn)品質(zhì)量安全可信溯源系統(tǒng)研究[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2022,53(6):327-337.(Liu Shuangyin,Lei Moyixi,Xu Longqin,et al.Development of reliable traceability system for agricultural products quality and safety based on blockchain[J].Transactions of the Chinese Society for Agricultural Machinery,2022,53(6):327-337.)
[4]孫傳恒,于華竟,徐大明,等.農(nóng)產(chǎn)品供應(yīng)鏈區(qū)塊鏈追溯技術(shù)研究進(jìn)展與展望[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2021,52(1):1-13.(Sun Chuanheng,Yu Huajing,Xu Daming,et al.Review and prospect of agri-products supply chain traceability based on blockchain technology[J].Transactions of the Chinese Society for Agricultural Machinery,2021,52(1):1-13.)
[5]景旭,蔣炎.集群式農(nóng)產(chǎn)品供應(yīng)鏈區(qū)塊鏈密文策略可驗(yàn)多部門監(jiān)管方案[J].農(nóng)業(yè)工程學(xué)報(bào),2023,39(3):227-236.(Jing Xu,Jiang Yan.Multi-department supervision scheme of the verifiable blockchain ciphertext policy for cluster agricultural supply chain[J].Transactions of the Chinese Society of Agricultural Enginee-ring,2023,39(3):227-236.)
[6]Wang Jian,Zhang Xin,Xu Jiping,et al.Blockchain-based information supervision model for rice supply chains[J].Computational Intelligence and Neuroscience,2022,2022:article ID 2914571.
[7]孫傳恒,萬宇平,羅娜,等.面向追溯主體的果蔬全供應(yīng)鏈區(qū)塊鏈多鏈模型研究[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2023,54(4):416-427.(Sun Chuanheng,Wan Yuping,Luo Na,et al.Blockchain multi-chain model of fruit and vegetable supply chain for traceability subjects[J].Transactions of the Chinese Society for Agricultural Machinery,2023,54(4):416-427.)
[8]Li Yue,Zhang Xin,Zhao Zhiyao,et al.Research on grain food blockchain traceability information management model based on master-slave multichain[J].Computational Intelligence and Neuroscience,2022,2022:article ID 7498025.
[9]伍德倫,饒?jiān)?基于身份驗(yàn)證的果蔬區(qū)塊鏈信息存儲(chǔ)溯源模型設(shè)計(jì)[J].江蘇農(nóng)業(yè)學(xué)報(bào),2023,39(2):434-443.(Wu Delun,Rao Yuan.Design of storage and traceability model of fruits and vegetables blockchain information based on authentication[J].Jiangsu Journal of Agricultural Sciences,2023,39(2):434-443.)
[10]Lu Yi,Li Peng,Xu He.A Food anti-counterfeiting traceability system based on blockchain and Internet of Things-ScienceDirect[J].Procedia Computer Science,2022,199:629-636.
[11]中華全國(guó)供銷合作總社.GB/Z 40948—2021,農(nóng)產(chǎn)品追溯要求 蜂蜜[S].北京:中國(guó)標(biāo)準(zhǔn)出版社,2021.(All China Federation of Supply and Marketing Cooperatives.GB/Z 40948—2021,Traceability requirements for agricultural products—Honey.Beijing:Standards Press of China,2021.)
[12]Nakamoto S.Bitcoin:a peer-to-peer electronic cash system[EB/OL].https://botcoin.org/bitcoin.pdf.
[13]劉揚(yáng),胡學(xué)先,周剛,等.基于多層次區(qū)塊鏈的醫(yī)療數(shù)據(jù)共享模型[J].計(jì)算機(jī)應(yīng)用研究,2022,39(5):1307-1312,1318.(Liu Yang,Hu Xuexian,Zhou Gang,et al.Multi-level blockchain-based model for medical data sharing[J].Application Research of Computers,2022,39(5):1307-1312,1318.)
[14]KeresztesR,Kovács I,Horváth A,et al.Exploratory analysis of blockchain platforms in supply chain management[J].Economies,2022,10(9):206.
[15]Blaze M,Bleumer G,Strauss M.Divertible protocols and atomic proxy cryptography[C]//Proc of International Conference on the Theory and Applications of Cryptographic Techniques.Berlin:Springer,1998:127-144.
[16]Tarun K A,Kumar V,Pal R,et al.Blockchain-based framework for supply chain traceability:a case example of textile and clothing industry[J].Computers & Industrial Engineering,2021,154:article ID 107130.
[17]張燕麗,李波.基于主從聯(lián)盟鏈結(jié)構(gòu)的農(nóng)產(chǎn)品供應(yīng)鏈追溯系統(tǒng)方案設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用研究,2022,39(6):1638-1644.(Zhang Yanli,Li Bo.Agricultural product supply chain traceability system design based on master-slave alliance chain structure[J].Application Research of Computers,2022,39(6):1638-1644.)
[18]Lei Moyixi,Xu Longqin,Liu Tonglai,et al.Integration of privacy protection and blockchain-based food safety traceability:potential and challenges[J].Foods,2022,11(15):2262.
[19]唐飛,陳云龍,馮卓.基于區(qū)塊鏈和代理重加密的電子處方共享方案[J].計(jì)算機(jī)科學(xué),2021,48(S1):498-503.(Tang Fei,Chen Yunlong,F(xiàn)eng Zhuo.Electronic prescription sharing scheme based on blockchain and proxy re-encryption[J].Computer Science,2021,48(S1):498-503.)
[20]李芳,李卓然,趙赫.區(qū)塊鏈跨鏈技術(shù)進(jìn)展研究[J].軟件學(xué)報(bào),2019,30(6):1649-1660.(Li Fang,Li Zhuoran,Zhao He.Research on the progress in cross-chain technology of blockchains[J].Journal of Software,2019,30(6):1649-1660.)
[21]李尤慧子,俞海濤,殷昱煜,等.基于超級(jí)賬本的集群聯(lián)邦優(yōu)化模型[J].計(jì)算機(jī)工程,2023,49(1):22-30.(Li Youhuizi,Yu Haitao,Yin Yuyu,et al.Cluster federated optimization model based on hyperledger fabric[J].Computer Engineering,2023,49(1):22-30.)