一种基于区块链的数据存取方法、装置及系统与流程

文档序号:21201909发布日期:2020-06-23 19:25阅读:144来源:国知局
一种基于区块链的数据存取方法、装置及系统与流程

本申请涉及计算机技术领域,尤其涉及一种基于区块链的数据存取方法、装置及系统。



背景技术:

分布式存储产品为企业提供一种高效、便利的数据存储方式。相比于传统的数据存储方式,分布式存储具有更高的系统可靠性、可用性和存取效率。

目前,现有分布式存储产品涉及到数据存取的过程为:将原始数据拆分成多个数据块,将多个数据块的验证信息以及数据块的内容进行加密之后,存储在n个分布式存储设备中。当需要获取数据的时候,从至少k(k≤n)个分布式存储设备中获得该原始数据的各个数据块,对k个数据块进行解密,从而获得该原始数据。但是现有的分布式存储产品涉及到数据存取的过程涉及加密过程简单,无法保证多个数据块的安全性,例如,无法保证多个数据块的内容或验证信息等被篡改的情况。



技术实现要素:

本申请通过提供一种基于区块链的数据存取方法、装置及系统,用于增强数据存取的安全性。

第一方面,提供一种基于区块链的数据存取方法,应用于数据处理服务器中,所述方法包括:

接收存储请求,所述存储请求用于请求存储第一数据,携带所述第一数据;

将所述第一数据切分为n个数据块;

根据所述n个数据块,生成所述第一数据的衍生信息,所述衍生信息包括所述n个数据块中每个数据块的数字指纹,所述数字指纹是根据预设第一加密算法对所述n个数据块中每个数据块的内容进行加密计算得到的;

将所述n个数据块存储到分布式存储数据库中,以及将所述衍生信息存储到与所述分布式存储数据库不同的区块链数据库中。

在上述方案中,将n个数据块的内容存储到分布式存储数据库中,将n个数据块的衍生信息存储到区块链数据库中,实现了n个数据块的数据内容和n个数据块的数字指纹分离存储,提高了数据存储过程的安全性。由于区块链数据库不可篡改,保证用于验证n个数据块的数字指纹的安全性,从而保证了n个数据块的衍生信息的不可篡改,保证了用于验证n个数据块的数字指纹的安全性。且,将数据块存储在分布式存储数据库中,保证了n个数据块的冗余,提高了n个数据块的可恢复性。且,将n个数据块的衍生信息存储在区块链数据库中,相对直接将数据存储在区块链数据库中的方式,能够相对减少区块链数据库占用的存储空间。

在一种可能的设计中,将所述n个数据块存储到分布式存储数据库中,包括:

确定所述第一数据的数据安全级别;

根据预设规则,确定出与所述第一数据的数据安全级别对应的第二加密算法,所述预设规则为数据安全级别的级别越高,对应的加密算法的加密强度越高;

根据所述第二加密算法,对所述n个数据块进行加密,获得加密后的所述n个数据块;

将所述加密后的n个数据块存储到分布式存储数据库中。

在上述方案中,根据第一数据的数据安全级别,选择对应的加密算法,数据安全级别越高,对应选择的加密算法的加密强度越高,在满足不同用户对数据安全性的不同需求的情况下,尽量减少数据处理服务器的负担,且提高了数据处理服务器的加密灵活性。

在一种可能的设计中,将所述第一数据切分为n个数据块,包括;

确定所述区块链数据库未存储有所述第一数据的衍生信息;

根据预设的数据拆分算法,将所述第一数据切分为n个数据块。

在上述方案中,在存储第一数据之前,确定区块链数据库中没有存储有第一数据的衍生信息,从而避免数据的重复存储,尽量降低数据存储开销。

在一种可能的设计中,在将所述n个数据块存储到分布式存储数据库中,以及将所述衍生信息存储到区块链数据库中之后,包括:

接收到获取所述第一数据的获取请求,根据所述获取请求,从所述区块链数据库中获取所述第一数据的衍生信息;

根据所述衍生信息,从所述分布式存储数据库中获取所述n个数据块;

