一种基于区块链的数据存储系统
技术领域
本发明涉及数据存储领域,具体涉及一种基于区块链的数据存储系统。
背景技术
区块链(Blockchain)技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。中国专利CN201710139269.1公开了一种区块链数据存储系统和方法,所述系统包括:内存数据库和磁盘数据库,其中:所述内存数据库和所述磁盘数据库分别接收区块链节点写入的区块链数据,并对所述区块链数据进行存储;当节点读取区块链数据时,节点先从内存数据库中进行读取,若读取失败,则从所述磁盘数据库中读取区块链数据,并且将读取到的区块链数据同步至内存数据库。中国专利CN201611050311.4公开了一种数据存取的方法,在数据存储时,先确定数据存储指令,之后根据该数据存储指令中携带的身份标识,确定与该身份标识对应的区块链以及密钥对,最后根据该密钥对,将待存储数据存储在该区块链中,在数据查询时,先确定数据查询指令,之后根据该数据查询指令对应的身份标识,确定与该身份标识对应的区块链以及私钥,最后根据该私钥,将该区块链中的数据解密后查询。然而,受限于目前的数据存储技术,区块链只能用于分布式记账或电子货币,无法实现物联网大数据的区块链化。
云存储是在云计算(cloud computing)基础上发展而来,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的系统。中国专利CN201610030434.5公开了一种基于网络节点操作控制单元的跨协议分布式云存储系统,所述分布式云存储系统包括多个网络节点,所述每个网络节点包括与数据链路层进行直接交互的操作控制单元,所述操作控制单元包括文件单元、网络信息管理单元以及资源调度单元,其中,所述文件单元用于管理和存储其所在网络节点的文件信息;所述网络信息管理单元用于与数据链路层进行交互从而进行链路调度来在所述各个网络节点之间传递所述信息,以及节点间数据的更新;所述资源调度单元用于为所述网络信息管理单元和文件单元分配和调度实现其功能的硬件或网络资源,所述网络节点的数据以区块链表的方式存储。目前,几乎所有的互联网或物联网数据都存储在云端,数据呈现中心化分布,常常会出现大量用户的隐私数据被泄露或者盗取,云端数据极不安全,如2018年美国最大的社交网络平台Facebook数据泄露事件导致数千万个人用户隐私数据泄露。数据存储在云端服务器上,无法克服隐私数据安全性问题。
发明内容
针对上述问题,本发明的目的是,提供一种基于区块链的数据存储系统,实现数据的高效安全存储和使用。
根据本发明的一个方面,本发明提供一种基于区块链的数据存储系统,其特征在于,包括数据处理服务器和至少两个存储系统,其中第一个存储系统为区块链存储系统,第二个存储系统包括多个存储介质,数据处理服务器分别与第一存储系统和第二存储系统的多个存储介质网络连接。
在一个实施例中,数据处理服务器将来自用户的数据包文件处理成两部分数据,其中第一部分数据Da大小小于第二部分数据Db,将第一部分数据Da存储在区块链存储系统中,其中,第二部分数据Db为多个子文件包,所述多个子文件包分别存储在第二存储系统的多个存储介质中。
所述的数据处理服务器针对每个用户的数据包文件提供唯一密钥对,根据密钥对生成第一部分数据。
进一步地,所述区块链端具有多个节点,每个区块链节点均包含完整的第一部分数据。
进一步地,第二部分数据为i个子文件包Dbi,不同的子文件包Dbi分别存储第二存储系统的存储介质节点上,其中i为≥的正整数,且i<第二存储系统的存储介质节点数。
在一个实施例中,第二部分数据分解后的每一份数据Dbi大小相当。
在一个实施例中,第二存储系统的每个网络节点至多存储有1份分解后的用户数据Dbi。
在一个实施例中,第二部分数据分解后的每一个子文件包Dbi分别存到n个第二存储系统的存储介质节点,即第二部分数据在第二存储系统的存储介质节点,n为大于1的正整数,且每个网络节点至多存储有j份分解后的用户数据,且每个节点的多份数据互不相同。
在一个实施例中,n优选为2~10内的正整数,j优选为<n/2的正整数。
进一步地,所述节点数据信息存储在数据处理服务器上。
在一个实施例中,所述节点数据信息存储在用户的本地存储器上。
进一步地,所述第一部分数据大小<1MB,优选为<100KB。
进一步地,所述数据处理服务器存储有用户身份信息,所述用户身份信息为邮箱、姓名、手机号、身份证号等信息的一个或多个组合。
在一个实施例中,所述数据存储系统还包括数据备份存储器,所述数据备份服务器针对第一部分数据和第二部分数据进行压缩备份处理。
在一个实施例中,用户终端可自定义将数据分成多少个文件包,即可自定义i的数值。
在一个实施例中,用户终端可自定义存储的数据包Dbi存储的介质,包括本地存储器,与数据处理服务器相连接的云存储器、物联网存储器、或分布式网络存储器。
本发明的有益技术效果
(1)针对个人或工业大数据,提供了一种基于区块链的安全高效的数据存储方法和系统,通过本发明的存储方法,可以将用户数据安全地存储在多个存储器上,并且比传统的云端存储方式更加安全,多存储器的数据泄露的几率随着节点数的增加而迅速降低。
(2)采用区块链存储用户数据,数据匿名性高,便于在区块链上完成数据交换,在物联网或车联网应用方面具有很好的应用前景。
(3)本发明提供了一种基于区块链的数据存储系统,针对大数据的区块链化,克服了存储容量需求无限增大的难题,针对单个<1TB级别的数据可以轻松存储在区块链端。
附图说明
图1为本发明的数据处理系统架构图;
图2为本发明存储系统的示意图;
图3为本发明存储系统的又一实施例示意图。
图4为本发明的用户终端结构图。
图5为本发明的数据存储处理流程。
图6为本发明的数据读取处理流程。
图7为本发明的数据删除处理流程。
图8为本发明的数据修改处理流程。
具体实施方式
针对上述问题,本发明的目的是,提供一种基于区块链的数据处理及数据存储系统,实现数据的高效安全存取。
如图1所示,根据本发明的一个方面,本发明提供了一种基于区块链的数据处理系统及处理方法,本发明提供了一种基于区块链的数据处理系统及处理方法,其特征在于,所述数据处理系统包括用户终端和数据处理服务器,其中,用户终端具有数据传输模块,可与数据处理服务器实现数据交互;当用户发起存储数据请求时,所述数据处理系统将用户请求存储的数据包处理成两部分,其中第一部分数据大小小于第二部分数据。
在一个实施例中,数据处理服务器根据用户指令中包含的用户身份标识和/或文件身份标识,提供并确定与身份标识对应的密钥对。数据处理服务器根据身份标识对应的密钥对,将所述数据包的处理过程生成为唯一哈希值或具有唯一哈希值的数据,即第一部分数据。所述第一部分数据存储在区块链端。
如图2、3所示,其中,第二部分数据存储在云端存储器上和/或雾端存储器上。
进一步地,所述的数据处理服务器对用户请求存储的数据包进行处理,生成m个子文件包,即第二部分数据,其中m为≥2的正整数。
进一步地,所述的数据处理服务器对用户请求存储的数据包的处理过程包括分片处理、加密处理、锁定处理。分片处理即对数据包进行有效分割,分成多个数据碎片,如1张图片或1个视频文件,可分成任意多个碎片,如10000个碎片,并对分片后的数据碎片进行排列组合或其他变换处理,得到m组数据(文件)碎片,所述数据碎片可以采用随机大小和/或排列的方式。锁定处理,即对多个加密文件包的文件碎片进行路径和还原方式进行锁定。加密处理,即通过加密打包处理,生成m个加密文件包,其中m为≥2的正整数。数据处理服务器对所述数据包的处理过程生成为唯一哈希值或具有唯一哈希值的数据,所述哈希值即为数据包的身份标识,即第一部分数据。
在一个实施例中,所述数据包的哈希值可通过本地处理器或数据服务器配对验证,从而解密还原出数据的分片、锁定、加密处理过程等信息。
在一个实施例中,第二部分数据被处理为若干份,所述若干份数据分别存储在多个云端存储器上和/或雾端存储器的不同网络节点上。
在一个实施例中,所述数据处理服务器与多个存储节点相连接,所述存储的路径数据信息存储在数据处理服务器上。
进一步地,所述第一部分数据大小<1MB,优选为<100KB。
进一步地,所述数据处理服务器存储有用户身份验证信息。
如图4所示,在一个实施例中,所述用户终端具有登陆验证模块,显示模块,数据解密操作模块,数据传输模块,网络接口。所述用户终端可为APP、电脑软件、或其他网络登陆平台;所述登陆验证模块验证用户身份信息。
进一步地,所述数据解密操作模块用于将数据包身份标识对应的私钥和区块链中的哈希值进行配对验证,进而解密得出数据包的对应处理过程。
如图2、3所示,根据本发明的又一个方面,本发明提供一种基于区块链的数据存储系统,其特征在于,包括数据处理服务器和至少两个存储系统,其中第一个存储系统为区块链存储系统,第二个存储系统包括多个存储介质,数据处理服务器分别与第一存储系统和第二存储系统的多个存储介质网络连接。
在一个实施例中,数据处理服务器将来自用户的数据包文件处理成两部分数据,其中第一部分数据Da大小小于第二部分数据Db,将第一部分数据Da存储在区块链存储系统中,其中,第二部分数据Db为多个子文件包,所述多个子文件包分别存储在第二存储系统的多个存储介质中。
所述数据处理服务器根据用户指令中包含的用户身份标识和/或文件身份标识,确定与标识对应的密钥对。根据该密钥对生成第一部分数据。所述第一部分数据包括将数据包文件生成第二部分数据Db的处理过程。
进一步地,所述的数据处理服务器针对每个用户的数据包文件提供唯一密钥对,根据密钥对生成第一部分数据。
进一步地,所述区块链端具有多个节点,每个区块链节点均包含完整的第一部分数据。
进一步地,第二部分数据为i个子文件包Dbi,不同的子文件包Dbi分别存储第二存储系统的存储介质节点上,其中i为≥2的正整数,且i<第二存储系统的存储介质节点数。
在一个实施例中,第二部分数据分解后的每一份数据Dbi大小相当。
在一个实施例中,第二存储系统的每个网络节点至多存储有1份分解后的用户数据Dbi。
在一个实施例中,第二部分数据分解后的每一个子文件包Dbi分别存到n个第二存储系统的存储介质节点,即第二部分数据在第二存储系统的存储介质节点,n为大于1的正整数,且每个网络节点至多存储有j份分解后的用户数据,且每个节点的多份数据互不相同。
在一个实施例中,n优选为2~10内的正整数,j优选为<n/2的正整数。
进一步地,所述节点数据信息存储在数据处理服务器上。
在一个实施例中,所述节点数据信息存储在用户的本地存储器上。
进一步地,所述第一部分数据大小<1MB,优选为<100KB。
在一个实施例中,所述数据存储系统还包括数据备份存储器,所述数据备份服务器针对第一部分数据和第二部分数据进行压缩备份处理。
在一个实施例中,用户终端可自定义将数据分成多少个文件包,即可自定义i的数值。
在一个实施例中,用户终端可自定义存储的数据包Dbi存储的介质,包括本地存储器,与数据处理服务器相连接的云存储器、物联网存储器、或分布式网络存储器。
如图5所示,本发明的基于区块链的数据存储方法,包括如下步骤:
(S101)用户终端请求存储数据文件,数据处理服务器接收用户发起的存储需求指令和数据包;
(S102)数据处理服务器对用户请求存储的数据包的处理过程包括分片处理、锁定处理,将数据包随机生成m组数据碎片,m为≥2的正整数,然后通过加密处理生成m个加密的子文件包,所述m个加密的子文件包,即第二部分数据;
(S103)数据处理服务器根据文件包的身份标识,确定与该身份标识对应的密钥对,并将步骤S102中所述数据包的处理过程生成为唯一哈希值或具有唯一哈希值的数据,即第一部分数据;
(S104)数据处理服务器将第一部分数据上传到与数据处理服务器连接的区块链端进行存储,将第二部分数据的m个子文件包分别传输到与数据处理服务器连接的多个存储器节点上进行存储。
如图6所示,本发明的基于区块链的数据访问方法,包括如下步骤:
(S201)用户登陆到用户终端,从用户终端请求访问用户数据,数据处理服务器根据用户请求的数据文件的数据身份标识,确定与该数据身份标识对应的私钥;
(S202)从区块链端读取第一部分数据,并根据私钥将所述第一部分数据解密还原成数据包的处理过程;
(S203)数据处理服务器从多个存储节点读取第二部分数据对应的多个子文件包;根据S202中第一部分数据解密出的数据处理过程,对第二部分多个加密子文件包数据进行解密处理,生成并显示用户原始存储的文件。
如图7所示,本发明的基于区块链的数据删除方法,包括如下步骤:
(S301)用户终端请求删除用户数据,数据处理服务器根据用户请求的数据文件对应的数据身份标识,确定与该数据身份标识对应的私钥;
(S302)通过该私钥将第一部分数据解密还原出数据文件的处理过程,然后,数据处理服务器根据数据处理过程向数据加密文件包对应的多个存储系统发出数据删除请求,即删除第二部分数据;
(S303)区块链端将所述私钥对应的第一部分数据删除;
(S304)用户终端对用户显示删除状态。
如图8所示,本发明的基于区块链的数据修改方法,包括如下步骤:
(S401)用户终端请求修改存储数据,并将修改后的数据包上传到数据处理服务器;
(S402)数据处理服务器根据请求的数据文件对应的数据身份标识,确定与该数据文件对应的私钥,并解密还原出修改前的数据文件的处理过程;同时对修改后的数据包进行分片、锁定、加密处理,将数据包生成修改后的多个子文件包,即修改后的第二部分数据;
(S403)数据处理服务器将步骤S402中所述修改后的数据包的处理过程生成为处理过程生成为新的唯一哈希值,即修改后的第一部分数据,并替换区块链端对应的原数据;
(S404)数据处理服务器将修改后第二部分数据的多个子文件包分别传输到与数据处理服务器连接的多个存储器节点,同时删除原来数据包对应的子文件包。
如上所述,可较好地实现本发明。对于本领域的技术人员而言,在不脱离本发明的原理和精神的情况下对这些实施例进行变化、修改、替换、整合和变型仍落入本发明的保护范围内。本发明中未进行特殊说明或限定的部分,均采用现有技术实施。