远程存储服务的实现方法及装置与流程

文档序号:17743616发布日期:2019-05-24 20:26阅读:263来源:国知局
远程存储服务的实现方法及装置与流程

本发明实施例涉及区块链技术和密码学领域,更具体地,涉及一种远程存储服务的实现方法及装置。



背景技术:

随着云计算的发展,云服务种类越来越多,存储技术发展导致个人电脑拥有越来越多的空余存储资源,而如何整合这些空余存储资源并转换成经济效益成为有价值的问题,近年来随着区块链技术的兴起,电子货币或许可以为解决这一问题提供工具。

分布式存储系统是p2p系统的一个重要研究领域,区块链技术网络采用p2p的组网方式,同时区块链技术具有不可篡改、不可伪造、隐私保护、自动执行的智能合约特点。利用这些特点,研究者们提出了利用区块链技术完成分布式存储系统,可以充分利用用户的空闲存储资源。

目前基于区块链计算实现的分布式存储系统,用户进行数据完整性验证时验证较复杂,需要进行很多计算任务,不够便捷。



技术实现要素:

本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的远程存储服务的实现方法及装置。

第一方面,本发明实施例提供一种远程存储服务的实现方法,包括:

对待进行远程存储的目标数据进行预处理,并获取用于进行数据完整性验证的凭证,将所述凭证存储在本地;

将所述目标数据传输给存储服务提供端,以供所述存储服务提供端将所述目标数据存储至空闲存储空间并构建微支付通道;

根据所述凭证生成挑战信息,并将所述挑战信息发送给所述存储服务提供端,以供所述存储服务提供端根据所述挑战信息生成待验证的哈希值;

根据接收到的所述待验证的哈希值和所述凭证进行数据完整性验证,并在验证通过后通过所述微支付通道支付电子货币。

第二方面,本发明实施例提供一种远程存储服务的实现方法,包括:

接收存储服务需求端发送的待进行远程存储的目标数据,将所述目标数据存储至空闲存储空间,并基于区块链的闪电网络链下扩容技术构建离链的微支付通道;

接收所述存储服务需求端发送的挑战消息,根据所述挑战信息生成待验证的哈希值,并将所述待验证的哈希值发送给存储服务需求端,以供存储服务需求端根据所述待验证的哈希值进行数据完整性验证,并在验证通过后通过所述微支付通道支付电子货币。

第三方面,本发明实施例提供一种远程存储服务需求装置,包括:

预处理模块,用于对待进行远程存储的目标数据进行预处理,并获取用于进行数据完整性验证的凭证,将所述凭证存储在本地;

数据传输模块,用于将所述目标数据传输给存储服务提供端,以供所述存储服务提供端将所述目标数据存储至空闲存储空间并构建微支付通道;

验证请求模块,用于根据所述凭证生成挑战信息,并将所述挑战信息发送给所述存储服务提供端,以供所述存储服务提供端根据所述挑战信息生成待验证的哈希值;

验证模块,用于根据接收到的所述待验证的哈希值和所述凭证进行数据完整性验证,并在验证通过后通过所述微支付通道支付电子货币。

第四方面,本发明实施例提供一种远程存储服务提供装置,包括:

存储模块,用于接收存储服务需求端发送的待进行远程存储的目标数据,将所述目标数据存储至空闲存储空间,并基于区块链的闪电网络链下扩容技术构建离链的微支付通道;

验证响应模块,用于接收所述存储服务需求端发送的挑战消息,根据所述挑战信息生成待验证的哈希值,并将所述待验证的哈希值发送给存储服务需求端,以供存储服务需求端根据所述待验证的哈希值进行数据完整性验证,并在验证通过后通过所述微支付通道支付电子货币。

第五方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面或第二方面所提供的方法的步骤。

第六方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或第二方面所提供的方法的步骤。

