一种数据存储和读取系统及方法、设备和存储介质与流程

文档序号:17468259发布日期:2019-04-20 05:39阅读:221来源:国知局
一种数据存储和读取系统及方法、设备和存储介质与流程

本发明涉及区块链技术领域,尤其涉及一种数据存储和读取系统及方法、设备和存储介质。



背景技术:

区块链中的公有链,如比特币、瑞波币、以太坊、莱特币和eos等上的数据均是全球化公开,数据公开、透明且不可篡改,但存在以下技术问题:一是人人都可以查看并获取数据,存在隐私泄露的问题;二是每个用户对自己的数据无控制权,任何人均可获取。目前的app应用运营方一般是中心化的系统方案,用户的私有信息等数据内容全部由一个中心化的运营方掌控,这种方式存在以下问题:一、现有的大数据经济时代大背景下,数据就是价值,中心化的运营方会直接使用用户数据内容做一些营销工作,用户不能也没有任何途径可以从自己的数据内容被利用的过程中获得应有权益,这对于用户而言是不公平且不公正的,用户对自己的数据失去了掌握权;二、中心化的系统易受到各种安全威胁,遭受外部攻击,轻则数据泄露,重则数据泄露后被非法利用,给用户带来人身财产利益损失。

区块链中如私有链、联盟链均为许可链,参与到区块链系统中的每个节点都是经过许可的,未经许可的节点不可接入系统中,与公有链相比,属于有限制的去中心化,用户数据单独存储在许可链上仍然存在很大的泄露风险,且用户不具备对自身数据的掌控权。

中国发明专利申请,公开号:cn108111585a;公开日:2018.06.01;公开了一种基于区块链的分布式存储方法,包括:s1.分布式存储网络中的上传者生成上传请求,并将所述上传请求记录在区块链的智能合约中;s2.将要被存储的文件切分为多个文件分片;s3.分布式存储网络中的存储者生成存储请求,并将所述存储请求记录在区块链的智能合约中;s4.在区块链中生成上传者与存储者存储所述文件分片的存储交易;s5.存储者存储所述文件分片。该发明实现了文件的分布式存储,提高了文件存储的安全性。但该发明中的数据实际上还是存储在同一个区块链系统中,且也并没有强调该区块链系统是属于公有区块链还是许可链,用户对数据的支配权不明确,仍然存在用户数据被泄露或滥用的风险。



技术实现要素:

1.发明要解决的技术问题

为了克服上述技术问题,本发明提供了一种数据存储和读取系统及方法、设备和存储介质。它可以在确保数据安全同时,发挥数据的商业化应用价值。

2.技术方案

为解决上述问题,本发明提供的技术方案为:

一种数据存储系统,包括数据分配模块,还包括数据划分模块、数据上传模块和登录模块,登录模块,用于用户登录区块链;数据上传模块,用于上传用户数据;数据划分模块,将数据上传模块上传的用户数据划分成与区块链数量相同的分块数据;数据分配模块将每个分块数据随机存储在不同的区块链上,优选地,所述的区块链为公有链或许可链。

一种数据读取系统,根据以上所述的一种数据存储系统,包括数据读取模块、请求模块、智能合约模块和数据合并模块,请求模块,用于区块链运营方向用户发送获取数据请求和智能合约;智能合约模块,用于约定区块链运营方对数据的使用权限,与用户和区块链运营方的公钥地址关联;数据合并模块,用于合并不同的区块链上经用户同意给区块链运营方使用的数据;数据读取模块,用于读取不同区块链上的分块数据。

优选地,所述的请求模块,还包括用于第三方机构向区块链运营方发送获取数据请求,以及对应的智能合约;智能合约模块,还用于约定第三方机构对数据的使用权限,并与用户、区块链运营方和第三方机构的公钥地址关联;所述的数据合并模块还用于合并不同的区块链上经用户同意给第三方机构使用的数据,优选地,所述的区块链为公有链或许可链。

优选地,智能合约模块,还用于约定第三方机构向区块链运营方和用户支付的代币额度,并与用户、区块链运营方和第三方机构的公钥地址关联。

一种数据存储方法,根据以上所述的一种数据存储系统,以及以上任一项所述的一种数据读取系统,包括以下步骤:

s101、用户登录区块链;

s102、区块链将上传的用户数据划分成与区块链数量相同的分块数据;

s103、将每个分块数据随机存储在不同的区块链上。

一种数据读取方法,根据以上所述的一种数据存储系统,以及以上任一项所述的一种数据读取系统,包括以下步骤:

s201、区块链运营方向用户发送获取数据请求和智能合约;

s202、用户同意后,将存储在不同的区块链上经用户同意发送给区块链运营方的分块数据进行合并;

s203、合并后的用户数据发送给区块链运营方。

