[發(fā)明專(zhuān)利]一種基于索引的面向區(qū)塊鏈輕客戶端的范圍查詢可驗(yàn)證查詢方法有效
| 申請(qǐng)?zhí)枺?/td> | 201910066166.6 | 申請(qǐng)日: | 2019-01-24 |
| 公開(kāi)(公告)號(hào): | CN109885615B | 公開(kāi)(公告)日: | 2020-09-22 |
| 發(fā)明(設(shè)計(jì))人: | 方敏;朱燕超;張召;金澈清 | 申請(qǐng)(專(zhuān)利權(quán))人: | 華東師范大學(xué) |
| 主分類(lèi)號(hào): | G06F16/27 | 分類(lèi)號(hào): | G06F16/27;G06F16/22;G06F16/2455 |
| 代理公司: | 上海藍(lán)迪專(zhuān)利商標(biāo)事務(wù)所(普通合伙) 31215 | 代理人: | 徐筱梅;張翔 |
| 地址: | 200241 *** | 國(guó)省代碼: | 上海;31 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 索引 面向 區(qū)塊 客戶端 范圍 查詢 驗(yàn)證 方法 | ||
本發(fā)明公開(kāi)了一種基于索引的面向區(qū)塊鏈輕客戶端的范圍查詢可驗(yàn)證查詢方法,包括區(qū)塊索引和層次索引結(jié)構(gòu)生成步驟、全節(jié)點(diǎn)進(jìn)行數(shù)據(jù)可驗(yàn)證查詢步驟、全節(jié)點(diǎn)進(jìn)行輔助可驗(yàn)證查詢步驟和輕客戶端進(jìn)行可驗(yàn)證查詢步驟。為支持有效地訪問(wèn)區(qū)塊數(shù)據(jù)和可驗(yàn)證查詢處理過(guò)程,本發(fā)明提出了一種支持可驗(yàn)證查詢的層次索引結(jié)構(gòu),并提出基于該索引的面向區(qū)塊鏈輕客戶端的范圍查詢可驗(yàn)證查詢方法。本發(fā)明克服了現(xiàn)有技術(shù)下全節(jié)點(diǎn)掃描區(qū)塊效率低,全節(jié)點(diǎn)與輕客戶端通信開(kāi)銷(xiāo)大的缺陷,以及解決了在不可信的區(qū)塊鏈網(wǎng)絡(luò)中數(shù)據(jù)查詢驗(yàn)證困難的問(wèn)題,實(shí)現(xiàn)了輕客戶端的可信數(shù)據(jù)查詢驗(yàn)證。
技術(shù)領(lǐng)域
本發(fā)明屬于區(qū)塊鏈數(shù)據(jù)庫(kù)技術(shù)領(lǐng)域,尤其涉及基于索引的面向區(qū)塊鏈輕客戶端的范圍查詢可驗(yàn)證查詢方法。
背景技術(shù)
全節(jié)點(diǎn)是擁有完整區(qū)塊鏈賬本的節(jié)點(diǎn),負(fù)責(zé)驗(yàn)證以及轉(zhuǎn)發(fā)網(wǎng)絡(luò)上的交易和區(qū)塊。由于無(wú)需信任的環(huán)境(開(kāi)放的網(wǎng)絡(luò))以及區(qū)塊鏈本身的性質(zhì),每個(gè)全節(jié)點(diǎn)都需要下載并驗(yàn)證所有的區(qū)塊,因此所有區(qū)塊中的所有交易信息都需要經(jīng)過(guò)全節(jié)點(diǎn)的驗(yàn)證。然后,下載并驗(yàn)證所有區(qū)塊信息會(huì)消耗大量的時(shí)間和資源。例如,完全同步以太坊區(qū)塊鏈至少需要SSD(固態(tài)硬盤(pán)),因?yàn)镠DD(機(jī)械硬盤(pán))跟不上每秒的輸入輸出需求。輕客戶端或者輕節(jié)點(diǎn)是一種連接全節(jié)點(diǎn)以實(shí)現(xiàn)與區(qū)塊鏈的交互的軟件,與全節(jié)點(diǎn)不同的是,輕客戶端不需要不停的運(yùn)行,也不需要向區(qū)塊鏈中讀取寫(xiě)入大量的信息,如用戶所使用的手持設(shè)備,輕客戶端通常只存儲(chǔ)了區(qū)塊頭。實(shí)際上,輕客戶端不需要直接與區(qū)塊鏈交互,它們使用全節(jié)點(diǎn)作為中介,依賴(lài)全節(jié)點(diǎn)來(lái)實(shí)現(xiàn)許多操作。為了執(zhí)行查詢,輕客戶端就需要查詢存儲(chǔ)了所有區(qū)塊數(shù)據(jù)的不可信的節(jié)點(diǎn)。然而,這種查詢下的結(jié)果可能并不正確,因此輕客戶端就必須能夠驗(yàn)證查詢結(jié)果。
為了處理這種情況,比特幣使用Merkle哈希樹(shù)(MHT)提出了簡(jiǎn)單支付驗(yàn)證(SPV),SPV支持輕客戶端的交易驗(yàn)證,可以確定某個(gè)特定的交易是否在區(qū)塊中,SPV節(jié)點(diǎn)只需下載區(qū)塊頭,而不用下載包含在每個(gè)區(qū)塊中的交易信息。如果通過(guò)掃描所有的區(qū)塊來(lái)查詢數(shù)據(jù),則重建被訪問(wèn)區(qū)塊的MB-tree根可以方便地驗(yàn)證數(shù)據(jù)的正確性。但是,掃描的方法效率太低,例如,對(duì)于范圍查詢,所有的區(qū)塊都要返回給輕客戶端,以保證查詢結(jié)果的完整性和完備性。而且,若一次范圍查詢涉及到的區(qū)塊數(shù)量較多,則會(huì)造成很大的通信開(kāi)銷(xiāo),導(dǎo)致查詢效率低下,同時(shí)目前已有的區(qū)塊鏈系統(tǒng)并不能實(shí)現(xiàn)豐富的可驗(yàn)證查詢。所以為了支持區(qū)塊鏈中的可驗(yàn)證索引,驗(yàn)證索引結(jié)構(gòu)的提出是非常有必要的。以太坊提出了Merkle PatriciaTree(MPT),其中每個(gè)區(qū)塊都存儲(chǔ)了一個(gè)可驗(yàn)證結(jié)構(gòu)的快照。然而,樹(shù)是非常大的,因?yàn)闃?shù)中的每一個(gè)節(jié)點(diǎn)的變化都被記錄下來(lái)了。而且,MPT僅支持賬戶狀態(tài)的可驗(yàn)證查詢。因此,有必要基于驗(yàn)證結(jié)構(gòu)重新實(shí)現(xiàn)各種可驗(yàn)證查詢。
發(fā)明內(nèi)容
本發(fā)明的目的是為了克服現(xiàn)有技術(shù)下全節(jié)點(diǎn)掃描區(qū)塊效率低,全節(jié)點(diǎn)與輕客戶端通信開(kāi)銷(xiāo)大的缺陷,以及解決在不可信的區(qū)塊鏈網(wǎng)絡(luò)中數(shù)據(jù)查詢驗(yàn)證困難的問(wèn)題,提出了一種基于索引的面向區(qū)塊鏈輕客戶端的范圍查詢可驗(yàn)證查詢方法。
實(shí)現(xiàn)本發(fā)明目的的具體技術(shù)方案是:
一種基于索引的面向區(qū)塊鏈輕客戶端的范圍查詢可驗(yàn)證查詢方法,該方法包括以下具體步驟:
步驟S1:區(qū)塊索引和層次索引結(jié)構(gòu)生成
此步驟在關(guān)鍵字區(qū)塊時(shí)間戳上構(gòu)造一個(gè)區(qū)塊層B+-tree索引結(jié)構(gòu),獲取給定查詢時(shí)間范圍內(nèi)包含有查詢交易類(lèi)型的區(qū)塊范圍;并對(duì)不同交易類(lèi)型構(gòu)造位圖索引并對(duì)每一個(gè)區(qū)塊在關(guān)鍵字交易id上構(gòu)造Merkle B-tree(MB-tree)索引,構(gòu)造出一個(gè)由位圖索引和MB-tree索引組成的層次索引結(jié)構(gòu);具體包括:
步驟A1:全節(jié)點(diǎn)在關(guān)鍵字區(qū)塊時(shí)間戳上構(gòu)造一個(gè)區(qū)塊層B+-tree索引結(jié)構(gòu),用來(lái)獲取給定查詢時(shí)間范圍內(nèi)的區(qū)塊id;
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于華東師范大學(xué),未經(jīng)華東師范大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910066166.6/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 沿縱向拓展的區(qū)塊鏈的生成方法及系統(tǒng)
- 沿橫向拓展的區(qū)塊鏈的生成方法及系統(tǒng)
- 區(qū)塊鏈輕量化處理方法、區(qū)塊鏈節(jié)點(diǎn)及存儲(chǔ)介質(zhì)
- 餐廳配備裝置總成
- 區(qū)塊鏈處理方法、裝置及區(qū)塊鏈節(jié)點(diǎn)
- 本地區(qū)塊同步的檢驗(yàn)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 用于使用現(xiàn)有區(qū)塊鏈節(jié)點(diǎn)來(lái)托管新區(qū)塊鏈的方法和系統(tǒng)
- 一種錐體區(qū)塊、錐體區(qū)塊鏈結(jié)構(gòu)和方法
- 一種錐體區(qū)塊鏈共識(shí)系統(tǒng)、方法及網(wǎng)絡(luò)
- 區(qū)塊分布式區(qū)塊鏈的區(qū)塊數(shù)據(jù)結(jié)構(gòu)、存儲(chǔ)介質(zhì)及電子設(shè)備





