当前位置: 首页 > 专利查询>湖南大学专利>正文

一种混合存储区块链的细粒度身份验证方法技术

技术编号:38478502 阅读:7 留言:0更新日期:2023-08-15 16:57
本发明专利技术提供混合存储区块链的细粒度身份验证方法,基础方案中包括ADS生成步骤,数据查询步骤,VO构造步骤,用户验证步骤,错误定位步骤,将原始数据存储在云端,ADS存储在区块链中,利用区块链存储的ADS和云端返回的链下VO可以验证查询结果的完整性,同时支持完整性验证失败后,对错误数据进行定位筛查,提高数据的可用性,在gas效率方案中,减少链上ADS的大小,用较高的链下计算开销换取区块链上较低的存储成本,大大减少的区块链的gas消耗,增强可扩展性。扩展性。扩展性。

【技术实现步骤摘要】
一种混合存储区块链的细粒度身份验证方法


[0001]本专利技术涉及区块链技术和云计算,具体涉及混合存储区块链的细粒度范围查询验证方法。

技术介绍

[0002]由于分布式终端的大规模应用,产生了海量的数据流,越来越多的用户选择将数据外包给云服务提供商,然而一旦将数据外包给云,用户就丧失了对数据的物理控制权。云服务提供商是不完全可信的,由于服务器故障、容易受到外部攻击等原因,对存储数据的安全性构成威胁,因此对外包数据的查询验证就变得十分重要。
[0003]区块链是一个仅追加的分布式账本,建立在点对点网络之上,区块链的每个节点都保存完整的交易记录。区块链具有不可篡改和可信的特性,因此成为了物联网、数据外包等去中心化应用中安全数据存储的一种有效解决方案。然而,随着终端设备(如物联网设备)产生的数据量不断增加,将原始数据直接存储在区块链上缺乏可拓展性,并且区块链上存储成本高昂,因此结合区块链和云服务器的链上链下混合存储区块链(hybrid

storage blockchain,HSB)成为了一种较为理想的解决方案。混合存储区块链兼具云存储成本低和区块链高度可信性的特点,完美解决了云存储不可信和区块链存储开销大的难题。典型的HSB架构如图1所示,其中数据拥有者将大量的键值数据流外包给链下的云服务提供商(SP),区块链中仅存储元数据(如加密哈希)。由于SP是不完全可信的,现有解决方案通常在链上元数据中加入认证数据结构(authenticated data structure,ADS),用户可以根据ADS和链下辅助验证对象(verification object,VO)进而验证查询结果的完整性和正确性。
[0004]尽管这种方案可以确保查询结果的可信度,然后以前的研究方案只支持细粒度的身份验证,在这种身份验证中,用户可以根据验证结果来决定接受或者放弃所有的查询结果。在实践中,最常见的查询(例如范围查询)会检索到大量匹配的对象,只有一小部分数据可能是篡改的或者错误的,这使得大多数的查询结果在验证失败后仍然是有效的。因此,允许用户区分真实数据和伪造结果的细粒度身份验证对于提高HSB环境中数据的可用性至关重要。然而现有的HSB解决方案没有考虑细粒度身份验证问题,不支持在查询验证失败后定位数据以提高数据可用性。
[0005]另外,在混合存储区块链中,我们应该注意到由于区块链发布的交易需要达到共识并且每个节点都保存一份完整的交易副本,区块链的存储成本很高。通过智能合约将数据存储到区块链上时也会消耗昂贵的gas成本,越高的gas消耗也就意味着越多的数据通过智能合约上传到区块链,增大了区块链的存储开销。采用较高的链下计算成本换取较低的链上存储成本,减少存储数据的燃油成本是一种可行的方案。

技术实现思路