优选地,s201中还包括第三方机构向区块链运营方发送的获取数据请求和智能合约,s202中用户同意后,将存储在不同的区块链上经用户同意发送给第三方机构的分块数据进行合并,s203中合并后的用户数据发送给第三方机构。

优选地,与s202同时,按照智能合约的约定,第三方机构向区块链运营方和用户支付代币,或者区块链运营方向用户支付代币。

一种设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器互相连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行以上任一项所述方法。

一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,使所述处理器执行以上任一项所述方法。

3.有益效果

采用本发明提供的技术方案,与现有技术相比,具有如下有益效果:

(1)本发明在存储用户数据的时候将数据分成若干分块数据,分别存储在不同的区块链上,区块链可以为公有链或许可链,公有链的去中心化,使存储在公有链上的数据不可篡改,因存储在公有链上的数据不完整,使得数据在公有链上的公开也没有利用价值,限制级的去中心化的许可链因没有掌握用户所有的数据内容,无法对用户数据进行泄露和滥用,从而使得用户掌握了数据的控制权和使用权,确保了用户数据的安全;

(2)本发明基于用户数据分开存储在不同区块链上,在数据的使用时,必须经过用户同意才能使用,确保用户对数据掌握绝对的使用权,防止用户数据被随意泄露和滥用,避免给用户带来不必要的损失和麻烦;

(3)本发明中第三方机构与区块链运营方之间的智能合约,用户、第三方机构与区块链运营方之间的智能合约是可以存在于同一个智能合约当中的,智能合约中约定数据的使用规则、形式和违约责任等内容,通过这种方式能够有效控制对于许可链运营方不会随意泄露和滥用用户的数据,用户数据可以得到掌控,确保数据安全;

(4)本发明通过这种方式能够有效的控制第三方机构对数据的使用权限,以及对数据的掌握权,并在数据有效利用的过程中获得应有的权益,利用智能合约的强制执行效力,第三方机构或区块链运营方一旦违约,用户会获得相应的赔偿,且使第三方机构或区块链运营方受到应有的惩罚。

附图说明

图1为实施例1的示意图;

图2为实施例1中用户数据存储示意图;

图3为实施例2的示意图;

图4为实施例3的示意图;

图5为实施例5的流程示意图;

图6为实施例6的流程示意图;

图7为实施例7的流程示意图;

图8为实施例8的示意图;

图9为某一数据属性的用户数据存储过程的示意框图;

图10为用户数据在不同区块链上的传输流向示意图。

具体实施方式

为进一步了解本发明的内容,结合附图及实施例对本发明作详细描述。

实施例1

如图1所示,一种数据存储系统,包括数据分配模块,还包括数据划分模块、数据上传模块和登录模块,登录模块,用于用户登录区块链;数据上传模块,用于上传用户数据;数据划分模块,将数据上传模块上传的用户数据划分成与区块链数量相同的分块数据,分块数据至少为2个,即区块链数量至少为2条;数据分配模块将每个分块数据随机存储在不同的区块链上,进一步地,所述的区块链为公有链或许可链。

为进一步地增加数据的安全性,可采取以下措施:1)在数据划分模块对用户数据进行划分前,先对用户数据进行对称加密,然后再进行数据划分;2)在数据划分之后,和数据分配之前,对分块数据进行对称加密,然后在进行数据分配。

如图9所示,对于某一数据属性的用户数据,上传之后,被数据划分模块划分成n(n≥2)个分块数据,数据分配模块随机将这些分块数据分配给不同的区块链存储,区块链的数量也为n条,每条区块链上存储一个分块数据,n条区块链可以一部分是公有链,另一部分为许可链;也可以全部是许可链或公有链。

本实施例的一种数据存储系统,存在于区块链的客户端上,但并不一定存在于所有区块链的客户端上,所述数据存储系统是否存在于某一条区块链的某个节点的客户端上,根据区块链经营方的情况而定,如果区块链经营方同意用户在该区块链上上传数据并划分数据的话,那么该条区块链的客户端上就设有所述的数据存储系统,如果不同意,则没有,但该条区块链可以支持存储用户的分块数据。

如图10所示,假设用户在第i条区块链i的某个节点的客户端上,通过本实施例中的一种数据存储系统的登录模块,登录了区块链i,数据上传模块将用户数据上传,数据划分模块对上传的用户数据划分成n个分块数据后,通过数据分配模块随机分配,存储在区块链i和其他n-1条区块链上。其他n-1条区块链的某些区块链上的某个节点的客户端,也可以设置本实施例的一种数据存储系统,以便于在这些区块链上的用户可以将自己的数据存储,但这n-1条区块链也可以选择不设置本实施例的一种数据存储系统,这根据它们的经营管理而定,但这n-1条区块链支持存储用户的分块数据。

