首页 / 专利库 / 银行与财务事项 / 数字货币 / 加密货币 / 比特币 / 一种基于区块链的数据存储索引系统及方法

一种基于链的数据存储索引系统及方法

阅读:593发布:2020-05-16

专利汇可以提供一种基于链的数据存储索引系统及方法专利检索,专利查询,专利分析的服务。并且一种基于 区 块 链 的数据存储索引系统及方法。系统包括数据存储索引系统包括数据存储索引模块以及共识模块。本 发明 提供了基于区块链的数据存储索引系统及方法具有以下有益效果:基于元数据建立索引,并通过区块链来公开发布的方式,区块链不仅可以有效保证发布的数据索引无法被篡改,而且所用的存储索引 智能合约 可为数据发布提供高效安全的自动执行机制。通过本发明提供的系统及方法,可以缓解现有数据共享过程中第三方可能泄露数据,数据提供 节点 失去对数据的绝对控制权、数据安全无法保障等问题,对于数据共享的发展具有很强的理论意义和现实意义。,下面是一种基于链的数据存储索引系统及方法专利的具体信息内容。

1.一种基于链的数据存储索引系统,其特征在于:所述的基于区块链的数据存储索引系统包括数据存储索引模块以及共识模块;
所述的数据存储索引模块负责为数据提供安全高效存储,并提取出元数据而形成数据索引,所用的存储索引智能合约可为数据发布提供高效安全的自动执行机制;
所述的共识模块基于共识算法将上述数据索引写入区块链,为数据发布一个隐私、防篡改、可证明安全的分布式数据库;同时能够防止数据发布者上传虚假信息,为将来可能出现的争议提供历史数据溯源;系统所采用的共识机制是依据所有数据提供节点所贡献的数据量大小。
2.一种利用权利要求1所述基于区块链的数据存储索引系统的数据存储索引方法,其特征在于:所述的数据存储索引方法包括按顺序进行的下列步骤:
S1:所述的数据存储索引模块设置一个可信锚,可信锚生成系统参数并存储,然后向各个节点发布系统参数;
S2:区块链网络中各个节点分别进行系统注册,然后由可信锚生成公钥验证令牌并发回节点,节点根据公钥验证令牌生成各自的公私钥对,并最终获得公钥验证令牌:
S3:数据提供节点上传原始数据,所述的数据存储索引模块对上述原始数据进行加密存储,并从中提取出元数据而形成数据索引:
S4:所述的共识模块基于共识算法将数据索引写入区块链。
3.根据权利要求2所述的数据存储索引方法,其特征在于:在步骤S1中,所述的数据存储索引模块设置一个可信锚,可信锚生成系统参数并存储,然后向各个节点发布系统参数的方法包括下列步骤:
S101:可信锚选择一个大素数p,基于有限域Fp的椭圆曲线E(Fp):y2=x3+ax+b(mod p),其中a,b∈Fp且4a3+27b2(mod p)≠0;存在基点P∈Fp,由基点P生成的子群的阶为大素数q;
S102:可信锚选择抗碰撞散列函数h0,h1,h2:{0,1}*→Zq*,以及h3:{0,1}*→{0,1}k;
S103:可信锚选择随机数s∈Zq*作为自己的私钥 并计算公钥
由上述步骤S101、S102中的参数以及S103中的公钥构成系统参数;
S104:可信锚将上述系统参数存储在本地,并向各个节点发布系统参数,具体如下:
{p,q,P,E(Fp),TA,h0,h1,h2,h3}。
4.根据权利要求2所述的数据存储索引方法,其特征在于:在步骤S2中,所述的区块链网络中各个节点分别进行系统注册,然后由可信锚生成公钥验证令牌并发回节点,节点根据公钥验证令牌生成各自的公私钥对,并最终获得公钥验证令牌的方法包括下列步骤:
S201:节点i选择一个大随机数ri∈Zq*,并计算参数:
Ri=h0(ri)P
然后,节点i通过安全信道将参数Ri发送给可信锚;
S202:可信锚收到参数Ri后,再次生成一个随机数 然后为节点i生成公钥见证令牌,记作WTi:
然后可信锚将 发送给节点i;
S203:节点i收到 后,用下列公式计算得到私钥
得到私钥后,利用与比特币类似的公钥生成方法生成公钥 最终,各个节点得到公私钥对及公钥见证令牌:
5.根据权利要求2所述的数据存储索引方法,其特征在于:在步骤S3中,所述的数据提供节点上传原始数据,所述的数据存储索引模块对上述原始数据进行加密存储,并从中提取出元数据而形成数据索引的方法包括下列步骤:
S301:数据提供节点上传原始数据,数据存储索引模块根据数据提供节点的选择对上述原始数据进行加密存储,并附上相应数据提供节点的数字签名;
S302:对原始数据进行统一格式化处理,然后从中提取出数据的特征,即元数据,为数据索引提供一个标准的资源分类目录;
S303:确定原始数据的域关联性;设Ω1为查询域,Ω2为索引域,对于查询域Ω1,索引域Ω2,c(Ω1,Ω2)=|Ω1∩Ω2|/|Ω1|表示为域的关联度,|·|表示集合元素的个数;一般的,c(Ω1,Ω2)∈[0,1];c与关联性成正比,关联性与数据的可检索性也成正比;
S304:依据上述域关联性,数据提供节点结合局部敏感计算出哈希函数值h(Ω),然后将哈希函数值h(Ω)分成m个子区,每个子区包含n行,然后数据提供节点用如下公式计算出各子区之间的相似度Si:
P(Si|m,n)=1-(1-Sin)m
然后,数据提供节点依据相似度Si得到最终的数据索引Ω。
6.根据权利要求2所述的数据存储索引方法,其特征在于:在步骤S4中,所述的共识模块基于共识算法将数据索引写入区块链的方法包括下列步骤:
S401:节点生成请求数据包:{h1(D),Ω,Sigi,WTi},然后向区块链网络发起上传请求;
S402:各节点收到请求数据包后,对数据进行基于数据量的共识验证,当前区块链网络中数据量贡献量最大的节点将获得记账权,负责验证该区块;获得记账权的节点将请求数据包生成带时间戳的新区块,并进行验证;
S403:获得记账权的节点将新区块广播到区块链网络中,各区块链备份节点将该新区块放到区块链尾部,由此形成新的区块链。

