一种数据存证方法、装置、设备及存储介质与流程

文档序号:19492519发布日期:2019-12-24 14:11阅读:155来源:国知局
一种数据存证方法、装置、设备及存储介质与流程

本申请涉及计算机技术,尤其涉及区块链技术领域。



背景技术:

去中心化管理技术是在一个更加分散的网络环境中,满足一个更加安全、可信和可控的存储需求。

现有技术中通常使用以太坊等开放区块链将管理数据作为区块内交易附加数据上链存储。但是上述方式存储效率较低,且成本十分昂贵,无法进行例如图片、视频等大型文件的存储。



技术实现要素:

本申请实施例提供了一种数据存证方法、装置、设备及存储介质,以在去中心化管理数据过程中,提高存储效率,同时降低存储成本和提高数据存储的安全性。

第一方面,本申请提供了一种数据存证方法,应用于客户端,包括:

在检测到数据提供方触发的数据存储指令时,采用存储密钥对待存储数据进行加密,并将加密后的待存储数据上传至链外存储网络,得到所述待存储数据的链外存储标识;

基于所述数据提供方的账户信息对所述存储密钥进行加密,生成查询密钥;

基于所述链外存储标识、所述数据提供方的账户信息和所述查询密钥,生成数据存储事务请求并传输至区块链网络,以使区块链节点处理所述数据存储事务请求,并将所述数据存储事务请求中的数据上链存储。

本申请实施例在检测到数据提供方触发的数据存储指令时,采用存储密钥对待存储数据进行加密,并将加密后的待存储数据上传至链外存储网络,得到存储数据的链外存储标识;基于数据提供方的账户信息对存储密钥进行加密,生成查询密钥;基于链外存储标识、数据提供方的账户信息和查询密钥生成数据存储事务请求并传输至区块链网络,以使区块链节点处理数据存储事务请求,并将数据存储事务请求中的数据上链存储。上述技术方案通过将待存储数据通过链外存储网络存储数据主体,并结合区块链存储关联信息的方式,实现了对数据的去中心化存储,提高了存储效率,同时降低了存储成本;同时,通过存储密钥和区块链账户相结合的存储方式,明确了所存储数据的归属权限,提高了数据存储的安全性。

可选的,所述方法还包括:

在检测到数据提供方触发的数据授权指令时,获取待授权数据的授权申请方的账户信息;

基于所述授权申请方的账户信息生成数据授权事务请求并传输至区块链网络,以使区块链节点执行所述数据授权事务请求,并将所述数据授权事务请求中的数据与所述待授权数据关联存储至区块链中。

上述申请中的一个可选实施方式,通过在检测到数据提供方触发的数据授权指令时,获取待授权数据的授权申请方的账户信息,并基于授权申请方的账户信息生成数据授权事务请求传输至区块链网络,以使区块链节点执行数据授权事务请求,并将数据授权事务请求中的数据与待授权数据关联存储至区块链中,进而授予授权申请方待授权数据的使用权限,达到了数据共享的目的,同时通过将授权过程迁移至区块链网络,方便了对链外存储数据的统一管理。

可选的,在基于所述授权申请方的账户信息生成数据授权事务请求并传输至区块链网络之前,所述方法还包括:

从区块链上获取待授权数据的查询密钥,并基于所述数据提供方的账户私钥,对得到的所述待授权数据的查询密钥进行解密,得到所述待授权数据的存储密钥;

基于所述授权申请方的账户信息,对所述待授权数据的存储密钥再次加密;

相应的,基于所述授权申请方的账户信息生成数据授权事务请求并传输至区块链网络,包括:

基于再次加密后的存储密钥和所述授权申请方的账户信息,生成数据授权事务请求并传输至区块链网络。

上述申请中的一个可选实施方式,通过在基于授权申请方的账户信息生成数据授权事务请求并传输至区块链网络之前,从区块链上进行待授权数据的查询密钥的获取,并基于数据提供方的账户私钥解密查询密钥得到存储密钥,同时基于授权申请方的账户信息对存储密钥进行再次加密,并将再次加密后的存储密钥与授权申请方的账户信息生成数据授权事务请求,以将授权申请方的账户信息与待授权数据的加密信息直接关联,便于授权申请方后续对待授权数据的直接处理。

可选的,在基于所述链外存储标识、所述数据提供方的账户信息和所述查询密钥,生成数据存储事务请求之前,所述方法还包括:

提取所述待存储数据的指纹信息,得到指纹数据;

相应的,基于所述链外存储标识和所述数据提供方的账户信息,生成数据存储事务请求,包括:

基于所述链外存储标识、所述数据提供方的账户信息和所述指纹数据,生成数据存储事务请求。

上述申请中的一个可选实施方式,通过提取待存储数据的指纹数据,并将指纹数据在数据存储事务请求中加以体现,为后续基于指纹数据对待存储数据的正确性的验证奠定基础。

可选的,所述方法还包括:

在检测到授权申请方触发的请求授权指令时,基于所述授权申请方的账户信息和待授权数据的数据提供方的账户信息生成授权申请事务请求并传输至区块链网络,以使区块链节点处理所述授权申请事务请求,向所述待授权数据的数据提供方发送所述授权申请方的账户信息。

上述申请中的一个可选实施方式,通过在检测到授权申请方触发的请求授权指令时,基于授权申请方的账户信息和待授权数据的数据提供方的账户信息进行授权申请事务请求的生成,以借助区块链请求数据提供方提供授权申请方的账户信息,为数据提供方向授权申请方授予待授权数据的使用权限奠定基础,通过将账户信息发送过程迁移至区块链网络,为链外存储数据的统一管理提供了便利。

可选的,在基于所述授权申请方的账户信息和待授权数据的数据提供方的账户信息生成授权申请事务请求并传输至区块链网络之前,所述方法还包括:

在检测到授权申请方产生的数据查询请求时,基于待授权数据的查询标识生成数据查询事务请求并传输至区块链网络,以使区块链节点处理所述数据查询事务请求,获取待授权数据的数据提供方的账户信息,并反馈至所述授权申请方。

上述申请中的一个可选实施方式,在基于授权申请方的账户信息和数据提供方的账户信息生成授权申请事务请求之前,追加数据提供方的账户信息的获取操作,进而实现了数据提供方的账户信息的链上获取,通过将账户信息查询过程迁移至区块链网络,为链外存储数据的统一管理提供了便利。

可选的,基于待授权数据生成数据查询事务请求并传输至区块链网络,还包括:

基于待授权数据生成数据查询事务请求并传输至区块链网络,以使区块链节点处理所述数据查询事务请求,获取并反馈待授权数据的存储关联信息;其中,所述存储关联信息包括所述待授权数据的链外存储标识和所述数据提供方提供的与所述待授权账户对应的查询密钥;

基于所述待授权数据的链外存储标识在链外存储网络查找所述待授权数据;

采用所述授权申请方的账户私钥对获取到的查询密钥进行解密,得到所述待授权数据的存储密钥;

基于得到的所述存储密钥对获取的待授权数据进行解密。

上述申请中的一个可选实施方式,通过在生成数据查询事务请求进行数据提供方的账户信息的获取的同时,还可以获取待授权数据的存储关联信息,从而通过存储关联信息从链外存储网络进行待授权数据的获取和解密,实现了待授权数据的获取,实现了对待授权数据的存在性的验证,从而完善了对待授权数据的验证机制,通过将存在性验证的相关数据添加至区块链网络,为链外存储数据的统一管理提供了便利。

可选的,所述存储关联信息还包括所述待授权数据的指纹数据;

相应的,在基于得到的所述存储密钥对获取的待授权数据进行解密之后,还包括:

提取所述待授权数据的指纹数据,并基于提取的指纹数据与获取的指纹数据,验证所述待授权数据的正确性。

上述申请中的一个可选实施方式,通过待授权数据的指纹数据的获取,并基于获取的待授权数据的指纹数据对待授权数据的正确性加以验证,进一步完善了对待授权数据的验证机制,通过将正确性验证过程所需的数据添加至区块链网络,为链外存储数据的统一管理提供了便利。

第二方面,本申请实施例还提供了一种数据存证方法,应用于区块链节点,包括:

接收数据提供方发送的数据存储事务请求;所述数据存储事务请求中包括存储在链外存储网络的待存储数据所对应的链外存储标识、所述数据提供方的账户信息和所述待存储数据对应的查询密钥;

