一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于布隆过滤器跳表结构的高效区块链查询方法及系统

2022-07-31 02:27:23 来源:中国专利 TAG:


1.本发明属于区块链技术领域,涉及一种区块链查询方法及系统,具体涉及一种基于布隆过滤器跳表结构的高效区块链查询方法及系统。


背景技术:

2.区块链的技术源于比特币,satoshi nakamoto最早提出了一种点对点的电子现金系统——比特币,它无需值得信赖的第三方,它通过后一个区块对前一个区块的引用,并以加密技术保证了区块链不可修改,最长的链条来源于算力最强的cpu。这种区块链使用merkle hash来保证其不可篡改性,每个区块根据区块头部计算出该区块的哈希值,并被下一个区块所指。此外,区块链还可应用于智能合约、公共服务、互联网等领域、物联网、信誉系统和安全服务等领域。这些领域以多种方式支持区块链。首先,区块链是不可变的。事务一旦被打包到区块链中,就不能被篡改。需要高可靠性和诚实度的企业可以使用区块链来吸引客户。除此以外,区块链是分布式的,避免了单点故障的情况,具有高可用的特点。
3.由于区块链结构的特性,其基于块的顺序访问阻碍了高效的查询处理,所以设计合理的基于区块链的查询算法至关重要。leveldb被用作大多数区块链系统的底层数据存储系统,利用其写入数据很方便而读取数据很慢,这使得它的查询效率很低;现有的信息管理区块链应用大多重视个人数据的存储模式。其中,有少部分关注于安全检索处理响应时间短等实用性,但缺乏细节。由于对存储的巨大项进行精确查询的时间开销,区块链可能会受到效率低下的影响。因此,在区块链上设计一种高效的检索方法并运用于个人信息管理系统是非常必要的。


技术实现要素:

4.为了解决区块链上查询方法效率低下的技术问题,本发明提供了一种指数跃变过滤索引和相应的高效区块链检索方法及系统,以达到较高的查询效率和较低的维护开销。
5.本发明的方法所采用的技术方案是:一种基于布隆过滤器跳表结构的高效区块链查询方法,包括建立查询索引和区块链查询;
6.所述建立查询索引:为区块链系统中的每一个区块创建一个相应的布隆过滤器bloom filter,每一个bloom filter节点bfi对外链接至第i个区块,对内存储第i 20,i 21,i 22,

,i 2n个区块内的证书编号,n为满足i 2n小于总区块数量的最大值;从第-2个bloom filter节点开始搜索,其中bf-2
只存储第0块的证书编号,bf-1
存储第0块和第1块的证书编号;
7.每当一个新的第i号区块被打包放入区块链,都会生成一个相应的新的i号布隆过滤器,区块中的记录也将会被写入到i-2
logi
和i-2
logi-1
号布隆过滤器;
8.所述区块链查询:搜索时,先从bf-2
遍历搜索,直至bfa第一次命中,表示目标区块号target可能为a 2
x
,x∈n(n表示自然数,且a 2
x
的范围不超过最大区块号),此时需要找到后面第二次命中的bfb,表明目标区块号target可能为b 2y,y∈n(n表示自然数,且b 2y的范
围不超过最大区块号);设存在x、y,使得a、b、target满足等式(1),x和y满足等式(2),只需找到a和b,通过等式(1)(2)即可找到目标区块号;
9.a 2
x
=b 2y=target
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
10.x=y 1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
11.当搜索到预设范围还未能够第一次搜索命中时,无需再进行搜索。
12.本发明的系统所采用的技术方案是:一种基于布隆过滤器跳表结构的高效区块链查询系统,包括建立查询索引模块和区块链查询模块;
13.所述建立查询索引模块:为区块链系统中的每一个区块创建一个相应的布隆过滤器bloom filter,每一个bloom filter节点bfi对外链接至第i个区块,对内存储第i 20,i 21,i 22,

,i 2n个区块内的证书编号,n为满足i 2n小于总区块数量的最大值;从第-2个bloom filter节点开始搜索,其中bf-2
只存储第0块的证书编号,bf-1
存储第0块和第1块的证书编号;
14.每当一个新的第i号区块被打包放入区块链,都会生成一个相应的新的i号布隆过滤器,区块中的记录也将会被写入到i-2
logi
和i-2
logi-1
号布隆过滤器。
15.所述区块链查询模块:搜索时,先从bf-2
遍历搜索,直至bfa第一次命中,表示目标区块号target可能为a 2
x
,x∈n(n表示自然数,且a 2
x
的范围不超过最大区块号),此时需要找到后面第二次命中的bfb,表明目标区块号target可能为b 2y,y∈n(n表示自然数,且b 2y的范围不超过最大区块号);设存在x、y,使得a、b、target满足等式(1),x和y满足等式(2),只需找到a和b,通过等式(1)(2)即可找到目标区块号;
16.a 2
x
=b 2y=target
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
17.x=y 1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
18.当搜索到预设范围还未能够第一次搜索命中时,无需再进行搜索。
19.本发明相比于遍历模式,在提高了时间效率的同时,利用布隆过滤器提高了空间利用率,并且在进行维护时,新的区块只需要快速映射到两个布隆过滤器即可。同时能够有效抵挡已知明文的攻击,假设攻击者试图猜测布隆过滤器中的内容,进行了300000次查询,在布隆过滤器位宽为150的情况下,命中的可能性最多为2.1010-40