本发明实施例提供的远程存储服务的实现方法及装置,存储服务需求者仅需要存储远小于原始数据的凭证,就可以实现远程数据存储和数据完整性验证,不需要承担额外的存储或计算任务,数据完整性验证较便捷。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的远程存储服务的实现方法的流程示意图;

图2为本发明实施例提供的从所述多个数据块中提取n组预设数量的数据块组成n个虚拟数据,利用sha256算法分别计算所述n个虚拟数据的哈希值的步骤的流程示意图;

图3为本发明实施例提供的远程存储服务的实现方法的流程示意图;

图4为本发明实施例提供的远程存储服务需求装置的结构示意图;

图5为本发明实施例提供的远程存储服务提供装置的结构示意图;

图6为本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了克服现有技术的上述问题,本发明实施例提供了一种远程存储服务的实现方法及装置,在本发明实施例中,包含两种执行主体:存储服务提供端和存储服务需求端。其中,存储服务提供端提供自身的空闲存储资源,存储服务需求端提供需要进行远程存储的目标数据,并在远程存储服务期间,进行数据完整性验证。

图1为根据本发明实施例提供的远程存储服务的实现方法的流程示意图,该方法的执行主体为存储服务需求端,也即需要远程存储服务的一方,如图所示,包括:

步骤100、对待进行远程存储的目标数据进行预处理,并获取用于进行数据完整性验证的凭证,将所述凭证存储在本地;

本发明实施例中,存储服务需求端首先对待进行远程存储的目标数据进行预处理,预处理包括进行数据分块,每个数据分块的大小是固定的。然后,选定一个起始数值生成关于目标数据的混沌序列,通过产生混沌序列生成用于进行数据完整性验证的凭证,并将所述凭证存储在存储服务需求端本地。

当存储服务需求端需要进行数据完整性验证,即确认存储服务提供端仍然存储有数据且数据是完整时,存储服务需求端会利用该凭证进行验证。

存储服务需求端只需存储远小于原数据大小的凭证就能够实现对数据完整性的验证。

步骤101、将所述目标数据传输给存储服务提供端,以供所述存储服务提供端将所述目标数据存储至空闲存储空间并构建微支付通道;

在对所述目标数据进行预处理,获取和存储凭证后,本发明实施例将所述目标数据传输给存储服务提供端,存储服务提供端将提供自身的空闲存储资源对所述目标数据进行存储。同时,存储服务提供端在接收所述目标数据后,构建微支付通道,通过该微支付通道,存储服务需求端向存储服务提供端支付数据存储的费用。

在本发明实施例中,可以采用现有技术的方式构建微支付通道。

步骤102、根据所述凭证生成挑战信息,并将所述挑战信息发送给所述存储服务提供端,以供所述存储服务提供端根据所述挑战信息生成待验证的哈希值;

在需要进行数据完整性验证时,存储服务需求端根据本地存储的凭证生成挑战信息并发送至存储服务提供端,其中,挑战信息是一组下标信息,当存储服务提供端接收到挑战信息时,将所述挑战信息对应的目标数据的数据块提取出来,组成一个待验证的虚拟数据,并生成该虚拟数据对应的哈希值,即待验证的哈希值。

步骤103、根据接收到的所述待验证的哈希值和所述凭证进行数据完整性验证,并在验证通过后通过所述微支付通道支付电子货币。

具体地,存储服务需求端根据接收到的所述待验证的哈希值和本地存储的凭证进行数据完整性验证,本地存储的凭证中存储有所述目标数据对应的多个哈希值,通过将两种哈希值进行比对,可以获知存储服务提供端仍然存储有目标数据且目标数据是完整的,存储服务需求端在数据完整性验证通过后通过微支付通道向所述存储服务提供端支付电子货币,完成当前阶段的存储服务交易。

值得说明的是,存储服务需求端可以根据实际需求进行多次数据性完整性验证。

本发明实施例提供的远程存储服务的实现方法,存储服务需求者仅需要存储远小于原始数据的凭证,就可以实现远程数据存储和数据完整性验证,不需要承担额外的存储或计算任务,数据完整性验证较便捷。