处理所述数据存储事务请求,并将所述数据存储事务请求中的数据上链存储;

其中,所述查询密钥基于所述数据提供方的账户信息对存储密钥加密生成,所述存储密钥用于对存储在链外存储网络的待存储数据进行加密。

本申请实施例通过接收数据提供方发送的包含存储在链外存储网络的待存储数据所对应的链外存储标识、数据提供方的账户信息以及通过数据提供方的账户信息对存储密钥加密所得到的查询密钥的数据存储事务请求,并处理该数据存储事务请求,进而将待存储数据的上述关联信息上链存储,达到了链外存储数据主体,链上存储关联信息的效果,从而实现了对数据的去中心化存储,并提高了数据的存储效率,降低了数据存储成本;同时,通过存储密钥和区块链账户相结合的存储方式,明确了所存储数据的归属权限,提高了数据存储的安全性。

可选的,所述方法还包括:

接收数据提供方发送的数据授权事务请求;所述数据授权事务请求包括授权申请方的账户信息;

处理所述数据授权事务请求,将所述数据授权事务请求中的数据与所述待授权数据关联存储至区块链中。

上述申请中的一个可选实施方式,通过包括授权申请方的账户信息的数据授权事务请求的接收和处理,实现授权申请方的账户信息与待授权数据在区块链中的管理存储,从而借助区块链网络授予授权申请方待授权数据的使用权限,达到了数据共享的目的,同时通过将授权过程迁移至区块链网络,方便了对链外存储数据的统一管理。

可选的,所述数据授权事务请求还包括数据提供方提供的基于所述授权申请方的账户信息加密后的存储密钥。

上述申请中的一个可选实施方式,通过在数据授予事务请求中添加数据提供方提供的授权申请方的账户信息加密后的存储密钥,以使授权申请方可直接根据自身账户私钥,从链外存储网络获取已授权数据,方便了授权申请方对已授权数据的管理。

可选的,所述数据存储事务请求中还包括所述待存储数据的指纹数据,所述指纹数据由数据提供方提取所述待存储数据的指纹信息得到。

上述申请中的一个可选实施方式,通过在数据存储事务请求中添加数据提供方提取的待存储数据的指纹数据,为后续基于指纹数据对待存储数据的正确性的验证奠定基础。

可选的,所述方法还包括:

接收授权申请方发送的授权申请事务请求,所述授权申请事务请求中包括所述授权申请方的账户信息和所述数据提供方的账户信息;

处理所述授权申请事务请求,以向所述待授权数据对应的数据提供方发送所述授权申请方的账户信息。

上述申请中的一个可选实施方式,通过对包括授权申请方的账户信息和数据提供方的账户信息的授权申请事务请求的接收和处理,借助区块链请求数据提供方提供授权申请方的账户信息,以便数据提供方向授权申请方进行授予待授权数据的使用权限,通过将账户信息发送过程迁移至区块链网络,方便了对链外存储数据的统一管理。

可选的,在接收所述授权申请方发送的授权申请事务请求之前,所述方法还包括:

接收授权申请方发送的数据查询事务请求,所述数据查询事务请求包括待授权数据的查询标识;

处理所述数据查询事务请求,以根据所述待授权数据的查询标识获取并反馈与所述待授权数据对应的数据提供方的账户信息。

上述申请中的一个可选实施方式,通过在接收授权申请方发送的授权申请事务请求之前,进行包括带授权数据的查询标识的数据查询事务请求的接收和处理,借助区块链网络实现了对数据提供方的账户信息的查询,为数据提供方向授权申请方授予待授权数据的使用权限奠定基础,通过将账户查询过程迁移至区块链网络,为链外存储数据的统一管理提供了便利。

可选的,处理所述数据查询事务请求,还包括:

处理所述数据查询事务请求,以获取所述待授权数据的存储关联信息;其中,所述存储关联信息包括链外存储标识和基于所述授权申请方的账户信息加密后的存储密钥;

将所述待授权数据的存储关联信息反馈至授权申请方,以使所述授权申请方基于所述链外存储标识在链外存储网络查找加密后的待授权数据,并基于所述存储关联信息中的存储密钥对获取的待授权数据进行解密。

上述申请中的一个可选实施方式,通过在处理数据查询事务请求获取数据提供方的账户信息的同时,进行待授权数据的关联信息的获取,从而通过存储关联信息从链外存储网络进行待授权数据的获取和解密,实现了待授权数据的获取,实现了对待授权数据的存在性的验证,从而完善了对待授权数据的验证机制,通过将存在性验证的相关数据添加至区块链网络,为链外存储数据的统一管理提供了便利。

可选的,所述存储关联信息还包括所述待授权数据的指纹数据;

相应的,将所述待授权数据的存储关联信息反馈至授权申请方,还包括:

将所述指纹数据反馈至授权申请方,以使所述授权申请方提取所述待授权数据的指纹数据,并将基于所述待授权数据的指纹数据与所述存储关联信息中的指纹数据,验证所述待授权数据的正确性。

上述申请中的一个可选实施方式,通过在存储关联信息中添加待授权数据的指纹信息,并基于获取的待授权数据的指纹数据对待授权数据的正确性加以验证,进一步完善了对待授权数据的验证机制,通过将正确性验证过程所需的数据添加至区块链网络,为链外存储数据的统一管理提供了便利。

第三方面,本申请实施例还提供了一种数据存证装置,配置于客户端,包括:

链外存储模块,用于在检测到数据提供方触发的数据存储指令时,采用存储密钥对待存储数据进行加密,并将加密后的待存储数据上传至链外存储网络,得到所述待存储数据的链外存储标识;

查询密钥生成模块,用于基于所述数据提供方的账户信息对所述存储密钥进行加密,生成查询密钥;

数据存储请求生成模块,用于基于所述链外存储标识、所述数据提供方的账户信息和所述查询密钥,生成数据存储事务请求并传输至区块链网络,以使区块链节点处理所述数据存储事务请求,并将所述数据存储事务请求中的数据上链存储。

第四方面,本申请实施例还提了一种数据存证装置,配置于区块链节点,包括:

数据存储请求接收模块,用于接收数据提供方发送的数据存储事务请求;所述数据存储事务请求中包括存储在链外存储网络的待存储数据所对应的链外存储标识、所述数据提供方的账户信息和所述待存储数据对应的查询密钥;

数据存储请求处理模块,用于处理所述数据存储事务请求,并将所述数据存储事务请求中的数据上链存储;

其中,所述查询密钥基于所述数据提供方的账户信息对存储密钥加密生成,所述存储密钥用于对存储在链外存储网络的待存储数据进行加密。

第五方面,本申请实施例还提供了一种电子设备,包括:

至少一个处理器;以及

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

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面实施例提供的一种数据存证方法。

第六方面,本申请实施例还提供了一种电子设备,包括:

至少一个处理器;以及

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

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第二方面实施例提供的一种数据存证方法。

第七方面,本申请实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如第一方面实施例提供的一种数据存证方法。

第八方面,本申请实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如第二方面实施例提供的一种数据存证方法。

上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1a是本申请实施例所涉及的一种系统架构示意图;

图1b是本申请实施例一中的一种数据存证方法的流程图;

图2是本申请实施例二中的一种数据存证方法的流程图;

图3是本申请实施例三中的一种数据存证方法的流程图;

图4是本申请实施例四中的一种数据存证方法的流程图;

图5是本申请实施例五中的一种数据存证方法的流程图;

图6是本申请实施例六中的一种数据存证方法的流程图;

图7是本申请实施例七中的一种数据存证方法的流程图;

图8是本申请实施例八中的一种数据存证方法的流程图;

图9是本申请实施例九中的一种数据存证装置的结构图;

图10是本申请实施例十中的一种数据存证装置的结构图;

图11是用来实现本申请实施例的数据存证方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

为了清除的介绍本申请各实施例的技术方案,首先对本申请所涉及的系统框架进行示例性说明。

参见图1a所示的一种系统框架图,包括客户端10、链外存储网络20和区块链网络30。

其中,客户端10用于供用户进行触发操作,例如进行数据存储、获取和验证等管理操作的触发,生成相应的事务请求,并将事务请求发送至区块链网络进行处理。其中客户端可以通过部署dapp的形式参与到区块链网络,或者通过接入其他中心化的区块链节点,间接参与到区块链网络,进行事务请求的发送。