根据所述衍生信息中的数字指纹,验证所述n个数据块的内容;

若所述n个数据块的内容验证成功,则根据所述n个数据块,获得所述第一数据。

在上述方案中,获取第一数据的时候,先从区块链数据库中获取第一数据的衍生信息,再从分布式存储数据库中获取n个数据块,且根据衍生信息中的数字指纹对n个数据块的内容进行验证,由于数字指纹存储在区块链数据块中,保证了数字指纹的不可篡改性,保证了验证后的n个数据块的内容的正确性,确保了获得的第一数据的内容的正确性。

在一种可能的设计中,所述衍生信息包括所述n个数据块的数据块索引,从分布式存储数据库中获取与所述n个数据块,包括:

根据所述数据块索引,从分布式存储数据库中获取与所述数据块索引对应的n个数据块。

在上述方案中,将n个数据块的数据块索引存储在区块链数据库中,保证了数据块索引内容的不可篡改,同时根据数据块索引作为从分布式存储数据块库中查找n个数据块的索引,从而使得数据处理服务器可以快速从分布式存储数据库查找出n个数据块,提高获取n个数据块的效率。

在一种可能的设计中,所述获取请求携带有请求所述第一数据的第一用户的身份信息,在从所述区块链数据库中获取所述第一数据的衍生信息之前,包括:

根据所述获取请求,确定所述区块链数据库中所述第一数据的权限注册信息中有与所述第一用户的身份信息匹配的身份信息;其中,所述第一数据的权限注册信息包括能够获取所述第一数据的所有用户的身份信息,且所述权限注册信息是由所述数据处理服务器存储到所述区块链数据库中的。

在上述方案中,在数据处理服务器获取第一数据的衍生信息之前,先对请求获取第一数据的第一用户的身份信息进行验证,保证了第一用户的身份信息的合法性,进一步保证了第一数据的安全性。

在一种可能的设计中,所述衍生信息还包括合并方案,根据所述n个数据块,获得所述第一数据,包括:

根据所述合并方案,重组所述n个数据块,获得所述第一数据。

在上述方案中,将合并方案存储在区块链数据库中,n个数据块存储在分布式存储数据库中,即使非法用户获取得到n个数据块,也无法重组得到第一数据,从而进一步增强了第一数据的安全性。

在一种可能的设计中,所述衍生信息还包括所述第一数据的唯一标识码,所述获取请求包括所述第一数据的唯一标识码,根据所述获取请求,从所述区块链数据库中获取所述第一数据的衍生信息,包括:

根据所述唯一标识码,从所述区块链数据库中获取与所述唯一标识码对应的所述第一数据的衍生信息。

在上述方案中,将第一数据的唯一标识码作为区块链数据库的索引,从而使得数据处理服务器可以根据第一数据的唯一标识码快速获得第一数据的衍生信息,从而提高了获取第一数据的衍生信息的效率。

第二方面,提供一种基于区块链的数据存取装置,包括接收模块和处理模块,其中:

所述接收模块,用于接收存储请求,所述存储请求用于请求存储第一数据,携带所述第一数据;

所述处理模块,用于将所述第一数据切分为n个数据块;以及,

根据所述n个数据块,生成所述第一数据的衍生信息,所述衍生信息包括所述n个数据块中每个数据块的数字指纹,所述数字指纹是根据预设第一加密算法对所述n个数据块中每个数据块的内容进行加密计算得到的;以及,

将所述n个数据块存储到分布式存储数据库中,以及将所述衍生信息存储到与所述分布式存储数据库不同的区块链数据库中。

第三方面,一种基于区块链的数据存取系统,包括:数据处理服务器、分布式存储数据库以及区块链数据库,其中:

所述数据处理服务器,用于接收存储请求,所述存储请求用于请求存储第一数据,携带所述第一数据;以及,

将所述第一数据切分为n个数据块;以及,

根据所述n个数据块,生成所述第一数据的衍生信息,所述衍生信息包括所述n个数据块中每个数据块的数字指纹,所述数字指纹是根据预设第一加密算法对所述n个数据块中每个数据块的内容进行加密计算得到的;

