一种基于区块链的数据库管理方法及系统技术方案

技术编号:28558873 阅读:42 留言:0更新日期:2021-05-25 17:53
本发明专利技术公开了一种基于区块链的数据库管理方法及系统,包括:监控服务器将数据库中的数据拆分成m个分表,对每一分表进行k个备份,将各备份存储在各数据库节点P

【技术实现步骤摘要】
一种基于区块链的数据库管理方法及系统
本专利技术属于计算机应用
,尤其涉及一种基于区块链的数据库管理方法及系统。
技术介绍
区块链技术最早应用于比特币系统中,作为比特币背后的分布式记账平台,在无集中式管理的情况下能支持系统的长期稳定运行。一个基于区块链的去中心系统能够有效解决中心化系统普遍存在的高成本、低效率和数据存储不安全等问题。区块链的核心优势包括去中心化、时序数据、集体维护、可编程和安全可信等。在区块链系统中,数据的验证、记账、存储、维护和传输等过程均是基于分布式共识机制,各节点通过密码学、数学等方法实现博弈平衡,以维护数据的一致性和安全性。而且,区块链采用带有时间戳的链式区块结构存储数据,从而为数据增加了时间维度,具有极强的可验证性和可追溯性(时序数据)。集体维护是指区块链系统采用特定的共识机制来确保各参与节点对区块数据和账本达成一致,确保所有节点维护数据的一致、安全和可追溯。可编程是指区块链技术提供灵活的智能合约机制,为可为用户提供各种定制化的业务逻辑运行策略,从而提高区块链系统的可操作性。但是区块链也存在性能问题,区块本文档来自技高网...

【技术保护点】
1.一种基于区块链的数据库管理方法,适用于由一组监控服务器集群、一组排序服务器集群、n个数据库节点及若干用户端组成的区块链,其步骤包括:/n1)监控服务器将数据库中的数据拆分成m个分表,对每一分表进行k个备份,将各备份存储在各数据库节点P

【技术特征摘要】
1.一种基于区块链的数据库管理方法,适用于由一组监控服务器集群、一组排序服务器集群、n个数据库节点及若干用户端组成的区块链,其步骤包括:
1)监控服务器将数据库中的数据拆分成m个分表,对每一分表进行k个备份,将各备份存储在各数据库节点Pi中,其中2≤k≤m≤n≤m*k,1≤i≤n;
2)用户端需要获取数据时,通过询问监控服务器和/或查询本地数据与数据库服务器地址映射表,根据数据所在的数据库服务器地址,向该地址所在的数据库服务器发送数据操作请求;
3)该地址所在的数据库服务器预执行交易Bj,并将预执行交易结果Tj发送给排序服务器;
4)排序服务器接收到各交易的预执行结果集{Tj}后,将交易排好序后打包出块,并将包含Q个交易的区块发送给数据库节点Pi,同时将出块信息同步给监控服务器,其中1≤j≤Q;
5)各数据库节点Pi依据包含Q个交易的区块,依次执行各交易Bj,并将执行结果记录到本地数据库。


2.如权利要求1所述的方法,其特征在于,通过以下步骤将隐私数据存储到数据库:
1)数据拥有者生成加密密钥ek和解密密钥dk;
2)利用加密密钥ek加密隐私数据的明文D,得到密文[D];
3)通过一主动更新的门限秘密共享方案将解密密钥dk分享成多个片段dki,并利用节点Pi的公钥将片段dki加密得到片段密文[dki],其中1≤i≤n;
4)数据拥有者依据设置的访问策略policy,计算哈希值h=H(D,[D],policy),创建交易TW=<h,policy>并附带其签名σW;
5)将交易TW、签名σW、密文[D]与片段密文[dki]发送到集合P,其中集合P包括全部或部分的数据库节点Pi;
6)集合P中的数据库节点Pi验证签名σW,解密并验证片段密文[dki],将交易TW存储至区块链上,将密文[D]存储至集合P中的部分或全部数据库节点Pi。


3.如权利要求2所述的方法,其特征在于,通过以下步骤访问数据库中的隐私数据:
1)数据使用者创建一个交易TR=<attr,pkB>,向集合P请求访问并附带数据使用者的签名,其中attr为数据使用者的属性,pkB为数据使用者的身份;
2)若属性attr满足访问策略policy,集合P将通过身份pkB加密后的片段与密文[D]发送给数据使用者。


4.如权利要求2所述的方法,其特征在于,集合P定期运行主动更新的门限秘密共享方案的更新算法,以更新所有的片段进行全局状态更新。


5.如权利要求1所述的方法,其特征在于,用户端通过以下策略得到数据所在的数据库服务器地址:
1)通过询问监控服务器,得到数据所在的数据库服务器地址,其步骤包括:
a)向监控服务器发送请求F0,得到数据节点信息H0;
b)根据数据节点信息H0,向k个数据库节点请求所述数据;
c)若k个数据库节点都能正确返回所述数据,则将k个数据库节点作为数据所在的数据库服务器地址;否则,向监控服务器发送请求F1,以使监控服务器告知不能正确返回所述数据的数据库节点从能正确返回所述数据的数据库节点中获取所述数据,并将k个数据库节点作为数据所在的数据库服务器地址;
2)查询本地数据与数据库服务器地址映射表,得到数据所在的数据库服务器地址,其步骤包括:
a)通过查询本地数据与数据库服务器地址映射表,得到数据节点信息H1;
b)根据数据节点信息H1,向k个数据库节点请求所述数据;
c)若数据库节点都能正确返回所述数据,并将k个数据库节点作为数据所在的数据库服务器地址;
3)通过询问监控服务器和查询本地数据与数据库服务器地址映射表,得到数据所在的数据库服务器地址,其步骤包括:
a)通过查询本地映射关系表,得到数据节点信息H2;
b)根据数据节点信息H2,向k个数据库节点请求所述数据;
c)若k个数据库节点不能都正确返回所述数据,向监控服务器发送请求F2,以使监控服务器判断本地映射关系表与监控服务器中映射关系表的一致性;
若一致,则监控服务器告知不能正确返回所述数据的数据库节点从能正确返回所述数据的数据库节点中获取所述数据,并将k个数据库节点作为数据所在的数据库服务器地址;
若不一致,则通过监控服务器更新本地映射关系表,并得到数据节点信息H3;根据数据节点信息H3,向k个数据库节点请求所述数据;
若k个数据库节点都能正确返回所述数据,则将数据库节点作为数据所在的数据库服务器地址;
若k...

【专利技术属性】
技术研发人员:王明生刘冬冬亓彬范雄马杰王晓蓓罗明邓智洪
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

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

1