链外存储网络20,用于在区块链网络之外进行数据的存储。

区块链网络30,用于接收客户端10发送的各事务请求,并通过处理事务请求的方式完成相应业务,以将数据管理业务迁移至区块链网络,便于对数据的统一管理。

实施例一

图1b是本申请实施例一中的一种数据存证方法的流程图,本申请实施例适用于对待存储数据进行数据存储的情况。该方法由数据存证装置执行,该装置通过软件和/或硬件实现,并具体配置于客户端中。

如图1b所示的一种数据存证方法,应用于客户端,包括:

s101、在检测到数据提供方触发的数据存储指令时,采用存储密钥对待存储数据进行加密,并将加密后的待存储数据上传至链外存储网络,得到所述待存储数据的链外存储标识。

其中,存储密钥可以是对称密钥或非对称密钥,通过密钥生成算法随机生成。

其中,链外存储网络可以是提供存储服务的云端设备,例如ipfs(interplanetaryfilesystem,星际文件系统)。链外存储标识用于表征待存储数据在链外存储网络中的存储位置,便于后续在链外存储网络对已存储数据的查找。

示例性地,当检测到数据提供方对客户端中的设定区域采用设定方式进行触发而产生的数据存储指令时,将会采用存储密钥对待存储数据进行加密,并将加密后的待存储数据上传至链外存储网络进行存储,同时得到待存储数据在链外存储网络中的存储地址作为链外存储标识。其中,触发生成数据存储指令的设定区域和/或设定方式,可以由客户端开发人员根据开发需求进行设定,或者客户端用户根据使用需求自行设定。

需要说明的是,当存储密钥为对称密钥时,采用存储密钥对待存储数据进行加密,可以是直接采用存储密钥对待存储数据进行加密;当存储密钥为非对称密钥时,采用非对称密钥中的公钥对待存储数据进行加密。

需要说明的是,待存储数据可以由数据提供方在触发数据存储指令前,将数据主体全部导入客户端,进而由客户端;或者将数据主体的访问地址导入客户端,并在将数据存储至链外存储系统时,通过访问地址进行数据主体的获取和转移存储。

示例性地,存储密钥可以在对待存储数据进行加密之前,由客户端自身预先生成;或者通过与客户端通信连接的其他电子设备预先生成,并在需要时从电子设备中进行存储密钥的获取。

s102、基于所述数据提供方的账户信息对所述存储密钥进行加密,生成查询密钥。

其中,数据提供方的账户信息可以是数据提供方在区块链网络中的账户地址。

其中,查询密钥用于对从链外存储网络中获取的已存储数据进行解密。需要说明的是,当存储密钥为对称密钥时,通过数据提供方的账户信息对存储密钥进行加密,生成查询密钥;当存储密钥为非对称密钥时,通过数据提供方的账户信息对存储密钥的私钥进行加密,生成查询密钥。

s103、基于所述链外存储标识、所述数据提供方的账户信息和所述查询密钥,生成数据存储事务请求并传输至区块链网络,以使区块链节点处理所述数据存储事务请求,并将所述数据存储事务请求中的数据上链存储。

在该步骤中,基于链外存储标识、数据提供方的账户信息和查询密钥,作为待存储数据的存储关联信息,生成数据存储事务请求,并将数据存储事务请求传输至区块链网络。相应的,区块链节点接收并处理该数据存储事务请求,以将数据存储事务请求中所包含的数据存储至区块链网络。

可以理解的是,当待存储数据为图片、视频等大容量数据时,将待存储数据的数据主体存储至区块链网络之外的链外存储网络,并将待存储数据在链外存储网络中的链外存储标识在去中心化的区块链网络加以存储,通过链上链下相结合的存储方式,满足了去中心化的存储要求。另外,由于在区块链网络中存储的数据量远远小于待存储数据的自身大小,减少了在区块链网络中的数据存储成本,同时大大减少了客户端与区块链网络之间的数据传输量,提高了数据存储效率。

另外,通过存储密钥对待存储数据进行加密,并通过数据提供方的账户信息对存储密钥进行加密生成查询密钥,使得采用查询密钥结合数据提供方的账户信息对应的账户私钥进行已存储数据的解密,明确了已存储数据的归属权限,并进一步提高了数据存储的安全性。

本申请实施例在检测到数据提供方触发的数据存储指令时,采用存储密钥对待存储数据进行加密,并将加密后的待存储数据上传至链外存储网络,得到存储数据的链外存储标识;基于数据提供方的账户信息对存储密钥进行加密,生成查询密钥;基于链外存储标识、数据提供方的账户信息和查询密钥生成数据存储事务请求并传输至区块链网络,以使区块链节点处理数据存储事务请求,并将数据存储事务请求中的数据上链存储。上述技术方案通过将待存储数据通过链外存储网络存储数据主体,并结合区块链存储关联信息的方式,实现了对数据的去中心化存储,提高了存储效率,同时降低了存储成本;同时,通过存储密钥和区块链账户相结合的存储方式,明确了所存储数据的归属权限,提高了数据存储的安全性。

实施例二

图2是本申请实施例二中的一种数据存证方法的流程图,本申请实施例在上述各实施例的技术方案的基础上进行了优化改进。

进一步地,在数据存证方法中追加以下操作“在检测到授权申请方触发的请求授权指令时,基于所述授权申请方的账户信息和待授权数据的数据提供方的账户信息生成授权申请事务请求并传输至区块链网络,以使区块链节点处理所述授权申请事务请求,向所述待授权数据的数据提供方发送所述授权申请方的账户信息”,以实现授权申请方向数据提供方请求数据授权。

如图2所示的一种数据存证方法,包括:

s201、在检测到数据提供方触发的数据存储指令时,采用存储密钥对待存储数据进行加密,并将加密后的待存储数据上传至链外存储网络,得到所述待存储数据的链外存储标识。

s202、基于所述数据提供方的账户信息对所述存储密钥进行加密,生成查询密钥。

s203、基于所述链外存储标识、所述数据提供方的账户信息和所述查询密钥,生成数据存储事务请求并传输至区块链网络,以使区块链节点处理所述数据存储事务请求,并将所述数据存储事务请求中的数据上链存储。

s204、在检测到授权申请方触发的请求授权指令时,基于所述授权申请方的账户信息和待授权数据的数据提供方的账户信息生成授权申请事务请求并传输至区块链网络,以使区块链节点处理所述授权申请事务请求,向所述待授权数据的数据提供方发送所述授权申请方的账户信息。

当检测到授权申请方对客户端中的设定区域采用设定方式进行触发而生成的请求授权指令时,将会基于授权申请方的账户信息和待授权数据的数据提供方的账户信息生成授权申请事务请求,并将授权申请事务请求传输至区块链网络。相应的,区块链节点接收并处理该授权申请事务请求,以向待授权数据的数据提供方发送授权申请方的账户信息,便于数据提供方向授权申请方授予数据使用权限。其中,触发生成请求授权指令的设定区域和/或设定方式,可以由客户端开发人员根据开发需求进行设定,或有客户端用户根据使用需求自行设定。

需要说明的是,授权申请方可以通过线下资料收集的方式进行待授权数据的查找;或者,通过在区块链网络根据所需求数据的摘要信息、描述信息或者其他相关属性信息进行待授权数据的查找获取。

示例性地,通过区块链网络进行待授权数据的查找获取,可以是将所需数据的描述信息、摘要信息以及其他相关属性信息等中的至少一种生成数据搜索事务请求,并将数据搜索事务请求传输至区块链网络,以使区块链节点接收并处理数据搜索事务请求,并在区块中查找满足用户需求的待授权数据,并反馈待授权数据的查询标识。其中,查询标识可以是区块标识和/或事务数据标识。其中,区块标识用于表征存储待授权数据的存储关联信息的区块;事务数据标识用于表征处理针对待授权数据的数据存储事务请求时所存储的事务数据。

可以理解的是,通过将待授权数据的查询过程迁移至区块链网络,提高了所查询数据的公开性和透明性,为已存储数据的数据共享奠定基础,同时提高了对已存储数据的相关信息进行管理的便捷度。

需要说明的是,数据提供方的账户信息可以由授权申请方用户线下获取,还可以通过在区块链网络进行待授权数据的数据提供方的账户信息的查找获取。

