亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于記錄查詢布隆過濾器的區(qū)塊鏈溯源方案

        2023-10-26 05:37:20王金洋陽祥貴
        關(guān)鍵詞:產(chǎn)品

        唐 飛,王金洋,陽祥貴,甘 寧

        (1.重慶郵電大學(xué) 網(wǎng)絡(luò)空間安全與信息法學(xué)院,重慶 400065;2.江西昌河航空工業(yè)有限公司 工程技術(shù)部,江西 景德鎮(zhèn) 333002)

        0 引 言

        假冒和盜版產(chǎn)品數(shù)量在全球范圍內(nèi)呈指數(shù)級增長,引發(fā)的假冒和盜版產(chǎn)品交易問題是各企業(yè)在創(chuàng)新驅(qū)動的全球經(jīng)濟(jì)中面臨的主要挑戰(zhàn)之一。2019年,經(jīng)濟(jì)合作與發(fā)展組織和歐盟知識產(chǎn)權(quán)局發(fā)布的分析研究[1]稱,假冒和盜版產(chǎn)品的國際貿(mào)易額從2007年的2 500億美元增加到2013年的4 610億美元,約占世界進(jìn)口額的2.5%。歐盟進(jìn)口假冒和盜版產(chǎn)品近1 160億美元,約占?xì)W盟進(jìn)口額的5%。根據(jù)2016年公布的統(tǒng)計數(shù)據(jù),假冒和盜版產(chǎn)品的交易量已高達(dá)5 090億美元,占世界貿(mào)易的3.3%,占非歐盟國家進(jìn)口額的6.8%。文獻(xiàn)[2]顯示,市場和無數(shù)品牌產(chǎn)品公司對假冒產(chǎn)品的關(guān)注度越來越大。據(jù)文獻(xiàn)[3]所述,假冒產(chǎn)品的貿(mào)易活動在全球化經(jīng)濟(jì)中不斷蔓延,不僅侵犯了企業(yè)的商標(biāo)和版權(quán),而且對企業(yè)的銷售和利潤產(chǎn)生負(fù)面影響,還對經(jīng)濟(jì)和安全造成更廣泛的不利影響。

        為了應(yīng)對假冒產(chǎn)品日益猖獗的問題,人們需要可信、可追溯且低成本的產(chǎn)品防偽解決方案。傳統(tǒng)中心化的防偽溯源方案存在內(nèi)外部風(fēng)險。內(nèi)部風(fēng)險指的是中心化存儲導(dǎo)致的內(nèi)部人員對溯源數(shù)據(jù)可進(jìn)行任意篡改刪除,溯源數(shù)據(jù)的可信度無法保證;外部風(fēng)險指的是防偽碼可能被濫用。文獻(xiàn)[4]使用偽造成本高的RFID芯片技術(shù)作為防偽協(xié)議的認(rèn)證方式;文獻(xiàn)[5]使用衍生于RFID的NFC技術(shù),支持手機(jī)掃描,具有更廣泛的應(yīng)用性。這些技術(shù)的防偽成本都遠(yuǎn)遠(yuǎn)高于條形碼,并且防偽標(biāo)識同樣存在被盜用的風(fēng)險,因此使用這些技術(shù)并不能解決假冒產(chǎn)品猖獗的問題。企業(yè)和消費者都迫切期盼公信力高、防篡改、成本低的防偽解決方案。

        區(qū)塊鏈采用分布式存儲方式,可以防止數(shù)據(jù)被惡意篡改。文獻(xiàn)[6]使用區(qū)塊鏈對供應(yīng)鏈全流程數(shù)據(jù)進(jìn)行存證,但這樣的存儲方式會導(dǎo)致數(shù)據(jù)冗余。星際文件系統(tǒng)(interplanetary file system,IPFS)最初由Benet[7]設(shè)計,它是一種基于內(nèi)容可尋址的對等超媒體分發(fā)協(xié)議。文獻(xiàn)[8]引入了微交易的概念,在區(qū)塊鏈共識階段減少了節(jié)點之間的通信開銷。布隆過濾器常用于過濾非法請求來提高系統(tǒng)效率,文獻(xiàn)[9]在基于有向無環(huán)圖的區(qū)塊鏈系統(tǒng)中使用布隆過濾器查詢地址的唯一性,節(jié)省訪問時間。但這些方案仍存在以下缺陷:1)若防偽碼泄露或者可復(fù)制,防偽系統(tǒng)認(rèn)證可信度將大打折扣;2)在區(qū)塊鏈節(jié)點數(shù)量眾多的時候,區(qū)塊鏈共識效率低下、通信量大、通信時間長、未使用高效的共識算法;3)IPFS與區(qū)塊鏈結(jié)合不夠緊密,沒有利用好數(shù)據(jù)IPFS地址也是數(shù)據(jù)哈希值這一性質(zhì)。

        本文結(jié)合IPFS提出的基于記錄查詢布隆過濾器的區(qū)塊鏈防偽溯源方案,安全高效且具有良好的可擴(kuò)展性,立足于消除消費者對市場的信任危機(jī),建立良好的市場信任體系,具有實際應(yīng)用價值。

        1 預(yù)備知識

        1.1 區(qū)塊鏈

        區(qū)塊鏈?zhǔn)前磿r間戳將數(shù)據(jù)鏈接而成的特定數(shù)據(jù)結(jié)構(gòu),以密碼學(xué)保證其不可篡改、不可偽造、去中心化、去信任、匿名性、透明化的性質(zhì)。區(qū)塊鏈的結(jié)構(gòu)如圖1所示,其起源于文獻(xiàn)[10]提出的比特幣電子貨幣系統(tǒng)。

        圖1 區(qū)塊鏈結(jié)構(gòu)Fig.1 Blockchain structure

        區(qū)塊鏈由單個區(qū)塊擴(kuò)展,記錄了完整交易歷史。區(qū)塊由區(qū)塊頭和區(qū)塊體構(gòu)成,其中區(qū)塊頭存儲了前一個區(qū)塊的哈希值,因此區(qū)塊數(shù)據(jù)的更改會導(dǎo)致相應(yīng)的哈希值的改變,與區(qū)塊鏈中存儲的歷史哈希值就會產(chǎn)生矛盾,這個結(jié)構(gòu)保證了區(qū)塊的不可篡改性;區(qū)塊體中存儲了一段時間內(nèi)產(chǎn)生的所有交易,這些交易構(gòu)成一個Merkle Tree。Merkle Tree的樹根值Merkle Root也被保存到區(qū)塊頭中,保證了該區(qū)塊中所有交易都是不可篡改的;此外,區(qū)塊頭還存有創(chuàng)建區(qū)塊的時間戳Timestamp。文獻(xiàn)[11]提到區(qū)塊鏈技術(shù)具有防篡改、不可抵賴、分布式一致等特性,特別是它的P2P網(wǎng)絡(luò)去中心化性質(zhì),得到了工業(yè)界和學(xué)術(shù)界的廣泛關(guān)注;文獻(xiàn)[12]利用區(qū)塊鏈結(jié)合環(huán)簽密構(gòu)建了電子證據(jù)加密方案;文獻(xiàn)[13]使用區(qū)塊鏈技術(shù)保證醫(yī)療資源互聯(lián)互通。區(qū)塊鏈在防偽領(lǐng)域的應(yīng)用中有著天然的優(yōu)勢。

        區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點通過協(xié)商一致機(jī)制確保交易的有效性和區(qū)塊本身的有效性。這種協(xié)商的過程被稱為共識算法,它是大多數(shù)(或在某些情況下全部)網(wǎng)絡(luò)驗證者就賬本狀態(tài)達(dá)成一致意見的過程,是一組規(guī)則和過程,允許在多個參與節(jié)點之間維護(hù)區(qū)塊鏈數(shù)據(jù)。文獻(xiàn)[14]構(gòu)造了基于有向無環(huán)圖的區(qū)塊鏈共識算法,節(jié)省了系統(tǒng)的資源。分布式系統(tǒng)不依賴于中心化服務(wù)器,即使特定節(jié)點發(fā)生故障,區(qū)塊鏈網(wǎng)絡(luò)依舊可以運行。

        1.2 IPFS

        IPFS基于文件內(nèi)容進(jìn)行存儲和查詢文件,利用網(wǎng)絡(luò)中的閑置存儲資源,建立起一個分布式數(shù)據(jù)存儲系統(tǒng),將數(shù)據(jù)分片存儲到不同的網(wǎng)絡(luò)位置,提供快速檢索與共享數(shù)據(jù)的功能,具有防宕機(jī)的性質(zhì)。IPFS利用文件的哈希值作為存儲地址,這個特性與區(qū)塊鏈存儲文件哈希值防篡改的特性天然契合,因此用IPFS存儲文件、用區(qū)塊鏈存儲文件哈希的組合已被廣泛接受。

        向IPFS上傳大于256 KB的文件時,IPFS會自動將文件進(jìn)行分片處理,每個分片大小為256 K,并將這些分片存儲到網(wǎng)絡(luò)的不同節(jié)點上。對于每個分片,都會生成唯一的哈希值。此后,IPFS將所有分片的哈希值串聯(lián)起來,并計算得到該文件的哈希值。

        為了表示文件的哈希,IPFS使用了多哈希格式和Base58編碼。存儲地址ACID表示為

        ACID=Base58(FCode‖Hlength‖Hv)

        (1)

        (1)式中:多哈希由3部分組成,Hash算法編碼FCode、Hash值的長度Hlength、Hash值Hv。

        多哈希以固定字節(jié)開頭,指定使用的哈希算法。IPFS使用SHA-256哈希函數(shù),哈希值長度為32個字節(jié)。加上哈希值后,字符串過長,因此,使用Base58編碼技術(shù)壓縮字符串長度,方便存儲傳播。

        1.3 布隆過濾器及其變種

        布隆過濾器(bloom filter,BF)由文獻(xiàn)[15]在1970年提出。它可以提供成員性證明,具有查詢效率高且內(nèi)存占用小的優(yōu)點,本文改進(jìn)了布隆過濾器使其具有記憶功能,并將改進(jìn)后的布隆過濾器用于過濾非法查詢請求以節(jié)省服務(wù)器資源。

        布隆過濾器由m比特的位數(shù)組S={x0x1…xm-1}以及k個相互獨立的哈希函數(shù){H0H1…Hk-1}構(gòu)成,初始布隆過濾器的位數(shù)組中存儲的數(shù)值均為0。插入元素ci時,首先,將元素ci輸入k個不同的哈希函數(shù)中進(jìn)行計算得到k個哈希值;然后,對哈希值做模運算;最后,將模運算的結(jié)果作為位數(shù)組中的下標(biāo),將k個對應(yīng)的下標(biāo)的值設(shè)置為1。

        判斷集合S中是否存在元素x,需要將x通過k個哈希函數(shù)計算后,檢查對應(yīng)的k個位置,若k個位置中存在0,則元素x一定不在集合S中;反之,x在集合S中。當(dāng)x?S被判定為x∈S時,認(rèn)為布隆過濾器發(fā)生了誤判。插入n個元素時,誤判率fp表示為

        (2)

        (2)式中:n為插入元素個數(shù),k為哈希函數(shù)個數(shù),m為布隆過濾器長度,fp為布隆過濾器誤判率。

        計數(shù)布隆過濾器[16](counting bloom filter,CBF)是一種在BF的基礎(chǔ)上進(jìn)行改進(jìn)的數(shù)據(jù)結(jié)構(gòu),它將BF中的每一位擴(kuò)展成一個計數(shù)器,插入元素時,如果哈希函數(shù)映射到同一位置,將對應(yīng)位置計數(shù)器的值加1;刪除元素時,將對應(yīng)位置計數(shù)器的值減1。

        光譜布隆過濾器[17](spectral bloom filters,SBF)對CBF進(jìn)行進(jìn)一步改造。CBF的設(shè)計初衷也不在于能實現(xiàn)計數(shù)功能,而是可以實現(xiàn)元素的刪除。對于CBF而言,由于每個下標(biāo)對應(yīng)的值不一致,但每一個計數(shù)器的存儲位數(shù)一致,因此,若要使用CBF來進(jìn)行記錄插入次數(shù),則要以最大插入次數(shù)來設(shè)置計數(shù)器的大小,這樣會造成內(nèi)存的浪費。SBF使用偏移數(shù)組來記錄不同長度的計數(shù)器在內(nèi)存中存儲的內(nèi)存起始地址,實現(xiàn)了計數(shù)器位數(shù)的動態(tài)調(diào)整。

        2 基于區(qū)塊鏈的產(chǎn)品防偽溯源方案

        2.1 系統(tǒng)模型

        本方案采用聯(lián)盟鏈和IPFS結(jié)合的方式構(gòu)造方案。聯(lián)盟鏈中各節(jié)點部署智能合約并共同參與維護(hù)區(qū)塊鏈賬本,為消費者提供查詢服務(wù)并且保障商家發(fā)送數(shù)據(jù)的真實性。IPFS通過計算上傳數(shù)據(jù)哈希值得到溯源數(shù)據(jù)地址,可以高效地將數(shù)據(jù)哈希值上鏈,并將溯源數(shù)據(jù)上傳到IPFS中。防偽溯源系統(tǒng)結(jié)構(gòu)如圖2所示。

        圖2 防偽溯源系統(tǒng)結(jié)構(gòu)Fig.2 Structure diagram of anti-counterfeiting traceability system

        本方案主體由產(chǎn)生產(chǎn)品溯源數(shù)據(jù)的生產(chǎn)商、經(jīng)銷商、物流商、監(jiān)管部門4個節(jié)點以及消費者構(gòu)成。生產(chǎn)商負(fù)責(zé)產(chǎn)品的生產(chǎn)以及產(chǎn)品防偽碼的生成,記錄和上傳產(chǎn)品的生產(chǎn)溯源數(shù)據(jù)到IPFS中,并將生產(chǎn)溯源數(shù)據(jù)在IPFS中的存儲地址發(fā)起共識上鏈;經(jīng)銷商對產(chǎn)品的出入庫狀態(tài)信息進(jìn)行記錄和上鏈;物流商對產(chǎn)品的物流以及出入庫信息進(jìn)行記錄和上鏈;監(jiān)管部門參與區(qū)塊鏈的共識過程,保證上鏈數(shù)據(jù)的真實性和不可篡改性;消費者通過防偽標(biāo)識查詢產(chǎn)品溯源數(shù)據(jù)。

        方案的符號以及參數(shù)定義如表1所示。

        表1 系統(tǒng)主要符號和參數(shù)Tab.1 Main symbols and parameters of the system

        本方案由以下3個階段構(gòu)造完成。

        1)系統(tǒng)初始化。各方建立區(qū)塊鏈網(wǎng)絡(luò),部署鏈碼。

        2)溯源數(shù)據(jù)存儲及上鏈。供應(yīng)鏈節(jié)點將產(chǎn)生數(shù)據(jù)上傳至IPFS,并將數(shù)據(jù)在IPFS中的存儲地址經(jīng)過共識過程后完成上鏈。

        3)防偽查詢階段。消費者登錄防偽查詢平臺后,通過掃描產(chǎn)品的條形碼進(jìn)行防偽溯源查詢,生產(chǎn)商節(jié)點調(diào)用布隆過濾器算法,過濾無效的AUID,然后調(diào)用智能合約,以條形碼中存儲的AUID為索引找到溯源數(shù)據(jù)的ACID集合,然后將ACID集合發(fā)送給消費者,消費者利用ACID下載溯源數(shù)據(jù)即可完成查詢。

        2.2 系統(tǒng)初始化

        1)網(wǎng)絡(luò)初始化。生產(chǎn)商、經(jīng)銷商、物流商、監(jiān)管部門組建一個區(qū)塊鏈網(wǎng)絡(luò)。

        2)鏈碼部署。方案設(shè)計了一個溯源數(shù)據(jù)查詢合約為消費者提供產(chǎn)品的防偽溯源服務(wù),返回給消費者該產(chǎn)品的防偽查詢結(jié)果以及產(chǎn)品的溯源數(shù)據(jù)。消費者掃描二維碼后得到AUID并發(fā)送給服務(wù)器進(jìn)行查詢。服務(wù)器先將AUID輸入具有記錄查詢功能的布隆過濾器進(jìn)行計算,若結(jié)果是非法AUID則返回查詢結(jié)果“Fake”;反之,調(diào)用溯源數(shù)據(jù)查詢合約查找該AUID對應(yīng)的溯源數(shù)據(jù)在IPFS中的存儲地址ACID,返回查詢結(jié)果“Real”以及ACID。

        溯源過程通過AUID作為檢索關(guān)鍵字對區(qū)塊鏈中的溯源數(shù)據(jù)進(jìn)行搜索,輸出ACID。本方案以Fabric[18]為例,在鏈碼中使用ChaincodeStubInterface接口的GetHistoryForKey方法在StateDB中對指定AUID查詢其歷史數(shù)據(jù)。返回的數(shù)據(jù)是byte數(shù)組,需要轉(zhuǎn)換為String,然后再JSON反序列化。溯源數(shù)據(jù)查詢合約設(shè)計如下所示。

        合約1溯源數(shù)據(jù)查詢

        輸入為AUID,輸出為溯源數(shù)據(jù)下載地址ACID=ACID1‖ACID2‖…‖ACIDn,具體流程如下。

        1.ACID←GetHistoryForKey(AUID)//檢索AUID得到ACID集合

        2.ACID=String(ACID)//將byte數(shù)組轉(zhuǎn)換為String

        3.ACID=Deserialize(ACID)//JSON反序列化

        4. returnACID

        2.3 溯源數(shù)據(jù)存儲及上鏈

        數(shù)據(jù)存儲及上鏈過程見圖3,共識過程使用SBFT算法[19]。

        圖3 數(shù)據(jù)存儲與上鏈Fig.3 Data storage and upchain

        首先,生產(chǎn)商為產(chǎn)品生成AUID和二維碼,并將此AUID廣播給其他節(jié)點,AUID為檢索溯源數(shù)據(jù)的索引值,以便其他節(jié)點在上傳關(guān)于此產(chǎn)品的數(shù)據(jù)時也能關(guān)聯(lián)AUID;其次,生產(chǎn)商節(jié)點將溯源數(shù)據(jù)上傳至IPFS,得到IPFS返回的ACID;最后,將上傳數(shù)據(jù)的記錄進(jìn)行SBFT共識后上鏈,后續(xù)可以通過檢索AUID得到對應(yīng)產(chǎn)品的ACID。

        交易數(shù)據(jù)生成后,數(shù)據(jù)擁有者將交易數(shù)據(jù)、驗證數(shù)據(jù)、參數(shù)等打包成交易一起發(fā)送至區(qū)塊鏈進(jìn)行廣播,所有節(jié)點接收并驗證交易,經(jīng)過SBFT共識算法驗證后將交易寫入?yún)^(qū)塊鏈網(wǎng)絡(luò)中。

        2.4 防偽溯源查詢

        消費者溯源查詢業(yè)務(wù)邏輯見圖4。

        圖4 業(yè)務(wù)邏輯Fig.4 Business logic

        產(chǎn)品防偽查詢步驟如下。

        1)消費者登錄溯源平臺,掃描產(chǎn)品二維碼讀取AUID并發(fā)送查詢請求Request。

        2)溯源平臺在收到查詢請求后,將AUID放入布隆過濾器中進(jìn)行驗證,返回驗證結(jié)果。

        3)若消費者查詢的AUID為假冒產(chǎn)品,則直接向消費者返回查詢結(jié)果。若消費者查詢結(jié)果為正品,則需要調(diào)用溯源數(shù)據(jù)查詢合約,根據(jù)產(chǎn)品AUID對溯源數(shù)據(jù)進(jìn)行檢索,找到產(chǎn)品在IPFS中的存儲地址ACID,返回查詢結(jié)果和ACID。消費者可以通過ACID自行下載溯源數(shù)據(jù),節(jié)省企業(yè)的存儲成本和管理成本。

        3 具有記錄查詢功能的布隆過濾器

        在不使用布隆過濾器并且AUID非法的情況下進(jìn)行溯源查詢,即便檢索整個區(qū)塊鏈賬本都無法找到符合要求的溯源數(shù)據(jù),將極大浪費服務(wù)器資源,故使用布隆過濾器對方案中發(fā)起的溯源查詢請求進(jìn)行過濾是必要的。

        傳統(tǒng)的布隆過濾器沒有記憶功能,對同一個元素的多次查詢無法進(jìn)行區(qū)分。例如,對存在于集合的某個成員進(jìn)行多次查詢都會顯示該成員在集合中且會返回相同的結(jié)果。在防偽溯源應(yīng)用場景下,多次查詢同一個正品防偽碼都會被判斷為正品,無法防止防偽碼被泄露而造成的防偽碼濫用問題,因此,傳統(tǒng)的布隆過濾器不適用于防偽方案。CBF和SBF可以記錄查詢次數(shù),但計數(shù)器需要占用較大內(nèi)存,尤其是某一個元素查詢次數(shù)較多時所需要消耗的存儲空間更大。而對于產(chǎn)品防偽而言,只有第一次的查詢具有可信度,當(dāng)防偽碼被泄露則可能出現(xiàn)某個元素被多次查詢的情況。因此,只需要記錄是否為首次查詢即可。

        為了讓布隆過濾器對查找過的元素有記憶功能,本文將布隆過濾器進(jìn)行改進(jìn)設(shè)計出一種具有查詢記錄功能的布隆過濾器(query-recorded bloom filter,QRBF)。本質(zhì)上是將原本的位組1位對應(yīng)一個布隆過濾器的下標(biāo)進(jìn)行更改,使得位組2位對應(yīng)QRBF的一個下標(biāo),使得QRBF的狀態(tài)值從2種變?yōu)?種。但由于實際的防偽方案中,實際的狀態(tài)值只需要“0”、“1”、“2”三種狀態(tài)。QRBF不同狀態(tài)值以及對應(yīng)的含義如表2所示。

        表2 QRBF狀態(tài)值定義Tab.2 QRBF status value definition

        3.1 初始化

        布隆過濾器一般使用Bitmap進(jìn)行底層實現(xiàn),Bitmap是一個以位為單位的數(shù)組,數(shù)組下標(biāo)對應(yīng)布隆過濾器計算出的哈希值,數(shù)組元素記錄布隆過濾器的狀態(tài)變化。

        在傳統(tǒng)的布隆過濾器實現(xiàn)中,用1位代表布隆過濾器的狀態(tài),32位的Bitmap代表一個m為32的布隆過濾器,初始狀態(tài)每一位都為0。圖5展示的是一個長度為32位的Bitmap。

        圖5 傳統(tǒng)布隆過濾器的存儲結(jié)構(gòu)Fig.5 Storage structure of traditional bloom filter

        QRBF的存儲結(jié)構(gòu)設(shè)計如圖6所示,32位的Bitmap對應(yīng)了一個m為16的QRBF。第一行為位組的底層結(jié)構(gòu),第二行為實際QRBF的底層結(jié)構(gòu)。

        圖6 QRBF的存儲結(jié)構(gòu)Fig.6 Storage structure for QRBF

        QRBF的初始化合約如下所示。

        合約2QBRF初始化

        輸入為布隆過濾器的字節(jié)長度M。輸出為初始化后的布隆過濾器Bf。

        1. ifM<=0 then

        2. return null//檢查輸入的有效性

        3.Bf=allocate(byte[·],M)//使用內(nèi)存分配函數(shù)為Bf分配內(nèi)存

        4. returnBf//返回Bf

        3.2 布隆過濾器操作

        1)插入。原始布隆過濾器更改位數(shù)組的操作只有插入元素,而QRBF中的更改位數(shù)組的操作有2個,分別是插入元素和防偽查詢。QRBF初始狀態(tài)為0,產(chǎn)品出廠時,將AUID加入到QRBF中,對應(yīng)下標(biāo)的0變?yōu)?,若為0之外的狀態(tài)則保持不變。QRBF的插入合約如下所示。

        合約3QBRF插入合約

        插入合約的輸入為AUID、Bf,輸出為插入操作后的Bf。

        1. for 0≤i≤k-1//計算k個哈希值,并找到Bf對應(yīng)位置的值

        2. ifBf[hashi(AUID)]==0 then//判斷BF中被hashi(AUID)映射的位置是否已被更改過

        3.Bf[hashi(AUID)]=1//若未被更改,將對應(yīng)的位組改為1

        4. end for

        5. returnBf

        圖7為對QRBF進(jìn)行插入的幾種情況的演示。

        圖7 QRBF插入流程Fig.7 Insertion process of QRBF

        其中元素x、y、z進(jìn)行哈希運算后映射到對應(yīng)下標(biāo)的值都為0,因此將各自位的值都改為1。w在進(jìn)行插入時,其中一位下標(biāo)值更改為1,故不再對該下標(biāo)對應(yīng)的值進(jìn)行修改。

        2)查詢。消費者進(jìn)行查詢時,將對應(yīng)下標(biāo)的1改為2,若對應(yīng)下標(biāo)都為2,則說明該AUID已被查詢過。注意,消費者查詢的AUID對應(yīng)值為0,說明此AUID為非法AUID,則返回該產(chǎn)品為假冒產(chǎn)品,不對QRBF進(jìn)行任何修改,此規(guī)則可以防止惡意者發(fā)起大量非法查詢使得QRBF失效。QRBF查詢?nèi)绾霞s4所示。

        合約4QBRF查詢合約

        輸入為產(chǎn)品AUID、Bf,輸出查詢結(jié)果。

        1. for 0≤i≤k-1//計算k個哈希值,并找到Bf對應(yīng)位置的值

        2. ifBf[hashi(AUID)]==0 then

        3. return "Fake"

        4. else ifBf[hashi(AUID)]==1 then

        5.Aflag=1//Aflag用于標(biāo)記哈希對應(yīng)的位置是否存在等于1的值

        6. else ifBf[hashi(AUID)]==2 then

        7.Acount++//Acount用于記錄等于2的值的個數(shù),若全為2,則證明該AUID已被查詢過

        8. end for

        9. ifAcount==kthen

        10. return "Have been queried"

        11. ifAflag==1 then//當(dāng)Aflag=1時,不可能存在等于0的位,因為在插入操作時已經(jīng)全部置為1;也不可能是被查詢過的,因為被查詢過的AUID的位全被置為了2;只有在所有位都為1時才會進(jìn)行變換,即非法查詢不能使得布隆過濾器的狀態(tài)產(chǎn)生變化

        12. for 0≤i≤k-1//返回查詢結(jié)果為正品前需要將這個AUID對應(yīng)位置的值改為2,以便下次查詢時能得到正確的結(jié)果

        13.Bf[hashi(AUID)]=2

        14. end for

        15. return "Real"

        16. ifAflag==0 then//說明所有位都為0,為非法AUID

        17. return "Fake"

        圖8為對QRBF進(jìn)行查詢的幾種情況的演示。其中x、y、z、w已經(jīng)進(jìn)行了插入,首先對x進(jìn)行查詢,再對w進(jìn)行查詢,其中對x查詢時,每一個映射的下標(biāo)值都為1,則將每一位對應(yīng)在BitMap中的值都更新為2。對w進(jìn)行查詢時,第7位上的值已經(jīng)為2,但其余兩位為1,則只更改值為1的其他下標(biāo)對應(yīng)位組的元素為2。若查詢的結(jié)果中k個哈希對應(yīng)位組的值都為0,說明該AUID為商家沒有在布隆過濾器中進(jìn)行注冊的AUID。若查詢的k個哈希對應(yīng)位組的值都為2,則說明該AUID至少進(jìn)行了2次防偽驗證查詢。

        圖8 QRBF查詢流程Fig.8 Query process of QRBF

        對于想證明自己是首次查詢的用戶,服務(wù)器會發(fā)送以自己私鑰簽名的證書,證書定義為Ct=Sign(Qlog,Isk)=(S,H(Qlog)),其中Qlog=T‖Did,Did為唯一設(shè)備號,Qlog中包含的信息可以唯一表示用戶以及查詢行為。

        3.3 布隆過濾器誤判率

        由于QRBF的結(jié)構(gòu)以及更新的方式相比于傳統(tǒng)的布隆過濾器都有所不同,所以需要對誤判率重新進(jìn)行分析與計算。使QRBF的值產(chǎn)生變化的布隆過濾器操作有2個,一是出廠登記時將新元素插入到QRBF中,二是查詢成功時將記錄存儲到QRBF中。文獻(xiàn)[20]提出了基于門限功能的計數(shù)布隆過濾器的概率分析,其結(jié)構(gòu)與QRBF相似,因此使用相同的思路對QRBF進(jìn)行誤判率分析。

        在有m個元素的QRBF中,使用哈希函數(shù)將n個元素插入到QRBF中,每個元素都被輸入到k個哈希函數(shù)中,然后根據(jù)算出的哈希值遞增該位置的值,QRBF中下標(biāo)值l具有的二項式分布的概率質(zhì)量函數(shù)定義表示為

        (3)

        對于元素映射對應(yīng)值為l的誤判率表示為

        (4)

        (4)式中:θ代表布隆過濾器的狀態(tài)值。

        pfp(θ,k,n,m)

        (5)

        泊松分布的累計質(zhì)量函數(shù)是正則化的不完全gamma函數(shù)[21],繼續(xù)將上式轉(zhuǎn)換成

        (6)

        QRBF誤判率計算如下。根據(jù)前述布隆過濾器的設(shè)計,狀態(tài)值θ有0、1、2三種情況。由于布隆過濾器中不會把存在于集合中的元素誤判為非集合元素,因此,當(dāng)θ=0時,fp(θ=0)=0。θ=1和θ=2時的誤判率計算式為

        (7)

        (8)

        于是QRBF誤判率為

        (9)

        表3 QRBF誤判率分析Tab.3 False positive rate analysis of QRBF

        QRBF誤判率分析如表3所示。由表3可見,當(dāng)擁擠指數(shù)較低時,誤判率幾乎可忽略不計;當(dāng)擁擠指數(shù)較高時,誤判率依舊在可接受的范圍內(nèi)。因此,只要使用者對QRBF具體使用場景中插入元素個數(shù)以及元素被查詢次數(shù)進(jìn)行提前調(diào)研與預(yù)估,合理地初始化QRBF的大小,就幾乎不會出現(xiàn)誤判的情況。

        4 方案分析與評估

        本實驗采用物理機(jī)來進(jìn)行測試。測試平臺為HUAWEI MateBook14,操作系統(tǒng)為Ubuntu18.04,處理器為Intel i7-8565U,主頻為1.8 GHz,內(nèi)存為8 GB。

        4.1 共識算法性能分析

        1)通信量。使用SBFT可以根據(jù)惡意節(jié)點數(shù)量動態(tài)切換共識機(jī)制,在惡意節(jié)點滿足快速模式的數(shù)量要求時,使用的兩階段共識比三階段共識的PBFT更高效。

        在任何情況下,單輪通信次數(shù)都可以由n(n-1)次減小為2n次,大大降低了共識的通信開銷,提高了共識效率。

        2)簽名性能。在共識機(jī)制中,任何節(jié)點對于自己廣播的數(shù)據(jù)都需要進(jìn)行簽名操作,其他節(jié)點通過驗簽判斷數(shù)據(jù)的真實性,并且SBFT通過門限簽名的結(jié)果進(jìn)入不同模式的共識機(jī)制,因此簽名算法性能的提高對于SBFT性能的提高是有直接影響的。以螞蟻鏈為例,系統(tǒng)共有近10億賬戶,每天“上鏈量”超過1億次,使用的共識機(jī)制是PBFT,簽名算法使用BLS[22],若使用SM2算法[23],則系統(tǒng)整體的性能將會得到提高,文獻(xiàn)[24]也提到了簽名算法性能對系統(tǒng)的重要性。本文對簽名以及驗簽進(jìn)行了實驗。BLS以及SM2測試代碼基于C語言進(jìn)行實現(xiàn),基于雙線性對的密碼庫PBC[25]中所提供。實驗結(jié)果如表4所示。

        表4 P256曲線下的簽名效率對比Tab.4 Comparison of signature efficiency P256 curve /ms

        4.2 具有記錄查詢功能的布隆過濾器效率

        QRBF插入效率和查詢效率的時間開銷實驗結(jié)果如圖9—圖10所示,插入元素以及查詢元素的時間開銷都為納秒級。若使用數(shù)據(jù)庫存儲方式,所占用的時間開銷將為毫秒級,在億萬級數(shù)據(jù)量的情形下時間開銷將更大。

        圖9 QRBF插入時間開銷Fig.9 Insertiontime cost of QRBF

        圖10 QRBF查詢操作的時間開銷Fig.10 Insertiontime cost of QRBF

        4.3 具有記錄查詢功能的布隆過濾器的內(nèi)存開銷

        本文將QRBF與CBF、SBF進(jìn)行內(nèi)存開銷的對比。CBF每一個元素都占用相同位數(shù),位數(shù)取決于被查詢次數(shù)最多的元素所對應(yīng)的計數(shù)器占用位數(shù)。SBF使用動態(tài)調(diào)整的位數(shù)來存儲不同元素的查詢次數(shù),使用偏移數(shù)組來存儲各計數(shù)器對應(yīng)的存儲位置。

        假設(shè)某一產(chǎn)品的防偽碼被盜用1萬次,則QRBF所使用的內(nèi)存將是CBF的1/7,也遠(yuǎn)遠(yuǎn)少于使用額外偏移數(shù)組的SBF。

        4.4 功能性分析

        文獻(xiàn)[26]實現(xiàn)了一種基于區(qū)塊鏈的電商平臺產(chǎn)品信息追溯和防偽模型,將區(qū)塊鏈的去中心化、可溯源、防篡改、防單點故障的特性應(yīng)用到防偽系統(tǒng)中,不依賴商家提供查詢結(jié)果。文獻(xiàn)[27]將區(qū)塊鏈技術(shù)和NFC芯片相結(jié)合,設(shè)計了一種應(yīng)用于供應(yīng)鏈的安全防偽系統(tǒng),該防偽碼不可偽造,但因成本過高不便于推廣。文獻(xiàn)[28]使用了IPFS存儲實際數(shù)據(jù),減少了數(shù)據(jù)在區(qū)塊鏈中的冗余存儲。表5對上述方案的系統(tǒng)功能進(jìn)行了對比。

        表5 系統(tǒng)功能對比Tab.5 Comparison of system functions

        5 結(jié)束語

        本文研究了基于記錄查詢布隆過濾器的區(qū)塊鏈溯源方案,使用IPFS減小上鏈數(shù)據(jù)的負(fù)擔(dān)和運行服務(wù)器方的負(fù)擔(dān);使用SBFT以及SM2算法提高系統(tǒng)效率;還使用自定義的QRBF過濾無效的AUID查詢,避免了系統(tǒng)資源的浪費。QRBF可以記錄此AUID的查詢次數(shù),若不是首次查詢,則對消費者進(jìn)行提醒,一定程度上防止了產(chǎn)品防偽標(biāo)識的濫用。該方案為商家提供高效率的溯源方案,為消費者提供可信的產(chǎn)品溯源數(shù)據(jù),為防偽技術(shù)提供解決思路。

        猜你喜歡
        產(chǎn)品
        好產(chǎn)品,可持續(xù)
        從靈感出發(fā),邂逅好產(chǎn)品
        新產(chǎn)品
        “三無”產(chǎn)品
        快樂語文(2021年36期)2022-01-18 05:48:46
        OPPO:堅守本分,將產(chǎn)品做到極致
        金橋(2021年4期)2021-05-21 08:19:22
        ”這些產(chǎn)品,我不打算回購。
        中國化妝品(2018年6期)2018-07-09 03:12:40
        拒絕平凡,如何讓你的產(chǎn)品變“有趣”?
        中國化妝品(2018年6期)2018-07-09 03:12:32
        2015產(chǎn)品LOOKBOOK直擊
        Coco薇(2015年1期)2015-08-13 02:23:50
        golo6可以聽的OBD產(chǎn)品
        新產(chǎn)品
        玩具(2009年10期)2009-11-04 02:33:14
        久草视频在线这里只有精品| 今井夏帆在线中文字幕| 久久99热只有频精品8国语| 樱桃视频影院在线播放| 少妇仑乱a毛片| 国产激情内射在线影院| 无码人妻视频一区二区三区99久久| 最新国产女主播福利在线观看| av在线免费观看你懂的| 人妻精品一区二区三区蜜桃| 白丝爆浆18禁一区二区三区| 国产va免费精品观看| 高清国产日韩欧美| 911国产在线观看精品| 日韩精品极品视频在线免费| 99在线视频这里只有精品伊人| 妺妺窝人体色777777 | 东方aⅴ免费观看久久av| japanesehd中国产在线看 | 日韩在线精品视频免费| 国产精品女同一区二区免费站| 成人欧美一区二区三区在线观看| 欧美放荡的少妇| 一区二区无码中出| 北岛玲亚洲一区二区三区| 久久综合噜噜激激的五月天| 无码成人aaaaa毛片| 天天爽夜夜爽人人爽曰喷水| 国产自产21区激情综合一区| 99久久精品人妻一区二区三区| 亚洲av一二三区成人影片| 国产70老熟女重口小伙子| 综合无码一区二区三区四区五区| 国产亚洲精品视频在线| 黑人巨大精品欧美| 制服丝袜人妻中文字幕在线| a级福利毛片| av网站可以直接看的| 亚洲黄色天堂网站在线观看禁18| 色一情一乱一伦一区二区三区日本| 一区二区三区内射视频在线观看 |