说明书全文

一种基于链的数据存储索引系统及方法

技术领域

[0001] 本发明属于区块链技术领域,特别是涉及一种基于区块链的数据存储索引系统及方法。

背景技术

[0002] 数据是科技发展的原动,同时是大数据时代引领社会发展的主要源泉。大数据技术在全球范围内对金融、能源、医疗等行业的发展起到了巨大的推动作用,随之而来的是,各领域的数据结构和规模日益庞大。为挖掘数据潜在价值,各个国家和组织都在大力推动数据开放共享。然而数据开放共享自提出以来一直处在信息孤立的“囚徒困境”之中,如何打破“信息孤岛”发挥共享效用是一个亟待解决的难题。
[0003] 目前,打破信息孤岛的主要方式是数据交易和数据开放两种共享模型。无论是数据交易亦或数据开放,都无法避开数据的隐私保护问题。由于数据持有者在采集数据的过程中会收集一些用户敏感信息,如社交、生活习惯等。这些数据一旦被共享,用户的隐私无法得到保障。传统的数据共享由于需要可信第三方的参与,导致了数据提供者无法在共享开始后控制数据的所有权,进而无法保证自己的数据隐私;为了解决该问题,数据提供者会将数据进行大规模清洗,使得所共享的数据无法真实反映原始数据所富含的价值。隐私问题成为数据共享亟待解决的难题,因此有必要研究一种为数据共享提供隐私保护的数据存储索引方法,在数据隐私不泄露的情况下,保证数据所有者愿意共享有价值的数据,从而发挥数据潜在的巨大价值,为互联网乃至人类社会的发展提供有力的支持。
[0004] 区块链作为中本聪(Satoshi nakamoto)比特币项目的核心技术,因其特有的去中心化、开放性、匿名性、可追溯及不可篡改等特性,被产业界和学术界一致认为在金融、物联网、大数据共享等众多领域有着广泛的应用前景。目前基于区块链的数据共享模型已有不少,但各方案都针对特定结构的数据而设计,无法适用于其他共享需求场景,且由于不同数据的隐私特性差异,如何在满足多种不同应用场景的同时,保证对数据的隐私保护是一个难题。

发明内容