示例性地,通过区块链网络进行待授权数据的数据提供方的账户信息的查找获取,可以是在检测到授权申请方产生的数据查询请求时,基于待授权数据的查询标识生成数据查询事务请求并传输至区块链网络,以使区块链节点处理所述数据查询事务请求,获取待授权数据的数据提供方的账户信息,并反馈至所述授权申请方。

可以理解的是,通过将数据提供方的账户信息的查找过程迁移至区块链网络,提高了所获取的数据提供方的账户信息的准确性和安全性,为已存储数据的数据共享奠定基础,同时提高了对已存储数据的相关信息进行管理的便捷度。

本申请实施例通过在检测到授权申请方触发的请求授权指令时,基于授权申请方的账户信息和待授权数据的数据提供方的账户信息进行授权申请事务请求的生成,以借助区块链请求数据提供方提供授权申请方的账户信息,为数据提供方向授权申请方授予待授权数据的使用权限奠定基础,通过将账户信息发送过程迁移至区块链网络,为链外存储数据的统一管理提供了便利。

实施例三

图3是本申请实施例三中的一种数据存证方法的流程图,本申请实施例在上述各实施例的技术方案的基础上提供了一种优选实施方式。

进一步地,在数据存证方法中追加以下步骤“在检测到数据提供方触发的数据授权指令时,获取待授权数据的授权申请方的账户信息;基于所述授权申请方的账户信息生成数据授权事务请求并传输至区块链网络,以使区块链节点执行所述数据授权事务请求,并将所述数据授权事务请求中的数据与所述待授权数据关联存储至区块链中”,以实现数据提供方向授权申请方授予待授权数据的使用权限。

如图3所示的一种数据存证方法,包括:

s301、在检测到数据提供方触发的数据存储指令时,采用存储密钥对待存储数据进行加密,并将加密后的待存储数据上传至链外存储网络,得到所述待存储数据的链外存储标识。

s302、基于所述数据提供方的账户信息对所述存储密钥进行加密,生成查询密钥。

s303、基于所述链外存储标识、所述数据提供方的账户信息和所述查询密钥,生成数据存储事务请求并传输至区块链网络,以使区块链节点处理所述数据存储事务请求,并将所述数据存储事务请求中的数据上链存储。

s304、在检测到数据提供方触发的数据授权指令时,获取待授权数据的授权申请方的账户信息。

示例性地,当数据提供方接收到授权申请方需要对待授权数据请求授权的相关信息时,将会对客户端中的设定区域采用设定方式进行触发而产生数据授权指令;并在产生数据授权指令时,获取待授权数据的授权申请方的账户信息。其中,触发生成数据授权指令的设定区域和/或设定方式,可以由客户端开发人员根据开发需求进行设定,或者客户端用户根据使用需求自行设定。

其中,数据提供方接收授权申请方需要对待授权数据请求授权的相关信息,可以通过线下沟通的方式实现,还可以通过前述实施例涉及的基于区块链进行相关信息的发送。

示例性地,获取待授权数据的授权申请方的账户信息,可以预先在数据提供方的客户端本地,或与客户端通信连接的其他电子设备或云端中进行待授权数据的授权申请方的账户信息,并在需要时直接进行授权申请方的账户信息的获取。

其中,数据申请方的账户信息的获取还可以通过区块链节点对授权申请方的客户端产生的授权申请事务请求的处理实现,具体可参见前述实施例,在此不再赘述。

s305、基于所述授权申请方的账户信息生成数据授权事务请求并传输至区块链网络,以使区块链节点处理所述数据授权事务请求,并将所述数据授权事务请求中的数据与所述待授权数据关联存储至区块链中。

示例性地,基于授权申请方的账户信息生成数据授权事务请求,并将数据授权事务请求传输至区块链网络。相应的,区块链节点接收并处理该数据授权事务请求,以将数据授权事务请求中的数据与待授权数据关联存储至区块链网络。

可以理解的是,由于数据授权事务请求中包括授权申请方的账户信息,相应的,可以将授权申请方的账户信息与待授权数据的链外存标识、数据提供方的账户信息以及与数据提供方的账户相关联的查询密钥等存储关联信息在区块中关联存储,通过关联存储授权申请方的账户信息的方式,在区块链中存储了已授权用户的账户信息,便于数据提供方和授权申请方的查证。

可以理解的是,虽然在区块链中存储量已授权用户的账户信息,但是由于区块链中存储的查询密钥需要通过数据提供方的账户私钥解密后,才能得到用于解密链外存储网络中的已存储数据的存储密钥,因此已授权用户仍需通过数据提供方进行已授权数据的获取。

为了便于已授权用户绕开数据提供方直接进行已授权数据的使用,提高获取已授权数据的便捷度,还可以在数据提供方对授权申请方进行数据授权过程中,在基于所述授权申请方的账户信息生成数据授权事务请求并传输至区块链网络之前,从区块链上获取待授权数据的查询密钥,并基于所述数据提供方的账户私钥,对得到的所述待授权数据的查询密钥进行解密,得到所述待授权数据的存储密钥;基于所述授权申请方的账户信息,对所述待授权数据的存储密钥再次加密。相应的,基于所述授权申请方的账户信息生成数据授权事务请求并传输至区块链网络,包括:基于再次加密后的存储密钥和所述授权申请方的账户信息,生成数据授权事务请求并传输至区块链网络。

数据提供方向针对待授权数据的查询标识从区块链上获取待授权数据的查询密钥;其中,查询标识可以是待授权数据的描述信息、区块标识以及事务数据标识等中的至少一种。

数据提供方采用自身账户信息对应的账户私钥对查询密钥进行解密,得到用于解密链外存储网络中所存储的数据的密钥。当存储密钥为对称密钥时,通过数据提供方的账户私钥对查询密钥解密后得到存储密钥本身;当存储密钥为非对称密钥时,通过数据提供方的账户私钥对查询密钥解密后得到存储密钥对应的私钥。本申请以存储密钥为对称密钥进行示例性说明。

数据提供方采用授权申请方的账户信息对解密后得到的存储密钥再次进行加密,并将加密后的存储密钥和授权申请方的账户信息存储至区块链中。由于在授权过程中将授权申请方的账户信息和经授权申请方的账户信息加密后的存储密钥存储在区块链中,那么当授权申请方需要使用已授权数据时,直接获取经授权申请方的账户信息加密后的存储密钥,并经自身账户私钥解密后,即可得到对已授权数据进行解密的存储密钥;同时采用存储密钥对链外存储网络中链外存储标识对应的数据进行解密后,即可无需通过数据提供方进行已授权数据的获取,提高了已授权用户已授权数据进行获取的便捷度。

本申请实施例通过在检测到数据提供方触发的数据授权指令时,获取待授权数据的授权申请方的账户信息,并基于授权申请方的账户信息生成数据授权事务请求传输至区块链网络,以使区块链节点执行数据授权事务请求,并将数据授权事务请求中的数据与待授权数据关联存储至区块链中,进而授予授权申请方待授权数据的使用权限,达到了数据共享的目的,同时通过将授权过程迁移至区块链网络,方便了对链外存储数据的统一管理。

实施例四

图4是本申请实施例四中的一种数据存证方法的流程图,本申请实施例在上述各实施例的技术方案的基础上进行了优化改进。

进一步地,在数据存证方法中追加“基于待授权数据的查询数据生成数据查询事务请求并传输至区块链网络,以使区块链节点处理所述数据查询事务请求,获取并反馈待授权数据的存储关联信息;其中,所述存储关联信息包括所述待授权数据的链外存储标识和所述数据提供方提供的与所述授权申请方对应的查询密钥;基于所述待授权数据的链外存储标识在链外存储网络查找所述待授权数据;采用所述授权申请方的账户私钥对获取到的查询密钥进行解密,得到所述待授权数据的存储密钥;基于得到的所述存储密钥对获取的待授权数据进行解密”,以对待授权数据的存在性进行验证。

如图4所示的一种数据存证方法,包括:

s401、在检测到数据提供方触发的数据存储指令时,采用存储密钥对待存储数据进行加密,并将加密后的待存储数据上传至链外存储网络,得到所述待存储数据的链外存储标识。

s402、基于所述数据提供方的账户信息对所述存储密钥进行加密,生成查询密钥。

s403、基于所述链外存储标识、所述数据提供方的账户信息和所述查询密钥,生成数据存储事务请求并传输至区块链网络,以使区块链节点处理所述数据存储事务请求,并将所述数据存储事务请求中的数据上链存储。