[0006]为了解决现有技术存在的上述缺陷,本专利技术提出了一种新的混合存储区块链下支
持错误定位的细粒度查询验证方案。本专利技术提出了两种多维奇偶校验(multi

dimensional parity

based verifification,MPV)方案,在链上存储效率和链下计算效率之间进行权衡。在基础方案中,我们基于RSA累加器,构造验证矩阵,提出了一种支持范围查询验证和错误定位的细粒度身份验证方案。在gas效率方案中,在基础方案的之上,我们减少链上ADS的大小,用较高的链下计算开销换取区块链上较低的存储成本,大大减少的区块链的gas消耗,增强可扩展性。
[0007]根据本专利技术的第一方面,提供一种混合存储区块链的细粒度身份验证方法,其特征在于,原始数据存储在云端,可验证数据结构ADS存储在区块链中,区块链存储的ADS和云端返回的验证信息VO用于验证查询结果的完整性,并在完整性验证失败时,对错误数据进行定位筛查。方法包括:
[0008]步骤110:ADS生成;包括步骤111

步骤114。
[0009]步骤111:数据拥有者构造排序对象集RO
s
;对于任意一个关键词k
s
,根据其对应的对象集OBJ
s
,构造排序对象集RO
s
={(k
s
,a
r
,t
r
,r)},r∈[1,d
s
],其中,(k
s
,a
r
,t
r
,r)表示k
s
第r个版本的对象,值为a
r
,时间戳为t
r
,RO
s
按照时间戳递增的顺序排列,版本号r按照1,2,3,...,j,...,d
s
的顺序递增,d
s
为OBJ
s
的大小。
[0010]步骤112:数据拥有者根据RO
s
的规模构造u
s
×
u
s
的验证矩阵M
s
,u
s
为验证矩阵M
s
的尺寸。
[0011]步骤113:数据拥有者执行摘要生成算法GenAcc(M
s
)

θ,其中,摘要集θ={θ1,θ2},θ1、θ2分别代表行摘要和列摘要的集合;对于每一行数据,执行GenAcc(M
s
[i][*])

θ
1i
,将M
s
第i行的数据基于RSA累加器进行累积,生成摘要存入θ1的第i个元素θ
1i
,对于每一列数据,执行GenAcc(M
s
[*][j])

θ
2j
,将M
s
第j列的数据基于RSA累加器进行累积,生成摘要存入θ2的第j个元素θ
2j
,i,j∈[1,u
s
],*表示该行或者该列的所有数据。
[0012]步骤114:数据拥有者将RO
s
上传到云服务器,将摘要集θ上传到区块链。
[0013]步骤120:数据查询;用户向云服务器发起查询请求Q=(k
s
,[t
l
,t
u
]),查询起始时间t
l
至结束时间t
u
之间的数据,云服务器检索得到符合查询请求的搜索结果SR=(k
s
,OBJ
s
)和边界结果BR,生成查询结果R=(SR,BR)。
[0014]步骤130:VO构造;云服务器执行验证生成算法GenProof(R,M
s
)

VO生成验证对象VO,并发送R和VO给用户。
[0015]其中,验证生成算法GenProof(R,M
s
)