数据划分模块将用户的数据划分后,分别存储在公有链或许可链上,公有链或许可链上分别无法查看到用户的完整数据,确保了用户数据的隐私安全可靠;且公有链的去中心化存储方案,使得数据内容不可篡改,除非联合全网51%以上的算力进行攻击,但这是不可能实现的,确保了数据内容安全可靠。

用户(包括个人、企业、事业单位、团体组织等形式)同时拥有公有链(比如比特币、以太坊、瑞波币等公有链,共识算法为常用的算法不受限制,具有发放代币的功能)和许可链(可为私有链或联盟链,具体情况根据用户自身的需求和性质而定,共识算法为常用的算法不受限制,具有发放代币的功能)的账户和密码或者公钥和私钥;用户在某节点上,通过区块链的客户端(区块链可以为公有链或许可链)登录模块首先登录到上,通过许可链上的数据上传模块将用户数据上传,并通过数据划分模块对上传的用户数据进行划分,将用户数据划分成若干部分,形成若干个分块数据,分块数据的数量与区块链的数量相同,分块数据被数据分配模块随机分配,分别存储在不同的区块链上。这种数据存储模式可以用于存储用户的私钥,密码等重要隐私信息,但数据属性的标识上可以由用户自己定义,或者采用上述1)和2)的措施进行加密,以使区块链经营方不易察觉,确保安全,同时可以在用户忘记私钥或密码等重要隐私信息时,进行找回。用户主动将不同区块链上的分块数据通过数据合并模块合并成完整的数据就可以将数据找回。

如图2所示,本实施例中用户数据被划分成两部分,数据分配模块随机将一个分块数据通过用户一条区块链的账户和密码或者公钥和私钥加密存储到区块链上,数据分配模块将另一个分块数据通过用户的另一条区块链的账户和密码或者公钥和私钥加密存储到另一条区块链上;数据存储根据数据属性进行划分,数据属性具体是指,比如手机号码,邮箱号码,身份证号等通过数据划分模块分别被划分成两部分,并分别按照数据属性分别存储在两条区块链上,同时在两条区块链上均设有包含数据属性的位图表,用于记录每个用户的账户或公钥对应存储哪些数据属性,便于后期数据的查找。

本实施例在存储用户数据的时候将数据分成若干分块数据,分别存储在不同的区块链上,区块链可以为公有链或许可链,公有链的去中心化,使存储在公有链上的数据不可篡改,因存储在公有链上的数据不完整,使得数据在公有链上的公开也没有利用价值,许可链因没有掌握用户所有的数据内容,无法对用户数据进行泄露和滥用,从而使得用户掌握了数据的控制权和使用权,确保了用户数据的安全。

用户数据,对于个人而言,包括但不限于个人照片、出生证明、身份证号码、邮箱、手机号码、某网站的登录账号、qq号码、联系地址等数据;用户数据,对于企业、事业单位或团体组织等而言,包括但不限于社会统一信用代码、组织机构代码、经营内容、对外邮箱、办公电话等数据。

某个人用户在区块链i和区块链j上均有账户、密码、公钥和私钥;区块链i和区块链j可以都为公有链,也可以都为许可链,也可以一条是公有链,另一条是许可链;用户登录到区块链(区块链i或区块链j)上,决定上传以下信息:手机:130********;邮箱:***@163.com;qq号码:5********。数据上传模块将该信息传送到数据划分模块,在区块链上对上述数据进行划分,如图2所示,划分后的数据经过hash后,经数据分配模块随机分配,分别存储在区块链i和区块链j上。其中,手机、邮箱和qq号码为数据属性以位图表的形式存储在区块链i和区块链j上,供后期查找使用。作为优选地方式之一,在用户上传数据以后,区块链i和区块链j可以向用户发送一定量代币作为奖励用户的参与,以及鼓励并扩大用户使用量,便于后期的商业运营。

实施例2

如图3所示,一种数据读取系统,根据实施例1的一种数据存储系统,包括数据读取模块、请求模块、智能合约模块和数据合并模块,请求模块,用于区块链运营方向用户发送获取数据请求和智能合约;智能合约模块,用于约定区块链运营方对数据的使用权限,与用户和区块链运营方的公钥地址关联;数据合并模块,用于合并不同的区块链上经用户同意给区块链运营方使用的数据;数据读取模块,用于读取不同区块链上的分块数据。进一步地,所述的区块链为公有链或许可链。

区块链运营方通过请求模块向用户发送获取数据请求以及智能合约,其中包含获取数据属性的种类,智能合约中包含使用数据的规则、形式、违约条款等内容;用户阅读智能合约后决定是否将数据内容发送给区块链运营方使用,用户要对不同区块链上的数据内容使用私钥解密后,再经过数据合并模块合并,用于区块链中经用户同意的数据属性的数据,以供发给区块链。