s404、在检测到授权申请方产生的数据查询请求时,基于待授权数据的查询标识生成数据查询事务请求并传输至区块链网络,以使区块链节点处理所述数据查询事务请求,获取并反馈待授权数据的存储关联信息;其中,所述存储关联信息包括所述待授权数据的链外存储标识和所述数据提供方提供的与所述授权申请方对应的查询密钥。

当检测到授权申请方在客户端的设定区域采用设定方式触发产生的数据查询请求时,基于待授权数据的查询标识生成数据查询事务请求,并将数据查询事务请求传输至区块链网络。相应的,区块链节点接收待数据查询事务请求,在区块链中基于待查询数据的查询标识获取待授权数据的存储关联信息,并将存储关联信息反馈至授权申请方。其中,触发生成数据查询请求的设定区域和/或设定方式,可以由客户端开发人员根据开发需求进行设定,或者客户端用户根据使用需求自行设定。

s405、基于所述待授权数据的链外存储标识在链外存储网络查找所述待授权数据。

由于存储关联信息中包括待授权数据的链外存储标识,因此授权申请方可以根据获取到的链外存储标识,在链外存储网络中获取待授权数据。

s406、采用所述授权申请方的账户私钥对获取到的查询密钥进行解密,得到所述待授权数据的存储密钥。

由于存储关联信息中包括经授权申请方的账户信息加密的存储密钥,因此可以通过授权申请方的账户私钥对所获取的密钥进行解密,得到待授权数据的存储密钥。

s407、基于得到的所述存储密钥对获取的待授权数据进行解密。

通过得到的存储密钥对获取到的待授权数据进行解密,得到待授权数据自身。当解密后得到了待授权数据,则表明所需的待授权数据存在;当解密后无法得到待授权数据,则表明所需的待授权数据不存在。因此,在授权申请方用户向数据提供方申请授权之前,通过待授权数据自身查询的方式进行待授权数据的存在性加以验证,提高了数据交易的安全性。

当然,为了保证数据提供方的权益,在向授权申请方授权前,向授权申请方所提供的数据可以为只读模式或者仅显示部分数据,以防数据被不法授权申请方窃取。

本申请实施例通过在生成数据查询事务请求进行数据提供方的账户信息的获取的同时,还可以获取待授权数据的存储关联信息,从而通过存储关联信息从链外存储网络进行待授权数据的获取和解密,实现了待授权数据的获取,实现了对待授权数据的存在性的验证,从而完善了对待授权数据的验证机制,通过将存在性验证的相关数据添加至区块链网络,为链外存储数据的统一管理提供了便利。

为了对所获取数据的正确性加以验证,在上述各实施例的技术方案的技术上,在基于链外存储标识、数据提供方的账户信息和查询密钥,生成数据存储事务请求之前,还可以提取所述待存储数据的指纹信息,得到指纹数据。相应的,基于所述链外存储标识和所述数据提供方的账户信息,生成数据存储事务请求,可以是基于所述链外存储标识、所述数据提供方的账户信息和所述指纹数据,生成数据存储事务请求。

那么,在区块链节点处理数据存储事务请求时,在区块链的事务数据中也将存储有待授权数据的指纹数据。相应的,在处理数据查询事务请求所获取的待授权数据的存储关联信息中,也会包括待授权数据的指纹数据。当存储关联信息中还包括待授权数据的指纹数据时,在基于得到的存储密钥对获取的待授权数据进行解密之后,还可以提取待授权数据的指纹数据,并基于提取的指纹数据与获取的指纹数据,验证待授权数据的正确性。

具体的,当提取的指纹数据与获取的存储关联信息中的指纹数据相同,则表明从链外存储网络获取的待授权数据正确;若提取的指纹数据与获取的存储关联信息中的指纹数据不同,则表明从链外存储网络获取的待授权数据有误,从而实现了对待授权数据的正确性的验证。

实施例五

图5是本申请实施例五中的一种数据存证方法的流程图,本申请实施例适用于通过区块链网络对待存储数据进行数据存储的情况,该方法由数据存证装置执行,该装置通过软件和/或硬件加以实现,并具体配置在承载有区块链节点的电子设备中。

如图5所示的一种数据存证方法,应用于区块链节点,包括:

s501、接收数据提供方发送的数据存储事务请求;所述数据存储事务请求中包括存储在链外存储网络的待存储数据所对应的链外存储标识、所述数据提供方的账户信息和所述待存储数据对应的查询密钥。

其中,所述查询密钥基于所述数据提供方的账户信息对存储密钥加密生成,所述存储密钥用于对存储在链外存储网络的待存储数据进行加密。

其中,存储密钥可以是对称密钥或非对称密钥,通过密钥生成算法随机生成。需要说明的是,当存储密钥为对称密钥时,采用存储密钥对待存储数据进行加密,可以是直接采用存储密钥对待存储数据进行加密;当存储密钥为非对称密钥时,采用非对称密钥中的公钥对待存储数据进行加密。

其中,链外存储网络可以是提供存储服务的云端设备,例如ipfs。链外存储标识用于表征待存储数据在链外存储网络中的存储位置,便于后续在链外存储网络对已存储数据的查找。

当数据提供方对客户端中的设定区域采用设定方式触发,生成数据存储指令时,将会采用存储密钥对待存储数据进行加密,并将加密后的待存储数据上传至链外存储网络进行存储,同时得到待存储数据在链外存储网络中的存储地址作为链外存储标识。数据提供方的客户端基于数据提供方的账户信息对存储密钥进行加密,生成查询密钥,并基于链外存储标识、数据提供方的账户信息和查询密钥,生成数据存储事务请求传输至区块链网络。相应的,区块链节点接收该数据存储事务请求。其中,触发生成数据存储指令的设定区域和/或设定方式,可以由客户端开发人员根据开发需求进行设定,或者客户端用户根据使用需求自行设定。

s502、处理所述数据存储事务请求,并将所述数据存储事务请求中的数据上链存储。

区块链节点处理该数据存储事务请求,以将数据存储事务请求中的数据,例如数据存储事务请求中所包括的存储在链外存储网络的待存储数据所对应的链外存储标识、所述数据提供方的账户信息和所述待存储数据对应的查询密钥存储至区块链中。示例性地,对数据存储事务请求的处理可以通过调用数据存储智能合约的方式加以实现。

可以理解的是,当待存储数据为图片、视频等大容量数据时,将待存储数据的数据主体存储至区块链网络之外的链外存储网络,并将待存储数据在链外存储网络中的链外存储标识在去中心化的区块链网络加以存储,通过链上链下相结合的存储方式,满足了去中心化的存储要求。另外,由于在区块链网络中存储的数据量远远小于待存储数据的自身大小,减少了在区块链网络中的数据存储成本,同时大大减少了客户端与区块链网络之间的数据传输量,提高了数据存储效率。

另外,通过存储密钥对待存储数据进行加密,并通过数据提供方的账户信息对存储密钥进行加密生成查询密钥,使得采用查询密钥结合数据提供方的账户信息对应的账户私钥进行已存储数据的解密,明确了已存储数据的归属权限,并进一步提高了数据存储的安全性。

本申请实施例通过接收数据提供方发送的包含存储在链外存储网络的待存储数据所对应的链外存储标识、数据提供方的账户信息以及通过数据提供方的账户信息对存储密钥加密所得到的查询密钥的数据存储事务请求,并处理该数据存储事务请求,进而将待存储数据的上述关联信息上链存储,达到了链外存储数据主体,链上存储关联信息的效果,从而实现了对数据的去中心化存储,并提高了数据的存储效率,降低了数据存储成本;同时,通过存储密钥和区块链账户相结合的存储方式,明确了所存储数据的归属权限,提高了数据存储的安全性。

实施例六

图6是本申请实施例六中的一种数据存证方法的流程图,本申请实施例在上述各实施例的技术方案的基础上进行了优化改进。

进一步地,在数据存证方法中追加“接收授权申请方发送的授权申请事务请求,所述授权申请事务请求中包括所述授权申请方的账户信息和所述数据提供方的账户信息;处理所述授权申请事务请求,以向所述待授权数据对应的数据提供方发送所述授权申请方的账户信息”,以将数据提供方对授权申请方的账户查询过程迁移至区块链网络。

如图6所示的一种数据存证方法,包括:

s601、接收数据提供方发送的数据存储事务请求;所述数据存储事务请求中包括存储在链外存储网络的待存储数据所对应的链外存储标识、所述数据提供方的账户信息和所述待存储数据对应的查询密钥。

其中,所述查询密钥基于所述数据提供方的账户信息对存储密钥加密生成,所述存储密钥用于对存储在链外存储网络的待存储数据进行加密。

s602、处理所述数据存储事务请求,并将所述数据存储事务请求中的数据上链存储。

s603、接收授权申请方发送的授权申请事务请求,所述授权申请事务请求中包括所述授权申请方的账户信息和所述数据提供方的账户信息。

当检测到授权申请方对客户端中的设定区域采用设定方式进行触发而生成的请求授权指令时,将会基于授权申请方的账户信息和待授权数据的数据提供方的账户信息生成授权申请事务请求,并将授权申请事务请求传输至区块链网络。其中,触发生成请求授权指令的设定区域和/或设定方式,可以由客户端开发人员根据开发需求进行设定,或有客户端用户根据使用需求自行设定。

需要说明的是,授权申请方可以通过线下资料收集的方式进行待授权数据的查找;或者,通过在区块链网络根据所需求数据的摘要信息、描述信息或者其他相关属性信息进行待授权数据的查找获取。

示例性地,通过区块链网络进行待授权数据的查找获取,可以是将所需数据的描述信息、摘要信息以及其他相关属性信息等中的至少一种生成数据搜索事务请求,并将数据搜索事务请求传输至区块链网络;区块链节点接收并处理该数据搜索事务请求,并在区块中查找满足用户需求的待授权数据,并反馈待授权数据的查询标识。示例性地,对数据搜索事务请求的处理可以通过调用数据搜索智能合约加以实现。

其中,查询标识可以是区块标识和/或事务数据标识。其中,区块标识用于表征存储待授权数据的存储关联信息的区块;事务数据标识用于表征处理针对待授权数据的数据存储事务请求时所存储的事务数据。

可以理解的是,通过将待授权数据的查询过程迁移至区块链网络,提高了所查询数据的公开性和透明性,为已存储数据的数据共享奠定基础,同时提高了对已存储数据的相关信息进行管理的便捷度。

需要说明的是,数据提供方的账户信息可以由授权申请方用户线下获取,还可以通过在区块链网络进行待授权数据的数据提供方的账户信息的查找获取。

示例性地,通过区块链网络进行待授权数据的数据提供方的账户信息的查找获取,可以是在检测到授权申请方产生的数据查询请求时,基于待授权数据的查询标识生成数据查询事务请求并传输至区块链网络。区块链节点接收授权申请方发送的数据查询事务请求,所述数据查询事务请求包括待授权数据的查询标识;处理所述数据查询事务请求,以根据所述待授权数据的查询标识获取并反馈与所述待授权数据对应的数据提供方的账户信息。示例性地,对数据查询事务请求的处理可以通过调用数据查询智能合约加以实现。

可以理解的是,通过将数据提供方的账户信息的查找过程迁移至区块链网络,提高了所获取的数据提供方的账户信息的准确性和安全性,为已存储数据的数据共享奠定基础,同时提高了对已存储数据的相关信息进行管理的便捷度。

s604、处理所述授权申请事务请求,以向所述待授权数据对应的数据提供方发送所述授权申请方的账户信息。

区块链节点处理该授权申请事务请求,以向待授权数据的数据提供方发送授权申请方的账户信息,便于数据提供方向授权申请方授予数据使用权限。示例性地,对授权申请事务请求的处理可以通过调用授权申请智能合约加以实现。

本申请实施例通过对包括授权申请方的账户信息和数据提供方的账户信息的授权申请事务请求的接收和处理,借助区块链请求数据提供方提供授权申请方的账户信息,以便数据提供方向授权申请方进行授予待授权数据的使用权限,通过将账户信息发送过程迁移至区块链网络,方便了对链外存储数据的统一管理。

实施例七

图7是本申请实施例七中的一种数据存证方法的流程图,本申请实施例在上述各实施例的技术方案的基础上进行了优化改进。

进一步地,将数据存证方法中追加“接收数据提供方发送的数据授权事务请求;所述数据授权事务请求包括授权申请方的账户信息;处理所述数据授权事务请求,将所述数据授权事务请求中的数据与所述待授权数据关联存储至区块链中”,以将数据提供方向授权申请方进行待授权数据的授权过程迁移至区块链网络。

如图7所示的一种数据存证方法,包括:

s701、接收数据提供方发送的数据存储事务请求;所述数据存储事务请求中包括存储在链外存储网络的待存储数据所对应的链外存储标识、所述数据提供方的账户信息和所述待存储数据对应的查询密钥。

其中,所述查询密钥基于所述数据提供方的账户信息对存储密钥加密生成,所述存储密钥用于对存储在链外存储网络的待存储数据进行加密。

s702、处理所述数据存储事务请求,并将所述数据存储事务请求中的数据上链存储。

s703、接收数据提供方发送的数据授权事务请求;所述数据授权事务请求包括授权申请方的账户信息。

示例性地,当数据提供方接收到授权申请方需要对待授权数据请求授权的相关信息时,将会对客户端中的设定区域采用设定方式进行触发而产生数据授权指令;并在产生数据授权指令时,获取待授权数据的授权申请方的账户信息;基于授权申请方的账户信息生成数据授权事务请求,并将所生成的数据授权事务请求传输至区块链网络。

其中,触发生成数据授权指令的设定区域和/或设定方式,可以由客户端开发人员根据开发需求进行设定,或者客户端用户根据使用需求自行设定。

其中,数据提供方接收授权申请方需要对待授权数据请求授权的相关信息,可以通过线下沟通的方式实现,还可以通过前述实施例涉及的基于区块链进行相关信息的发送。

示例性地,获取待授权数据的授权申请方的账户信息,可以预先在数据提供方的客户端本地,或与客户端通信连接的其他电子设备或云端中进行待授权数据的授权申请方的账户信息,并在需要时直接进行授权申请方的账户信息的获取。

其中,数据申请方的账户信息的获取还可以通过区块链节点对授权申请方的客户端产生的授权申请事务请求的处理实现,具体可参见前述实施例,在此不再赘述。

s704、处理所述数据授权事务请求,将所述数据授权事务请求中的数据与所述待授权数据关联存储至区块链中。

区块链节点处理所接收的数据授权事务请求,以将数据授权事务请求中的数据与待授权数据关联存储在区块链中。

可以理解的是,由于数据授权事务请求中包括授权申请方的账户信息,因此,可以将授权申请方的账户信息与待授权数据的链外存标识、数据提供方的账户信息、以及与数据提供方的账户相关联的查询密钥等存储关联信息在区块中关联存储,通过关联存储授权申请方的账户信息的方式,在区块链中存储了已授权用户的账户信息,便于数据提供方和授权申请方的查证。

可以理解的是,虽然在区块链中存储量已授权用户的账户信息,但是由于区块链中存储的查询密钥需要通过数据提供方的账户私钥解密后,才能得到用于解密链外存储网络中的已存储数据的存储密钥,因此已授权用户仍需通过数据提供方进行已授权数据的获取。

为了便于已授权用户绕开数据提供方直接进行已授权数据的使用,提高获取已授权数据的便捷度,还可以在数据授权事务请求中添加数据提供方提供的基于授权申请方的账户信息加密后的存储密钥。

示例性地,数据提供方在数据授权事务请求中添加数据提供方提供的基于授权申请方的账户信息加密后的存储密钥,可以是:在数据提供方对授权申请方进行数据授权过程中,在基于所述授权申请方的账户信息生成数据授权事务请求并传输至区块链网络之前,数据提供方从区块链上获取待授权数据的查询密钥,并基于所述数据提供方的账户私钥,对得到的所述待授权数据的查询密钥进行解密,得到所述待授权数据的存储密钥;基于所述授权申请方的账户信息,对所述待授权数据的存储密钥再次加密;基于再次加密后的存储密钥和所述授权申请方的账户信息,生成数据授权事务请求。

数据提供方基于授权申请方的账户信息对存储密钥进行再次加密的详细方案可参见前述实施例,在此不再赘述。