所述分布式存储数据库,用于从所述数据处理服务器接收所述n个数据块,并存储所述n个数据块;

所述区块链数据库,用于从所述数据处理服务器接收所述衍生信息,并存储所述衍生信息。

第四方面,提供一种基于区块链的数据存取装置,包括:

至少一个处理器,以及

与所述至少一个处理器通信连接的存储器;

其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如第一方面中任一项所述的方法。

第五方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面中任一项所述的方法。

附图说明

图1为本申请实施例提供的一种基于区块链的数据存取方法的应用场景图;

图2为本申请实施例提供的一种基于区块链的数据存取方法的应用场景图;

图3为本申请实施例提供的一种基于区块链的数据存取方法的流程图;

图4为本申请实施例提供的一种基于区块链的数据存取装置的结构图;

图5为本申请实施例提供的一种基于区块链的数据存取装置的结构图。

具体实施方式

为了更好的理解本申请实施例提供的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。

区块链(blockchain):或称分布式数据记录账本,是一种按照一定顺序将存储数据的区块以顺序相连的方式组合成的一种链式数据结构。将区块按照顺序串联起来在而形成了一条区块链。多个区块链节点共识形成的历史数据可以理解为区块链数据库,每个区块链节点中都同步存储有该区块链数据库。

分布式存储数据库:分布式存储数据库中使用多个存储设备来存储数据。每个存储设备可单独放在一个地方,每台存储设备中可能有数据库管理系统(databasemanagementsystem,dbms)的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库。分布式存储数据库是指位于不同地点的许多存储设备通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。

客户端(client):或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。除了一些只在本地运行的应用程序之外,一般安装在普通的终端上,需要与服务端互相配合运行。终端例如,手机、个人计算机、平板电脑等。

为了增强数据存取的安全性,本申请实施例提供一种基于区块链的数据存取方法,请参照图1,下面对该方法的应用场景进行说明。

该应用场景中,包括分布式存储数据库、区块链数据库、数据处理服务器以及客户端。分布式存储数据库运行在多个存储设备上。存储设备例如磁盘、硬盘等。区块链数据块运行在多个计算设备上。计算设备例如,计算机、手机、矿机、台式或者服务器等拥有计算能力的设备。数据处理服务器例如,实体服务器或虚拟服务器等。

其中,客户端用于根据用户的输入,生成相应的获取数据的获取请求或存储数据的存储请求,并将存储请求或获取请求发送给数据处理服务器。数据处理服务器接收客户端的存储请求或获取请求之后,根据存储请求或获取请求处理进行相应的处理。分布式存储数据库和区块链数据库用于接收数据处理服务器需要存储的对应的数据,以及为数据处理服务器提供需要的数据。

应当说明的是,图1中是以一个数据处理服务器为例,但是实际上不限制数据处理服务器的个数。当有多个数据处理服务器时,每个数据处理服务器的功能相同。区块链数据库以及分布式存储数据库的数量均可以为多个,也可以是一个。一般来说,区块链数据库以及分布式存储数据库的数量均为一个。

作为该方法的另外一种应用场景,请参照图2,该应用场景可以只包括分布式存储数据库、区块链数据库和数据处理服务器。图2也可以理解为本申请实施例提供的一种基于区块链的数据存取系统的结构图。在该应用场景中,用户可以在数据处理服务器上进行操作,数据处理服务器根据用户的操作,生成相应的获取数据的获取请求或存储数据的存储请求。关于分布式存储数据库、区块链数据库和数据处理服务器的内容可以参照图1中论述的内容,此处不再赘述。

如上介绍了本申请实施例的应用场景,下面结合上述应用场景介绍该方法的执行过程。请参照图3,图3为本申请实施例提供的一种基于区块链的数据存取方法。下面结合图3,对该方法的执行过程进行详细说明。

步骤301,数据处理服务器接收存储请求。

其中,存储请求用于请求存储第一数据,以及携带有第一数据。第一数据的形式可以是文件、视频或图片等,本文不对第一数据的形式进行限制。存储请求中还可以包括请求存储的用户的身份信息。身份信息例如,用户对应的身份证号、用户对应的终端的媒体访问控制地址(mediaaccesscontroladdress,mac)。