附图说明
20.图1为发明实施例的原理图,其中ce表示一份含有数据信息的证书,ce表示某一区块的所有证书集合;
21.图2为发明实施例在医疗信息管理系统上的运用示例。
具体实施方式
22.为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
23.请见图1,本发明提供的一种基于布隆过滤器跳表结构的高效区块链查询方法,包括建立查询索引和区块链查询;
24.本实施例的建立查询索引:为区块链系统中的每一个区块创建一个相应的布隆过
滤器bloom filter,每一个bloom filter节点bfi对外链接至第i个区块,对内存储第i 20,i 21,i 22,

,i 2n个区块内的证书编号,n为满足i 2n小于总区块数量的最大值;为了保证第0号和1号区块也能被搜索到,我们增添了bf-2
和bf-1
两个布隆过滤器,bf-2
只存储第0块内的证书编号,bf-1
存储第0块和第1块内的证书编号。
25.每当一个新的第i号区块被打包放入区块链,都会生成一个相应的新的i号布隆过滤器,区块中的记录也将会被写入到i-20,i-21,i-22,

,i-2n号布隆过滤器中,直到i-2n为负数;
26.本实施例的区块链查询:搜索时,先从bf-2
遍历搜索,直至bfa第一次命中,表示目标区块号target可能为a 2
x
(x∈n,n表示自然数,且a 2
x
的范围不超过最大区块号)此时需要找到后面第二次命中的bfb,表明目标区块号target可能为b 2y(y∈n,n表示自然数,且b 2y的范围不超过最大区块号);设存在x、y,使得a、b、target满足等式(1),x和y满足等式(2),只需找到a和b,通过等式(1)(2)即可找到目标区块号;
27.a 2
x
=b 2y=target
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
28.x=y 1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
29.当搜索到预设范围还未能够第一次搜索命中时,无需再进行搜索。
30.本实施例中,需要找的a,b之间满足关系a 2y=b,即第一次搜索命中a号布隆过滤器之后,不需要继续线性遍历,而是指数跳跃的方式搜索a 2i(i∈n,n表示自然数)号区块中的内容直到第二次命中,第二次命中的布隆过滤器既是第a 2y=b号布隆过滤器。
31.为了缩短从第一次命中到第二次命中的搜索时间,从第个bloomfilter节点开始第二次搜索,可以最大提高搜索效率。此外,为了防止无止尽地搜索,通过数学证明发现,在第一次搜索中,若第max(2
t-1-1,n-2
t
)个bloomfilter未命中,则说明区块链上没有该证书编号,无需继续搜索;其中n表示区块链系统中区块的数量,t满足2
t
≤n《2
t 1

32.区块链作为比特币的基础技术越来越受到业界和学术界的关注。在医疗场景方面,许多医疗区块链系统被开发出来以保存患者的情况和确保健康记录的真实性。然而,由于患者健康档案的规模庞大,现有的医疗区块链系统普遍存在吞吐量低,缺乏相应的索引结构,检索效率不理想的问题。
33.请见图2,为发明实施例在医疗信息管理系统上的运用示例,本实施例的医疗信息管理系统包含4个参与者,即数据所有者、数据用户、服务器(医院等机构)和查询节点。数据所有者和数据用户是仅存储块头的轻节点,而医院和查询节点表示为存储整个区块链数据的完整节点。查询节点建立一个指数跳跃的bloom过滤器索引结构,该结构将健康记录的关键字按顺序存储在区块链上,以执行高效查询。
34.当数据所有者从医生那里收到电子病历时,服务器会自动提取不敏感但重要的属性,并将不敏感的记录打包。然后,服务器将健康记录转换为哈希值并让每个节点验证和接受新块后,将其上传至区块链。同时,查询节点为每个块创建指数跳跃bloom filter索引。当数据用户需要查询特定的ehr信息时,首先向数据所有者发送请求以获得授权,然后向查询节点发送查询请求,查询节点根据自己构建的索引结构在区块链上实现高效的查询算法,具体查询算法以及索引结构见图1。在接收到相应的结果后,数据用户最终可以对信息进行解密。
35.本发明提出的一种基于指数跳跃bloom滤波器的区块链数据高效检索算法,使用
户能够以指数顺序检索区块链数据。该方法在提高查询效率的同时,还能抵抗蛮力攻击下的数据泄漏。
36.应当理解的是,本说明书未详细阐述的部分均属于现有技术,我们独创的技术方案均已介绍。
37.应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献