基于上述实施例的内容,所述对待进行远程存储的目标数据进行预处理,并获取用于进行数据完整性验证的凭证,将所述凭证存储在本地的步骤,具体为:

将待进行远程存储的目标数据按照固定大小分成多个数据块;

从所述多个数据块中提取n组预设数量的数据块组成n个虚拟数据,利用sha256算法分别计算所述n个虚拟数据的哈希值;

将所述预设数量和所述n个虚拟数据的哈希值进行组合,生成用于进行数据完整性验证的凭证,并将所述凭证存储在本地;

其中,n为存储服务需求端期望进行数据完整性验证的次数。

在本发明实施例中,存储服务提供端将待进行远程存储的目标数据按照固定大小分成多个数据块,并确定所述目标数据的分块数量k;

存服务需求端根据所述分块数量k和期望的数据损毁块数来确定预设数量k',然后从所述多个数据块中提取n组预设数量k'的数据块,将每一组数据块组成一个虚拟数据,从而可以获得n个虚拟数据。

具体地,确定预设数量k'的方法为:

假设期望文件不要损坏的块数超过t则,保证即可。

利用sha256算法计算每个虚拟数据的哈希值。sha256算法是sha-2下细分出的一种算法。sha-2,名称来自于安全散列算法2(英语:securehashalgorithm2)的缩写,是一种密码散列函数算法标准,由美国国家安全局研发,属于sha算法之一。哈希函数,又称散列算法,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小。

获得n个哈希值之后,存储服务需求端将所述预设数量k'和所述n个虚拟数据的哈希值进行组合,生成用于进行数据完整性验证的凭证,并将所述凭证存储在本地。

在本发明实施例中,n为存储服务需求端期望进行数据完整性验证的次数,存储服务提供方是构建的微支付通道中的总金额为n*mu,mu为每一阶段协商支付的存储费用。也即存储服务需求端根据自身的存储时长需求将存储服务分为n个阶段,在每个阶段中,对存储服务提供端存储的数据进行完整性验证,并在验证通过后支付该阶段的存储费用。

如图2所示,为本发明实施例提供的所述从所述多个数据块中提取n组预设数量的数据块组成n个虚拟数据,利用sha256算法分别计算所述n个虚拟数据的哈希值的步骤的流程示意图,具体包括:

步骤200、随机产生起始数值α0、第一密钥p1和第二密钥p2,并确定所述目标数据的分块数量k;

步骤201、根据所述分块数量k和期望的数据损毁块数确定预设数量k';

步骤203、迭代执行以下步骤,直至获得n个哈希值:

对于第j次迭代过程,根据所述分块数量k、当前迭代数值αj和第一密钥p1迭代计算k'个数据块下标vi,1≤i≤k',其中,v0=αj,表示基于第一密钥p1将当前下标vi映射为下标vi+1的散列函数,为基于第二密钥p2将当前迭代数值αj映射为下一迭代数值αj+1的散列函数;

从所述多个数据块中提取所述k'数据块下标vi,1≤i≤k'对应的k'个数据块;

将所述k'个数据块重新组合成一个虚拟数据m',并计算所述虚拟数据m'的哈希值;

根据当前迭代数值αj和所述第二密钥p2计算下一迭代数值αj+1,

值得说明的是,迭代次数j的取值为从1到n,第一次迭代时,v0=α0。

相应地,所述将所述预设数量和所述n个虚拟数据的哈希值进行组合,生成用于进行数据完整性验证的凭证,并将所述凭证存储在本地的步骤,具体为:

将所述起始数值α0、第一密钥p1、第二密钥p2、预设数量k'以及计算获得的所述n个哈希值组合为标签tag,将所述标签tag作为凭证存储在本地。

基于上述各实施例的内容,所述根据所述凭证生成挑战信息的步骤,具体为:

根据所述凭证中的起始数值α0、第一密钥p1、第二密钥p2和预设数量k',生成挑战信息(v1,v2,...,vk')。

在本发明实施例中,存储服务需求端进行数据完整性验证时,总是根据凭证中的起始数值α0、第一密钥p1、第二密钥p2和预设数量k'计算数据块小标vi,1≤i≤k',其中,v0=αj,表示基于第一密钥p1将当前下标vi映射为下标vi+1的散列函数,为基于第二密钥p2将当前迭代数值αj映射为下一迭代数值αj+1的散列函数;

将所生成的k'数据块小标组成向量,即得到挑战信息(v1,v2,...,vk')。

基于上述各实施例的内容,所述根据接收到的所述待验证的哈希值和所述凭证进行数据完整性验证,并在验证通过后通过所述微支付通道支付电子货币的步骤,具体为:

将所述待验证的哈希值与所述凭证中的第一个哈希值h1进行比对,若相同,则获知数据未损坏且存储服务提供端仍存储数据;

利用公式更新当前所述凭证中的初始数值α0,并删除当前所述凭证中的第一个哈希值h1;

通过所述微支付通道向所述存储服务提供端支付协商好的每一阶段的存储费用。

具体地,在每次进行数据完整性验证时,存储服务需求端总是将存储服务提供端发送的待验证的哈希值与本地存储的凭证中的第一哈希值h1进行比对,若哈希值相同,则存储服务需求端获知数据未损坏且存储服务提供端仍存储数据;

然后,利用公式更新当前所述凭证中的初始数值α0,并删除当前所述凭证中的第一个哈希值h1,意味着,原本的h2变为新的第一个哈希值h1,原本的hj+1变为新的hj;

验证完成后,存储服务需求端通过所述微支付通道向所述存储服务提供端支付协商好的每一阶段的存储费用。

如图3所示,为本发明实施例提供的远程存储服务的实现方法的流程示意图,该方法的执行主体为存储服务提供端,如图所述,该方法包括:

步骤301、接收存储服务需求端发送的待进行远程存储的目标数据,将所述目标数据存储至空闲存储空间,并基于区块链的闪电网络链下扩容技术构建离链的微支付通道;

具体地,存储服务提供端接收存储服务需求端发送的目标数据,然后将该目标数据存储至空闲存储空间,并基于区块链的闪电网络链下扩容技术构建离链的微支付通道。

微支付通道的初始化过程如下:交易双方首先向初始交易融资单进行转账,将资金注入资金池,本发明实施例中,交易双方指存储服务需求端和存储服务提供端。交易双方将初始交易融资单的输出按照注资比例发往各自地址。初始交易单是一个“2/2”的多重签名。此时初始交易单不签名,且不广播。交易双方同时构建承诺交易单:c1a、rd1a、c1b和rd1b。其中,c1a、c1b的第一个输出为多重签名地址,为创建人的另一把私钥和交易对方的“2/2”的多重签名,第二个输出为对方。rd1a和rd1b分别为c1a和c1b的第一个输出的花费交易,输出为创建人。但此类型交易带有交易序列,交易序列的作用是阻止当前交易立即写入区块链中,需要经过交易序列个节点确认才能写入区块链。c1a、rd1a、c1b和rd1b创建完后分别交给对方签名。双方对交易承诺单签名并交换完成后,双方对初始交易融资单进行签名并交换。此时,初始交易融资单是一个完整的交易,交易双方向全网广播。

步骤302、接收所述存储服务需求端发送的挑战消息,根据所述挑战信息生成待验证的哈希值,并将所述待验证的哈希值发送给存储服务需求端,以供存储服务需求端根据所述待验证的哈希值进行数据完整性验证,并在验证通过后通过所述微支付通道支付电子货币。

具体地,存储服务提供端接收到存储服务需求端发送的挑战消息,挑战消息为一组下标信息(v1,v2,...,vk'),从本地存储的目标数据中按照(v1,v2,...,vk')提取出相应的数据块,从而组成一个待验证的虚拟数据,并利用sha256算法生成该虚拟数据的哈希值,即获得了待验证的哈希值。