例如,数据处理服务器中设置有相应的输入设备,数据处理服务器根据用户在该输入设备上的输入操作,进而生成存储请求,也就相当于数据处理服务器接收到该存储请求。

或者例如,客户端根据用户的输入操作,生成用于请求存储第一数据的存储。客户端将存储请求发送给数据处理服务器,数据处理服务器接收到该存储请求。存储请求中携带的第一数据可以是第一数据的获取路径,数据处理服务器根据该获取路径再下载第一数据的内容,从而减少客户端的处理负担,同时也减少发送第一数据的时间。

应当说明的是,图3是以数据处理服务器从客户端接收存储请求为例,但是实际上不限制数据处理服务器接收存储请求的方式。

步骤302,数据处理服务器确定区块链节点中没有存储有第一数据的衍生信息。

衍生信息包括n个数据块中每个数据块的数字指纹,另外衍生信息还可以包括第一数据的唯一标识码、合并方案、n个数据块的数据索引中一种或几种。n个数据块为将第一数据切分之后的数据块。

其中,数字指纹是数据处理服务器根据预设第一加密算法对n个数据块的内容进行加密计算得到的。预设第一加密算法例如,安全散列算法(securehashalgorithm,sha)算法。第一数据的唯一标识码也可以是数据处理服务器根据预设第一加密算法对第一数据的内容进行加密计算得到的。为了简化计算,唯一标识码也可以是数据处理服务器直接为需要存储的数据直接定义的一个唯一的序列号,本文不对唯一标识码的来源进行限制。合并方案包括数据块的存取结构和合并方程组。数据存取结构包括第一数据中n个数据块的数据结构,合并方程组是用于重组n个数据块得到第一数据所用到的算法。n个数据块的数据索引可以理解为一种存储结构表,以便于获取n个数据块,例如由n个数据块的数据块序列号组成的序列表。

具体来说,在数据处理服务器获取存储请求之后,准备存储第一数据。但是可能数据处理服务器之前已经存储过第一数据,因此,为了避免重复存储,数据处理服务器可以先确认下区块链数据库中是否已存储有第一数据的衍生信息,如果区块链节点中已经存储有第一数据的衍生信息,则说明之前已经存储过第一数据。如果确定区块链节点中没有存储有第一数据的衍生信息,则再继续执行后续步骤。

衍生信息可能包括很多内容,为了减少数据处理服务器的处理量,数据处理服务器只需确定区块链节点中是否存储有衍生信息中的部分信息。例如,数据处理服务器可以根据第一数据的唯一标识码,确定区块链数据库中已存储有第一数据的唯一标识码,则确定已经存储过第一数据。如果区块链数据库中没有存储有第一数据的唯一标识码,则确定还没有存储第一数据。

步骤303,数据处理服务器将第一数据切分为n个数据块。

具体来说,数据处理服务器确定区块链数据库中没有第一数据的衍生信息,可以根据预设的数据拆分算法,将第一数据切分为n个数据块。在对第一数据进行切分的同时,也可以同时对n个数据块进行预加密,预加密的密钥可以存储在数据处理服务器中。预设的数据拆分算法例如,线性分割合并算法(lpca)。

步骤304,数据处理服务器根据n个数据块,生成衍生信息。

具体来说,数据处理服务器在获得n个数据块之后,例如为第一数据设置一个唯一的序列号,以获得第一数据的唯一标识码。例如,为n个数据块中的每个数据块设置一个唯一的数据块序列号,从而根据n个数据块的数据块序列号生成索引。数据处理服务器还可以根据n个数据块,生成n个数据块的数字指纹,生成数字指纹的方式可以参照前文论述的内容,此处不再赘述。数据处理服务器同时还可以重组n个数据块获得第一数据的合并方案。合并方案的内容可以参照前文论述内容,此处不再赘述。

步骤305,数据处理服务器将n个数据块存储到分布式存储数据库中。

