一种基于区块链的选择性云数据查询系统

文档序号:26803111发布日期:2021-09-29 02:11阅读:167来源:国知局
一种基于区块链的选择性云数据查询系统

1.本发明属于区块链和云计算技术领域,特别涉及一种基于区块链的选择性云数据查询系统。


背景技术:

2.区块链是一种将数据区块按照时间戳顺序链接的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本,是一种有序的分布式分类帐本,其具有“去中心化”和“不可篡改”等显著特点。该技术自提出以来已经被扩展到金融以外的其他应用领域。作为一种分布式账本技术,它可以在不需要信任的情况下验证和存储交易,区块链网络中的块包含了网络中被称为事务的信息,信息类型可以是某笔交易、操作日志记录等。区块链是一种去中心化的数据库,需要区块链网络中的所有处理节点集体进行维护。数据区块存储两部分数据:至少一个区块链信息和区块头数据(block header)。其中每个区块链信息包括一笔交易的详细内容(例如交易金额、账户信息或签名等),区块头数据包括上一数据区块的根哈希(prevhash),以及当前数据区块的根哈希(root hash)等信息。由于数据区块是按照链式结构存储的,一旦某个数据区块的区块链信息发生改变,那么该数据区块的root hash就会改变,该数据区块的root hash与下一数据区块的prev hash不一致。基于此,通过对prev hash的校验,确保了数据区块存储的区块链信息不可篡改。于是,区块链系统可以认为是,由分布式网络上的互相不完全信任的计算机,通过共识规则,共同维护一套可追溯、不可篡改的链式数据的系统。由于数据和平台不被任何机构单方面控制,区块链系统可看作是高安全、高可靠、可信的去中心化的基础计算框架。
3.智能合约是旨在促进、验证和执行涉及多方的数字谈判或程序的协议,也是将事务执行者(参与者)绑定在一个协议上以完成一个动作(事务)的计算机算法。智能合约不需要在区块链上形成第三方就能允许交易的执行,且这些交易是不可逆的。
4.云计算(cloud computing)是一种新兴的计算模式,它将计算任务分布在由大量计算节点组成的资源池上,使各种应用系统能够根据需要获取计算能力、存储空间和信息服务。云计算的出现,使得数据挖掘技术和平台有了新的发展方向,结合云计算的虚拟化、高扩展、高可用性构建新一代的数据挖掘平台是一种趋势。
5.针对大数据时代下云计算本身对企业或个人数据的集中高效化管理带来的部分便利和数据所有者对云存储数据的所有权细粒度控制存在的问题,有必要对现有的云数据查询进行改进。


技术实现要素:

6.本发明提供了一种基于区块链的选择性云数据查询系统,以便于解决数据所有者如何制定数据加密策略以将数据加密后存储在云服务器中,以及数据用户在执行数据查询时的数据查询处理时,和如何将数据用户的操作日志进行上链,实现用户行为的有效跟踪和访问权限控制。
7.本发明采用的技术方案是,一种基于区块链的选择性云数据查询系统,包括,用户端子系统、云存储器和数据管理子系;
8.其中,用户端子系统包括数据所有者和数据用户(数据使用者,即数据访问者),即数据所有者所对应的用户端和数据用户所对应的用户端,数据所有者将个人数据加密后外包给云存储器,并将数据访问策略计算外包给数据管理子系统;
9.云存储器,用于对用户端子系统上传的数据进行存储和管理;
10.数据管理子系统,用于基于预设的策略生成方式,基于数据所有者设置的信息生成数据访问策略,用于接收数据用户的查询请求并对数据用户进行身份验证,以及基于查询请求执行查询任务,用于监控用户端子系统对云存储器数据(云存储器存储的数据)的操作行为,以及将云存储数据的访问事件和操作日志作为交易打包成块发布到区块链网络;
11.其中,数据所有者将个人数据加密后外包给云存储器的数据交互包括:
12.数据管理子系统在系统初始化时会生成两组参数,其中一组用于数据所有者生成加密密钥,另一组用于生成数据用户的解密密钥;
13.数据所有者在数据管理子系统进行注册,当注册完成后会收到数据管理子系统生成的一组参数,该组参数用于生成数据的加密密钥;其中,
14.数据所有者基于系统生成的参数和自定义的数据用户可访问列表按照密钥派生技术生成一组不同的对称加密密钥加密待上传数据;
15.数据所有者将加密后的待上传数据上传至云存储器;
16.数据所有者根据自定义的数据用户可访问列表生成一个acl列表发送给数据管理子系统;
17.数据管理子系统根据acl列表生成策略集并存储在数据管理子系统的访问策略数据库中,按照生成的另一组参数利用同样的密钥派生技术生成不同的解密密钥和用户端执行数据查询时需携带的数据查询请求参数给对应的数据用户;
18.数据用户查询数据时的数据交互包括:
19.数据用户按照接收的的数据查询请求参数生成数据查询请求并发送给数据管理子系统;
20.数据管理子系统鉴别发送数据查询请求的数据用户的身份是否合法,若合法则继续执行后续步骤,否则丢弃所述数据查询请求;
21.数据管理子系统按照数据使用者发送的查询请求中的参数和数据检索字段生成对应的数据索引,再基于该数据索引向云存储器发送数据查询计算请求;
22.云存储器检索数据并将结果数据返回给数据管理子系统;
23.数据管理子系统对检索返回的结果数据执行过滤合约,合约条件由数据管理子系统的访问策略数据库中存储的数据访问策略作为条件进行指定;
24.数据管理子系统将过滤后的结果返回给数据使用者,数据使用者基于本地的解密密钥进行解密以获取所查询的数据内容。
25.进一步的,数据管理子系统包括智能合约生成器,其生成三类智能合约,分别为:
26.(1)a合约,用于按照数据所有者的访问策略对数据用户数据查询结果的过滤;
27.(2)b合约,用于周期性从所有数据用户处检索数据操作日志进行汇总上链;
28.(3)c合约,用于一个a合约执行后对数据用户查询结果的监控。
29.本发明实施例提供的技术方案至少带来如下有益效果:
30.本发明基于现有的区块链平台,提供了一种较为合理的基于区块链的选择性云数据查询方案,数据所有者的数据被加密后存储到云服务器中,再由专门的数据管理基础设施(数据管理子系统)负责数据所有者对外包数据的管理控制和数据用户经与数据所有者协商后对具有可访问权限的云存储数据的查询计算和访问追踪。在数据管理基础设施中利用智能合约实现数据所有者的访问策略的具体实现和数据用户的查询计算条约指定,再由数据管理子系统根据数据所有者的传输列表对发起数据查询请求的数据用户的访问身份做验证管理(如数据管理子系统设置的专门的鉴权器完成),处理节点完成查询和计算任务,降低了数据所有者和数据用户本身在执行外包数据的访问计算时的任务工作量,有助于提高系统的通信和计算效率,使得系统可扩展性较强。且引入了选择性加密方法使得外包数据的访问管理更加具有细粒度控制,降低了数据结果推理的风险。这样一种方案为云数据选择性共享的通用可扩展提供了一种全新的思路,减轻了参与方的计算工作量,数据在传递过程中始终以加密的形式进行呈现保证了数据的隐私安全,且数据用户的数据操作记录被智能合约收集保存在区块链上,区块链技术的不可篡改性也保证了操作记录的真实可靠,即使数据用户节点出现作恶会及时的被智能合约监控从而做出惩罚保障了系统的稳定。
附图说明
31.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
32.图1是本发明实施例提供的一种基于区块链的选择性云数据查询系统的系统架构示意图;
33.图2是本发明实施例中,提供的三类合约架构示意图;
34.图3是本发明实施例中,系统所包括的三个子系统的数据交互过程示意图;
35.图4是本发明实施例中,选择性云数据查询查询的工作过程示意图。
具体实施方式
36.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
37.本发明实施例提供了一种基于区块链的选择性云数据查询系统,在该系统中,数据所有者利用自定义的访问策略构建一种选择性加密方法,将数据元组列表按照访问权限用不同的密钥进行加密后外包给云服务器,并将访问策略通知给数据管理基础设施(即数据管理子系统),由数据管理基础设施按照访问策略计算出不同的解密密钥并分发给特定数据用户,同时生成查询请求服务并需传递的参数函数给数据用户,数据用户发送数据查询请求时的查询计算也是通过数据管理基础设施进行实现,实现计算效率的有效提高,查询的结果经过虚拟智能引擎按照智能合约设计要求进行过滤,避免了不同元组结果之间关联性的暴露,同时数据用户操作数据的日志被监控智能合约收集上链。
38.参见图1,本发明实施例提供的基于区块链的选择性云数据查询系统包括三个相互通信的子系统,分别为:
39.第一子系统,即用户端子系统,包括的数据用户有数据所有者和数据用户,数据用户从系统中访问数据,例如用于医疗保健、研究或其他有用的目的,数据所有者的数据是从不同服务中汇总而来,例如数据拥有者是一个数据中心机构,收集的数据由数据所有者控制,数据所有者允许他们认为合适的参与者访问他们的数据;第一子系统代表的是用户终端,而用户终端的个人计算能力有限,所以第一子系统中的数据所有者将个人数据加密后外包给云存储器即第二子系统,并将数据的策略计算外包给数据管理子系统即第三子系统;
40.第二子系统,即云存储器,包括已经存在的数据库系统,这些数据库系统负责完成特定的任务(存储和管理数据);
41.第三子系统,即数据管理子系,包括为实现选择性共享总体目标而执行不同功能的计算服务器。第三子系统与第一和第二子系统进行交互,用于管理外包数据、聚合数据操作策略,第三子系统包括:查询系统和鉴权器构成的子系统,处理节点和智能合约生成器构成的子系统,acl列表(访问控制列表)、策略中心和访问测量数据库构成的子系统,以及虚拟处理引擎和区块链网络。执行的操作包括:
42.(1)按照数据用户请求执行查询计算任务;
43.(2)对云存储数据的系列操作进行监视;
44.(3)将数据所有者想要进行的数据访问策略进行实现;
45.(4)云存储数据访问事件和操作日志作为交易打包成块发布到区块链网络;
46.(5)判断数据用户的查询请求是否符合身份。
47.参见图2,本发明实施例中,数据管理基础设施中的智能合约生成器将生成三类智能合约,分别为:
48.(1)a合约,由数据管理子系统中的智能合约生成器生成,被用于按照数据所有者的访问策略对数据用户数据查询结果的过滤,a合约在数据用户发送数据查询请求并经过鉴权器验证身份后转交给智能合约生成器,且在处理节点子系统时进行创建,生成的合约实例具有确定的合约地址和合约代码,合约代码部分主要为合约的功能函数f