本实施例基于用户数据分开存储在不同区块链上,在数据使用时,必须经过用户同意才能使用,确保用户对数据掌握绝对的使用权,防止用户数据被随意泄露和滥用,避免给用户带来不必要的损失和麻烦。

如果在用户数据存储时,为进一步地增加数据的安全性,数据存储系统采取了以下某种措施:1)在数据划分模块对用户数据进行划分前,先对用户数据进行对称加密,然后再进行数据划分;2)在数据划分之后,和数据分配之前,对分块数据进行对称加密,然后在进行数据分配。

那么相应地,在数据读取时,对于第1)种情况,数据合并模块对数据合并后,根据对称加密算法,进行用户数据解密,解密后的用户数据发送给区块链运营方;对于第2)种情况,先根据对称加密算法对获取到的分块数据进行解密,然后再通过数据合并模块对数据合并,合并好的用户数据发送给区块链运营方。

实施例3

本实施例的一种数据读取系统,在实施例2的基础上进一步改进,如图4所示,所述的请求模块,还包括用于第三方机构向区块链运营方发送获取数据请求,以及对应的智能合约;智能合约模块,还用于约定第三方机构对数据的使用权限,并与用户、区块链运营方和第三方机构的公钥地址关联;所述的数据合并模块还用于合并不同的区块链上经用户同意给第三方机构使用的数据,进一步地,所述的区块链为公有链或许可链。

本实施例中第三方机构与许区块链运营方之间的智能合约,用户、第三方机构与区块链运营方之间的智能合约是可以存在于同一个智能合约当中的,智能合约中约定数据的使用规则、形式和违约责任等内容,通过这种方式能够有效控制对于区块链运营方不会随意泄露和滥用用户的数据,即使泄露也不能被非法利用,用户数据可以得到掌控,确保数据安全。

实施例4

本实施例的一种数据读取系统,在实施例2、3的基础上进一步改进,智能合约模块,还用于约定第三方机构向区块链运营方和用户支付的代币额度,并与用户、区块链运营方和第三方机构的公钥地址关联。

本实施例通过这种方式能够有效的控制第三方机构对数据的使用权限,以及对数据的掌握权,并在数据有效利用的过程中获得应有的权益,利用智能合约的强制执行效力,第三方机构或区块链运营方一旦违约,用户会获得相应的赔偿,且使第三方机构或区块链运营方受到应有的惩罚。

实施例5

一种数据存储方法,如图5所示,根据实施例1所述的一种数据存储系统,以及实施例2-4中任一技术方案所述的一种数据读取系统,包括以下步骤:

s101、用户登录区块链;

s102、区块链将上传的用户数据划分成与区块链数量相同的分块数据;

s103、将每个分块数据随机存储在不同的区块链上。

作为优选地实施方式,s102之后,在用户上传数据成功以后,区块链可以向用户发送一定量代币作为奖励用户的参与,以及鼓励并扩大用户使用量,便于后期的商业运营。

为进一步地增加数据的安全性,可采取以下措施:1)在对用户数据进行划分前,先对用户数据进行对称加密,然后再进行数据划分;2)在数据划分之后,和数据分配之前,对分块数据进行对称加密,然后在进行数据分配。

实施例6

一种数据读取方法,如图6所示,根据实施例1所述的一种数据存储系统,以及实施例2-4中任一技术方案所述的一种数据读取系统,包括以下步骤:

s201、区块链运营方向用户发送获取数据请求和智能合约;

s202、用户同意后,将存储在不同的区块链上经用户同意发送给区块链运营方的分块数据进行合并;

s203、合并后的用户数据发送给区块链运营方。

如果在用户数据存储时,为进一步地增加数据的安全性,数据存储系统采取了以下某种措施:1)在对用户数据进行划分前,先对用户数据进行对称加密,然后再进行数据划分;2)在数据划分之后,和数据分配之前,对分块数据进行对称加密,然后在进行数据分配。

那么相应地,在数据读取时,对于第1)种情况,对数据合并后,根据对称加密算法,进行用户数据解密,解密后的用户数据发送给区块链运营方;对于第2)种情况,先根据对称加密算法对获取到的分块数据进行解密,然后再通过数据合并模块对数据合并,合并好的用户数据发送给区块链运营方。

实施例7

本实施例的一种数据读取方法,如图7所示,在实施例6的基础上进一步改进,s201中还包括第三方机构向区块链运营方发送的获取数据请求和智能合约,s202中用户同意后,将存储在不同的区块链上经用户同意发送给第三方机构的分块数据进行合并,s203中合并后的用户数据发送给第三方机构。与s202同时,按照智能合约的约定,第三方机构向区块链运营方和用户支付代币,或者区块链运营方向用户支付代币。

实施例8

一种设备,如图8所示,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器互相连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如实施例5-7任一项所述方法。

实施例9

一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,使所述处理器执行如实施例5-7任一项所述方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1