其中,分布式存储数据库和区块链数据库是不同的数据库。不同是指分布式存储数据库和区块链数据库所采用的存储技术不同。分布式存储数据库是指采用分布式存储技术形成的数据库,区块链数据库是基于区块链技术而形成的数据块。

具体来说,在获得n个数据块之后,数据处理服务器将n个数据块发送给分布式存储数据库,分布式存储数据库在接收n个数据块之后,存储n个数据块。n个数据块除了包括n个数据块的内容之外,还可以包括n个数据块每个数据块的数据块序列号,方便后期数据处理服务器从分布式存储数据库中查找n个数据块。

为了进一步保证不同数据的安全性要求,数据处理服务器可以确定第一数据的数据安全级别,根据预设规则确定出与第一数据的数据安全级别对应的第二加密算法,根据第二加密算法,对n个数据块进行加密,获得加密后的n个数据块,将加密后的n个数据块存储到分布式存储数据库中。预设规则为数据安全级别的级别越高,对应的加密算法的加密强度越高。

具体来说,数据处理服务器会确定第一数据的数据安全级别,数据安全级别越高,会采用加密强度更高的加密算法对n个数据块进行加密。第一数据的数据安全级别可以根据是用户预先设置的。或者根据第一数据的对应的用户的级别来确定的,也就是说,数据处理服务器提前为不同的用户设置了不同的级别,数据处理服务器可以根据获取请求确定出用户的级别,从而确定出第一数据的数据安全级别。

例如,数据安全级别分为高级、中级以及低级,数据安全级别为高级的加密算法(例如,椭圆曲线加密算法)的加密强度高于数据安全级别为中级的加密算法的加密强度,数据安全级别为中级的加密算法(例如,数据染色加密算法)的加密强度高于数据安全级别为低级的加密算法(例如,微型加密算法(tinyencryptionalgorithm,tea))的加密强度。

步骤306,数据处理服务器将衍生信息存储到区块链数据库中。

具体来说,在生成衍生信息之后,数据处理服务器将衍生信息发送给区块链数据库,区块链数据库接收衍生信息之后,存储衍生信息。

在存储衍生信息之后,还可以将第一数据的权限注册信息也存储在区块链数据库中。权限注册信息包括能够获取第一数据的所有用户的身份信息。将第一数据的权限注册信息提前存储在区块链数据库中,以便于后期验证获取第一数据的用户的身份。

应当说明的是,数据处理服务器执行步骤305和执行步骤306的顺序可以是任意的。图3是以先执行步骤305、再执行步骤306为例,但是实际上不限制步骤305和步骤306的执行顺序。

应当说明的是,在本申请实施例中,步骤302为可选的步骤。

步骤307,数据处理服务器接收获取请求。

其中,获取请求用于表示第一用户用于请求获取第一数据。获取请求例如,第一用户的身份信息,以及需要获取的第一数据的唯一标识码。身份信息可以参照前文论述内容,此处不再赘述。

具体来说,接收获取请求的方式可以参照前文论述的接收存储请求的方式的内容,此处不再赘述。图3是以客户端向数据处理服务器发送获取请求为例,但是实际上不限制接收获取请求的方式。

步骤308,数据处理服务器根据获取请求,验证第一用户的身份信息是否合法。

具体来说,数据处理服务器接收获取请求之后,从而获取请求中获得第一数据的唯一标识码,以及第一用户的身份信息。为了即便一步保证数据的安全,数据处理服务器根据唯一标识码获取区块链数据库中的第一数据的权限注册信息,确定第一数据的权限注册信息是否有与第一用户的身份信息匹配的身份信息。

如果确定第一数据的权限注册信息有与第一用户的身份信息匹配的身份信息,则确定第一用户的身份信息合法,数据处理服务器继续执行后续步骤。如果确定第一数据的权限注册信息没有与第一用户的身份信息匹配的身份信息,则说明第一用户不合法,拒绝第一用户的获取请求。

为了便于第一用户能够及时获知自己是否能够获取第一数据,在数据处理服务器验证第一用户的身份之后,数据处理服务器可以将验证结果及时发送给客户端,以便用户及时了解是否能获取第一数据的权限。