VO包括:对于每一行数据,执行GenProof(L
i
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种混合存储区块链的细粒度身份验证方法,其特征在于,原始数据存储在云端,可验证数据结构ADS存储在区块链中,区块链存储的ADS和云端返回的验证信息VO用于验证查询结果的完整性,并在完整性验证失败时,对错误数据进行定位筛查;方法包括:步骤110:ADS生成;包括步骤111

步骤114;步骤111:数据拥有者构造排序对象集RO
s
;对于任意一个关键词k
s
,根据其对应的对象集OBJ
s
,构造排序对象集RO
s
={(k
s
,a
r
,t
r
,r)},r∈[1,d
s
],其中,(k
s
,a
r
,t
r
,r)表示k
s
第r个版本的对象,值为a
r
,时间戳为t
r
,RO
s
按照时间戳递增的顺序排列,版本号r按照1,2,3,...,j,...,d
s
的顺序递增,d
s
为OBJ
s
的大小;步骤112:数据拥有者根据RO
s
的规模构造u
s
×
u
s
的验证矩阵M
s
,u
s
为验证矩阵M
s
的尺寸;步骤113:数据拥有者执行摘要生成算法GenAcc(M
s
)

θ,其中,摘要集θ={θ1,θ2},θ1、θ2分别代表行摘要和列摘要的集合;对于每一行数据,执行GenAcc(M
s
[i][*])

θ
1i
,将M
s
第i行的数据基于RSA累加器进行累积,生成摘要存入θ1的第i个元素θ
1i
,对于每一列数据,执行GenAcc(M
s
[*][j])

θ
2j
,将M
s
第j列的数据基于RSA累加器进行累积,生成摘要存入θ2的第j个元素θ
2j
,i,j∈[1,u
s
],*表示该行或者该列的所有数据;步骤114:数据拥有者将RO
s
上传到云服务器,将摘要集θ上传到区块链;步骤120:数据查询;用户向云服务器发起查询请求Q=(k
s
,[t
l
,t
u
]),查询起始时间t
l
至结束时间t
u
之间的数据,云服务器检索得到符合查询请求的搜索结果SR=(k
s
,OBJ
s
)和边界结果BR,生成查询结果R=(SR,BR);步骤130:VO构造;云服务器执行验证生成算法GenProof(R,M
s
)

VO生成验证对象VO,并发送R和VO给用户;其中,验证生成算法GenProof(R,M
s
)

VO包括:对于每一行数据,执行GenProof(L
i
,M
s
[i][*])

Φ
Li
,即基于RSA累加器生成第i行的验证证明Φ
Li
,其中L
i
=R∩M
s
[i][*],为矩阵M
s
第i行与R共同包含的数据,对于每一列数据,执行GenProof(C
j
,M
s
[*][j])

Φ
Cj
,即基于RSA累加器生成第j行的验证证明Φ
Cj
,其中C
j
=R∩M
s
[*][j],为矩阵M
s
第j列与R共同包含的数据,VO={Φ
L

C
},Φ
L
为行数据的验证证明集,Φ
C
为列数据的验证证明集;步骤140:用户验证;用户收到云服务器返回的R和VO,利用从区块链中取回的ADS,执行结果验证算法VerProof(R,VO,θ)

(0,1)验证结果的完整性和正确性,其中包括:对于每一行数据,执行VerProof(L
i

Li

1i
)

(0,1),即验证第i行数据是否正确,如果验证为1,该行数据验证正确;如果验证为0,该行数据验证错误,该行存在错误数据;当所有行验证均为1,则证明R的完整性和正确性,否则,执行步骤150;步骤150,错误定位;对于每一列数据,执行VerProof(C
j

Li

2j
)

(0,1),即验证第j列数据是否正确,如果验证为1,该列数据验证正确;如果验证为0,该列数据验证错误,该列存在错误数据,当VerProof(L
i

Li

1i
)

0且VerProof(C
j

Li

2j
)

0,则此时行列交叉的点(i,j)为错误数据所在的位置,将该位置存入错误位置集合EL。2.根据权利要求1所述的混合存储区块链的细粒度身份验证方法,其特征在于,步骤112还包括:每个k
s
的数据流和u
s
×
u
s
的验证矩阵M
s
相关联,
3.根据权利要求2所述的混合存储区块链的细粒度身份验证方法,其特征在于,步骤113还包括:摘要生成算法GenAcc(X)

acc(X)包括:给定一个集合X={x1,

,x
n
},x
i
∈{0,1}时,该算法产生的累加值为g是循环群的产生器,P(H(x
i
))表示与元素x
i
对应的质数,通过双通用哈希函数H来实现。4.根据权利要求3所述的混合存储区块链的细粒度身份验证方法,其特征在于,方法还包括:验证生成算法GenProof(Y,X)

Φ包括:计算子集Y的证明结果验证算法VerProof(Y,Φ,acc(X))

(0,1)包括:当时,输出1,否则输出0。5.一种基于gas效率结构的混合存储区块链的细粒度身份验证方法,其特征在于,原始数据存储在云端,可验证数据结构ADS存储在区块链中,区块链存储的ADS和云端返回...

【专利技术属性】
技术研发人员:刘琴徐铭作
申请(专利权)人:湖南大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1