[0005] 为了解决上述问题,本发明的目的在于提供一种基于区块链的数据存储索引系统及方法,以解决现有数据共享过程中第三方可能泄露数据,数据提供节点失去对数据的绝对控制权、数据安全无法保障的技术问题。
[0006] 为了达到上述目的,本发明提供的基于区块链的数据存储索引系统包括数据存储索引模块以及共识模块;
[0007] 所述的数据存储索引模块负责为数据提供安全高效存储,并提取出元数据而形成数据索引,所用的存储索引智能合约可为数据发布提供高效安全的自动执行机制;
[0008] 所述的共识模块基于共识算法将上述数据索引写入区块链,为数据发布一个隐私、防篡改、可证明安全的分布式数据库;同时能够防止数据发布者上传虚假信息,为将来可能出现的争议提供历史数据溯源;系统所采用的共识机制是依据所有数据提供节点所贡献的数据量大小。
[0009] 利用所述基于区块链的数据存储索引系统的数据存储索引方法包括按顺序进行的下列步骤:
[0010] S1:所述的数据存储索引模块设置一个可信锚,可信锚生成系统参数并存储,然后向各个节点发布系统参数;
[0011] S2:区块链网络中各个节点分别进行系统注册,然后由可信锚生成公钥验证令牌并发回节点,节点根据公钥验证令牌生成各自的公私钥对,并最终获得公钥验证令牌:
[0012] S3:数据提供节点上传原始数据,所述的数据存储索引模块对上述原始数据进行加密存储,并从中提取出元数据而形成数据索引:
[0013] S4:所述的共识模块基于共识算法将数据索引写入区块链。
[0014] 在步骤S1中,所述的数据存储索引模块设置一个可信锚,可信锚生成系统参数并存储,然后向各个节点发布系统参数的方法包括下列步骤:
[0015] S101:可信锚选择一个大素数p,基于有限域Fp的椭圆曲线E(Fp):y2=x3+ax+b(mod p),其中a,b∈Fp且4a3+27b2(mod p)≠0;存在基点P∈Fp,由基点P生成的子群的阶为大素数q;
[0016] S102:可信锚选择抗碰撞散列函数h0,h1,h2:{0,1}*→Zq*,以及h3:{0,1}*→{0,1}k;
[0017] S103:可信锚选择随机数s∈Zq*作为自己的私钥 并计算公钥由上述步骤S101、S102中的参数以及S103中的公钥构成系统参数;
[0018] S104:可信锚将上述系统参数存储在本地,并向各个节点发布系统参数,具体如下:
[0019] {p,q,P,E(Fp),TA,h0,h1,h2,h3}。
[0020] 在步骤S2中,所述的区块链网络中各个节点分别进行系统注册,然后由可信锚生成公钥验证令牌并发回节点,节点根据公钥验证令牌生成各自的公私钥对,并最终获得公钥验证令牌的方法包括下列步骤:
[0021] S201:节点i选择一个大随机数ri∈Zq*,并计算参数:
[0022] Ri=h0(ri)P
[0023] 然后,节点i通过安全信道将参数Ri发送给可信锚;
[0024] S202:可信锚收到参数Ri后,再次生成一个随机数 然后为节点i生成公钥见证令牌,记作WTi:
[0025]
[0026] 然后可信锚将 发送给节点i;
[0027] S203:节点i收到 后,用下列公式计算得到私钥
[0028]
[0029] 得到私钥后,利用与比特币类似的公钥生成方法生成公钥 最终,各个节点得到公私钥对及公钥见证令牌:
[0030] 在步骤S3中,所述的数据提供节点上传原始数据,所述的数据存储索引模块对上述原始数据进行加密存储,并从中提取出元数据而形成数据索引的方法包括下列步骤:
[0031] S301:数据提供节点上传原始数据,数据存储索引模块根据数据提供节点的选择对上述原始数据进行加密存储,并附上相应数据提供节点的数字签名;
[0032] S302:对原始数据进行统一格式化处理,然后从中提取出数据的特征,即元数据,为数据索引提供一个标准的资源分类目录;
[0033] S303:确定原始数据的域关联性;设Ω1为查询域,Ω2为索引域,对于查询域Ω1,索引域Ω2,c(Ω1,Ω2)=|Ω1∩Ω2|/|Ω1|表示为域的关联度,|·|表示集合元素的个数;一般的,c(Ω1,Ω2)∈[0,1];c与关联性成正比,关联性与数据的可检索性也成正比;
[0034] S304:依据上述域关联性,数据提供节点结合局部敏感计算出哈希函数值h(Ω),然后将哈希函数值h(Ω)分成m个子区,每个子区包含n行,然后数据提供节点用如下公式计算出各子区之间的相似度Si:
[0035] P(Si|m,n)=1-(1-Sin)m
[0036] 然后,数据提供节点依据相似度Si得到最终的数据索引Ω。
[0037] 在步骤S4中,所述的共识模块基于共识算法将数据索引写入区块链的方法包括下列步骤:
[0038] S401:节点生成请求数据包:{h1(D),Ω,Sigi,WTi},然后向区块链网络发起上传请求;
[0039] S402:各节点收到请求数据包后,对数据进行基于数据量的共识验证,当前区块链网络中数据量贡献量最大的节点将获得记账权,负责验证该区块;获得记账权的节点将请求数据包生成带时间戳的新区块,并进行验证;
[0040] S403:获得记账权的节点将新区块广播到区块链网络中,各区块链备份节点将该新区块放到区块链尾部,由此形成新的区块链。
[0041] 本发明提供了基于区块链的数据存储索引系统及方法具有以下有益效果:基于元数据建立索引,并通过区块链来公开发布的方式,区块链不仅可以有效保证发布的数据索引无法被篡改,而且所用的存储索引智能合约可为数据发布提供高效安全的自动执行机制。通过本发明提供的系统及方法,可以缓解现有数据共享过程中第三方可能泄露数据,数据提供节点失去对数据的绝对控制权、数据安全无法保障等问题,对于数据共享的发展具有很强的理论意义和现实意义。附图说明
[0042] 图1为本发明提供的区块格式图。