a()的功能实现,该函数即是完成对数据用户查询结果的过滤功能,该函数的输入包括:调用a合约执行选择性数据查询的数据用户x
m
、查询到的数据的数据来源即数据所有者y、从策略中心处提取出的由数据所有者定义的该数据用户可访问的数据元组列表t1,t2,...,t
n
,以及针对数据元组列表中每条数据元组可做的(允许的)操作(t1:w,t2:w,...,t
n
:r)等;
49.(2)b合约,是由数据管理子系统中的智能合约生成器生成的被用于周期性从系统所有数据用户处检索数据操作日志进行汇总上链,合约在数据所有者和数据用户在系统中注册成功后进行创建,生成的合约实例具有确定的合约地址和合约代码,合约代码部分主要为合约的功能函数f

b()的功能实现,该函数即是完成周期性从数据用户处检索数据操作日志的功能,该函数的输入包含合约执行周期t
time
、数据用户列表x1,x2,...,x
n
、检索操作日志的日志格式要求x
i
:timestamp:t
j
:(w/r),其中timestamp表示数据用户对可访问列表数据t
j
执行读(r)或写(w)操作的时间戳,以及当前区块高度height
n
等;
50.(3)c合约,是由数据管理子系统中的智能合约生成器生成的被用于一个a合约执
行后对数据用户查询结果的监控,c合约在一个a合约执行完毕后进行创建,生成的合约实例具有确定的合约地址和合约代码,合约代码部分主要为合约的功能函数f