步骤309,数据处理服务器根据获取请求,从区块链数据库中获取与第一数据对应的衍生信息。

具体来说,数据处理服务器根据获取请求中的第一数据的唯一标识码,以第一数据的唯一标识码作为索引,实现快速从区块链数据库中获取与唯一标识码对应的第一数据的衍生信息。

步骤310,数据处理服务器从分布式存储数据库中获取n个数据块。

具体来说,数据处理服务器从分布式存储数据库中获取n个数据块的方式有很多种,例如数据处理服务器在获取衍生信息之后,根据衍生信息中的数据块索引,实现从分布式存储数据库中快速找到第一数据对应的n个数据块,从而获取n个数据块。

步骤311,数据处理服务器重组n个数据块,获得第一数据。

具体来说。数据处理服务器获取n个数据块之后,根据衍生信息中数字指纹,对n个数据块进行验证,确定n个数据块的内容正确。n个数据块验证通过之后,根据衍生信息中的合并方案,重组n个数据块,从而获得第一数据。

步骤312,数据处理服务器将第一数据发送给客户端。

数据处理服务器在获得第一数据之后,可以将第一数据发送给客户端,以使用户可以及时获取第一数据。为了减少发送时间,数据处理服务器可以是将第一数据直接放在预设位置上,直接将预设位置告知客户端,客户端直接从预设位置去下载第一数据,从而可以相对减少数据处理服务器的传输负担。

在本申请实施例中,步骤307~步骤312为可选的步骤。

基于前文论述的一种基于区块链的数据存取方法,请参图4,本申请实施例提供一种基于区块链的数据存取装置,包括接收模块401和处理模块402,其中:

接收模块401,用于接收存储请求,存储请求用于请求存储第一数据,携带第一数据;

处理模块402,用于将第一数据切分为n个数据块;以及,

根据n个数据块,生成第一数据的衍生信息,衍生信息包括n个数据块中每个数据块的数字指纹,数字指纹是根据预设第一加密算法对n个数据块中每个数据块的内容进行加密计算得到的;以及,

将n个数据块存储到分布式存储数据库中,以及将衍生信息存储到与分布式存储数据库不同的区块链数据库中。

在一种可能的设计中,处理模块402具体用于:

确定第一数据的数据安全级别;

根据预设规则,确定出与第一数据的数据安全级别对应的第二加密算法,预设规则为数据安全级别的级别越高,对应的加密算法的加密强度越高;

根据第二加密算法,对n个数据块进行加密,获得加密后的n个数据块;

将加密后的n个数据块存储到分布式存储数据库中。

在一种可能的设计中,处理模块402具体用于:

确定区块链数据库未存储有第一数据的衍生信息;

根据预设的数据拆分算法,将第一数据切分为n个数据块。

在一种可能的设计中,接收模块401,还用于在将n个数据块存储到分布式存储数据库中,以及将衍生信息存储到区块链数据库中之后,接收到获取第一数据的获取请求;

处理模块402,还用于根据衍生信息,从分布式存储数据库中获取n个数据块;以及,

根据衍生信息中的数字指纹,验证n个数据块的内容;以及,

若n个数据块的内容验证成功,则根据n个数据块,获得第一数据。

在一种可能的设计中,衍生信息包括n个数据块的数据块索引,处理模块402用于:

根据数据块索引,从分布式存储数据库中获取与数据块索引对应的n个数据块。

在一种可能的设计中,获取请求携带有请求第一数据的第一用户的身份信息,处理模块402还用于:

根据获取请求,确定区块链数据库中第一数据的权限注册信息中有与第一用户的身份信息匹配的身份信息;其中,第一数据的权限注册信息包括能够获取第一数据的所有用户的身份信息,且权限注册信息是由数据处理服务器存储到区块链数据库中的。

在一种可能的设计中,衍生信息还包括合并方案,处理模块402具体用于:

根据合并方案,重组n个数据块,获得第一数据。

在一种可能的设计中,衍生信息还包括第一数据的唯一标识码,获取请求包括第一数据的唯一标识码,处理模块402具体用于:

根据唯一标识码,从区块链数据库中获取与唯一标识码对应的第一数据的衍生信息。

基于前文论述的一种基于区块链的数据存取方法,本申请实施例提供一种基于区块链的数据存取系统,请继续参照图2,该数据存取系统包括:数据处理服务器、分布式存储数据库以及区块链数据库,其中:

数据处理服务器,用于接收存储请求,存储请求用于请求存储第一数据,携带第一数据;以及,

将第一数据切分为n个数据块;以及,

根据n个数据块,生成第一数据的衍生信息,衍生信息包括n个数据块中每个数据块的数字指纹,数字指纹是根据预设第一加密算法对n个数据块中每个数据块的内容进行加密计算得到的;

分布式存储数据库,用于从数据处理服务器接收n个数据块,并存储n个数据块。

区块链数据库,用于从数据处理服务器接收衍生信息,并存储衍生信息。

在一种可能的设计中,数据处理服务器,具体用于确定第一数据的数据安全级别;

根据预设规则,确定出与第一数据的数据安全级别对应的第二加密算法,预设规则为数据安全级别的级别越高,对应的加密算法的加密强度越高;

根据第二加密算法,对n个数据块进行加密,获得加密后的n个数据块;

将加密后的n个数据块存储到分布式存储数据库中。

在一种可能的设计中,数据处理服务器,具体用于确定区块链数据库未存储有第一数据的衍生信息;

根据预设的数据拆分算法,将第一数据切分为n个数据块。

在一种可能的设计中,数据处理服务器,还用于在将n个数据块存储到分布式存储数据库中,以及将衍生信息存储到区块链数据库中之后,接收到获取第一数据的获取请求,向区块链数据库中发送获取请求;

区块链数据库,还用于接收获取请求,并根据获取请求,向数据处理服务器发送第一数据的衍生信息;

数据处理服务器,还用于根据衍生信息,向分布式存储数据库发送获取n个数据块的请求;

分布式存储数据库,还用于接收获取n个数据块的请求,向数据处理服务器发送n个数据块;

数据处理服务器,还用于根据衍生信息中的数字指纹,验证n个数据块的内容;

数据处理服务器,还用于若n个数据块的内容验证成功,则根据n个数据块,获得第一数据。

在一种可能的设计中,衍生信息包括n个数据块的数据块索引,数据处理服务器,具体用于:

根据数据块索引,从分布式存储数据库中获取与数据块索引对应的n个数据块。

在一种可能的设计中,获取请求携带有请求第一数据的第一用户的身份信息,数据处理服务器,还用于:

在从区块链数据库中获取第一数据的衍生信息之前,根据获取请求,确定区块链数据库中第一数据的权限注册信息中有与第一用户的身份信息匹配的身份信息;

其中,第一数据的权限注册信息包括能够获取第一数据的所有用户的身份信息,且权限注册信息是由数据处理服务器存储到区块链数据库中的。

在一种可能的设计中,衍生信息还包括合并方案,根据n个数据块,数据处理服务器,具体用于:

根据合并方案,重组n个数据块,获得第一数据。

在一种可能的设计中,衍生信息还包括第一数据的唯一标识码,获取请求包括第一数据的唯一标识码,数据处理服务器,具体用于:

根据唯一标识码,从区块链数据库中获取与唯一标识码对应的第一数据的衍生信息。

本申请实施例数据存取系统中的数据处理服务器相当于图4中的数据存取装置。

基于前文论述的一种基于区块链的数据存取方法,本申请实施例提供一种基于区块链的数据存取装置,请参照图5,该装置包括:

至少一个处理器501,以及

与至少一个处理器501通信连接的存储器502;

其中,存储器502存储有可被至少一个处理器501执行的指令,至少一个处理器501通过执行存储器502存储的指令实现如图3中所述的数据存取方法。

应当说明的是,图5中是以一个处理器501为例,但是实际上不限制处理器501的数量。

作为一种实施例,图4中处理模块402可以通过图5中的处理器501来实现。

基于前文论述的一种基于区块链的数据存取方法,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机指令在计算机上运行时,使得计算机执行如图3中所述的数据存取方法。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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