具体实施方式

[0043] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0044] 对于目前现有数据共享过程中第三方可能泄露数据,数据提供节点失去对数据的绝对控制权、数据安全无法保障等问题,基于此,本发明实施例提供的一种基于区块链的数据存储索引系统及方法,可以缓解现有数据共享过程中第三方可能泄露数据,数据提供节点失去对数据的绝对控制权、数据安全无法保障等问题。
[0045] 本发明实施例提供基于区块链的数据存储索引系统包括数据存储索引模块以及共识模块。
[0046] 所述的数据存储索引模块负责为数据提供安全高效存储,并提取出元数据而形成数据索引,所用的存储索引智能合约可为数据发布提供高效安全的自动执行机制;
[0047] 所述的共识模块基于共识算法将上述数据索引写入区块链,为数据发布一个隐私、防篡改、可证明安全的分布式数据库;同时能够防止数据发布者上传虚假信息,为将来可能出现的争议提供历史数据溯源;系统所采用的共识机制是依据所有数据提供节点所贡献的数据量大小。
[0048] 基于本实施例提供的数据存储索引模块以及共识模块,本发明实施例还提供了一种基于区块链的数据存储索引方法,其包括按顺序进行的下列步骤:
[0049] S1:所述的数据存储索引模块设置一个可信锚(Trust Anchor,简称TA),可信锚生成系统参数并存储,然后向各个节点发布系统参数;
[0050] S2:区块链网络中各个节点分别进行系统注册,然后由可信锚生成公钥验证令牌并发回节点,节点根据公钥验证令牌生成各自的公私钥对,并最终获得公钥验证令牌:
[0051] S3:数据提供节点上传原始数据,所述的数据存储索引模块对上述原始数据进行加密存储,并从中提取出元数据而形成数据索引:
[0052] S4:所述的共识模块基于共识算法将数据索引写入区块链。
[0053] 在步骤S1中,所述的数据存储索引模块设置一个可信锚,可信锚生成系统参数并存储,然后向各个节点发布系统参数的方法包括下列步骤:
[0054] S101:可信锚选择一个大素数p,基于有限域Fp的椭圆曲线E(Fp):y2=x3+ax+b(mod p),其中a,b∈Fp且4a3+27b2(mod p)≠0;存在基点P∈Fp,由基点P生成的子群的阶为大素数q;
[0055] S102:可信锚选择抗碰撞散列函数h0,h1,h2:{0,1}*→Zq*,以及h3:{0,1}*→{0,1}k;
[0056] S103:可信锚选择随机数s∈Zq*作为自己的私钥 并计算公钥由上述步骤S101、S102中的参数以及S103中的公钥构成系统参数;
[0057] S104:可信锚将上述系统参数存储在本地,并向各个节点发布系统参数,具体如下:
[0058]
[0059] 在步骤S2中,所述的区块链网络中各个节点分别进行系统注册,然后由可信锚生成公钥验证令牌并发回节点,节点根据公钥验证令牌生成各自的公私钥对,并最终获得公钥验证令牌的方法包括下列步骤:
[0060] S201:节点i选择一个大随机数ri∈Zq*,并计算参数:
[0061] Ri=h0(ri)P
[0062] 然后,节点i通过安全信道将参数Ri发送给可信锚;
[0063] S202:可信锚收到参数Ri后,再次生成一个随机数 然后为节点i生成公钥见证令牌,记作WTi:
[0064]
[0065] 公钥见证令牌WTi的作用是当发生仲裁时来验证节点i的公钥,然后可信锚将发送给节点i;
[0066] S203:节点i收到 后,用下列公式计算得到私钥
[0067]
[0068] 得到私钥后,利用与比特币类似的公钥生成方法生成公钥 最终,各个节点得到公私钥对及公钥见证令牌:
[0069] 在步骤S3中,所述的数据提供节点上传原始数据,所述的数据存储索引模块对上述原始数据进行加密存储,并从中提取出元数据而形成数据索引的方法包括下列步骤:
[0070] S301:数据提供节点上传原始数据,数据存储索引模块根据数据提供节点的选择对上述原始数据进行加密存储,并附上相应数据提供节点的数字签名;
[0071] 具体的,原始数据保存在本地。为了进一步保证原始数据的安全性,防止内部泄露,本发明建议对原始数据进行加密存储,并附上相应数据提供节点的数字签名。具体来说,数据提供节点使用不同的假名来加密不同的原始数据,以减少由同一数据提供节点生成的原始数据之间的关联;但对原始数据加密是可选的,最终由数据提供节点决定是否加密;可选地,为保证原始数据的安全性,本发明对所有的原始数据都提供加密存储策略,加密方式为:Encryp(D)PKi;
[0072] S302:对原始数据进行统一格式化处理,然后从中提取出数据的特征,即元数据,为数据索引提供一个标准的资源分类目录;
[0073] 具体的,设某数据提供节点需要发布一种类型的数据D,其首先利用本地的数据字典和域索引方法来提取该数据的特征,即元数据(Meta Data,简称MD)。域索引是一种基于局部敏感哈希的数据索引方案,为索引提供一个标准的资源分类目录。
[0074] S303:确定原始数据的域关联性;设Ω1为查询域,Ω2为索引域,对于查询域Ω1,索引域Ω2,c(Ω1,Ω2)=|Ω1∩Ω2|/|Ω1|表示为域的关联度,|·|表示集合元素的个数。一般的,c(Ω1,Ω2)∈[0,1]。c与关联性成正比,关联性与数据的可检索性也成正比;
[0075] S304:依据上述域关联性,数据提供节点结合局部敏感计算出哈希函数值h(Ω),然后将哈希函数值h(Ω)分成m个子区,每个子区包含n行,然后数据提供节点用如下公式计算出各子区之间的相似度Si:
[0076] P(Si|m,n)=1-(1-Sin)m
[0077] 然后,数据提供节点依据相似度Si得到最终的数据索引Ω。
[0078] 在步骤S4中,所述的共识模块基于共识算法将数据索引写入区块链的方法包括下列步骤:
[0079] S401:节点生成请求数据包:{h1(D),Ω,Sigi,WTi},然后向区块链网络发起上传请求;
[0080] S402:各节点收到请求数据包后,对数据进行基于数据量的共识验证,当前区块链网络中数据量贡献量最大的节点将获得记账权,负责验证该区块;获得记账权的节点将请求数据包生成带时间戳的新区块,并进行验证;
[0081] 所述的区块格式如图1所示,区块头部各参数具体表示如下:
[0082] 版本:区块链为保证区块共识的简便性而设定的区块版本信息,目的是为了给当前生成区块一个所属版本标签;
[0083] 区块编号:又叫区块高度,记录当前生成区块在整个区块链网络中的排序;
[0084] 上一区块哈希:在当前区块生成前网络中区块编号最大的区块的哈希值;
[0085] 当前区块哈希:当前生成区块的哈希值,目的是为了给下一区块提供上一区块哈希;
[0086] 时间戳:即当前区块生成时的系统时间,具体格式为UNIX时间戳格式;
[0087] 默克尔树根:当前区块中所打包的所有数据上传请求交易,以默克尔树形式存储,所得到的根植作为默克尔树根;
[0088] 区块内容即每个交易的具体细节,包括DP的相关信息。此外,区块中的附加内容是可选的,DP可以对数据作初步分析,将分析方法和分析结果一并作为索引,提供更为详细的数据价值说明;
[0089] 为了避免节点数据量规模差异带来的中央权威,在PoDS的基础上,本发明设计了轮值模式,即当前记账节点无权记录未来的k个区块,k值取决于区块链网络中节点的个数N,具体计算公式为:log2N。
[0090] S403:获得记账权的节点将新区块广播到区块链网络中,各区块链备份节点将该新区块放到区块链尾部,由此形成新的区块链。
[0091] 最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