可以理解的是,由于在数据授权事务请求中添加了授权申请方的账户信息加密后的存储密钥,那么在区块链节点对数据授权事务请求进行处理后,会将授权申请方的账户信息、以及经授权申请方的账户信息加密后的存储密钥存储在区块链中。那么,当授权申请方需要使用已授权数据时,直接获取经授权申请方的账户信息加密后的存储密钥以及链外存储标识,并经自身账户私钥解密后,即可得到对已授权数据进行解密的存储密钥,同时采用存储密钥对链外存储网络中链外存储标识对应的数据进行解密后,即可无需通过数据提供方进行已授权数据的获取,提高了已授权用户已授权数据进行获取的便捷度。

本申请实施例通过包括授权申请方的账户信息的数据授权事务请求的接收和处理,实现授权申请方的账户信息与待授权数据在区块链中的管理存储,从而借助区块链网络授予授权申请方待授权数据的使用权限,达到了数据共享的目的,同时通过将授权过程迁移至区块链网络,方便了对链外存储数据的统一管理。

实施例八

图8是本申请实施例八中的一种数据存证方法的流程图,本申请实施例在上述各实施例的技术方案的基础上进行了优化改进。

进一步地,在数据存证方法中追加“处理所述数据查询事务请求,以获取所述待授权数据的存储关联信息;其中,所述存储关联信息包括链外存储标识和基于所述授权申请方的账户信息加密后的存储密钥;将所述待授权数据的存储关联信息反馈至授权申请方,以使所述授权申请方基于所述链外存储标识在链外存储网络查找加密后的待授权数据,并基于所述存储关联信息中的存储密钥对获取的待授权数据进行解密”,以将对数据的验证过程迁移至区块链网络。

如图8所示的一种数据存证方法,包括:

s801、接收数据提供方发送的数据存储事务请求;所述数据存储事务请求中包括存储在链外存储网络的待存储数据所对应的链外存储标识、所述数据提供方的账户信息和所述待存储数据对应的查询密钥。

其中,所述查询密钥基于所述数据提供方的账户信息对存储密钥加密生成,所述存储密钥用于对存储在链外存储网络的待存储数据进行加密。

s802、处理所述数据存储事务请求,并将所述数据存储事务请求中的数据上链存储。

s803、接收授权申请方发送的数据查询事务请求,所述数据查询事务请求包括待授权数据的查询标识。

当检测到授权申请方在客户端的设定区域采用设定方式触发产生的数据查询请求时,基于待授权数据的查询标识生成数据查询事务请求,并将数据查询事务请求传输至区块链网络。

s804、处理所述数据查询事务请求,以获取所述待授权数据的存储关联信息;其中,所述存储关联信息包括链外存储标识和基于所述授权申请方的账户信息加密后的存储密钥。

区块链节点接收并处理该待数据查询事务请求,以在区块链中基于待查询数据的查询标识获取待授权数据的存储关联信息。

s805、将所述待授权数据的存储关联信息反馈至授权申请方,以使所述授权申请方基于所述链外存储标识,在链外存储网络查找加密后的待授权数据,并基于所述存储关联信息中的存储密钥对获取的待授权数据进行解密。

区块链节点将获取到的待授权数据的存储关联信息反馈至授权申请方。由于存储关联信息中包括待授权数据的链外存储标识,因此授权申请方可以根据获取到的链外存储标识,在链外存储网络中获取待授权数据。

由于存储关联信息中包括经授权申请方的账户信息加密的存储密钥,因此可以通过授权申请方的账户私钥对获取的密钥进行解密,得到待授权数据的存储密钥。

通过得到的存储密钥对获取的待授权数据进行解密,得到待授权数据自身。当解密后得到了待授权数据,则表明所需的待授权数据存在;当解密后无法得到待授权数据,则表明所需的待授权数据不存在。因此,在授权申请方用户向数据提供方申请授权之前,通过待授权数据自身查询的方式进行待授权数据的存在性加以验证,提高了数据交易的安全性。

当然,为了保证数据提供方的权益,在向授权申请方授权前,向授权申请方所提供的数据可以为只读模式或者仅显示部分数据,以防数据被不法授权申请方窃取。

本申请实施例通过在处理数据查询事务请求获取数据提供方的账户信息的同时,进行待授权数据的关联信息的获取,从而通过存储关联信息从链外存储网络进行待授权数据的获取和解密,实现了待授权数据的获取,实现了对待授权数据的存在性的验证,从而完善了对待授权数据的验证机制,通过将存在性验证的相关数据添加至区块链网络,为链外存储数据的统一管理提供了便利。

为了对所获取数据的正确性加以验证,在上述各实施例的技术方案的技术上,在数据存储事务请求中还可以添加待存储数据的指纹数据,所述指纹数据由数据提供方提取所述待存储数据的指纹信息得到。

那么,在区块链节点处理数据存储事务请求时,在区块链的事务数据中也将存储有待授权数据的指纹数据。相应的,在处理数据查询事务请求所获取的待授权数据的存储关联信息中,也会包括待授权数据的指纹数据。当存储关联信息中还包括待授权数据的指纹数据时,将所述待授权数据的存储关联信息反馈至授权申请方,还包括:将所述指纹数据反馈至授权申请方,以使所述授权申请方提取所述待授权数据的指纹数据,并将基于所述待授权数据的指纹数据与所述存储关联信息中的指纹数据,验证所述待授权数据的正确性。

具体的,当提取的指纹数据与获取的存储关联信息中的指纹数据相同,则表明从链外存储网络获取的待授权数据正确;若提取的指纹数据与获取的存储关联信息中的指纹数据不同,则表明从链外存储网络获取的待授权数据有误,从而实现了对待授权数据的正确性的验证。

实施例九

图9是本申请实施例九中的一种数据存证装置的结构图,本申请实施例适用于对待存储数据进行数据存储的情况。该装置通过软件和/或硬件实现,并具体配置于客户端中。

如图9所示的一种数据存证装置900,包括:链外存储模块901、查询密钥生成模块902和数据存储请求生成模块903。

链外存储模块901,用于在检测到数据提供方触发的数据存储指令时,采用存储密钥对待存储数据进行加密,并将加密后的待存储数据上传至链外存储网络,得到所述待存储数据的链外存储标识;

查询密钥生成模块902,用于基于所述数据提供方的账户信息对所述存储密钥进行加密,生成查询密钥;

数据存储请求生成模块903,用于基于所述链外存储标识、所述数据提供方的账户信息和所述查询密钥,生成数据存储事务请求并传输至区块链网络,以使区块链节点处理所述数据存储事务请求,并将所述数据存储事务请求中的数据上链存储。

本申请实施例在检测到数据提供方触发的数据存储指令时,通过链外存储模块采用存储密钥对待存储数据进行加密,并将加密后的待存储数据上传至链外存储网络,得到存储数据的链外存储标识通过查询密钥生成模块;基于数据提供方的账户信息对存储密钥进行加密,生成查询密钥;通过数据存储请求生成模块基于链外存储标识、数据提供方的账户信息和查询密钥生成数据存储事务请求并传输至区块链网络,以使区块链节点处理数据存储事务请求,并将数据存储事务请求中的数据上链存储。上述技术方案通过将待存储数据通过链外存储网络存储数据主体,并结合区块链存储关联信息的方式,实现了对数据的去中心化存储,提高了存储效率,同时降低了存储成本;同时,通过存储密钥和区块链账户相结合的存储方式,明确了所存储数据的归属权限,提高了数据存储的安全性。

进一步地,该装置还包括

申请方账户获取模块,用于在检测到数据提供方触发的数据授权指令时,获取待授权数据的授权申请方的账户信息;

数据授权请求生成模块,用于基于所述授权申请方的账户信息生成数据授权事务请求并传输至区块链网络,以使区块链节点执行所述数据授权事务请求,并将所述数据授权事务请求中的数据与所述待授权数据关联存储至区块链中。

进一步地,该装置还包括:

存储密钥获取模块,用于在基于所述授权申请方的账户信息生成数据授权事务请求并传输至区块链网络之前,从区块链上获取待授权数据的查询密钥,并基于所述数据提供方的账户私钥,对得到的所述待授权数据的查询密钥进行解密,得到所述待授权数据的存储密钥;

存储密钥加密模块,用于基于所述授权申请方的账户信息,对所述待授权数据的存储密钥再次加密;

相应的,数据授权请求生成模块,在执行基于所述授权申请方的账户信息生成数据授权事务请求并传输至区块链网络时,具体用于:

基于再次加密后的存储密钥和所述授权申请方的账户信息,生成数据授权事务请求并传输至区块链网络。

进一步地,该装置还包括:

指纹数据提取模块,用于在基于所述链外存储标识、所述数据提供方的账户信息和所述查询密钥,生成数据存储事务请求之前,提取所述待存储数据的指纹信息,得到指纹数据;

相应的,数据存储请求生成模块903,在执行基于所述链外存储标识和所述数据提供方的账户信息,生成数据存储事务请求时,具体用于:

基于所述链外存储标识、所述数据提供方的账户信息和所述指纹数据,生成数据存储事务请求。

进一步地,该装置还包括:

授权申请请求生成模块,用于在检测到授权申请方触发的请求授权指令时,基于所述授权申请方的账户信息和待授权数据的数据提供方的账户信息生成授权申请事务请求并传输至区块链网络,以使区块链节点处理所述授权申请事务请求,向所述待授权数据的数据提供方发送所述授权申请方的账户信息。

进一步地,该装置还包括,授权申请请求生成模块,用于:

在基于所述授权申请方的账户信息和待授权数据的数据提供方的账户信息生成授权申请事务请求并传输至区块链网络之前,在检测到授权申请方产生的数据查询请求时,基于待授权数据的查询标识生成数据查询事务请求并传输至区块链网络,以使区块链节点处理所述数据查询事务请求,获取待授权数据的数据提供方的账户信息,并反馈至所述授权申请方。

进一步地,授权申请请求生成模块,还用于:

基于待授权数据的查询标识生成数据查询事务请求并传输至区块链网络,以使区块链节点处理所述数据查询事务请求,获取并反馈待授权数据的存储关联信息;其中,所述存储关联信息包括所述待授权数据的链外存储标识和所述数据提供方提供的与所述授权申请方对应的查询密钥;

基于所述待授权数据的链外存储标识在链外存储网络查找所述待授权数据;

采用所述授权申请方的账户私钥对获取到的查询密钥进行解密,得到所述待授权数据的存储密钥;

基于得到的所述存储密钥对获取的待授权数据进行解密。

进一步地,所述存储关联信息还包括所述待授权数据的指纹数据;

相应的,该装置还包括,正确定验证模块,用于:

在基于得到的所述存储密钥对获取的待授权数据进行解密之后,提取所述待授权数据的指纹数据,并基于提取的指纹数据与获取的指纹数据,验证所述待授权数据的正确性。

上述数据存证装置可执行本申请任意实施例所提供的数据存证方法,具备执行数据存证方法相应的功能模块和有益效果。

实施例十

图10是本申请实施例十中的一种数据存证装置的结构图,本申请实施例适用于通过区块链网络对待存储数据进行数据存储的情况,该装置通过软件和/或硬件加以实现,并具体配置在承载有区块链节点的电子设备中。

如图10所示的一种数据存证装置1000,包括:数据存储请求接收模块1001和数据存储请求处理模块1002。其中,

数据存储请求接收模块1001,用于接收数据提供方发送的数据存储事务请求;所述数据存储事务请求中包括存储在链外存储网络的待存储数据所对应的链外存储标识、所述数据提供方的账户信息和所述待存储数据对应的查询密钥;

数据存储请求处理模块1002,用于处理所述数据存储事务请求,并将所述数据存储事务请求中的数据上链存储;

其中,所述查询密钥基于所述数据提供方的账户信息对存储密钥加密生成,所述存储密钥用于对存储在链外存储网络的待存储数据进行加密。

本申请实施例通过数据存储请求接收模块接收数据提供方发送的包含存储在链外存储网络的待存储数据所对应的链外存储标识、数据提供方的账户信息以及通过数据提供方的账户信息对存储密钥加密所得到的查询密钥的数据存储事务请求,并通过数据存储请求处理模块处理该数据存储事务请求,进而将待存储数据的上述关联信息上链存储,达到了链外存储数据主体,链上存储关联信息的效果,从而实现了对数据的去中心化存储,并提高了数据的存储效率,降低了数据存储成本;同时,通过存储密钥和区块链账户相结合的存储方式,明确了所存储数据的归属权限,提高了数据存储的安全性。

进一步地,该装置还包括:

数据授权请求接收模块,用于接收数据提供方发送的数据授权事务请求;所述数据授权事务请求包括授权申请方的账户信息;

数据授权请求处理模块,用于处理所述数据授权事务请求,将所述数据授权事务请求中的数据与所述待授权数据关联存储至区块链中。

进一步地,所述数据授权事务请求还包括数据提供方提供的基于所述授权申请方的账户信息加密后的存储密钥。

进一步地,所述数据存储事务请求中还包括所述待存储数据的指纹数据,所述指纹数据由数据提供方提取所述待存储数据的指纹信息得到。

进一步地,该装置还包括:

授权申请请求接收模块,用于接收授权申请方发送的授权申请事务请求,所述授权申请事务请求中包括所述授权申请方的账户信息和所述数据提供方的账户信息;

授权申请请求处理模块,用于处理所述授权申请事务请求,以向所述待授权数据对应的数据提供方发送所述授权申请方的账户信息。

进一步地,该装置还包括:

数据查询请求接收模块,用于在接收所述授权申请方发送的授权申请事务请求之前,接收授权申请方发送的数据查询事务请求,所述数据查询事务请求包括待授权数据的查询标识;

数据查询请求处理模块,用于处理所述数据查询事务请求,以根据所述待授权数据的查询标识获取并反馈与所述待授权数据对应的数据提供方的账户信息。

进一步地,数据查询请求处理模块,还用于:

处理所述数据查询事务请求,以获取所述待授权数据的存储关联信息;其中,所述存储关联信息包括链外存储标识和基于所述授权申请方的账户信息加密后的存储密钥;

将所述待授权数据的存储关联信息反馈至授权申请方,以使所述授权申请方基于所述链外存储标识在链外存储网络查找加密后的待授权数据,并基于所述存储关联信息中的存储密钥对获取的待授权数据进行解密。

进一步地,所述存储关联信息还包括所述待授权数据的指纹数据;

相应的,数据查询请求处理模块,还用于:

将所述指纹数据反馈至授权申请方,以使所述授权申请方提取所述待授权数据的指纹数据,并将基于所述待授权数据的指纹数据与所述存储关联信息中的指纹数据,验证所述待授权数据的正确性。

上述数据存证装置可执行本申请任意实施例所提供的数据存证方法,具备执行数据存证方法相应的功能模块和有益效果。

实施例十一

根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。

如图11所示,是执行本申请实施例的数据存证方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图11所示,该电子设备包括:一个或多个处理器1101、存储器1102,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图11中以一个处理器1101为例。

存储器1102即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的数据存证方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的数据存证方法。

存储器1102作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的数据管理的方法对应的程序指令/模块(例如,包括链外存储模块901、查询密钥生成模块902和数据存储请求生成模块903的数据存证装置900,或者包括数据存储请求接收模块1001和数据存储请求处理模块1002的数据存证装置1000)。处理器1101通过运行存储在存储器1102中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的数据存证方法。

存储器1102可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据执行数据存证方法的电子设备的使用所创建的数据等。此外,存储器1102可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1102可选包括相对于处理器1101远程设置的存储器,这些远程存储器可以通过网络连接至执行数据存证方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

执行数据存证方法的电子设备还可以包括:输入装置1103和输出装置1104。处理器1101、存储器1102、输入装置1103和输出装置1104可以通过总线或者其他方式连接,图11中以通过总线连接为例。

输入装置1103可接收输入的数字或字符信息,以及产生与执行数据存证方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1104可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

根据本申请实施例的技术方案,在检测到数据提供方触发的数据存储指令时,采用存储密钥对待存储数据进行加密,并将加密后的待存储数据上传至链外存储网络,得到存储数据的链外存储标识;基于数据提供方的账户信息对存储密钥进行加密,生成查询密钥;基于链外存储标识、数据提供方的账户信息和查询密钥生成数据存储事务请求并传输至区块链网络,以使区块链节点处理数据存储事务请求,并将数据存储事务请求中的数据上链存储。上述技术方案通过将待存储数据通过链外存储网络存储数据主体,并结合区块链存储关联信息的方式,实现了对数据的去中心化存储,提高了存储效率,同时降低了存储成本;同时,通过存储密钥和区块链账户相结合的存储方式,明确了所存储数据的归属权限,提高了数据存储的安全性。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

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