c()的供能实现,该函数负责合约功能的程序化实现,其输入包含所依赖的a合约的合约地址、调用a合约执行数据查询的数据用户x
m
、数据用户的查询结果e
t1
,e
t2
,...,e
tm
、数据用户对数据的操作e
t1
:w,...,e
tm
:r、数据用户的可访问权限元组列表t1,...,t
n
等。
51.并且,a合约和c合约之间具有依赖关系,要利用a合约指定c合约中监控的数据用户对象以及提供数据用户的可操作权限元组列表等,而c合约是在a合约执行完毕后才能创建;c合约提供了数据用户对数据执行何种行动的洞察,而b合约可定期从数据用户处检索其数据操作日志,当检测到数据用户出现违反数据使用的情况,例如对只读元组想要进行写操作、或将自己的访问权限借予不当用户使用等,该数据用户的访问权限可被撤销,即一个用户因违反数据使用条款会被列入黑名单。
52.参见图3,对于第一子系统中数据终端用户的不同身份,本发明实施例提供了针对数据所有者的外包数据过程中的数据交互和数据用户对外包数据的选择性查询时数据交互过程时的处理为:
53.a、数据所有者外包(发送)数据时的数据交互包括:
54.a1:数据所有者在初始化注册完成以后会获得系统颁发的一组参数;
55.a2:数据所有者利用系统颁发的参数和自定义的数据用户可访问列表按照密钥派生技术生成一组不同的对称加密密钥加密待上传数据;
56.a3:数据所有者将已加密好的待上传数据上传到云存储器即第二子系统中;
57.a4:数据所有者根据自定义的数据用户可访问列表生成一个acl列表发送给数据管理子系统即第三子系统;
58.a5:第三子系统中的策略中心根据acl列表生成策略集存储在访问策略数据库中,并按照系统颁发的另一组参数利用同样的密钥派生技术生成不同的解密密钥和终端用户执行数据查询时需携带的参数给对应的终端用户。
59.至此,数据所有者外包数据的操作完成。
60.b、数据用户查询数据时的数据交互包括:
61.b1:第一子系统的数据使用者想要对云存储器中的数据进行选择性查询时,按照第三子系统在数据外包设计过程中给颁发的数据查询请求参数生成相应的查询请求,然后发送给第三子系统;
62.b2:第三子系统中的鉴权器鉴别终端用户的身份是否合法,合法则执行s3,否则直接丢弃;
63.b3:第三子系统按照数据使用者发送的查询请求中的参数和数据检索字段生成对应的数据索引,然后利用该数据索引向云存储器即第二子系统发送数据查询计算请求;
64.b4:第二子系统检索数据以后将结果返回给第三子系统;
65.b5:第三子系统对检索返回的结果数据执行过滤合约,合约条件由第三子系统中访问策略数据库中存储的数据访问策略作为条件进行指定;
66.b6:第三子系统将过滤后的结果返回给数据使用者,数据使用者可利用数据外包设计过程中得到的解密密钥进行解密即可得到最终查询结果。
67.参见图4,在一种可能的实现方式中,本发明实施例中,基于本发明实施例所提供
的基于区块链的选择性云数据查询系统实现数据用户对可访问云存储数据的选择性查询的具体处理过程包括:
68.步骤s1:系统初始化,生成两组参数(用于生成密钥的参数),并将其中一组分配给数据所有者。
69.即系统进行初始化,为选择性数据查询创建基本环境,系统生成两组与系统成员关系密钥相关联的参数,一组参数被分配给数据所有者;
70.步骤s2:数据所有者按照访问权限加密数据并外包给(发送给)云服务器完成注册。
71.数据所有者将所拥有的数据元组列表按照可访问数据用户划分成不同的顶点,并利用分配的参数和派生层次结构经过分层聚类后按照对称加密算法计算出不同顶点的加密密钥,利用加密密钥加密元组列表数据后外包给云服务器进行存储,此时数据所有者注册完毕;
72.步骤s3:数据所有者创建acl列表,包含所拥有的数据元组和每个元组的可访问数据用户集合,然后将acl列表发送给数据管理基础设施中的策略中心进行管理;
73.步骤s4:策略中心利用acl列表创建访问策略和访问矩阵,并创建一个数据用户(数据使用者)在创建访问请求时所要传递参数的函数分发给访问策略包含的数据用户,此时数据用户在系统中被注册完毕,系统还将分发另一组参数给数据用户做以后的身份验证,并利用该组参数和访问策略生成对应的不同解密密钥分发给数据用户;
74.步骤s5:数据所有者和数据用户的身份被检查并存储在一个安全的数据库中,以确保系统中的交易不会被数字签名否定;
75.步骤s6:数据用户m向系统发送数据查询请求,请求计算被数据管理基础设施进行代替处理;
76.步骤s7:查询请求被发送到鉴权器进行数据用户m身份的验证,请求体需要包含系统所分配的验证参数,鉴权器从保存身份的数据库中进行身份检索验证,验证通过后请求转交给查询系统,负责将查询请求处理为合适的格式,然后转交给处理节点和智能合约子系统,若验证不通过直接忽略请求;
77.步骤s8:根据从查询请求中获得的信息,处理节点将构建数据索引并与云存储层执行索引计算;
78.步骤s9:智能合约生成器从策略中心处获取所属数据所有者制定的数据访问策略,并生成一个a合约,用于指定需要对检索数据执行哪些控制操作;
79.步骤s10:区块链系统为一组数据请求共同开启一个虚拟计算环境,该环境从处理节点处获取数据用户云存储数据检索的输出,并对其执行a合约约束,并分析输出结果之间的关联性,避免数据集被提供给数据所有者的其他利益者;
80.步骤s11:虚拟计算环境将分析计算结果返回给处理节点,此时智能合约生成器生成一个c合约,并根据a合约中标定的用户访问权限在结果上进行标记,以此获得数据用户对数据执行何种行动的洞察,若数据用户违反数据使用条件,即可被撤销数据访问权限;
81.步骤s12:处理节点将检索结果返回给数据用户m,数据用户m利用事先分发的解密密钥对结果进行解密即可得到真实计算值。
82.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管
参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
83.以上所述的仅是本发明的一些实施方式。对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1