存储服务需求端根据所述待验证的哈希值进行数据完整性验证,并在验证通过后通过所述微支付通道支付电子货币。

本发明实施例提供的远程存储服务的实现方法,存储服务需求者仅需要存储远小于原始数据的凭证,就可以实现远程数据存储和数据完整性验证,不需要承担额外的存储或计算任务,数据完整性验证较便捷。

如图4所示,为本发明实施例提供的远程存储服务需求装置的结构示意图,包括:预处理模块410、数据传输模块420、验证请求模块430和验证模块440,其中,

预处理模块410,用于对待进行远程存储的目标数据进行预处理,并获取用于进行数据完整性验证的凭证,将所述凭证存储在本地;

数据传输模块420,用于将所述目标数据传输给存储服务提供端,以供所述存储服务提供端将所述目标数据存储至空闲存储空间并构建微支付通道;

验证请求模块430,用于根据所述凭证生成挑战信息,并将所述挑战信息发送给所述存储服务提供端,以供所述存储服务提供端根据所述挑战信息生成待验证的哈希值;

验证模块440,用于根据接收到的所述待验证的哈希值和所述凭证进行数据完整性验证,并在验证通过后通过所述微支付通道支付电子货币。

该装置用于实现前述各实施例中所述的远程存储服务的实现方法。因此,在前述各实施例中所述的远程存储服务的实现方法的描述和定义,可以用于本发明实施例中各个执行模块的理解,在此不再赘述。

如图5所示,为本发明实施例提供的远程存储服务提供装置的结构示意图,包括:存储模块510和验证响应模块520,其中,

存储模块510,用于接收存储服务需求端发送的待进行远程存储的目标数据,将所述目标数据存储至空闲存储空间,并基于区块链的闪电网络链下扩容技术构建离链的微支付通道;

验证响应模块520,用于接收所述存储服务需求端发送的挑战消息,根据所述挑战信息生成待验证的哈希值,并将所述待验证的哈希值发送给存储服务需求端,以供存储服务需求端根据所述待验证的哈希值进行数据完整性验证,并在验证通过后通过所述微支付通道支付电子货币。

该装置用于实现前述各实施例中所述的远程存储服务的实现方法。因此,在前述各实施例中所述的远程存储服务的实现方法的描述和定义,可以用于本发明实施例中各个执行模块的理解,在此不再赘述。

图6为本发明实施例提供的电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(communicationsinterface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储在存储器630上并可在处理器610上运行的计算机程序,以执行上述各实施例提供的远程存储服务的实现方法,例如包括:对待进行远程存储的目标数据进行预处理,并获取用于进行数据完整性验证的凭证,将所述凭证存储在本地;将所述目标数据传输给存储服务提供端,以供所述存储服务提供端将所述目标数据存储至空闲存储空间并构建微支付通道;根据所述凭证生成挑战信息,并将所述挑战信息发送给所述存储服务提供端,以供所述存储服务提供端根据所述挑战信息生成待验证的哈希值;根据接收到的所述待验证的哈希值和所述凭证进行数据完整性验证,并在验证通过后通过所述微支付通道支付电子货币。

此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各实施例提供的远程存储服务的实现方法,例如包括:对待进行远程存储的目标数据进行预处理,并获取用于进行数据完整性验证的凭证,将所述凭证存储在本地;将所述目标数据传输给存储服务提供端,以供所述存储服务提供端将所述目标数据存储至空闲存储空间并构建微支付通道;根据所述凭证生成挑战信息,并将所述挑战信息发送给所述存储服务提供端,以供所述存储服务提供端根据所述挑战信息生成待验证的哈希值;根据接收到的所述待验证的哈希值和所述凭证进行数据完整性验证,并在验证通过后通过所述微支付通道支付电子货币。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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