一种可信前置链上数据查询方法和系统与流程

文档序号:22577720发布日期:2020-10-20 16:49阅读:185来源:国知局
一种可信前置链上数据查询方法和系统与流程

本发明涉及区块链数据管理领域,特别是涉及一种可信前置链上数据查询方法和系统。



背景技术:

智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。

区块链架构设计上一般都包含基础交互接口,这些接口用于区块链系统管理、发送交易和区块链数据查询。区块链前置一般独立于区块链存在。因此无法保证区块链前置提供接口的数据可信性。

在区块链架构的设计上,一般都包含基础交互接口,这些接口用于区块链系统管理、发送交易和区块链数据查询。区块链前置一般独立于区块链存在,属于相对独立的服务,其用于触发对于区块链系统的管理、建立交易并对交易签名和查询并缓存区块链数据。在对于链上数据有实时查询需求的场景下,底层区块链接口提供的逐个区块查询的机制显然无法满足实时查询的性能需求,于是在此场景下的区块链数据获取不可避免的会使用区块链前置。由于区块链前置的独立性,使得区块链前置所提供的数据不具备可信性。因此,如何使区块链前置提供的数据具备可信性,是当前区块链前置系统亟待解决的一个技术难题。



技术实现要素:

本发明的目的是提供一种可信前置链上数据查询方法和系统,以解决现有技术中存在的区块链前置提供的数据不具备可信性的问题。

为实现上述目的,本发明提供了如下方案:

一种可信前置链上数据查询方法,包括:

数据请求方、区块链前置和区块链节点均向可信第三方获取可信密钥对;

所述数据请求方生成数据查询请求,并将所述数据查询请求发送给所述区块链前置;

所述区块链前置采用所述可信密钥对中的可信私钥对所述数据查询请求进行签名,并将带有签名的所述数据查询请求发送给所述区块链节点;

所述区块链节点根据所述可信密钥对验证带有签名的所述数据查询请求,若验证通过,则根据所述数据查询请求调取链上数据,并采用所述可信密钥对对所调取的链上数据进行签名,将签名后的所述链上数据发送给所述区块链前置;

所述区块链前置接收到带有签名的链上数据后,采用所述可信密钥对对所述链上数据进行二次签名,并将二次签名后的所述链上数据发送给所述数据请求方;

所述数据请求方采用所述可信密钥对对具有签名的所述链上数据进行解密,得到查询数据。

优选的,在所述区块链前置接收到带有签名的链上数据后,采用所述可信密钥对对所述链上数据进行二次签名,并将二次签名后的所述链上数据发送给所述数据请求方之后,还包括:

所述数据请求方将所述二次签名后的所述链上数据发送给所述可信第三方;

所述可信第三方采用所述可信密钥对中的可信公钥验证所述链上数据的签名的合法性,验证通过后,所述可信第三方将验证结果返回给所述数据请求方。

优选的,在所述可信第三方采用所述可信密钥对中的可信公钥验证所述链上数据的签名的合法性的过程中,所述可信第三方采用数据验证合约与所述区块链节点进行数据交互;所述区块链节点采用数据查询合约与所述区块链前置进行数据交互。

优选的,在所述区块链节点根据所述可信密钥对验证带有签名的所述数据查询请求的同时,所述区块链节点生成查询数据的操作日记。

一种可信前置链上数据查询系统,包括:

可信密钥对获取模块,用于数据请求方、区块链前置和区块链节点均向可信第三方获取可信密钥对;

数据查询请求生成和发送模块,用于所述数据请求方生成数据查询请求,并将所述数据查询请求发送给所述区块链前置;

数据查询请求签名和发送模块,用于所述区块链前置采用所述可信密钥对中的可信私钥对所述数据查询请求进行签名,并将带有签名的所述数据查询请求发送给所述区块链节点;

链上数据查询和发送模块,用于所述区块链节点根据所述可信密钥对验证带有签名的所述数据查询请求,若验证通过,则根据所述数据查询请求调取链上数据,并采用所述可信密钥对对所调取的链上数据进行签名,将签名后的所述链上数据发送给所述区块链前置;

链上数据签名和发送模块,用于所述区块链前置接收到带有签名的链上数据后,采用所述可信密钥对对所述链上数据进行二次签名,并将二次签名后的所述链上数据发送给所述数据请求方;

数据查询模块,用于所述数据请求方采用所述可信密钥对对具有签名的所述链上数据进行解密,得到查询数据。

优选的,还包括:

二次签名数据发送模块,用于所述数据请求方将所述二次签名后的所述链上数据发送给所述可信第三方;

链上数据验证模块,用于所述可信第三方采用所述可信密钥对中的可信公钥验证所述链上数据的签名的合法性,验证通过后,所述可信第三方将验证结果返回给所述数据请求方。

优选的,所述链上数据验证模块包括:

数据交互单元,用于在所述可信第三方采用所述可信密钥对中的可信公钥验证所述链上数据的签名的合法性的过程中,所述可信第三方采用数据验证合约与所述区块链节点进行数据交互;所述区块链节点采用数据查询合约与所述区块链前置进行数据交互。

优选的,所述链上数据查询和发送模块包括:

操作日记生成单元,用于在所述区块链节点根据所述可信密钥对验证带有签名的所述数据查询请求的同时,所述区块链节点生成查询数据的操作日记。

根据本发明提供的具体实施例,本发明公开了以下技术效果:

在本发明提供的可信前置链上数据查询方法和系统中,区块链前置采用可信密钥对中的可信私钥对数据请求方生成的数据查询请求进行签名,并将带有签名的数据查询请求发送给区块链节点;区块链节点根据可信密钥对验证带有签名的数据查询请求,若验证通过,则根据数据查询请求调取链上数据,并采用可信密钥对对所调取的链上数据进行签名,将签名后的链上数据发送给区块链前置;区块链前置采用可信密钥对对接收到的链上数据进行二次签名,并将二次签名后的链上数据发送给数据请求方,以使得返回的链上数据同时具有可信前置的签名和区块链节点的签名,进而保证数据在链上到区块链前置的路径上的可信性(不可篡改性)。

附图说明

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

图1为本发明提供的可信前置链上数据查询方法的流程图;

图2为本发明实施例中系统参与者间数据传输流程图;

图3为本发明实施例中的数据交互流程图;

图4为本发明实施例中可信第三方的平台结构示意图;

图5为本发明提供的可信前置链上数据查询系统的结构示意图。

具体实施方式

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

本发明的目的是提供一种可信前置链上数据查询方法和系统,以解决现有技术中存在的区块链前置提供的数据不具备可信性的问题。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

在采用本发明提供的技术方案之前,需要明确用户系统中的各个参与者,及各参与者之间的关系。如图2所示,在本发明中,所采用到的参与者包括:数据请求方、区块链前置、区块链节点和可信第三方。各参数者间数据传输的具体流程如图2所示。

基于上述系统参与者,本发明提供的技术方案具体如下:

图1为本发明提供的可信前置链上数据查询方法的流程图,如图1所示,一种可信前置链上数据查询方法,包括:

步骤100:数据请求方、区块链前置和区块链节点均向可信第三方获取可信密钥对;其中,所获取的可信密钥对是可信第三方通过采用硬件密钥生成模块产生的。

步骤101:所述数据请求方生成数据查询请求,并将所述数据查询请求发送给所述区块链前置。

步骤102:所述区块链前置采用所述可信密钥对中的可信私钥对所述数据查询请求进行签名,并将带有签名的所述数据查询请求发送给所述区块链节点。

步骤103:所述区块链节点根据所述可信密钥对验证带有签名的所述数据查询请求,若验证通过,则根据所述数据查询请求调取链上数据,并采用所述可信密钥对对所调取的链上数据进行签名,将签名后的所述链上数据发送给所述区块链前置。

步骤104:所述区块链前置接收到带有签名的链上数据后,采用所述可信密钥对对所述链上数据进行二次签名,并将二次签名后的所述链上数据发送给所述数据请求方。

步骤105:所述数据请求方采用所述可信密钥对对具有签名的所述链上数据进行解密,得到查询数据。

其中,在所述区块链节点根据所述可信密钥对验证带有签名的所述数据查询请求的同时,所述区块链节点生成查询数据的操作日记,以便于后续对用户请求方的查询记录进行查询、监管等操作。

为了对区块链前置向数据请求方返回的链上数据的可信性进行验证,在上述步骤104之后,本发明所提供的技术方案还可以包括:

所述数据请求方将所述二次签名后的所述链上数据发送给所述可信第三方。

所述可信第三方采用所述可信密钥对中的可信公钥验证所述链上数据的签名的合法性,验证通过后,所述可信第三方将验证结果返回给所述数据请求方。

在本发明提供的具体实施方式中,如图3所示,在所述可信第三方采用所述可信密钥对中的可信公钥验证所述链上数据的签名的合法性的过程中,所述可信第三方采用数据验证合约与所述区块链节点进行数据交互;所述区块链节点采用数据查询合约与所述区块链前置进行数据交互。进行数据交互的目的,主要是为了对区块链前置向数据请求方返回的链上数据的合法性和真实性进行验证,进而保证所查询数据的可信性。

在本发明提供的可信第三方所采用的平台结构如图4所示,该可信第三方所采用的平台包括:平台管理模块、可信密钥管理模块、密码学服务模块、密钥生成模块和链上数据验证服务模块。

其中,平台管理模块用于对可信第三方登录平台权限和配置功能进行管理;可信密钥管理模块用于对生成的可信密钥对进行管理。

密码学服务模块用于提供加密、解密及签名、验签等服务。

密钥生成模块用于生成用于数据查询的可信密钥对。

链上数据验证服务模块用于验证链上数据在指定区块链上的合法性。

此外,针对上述提供的可信前置链上数据查询方法,本发明还对应提供了一种可信前置链上数据查询系统。如图5所示,该系统包括:可信密钥对获取模块1、数据查询请求生成和发送模块2、数据查询请求签名和发送模块3、链上数据查询和发送模块4、链上数据签名和发送模块5和数据查询模块6。

其中,可信密钥对获取模块1用于数据请求方、区块链前置和区块链节点均向可信第三方获取可信密钥对。

数据查询请求生成和发送模块2用于所述数据请求方生成数据查询请求,并将所述数据查询请求发送给所述区块链前置。

数据查询请求签名和发送模块3用于所述区块链前置采用所述可信密钥对中的可信私钥对所述数据查询请求进行签名,并将带有签名的所述数据查询请求发送给所述区块链节点。

链上数据查询和发送模块4用于所述区块链节点根据所述可信密钥对验证带有签名的所述数据查询请求,若验证通过,则根据所述数据查询请求调取链上数据,并采用所述可信密钥对对所调取的链上数据进行签名,将签名后的所述链上数据发送给所述区块链前置。

链上数据签名和发送模块5用于所述区块链前置接收到带有签名的链上数据后,采用所述可信密钥对对所述链上数据进行二次签名,并将二次签名后的所述链上数据发送给所述数据请求方。

数据查询模块6用于所述数据请求方采用所述可信密钥对对具有签名的所述链上数据进行解密,得到查询数据。

为了对区块链前置向数据请求方返回的链上数据的可信性进行验证,作为本发明的一优选实施例,该系统还可以包括:二次签名数据发送模块和链上数据验证模块。

其中,二次签名数据发送模块用于所述数据请求方将所述二次签名后的所述链上数据发送给所述可信第三方。

链上数据验证模块用于所述可信第三方采用所述可信密钥对中的可信公钥验证所述链上数据的签名的合法性,验证通过后,所述可信第三方将验证结果返回给所述数据请求方。

其中,上述链上数据验证模块包括:数据交互单元。

该数据交互单元用于在所述可信第三方采用所述可信密钥对中的可信公钥验证所述链上数据的签名的合法性的过程中,所述可信第三方采用数据验证合约与所述区块链节点进行数据交互;所述区块链节点采用数据查询合约与所述区块链前置进行数据交互。

作为本发明的另一优选实施例,上述链上数据查询和发送模块4可以进一步包括有:操作日记生成单元。

该操作日记生成单元用于在所述区块链节点根据所述可信密钥对验证带有签名的所述数据查询请求的同时,所述区块链节点生成查询数据的操作日记,以便后续对用户请求方的查询记录进行查询、监管等操作。

综上,本发明通过可信第三方逻辑结构的设置、可信区块链前置的验证机制的设置,以及可信密钥对的设计,能够完美解决现有技术中存在的区块链前置数据不具有可信性的问题。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

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