一种链上数据审计方法和系统与流程

文档序号:22577725发布日期:2020-10-20 16:49阅读:128来源:国知局
一种链上数据审计方法和系统与流程

本发明涉及区块链数据审计领域,特别是涉及一种链上数据审计方法和系统。



背景技术:

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

区块链底层数据查询机制是按区块查询,无法提供数据的实时性查询。为了解决区块链数据实时性查询的问题,现有技术中一般是通过引入区块链前置的方式。但是,在引入区块链前置之后,因为区块链前置和区块链是两个并行的系统,因此,二者之间数据的传输存在不可信的问题。并且,引入区块链前置后,区块链前置系统和链交互之间,因存在不可信问题而导致无法进行可信性审计。

因此,如何解决区块链前置系统和链交互间的可信性审计问题,是本领域亟待解决的一个技术难题。



技术实现要素:

本发明的目的是提供一种链上数据审计方法和系统,以解决现有技术中存在的区块链前置系统与链交互间不能进行可信性审计的问题。

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

一种链上数据审计方法,包括:

获取区块链账本中存储的数据查询合约和与数据请求方当前发出的数据请求相对应的签名;所述数据查询合约包括:数据请求方发出的数据请求的签名和数据请求的唯一索引;所述唯一索引为所述数据响应方存储在所述区块链账本中的数据的标签;

根据所述数据请求方当前发出的数据请求相对应的签名以及所述数据查询合约验证所述数据请求方的合法性;

验证通过后,根据所述数据请求方当前发出的数据请求和所述唯一索引调取所述数据响应方存储在所述区块链账本上的数据;

将所调取的数据反馈给所述数据请求方,并根据所述唯一索引将所调取的数据存储在所述区块链账本上;

当审计方对所述数据请求方所调取的数据进行审计时,根据所述唯一索引分别调取所述数据请求方所调取的数据以及所述数据响应方存储在所述区块链账本中的数据,并对比所调取的数据以及所述数据响应方存储在所述区块链账本中的数据,以验证所述数据响应方反馈给所述数据请求方的数据的可信性。

优选的,还包括:采用区块链前置生成所述数据请求方和所述数据响应方间的数据交互的日志记录合约;所述日志记录合约包括:查询记录和所述唯一索引。

优选的,还包括:采用区块链前置根据所述数据查询请求,调用所述区块链账本中的数据查询合约。

优选的,还包括:

验证数据请求方的交易签名是否合法;若合法,则获取所述与数据请求方当前发出的数据请求相对应的签名;反之,则关闭所述数据请求方的数据请求。

一种链上数据审计系统,包括:

获取模块,用于获取区块链账本中存储的数据查询合约和与数据请求方当前发出的数据请求相对应的签名;所述数据查询合约包括:数据请求方发出的数据请求的签名和数据请求的唯一索引;所述唯一索引为所述数据响应方存储在所述区块链账本中的数据的标签;

验证模块,用于根据所述数据请求方当前发出的数据请求相对应的签名以及所述数据查询合约验证所述数据请求方的合法性;

数据调取模块,用于验证通过后,根据所述数据请求方当前发出的数据请求和所述唯一索引调取所述数据响应方存储在所述区块链账本上的数据;

数据存储模块,用于将所调取的数据反馈给所述数据请求方,并根据所述唯一索引将所调取的数据存储在所述区块链账本上;

审计模块,用于当审计方对所述数据请求方所调取的数据进行审计时,根据所述唯一索引分别调取所述数据请求方所调取的数据以及所述数据响应方存储在所述区块链账本中的数据,并对比所调取的数据以及所述数据响应方存储在所述区块链账本中的数据,以验证所述数据响应方反馈给所述数据请求方的数据的可信性。

优选的,还包括:

日志记录合约生成模块,用于采用区块链前置生成所述数据请求方和所述数据响应方间的数据交互的日志记录合约;所述日志记录合约包括:查询记录和所述唯一索引。

优选的,还包括:

数据查询合约调用模块,用于采用区块链前置根据所述数据查询请求,调用所述区块链账本中的数据查询合约。

优选的,还包括:

合法性验证模块,用于验证数据请求方的交易签名是否合法;若合法,则获取所述与数据请求方当前发出的数据请求相对应的签名;反之,则关闭所述数据请求方的数据请求。

一种链上数据审计系统,包括:数据请求模块、区块链前置模块、数据响应模块、区块链存储模块和审计模块;

所述数据请求模块与所述区块链前置模块连接;所述区块链前置模块与所述区块链存储模块连接;所述区块链存储模块分别与所述数据请求模块、所述数据响应模块和所述审计模块连接;

所述区块链存储模块存储有数据查询合约和数据响应方的数据;所述数据查询合约包括数据请求方发出的数据请求的签名和数据请求的唯一索引;

所述数据请求模块发出数据请求后,所述区块链前置模块根据所述数据查询合约中的签名验证所述数据请求模块所发出的数据请求的合法性;若合法,则所述区块链前置模块根据所述唯一索引调取所述数据响应方通过所述数据响应模块存储在所述区块链账本上的数据,并将所调取的数据以所述唯一索引为标签反馈给所述数据请求模块,所述数据请求模块将以所述唯一索引为标签的数据存储在所述区块链存储模块中;所述区块链前置模块记录查询日志,以对整个数据交互过程进行存证;所述区块链前置模块将所述查询日志存储在所述区块链存储模块上;

当审计方需要对所调取的数据进行审计时,所述审计模块根据所述唯一索引分别调取所述数据请求方所调取的数据以及所述数据响应方存储在所述区块链账本中的数据,并对比这两种数据,以验证所述数据响应方反馈给所述数据请求方的数据的可信性。

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

本发明提供的链上数据审计方法和系统,通过将链上返回数据连同唯一索引返回给数据请求方,数据请求方将唯一索引连同返回的数据通过智能合约保存到区块链账本上,当链上返回数据需要审计时,审计方通过唯一索引查询数据请求方的区块链账本中存储的数据和数据响应方存储在区块链账本中的数据后,对比请求方记录的数据和数据响应方发送的数据,以便验证数据的可信性,进而解决现有技术中存在的区块链前置系统与链交互间不能进行可信性审计的问题。

附图说明

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

图1为本发明实施例提供的链上数据审计方法的流程图;

图2为本发明提供的链上数据审计系统的结构示意图;

图3为本发明提供的另一种链上数据审计系统的结构示意图;

图4为本发明实施例提供的数据传输框架图。

具体实施方式

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

本发明的目的是提供一种链上数据审计方法和系统,以解决现有技术中存在的区块链前置系统与链交互间不能进行可信性审计的问题。

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

图1为本发明实施例提供的链上数据审计方法的流程图,如图1所示,一种链上数据审计方法,包括:

步骤100:获取区块链账本中存储的数据查询合约和与数据请求方当前发出的数据请求相对应的签名。所述数据查询合约包括:数据请求方发出的数据请求的签名和数据请求的唯一索引。所述唯一索引为所述数据响应方存储在所述区块链账本中的数据的标签。

步骤101:根据所述数据请求方当前发出的数据请求相对应的签名以及所述数据查询合约验证所述数据请求方的合法性。

步骤102:验证通过后,根据所述数据请求方当前发出的数据请求和所述唯一索引调取所述数据响应方存储在所述区块链账本上的数据。

步骤103:将所调取的数据反馈给所述数据请求方,并根据所述唯一索引将所调取的数据存储在所述区块链账本上。

步骤104:当审计方对所述数据请求方所调取的数据进行审计时,根据所述唯一索引分别调取所述数据请求方所调取的数据以及所述数据响应方存储在所述区块链账本中的数据,并对比所调取的数据以及所述数据响应方存储在所述区块链账本中的数据,以验证所述数据响应方反馈给所述数据请求方的数据的可信性。

为了对数据交易进行全程记录,本发明所提供的链上数据审计方法,还可以包括:采用区块链前置生成所述数据请求方和所述数据响应方间的数据交互的日志记录合约。所述日志记录合约包括:查询记录和所述唯一索引。

在上述提供的链上数据审计方法中,还可以包括:采用区块链前置根据所述数据查询请求,调用所述区块链账本中的数据查询合约,以便数据请求方根据数据查询合约完成数据的查询。

而进一步为了避免数据被非法访问,在本发明提供的链上数据审计方法中,还可以包括:

验证数据请求方的交易签名是否合法。若合法,则获取所述与数据请求方当前发出的数据请求相对应的签名。反之,则关闭所述数据请求方的数据请求。

针对上述提供的链上数据审计方法,本发明还对应提供了一种链上数据审计系统,如图2所示,该链上数据审计系统包括:获取模块200、验证模块201、数据调取模块202、数据存储模块203和审计模块204。

其中,获取模块200用于获取区块链账本中存储的数据查询合约和与数据请求方当前发出的数据请求相对应的签名。所述数据查询合约包括:数据请求方发出的数据请求的签名和数据请求的唯一索引。所述唯一索引为所述数据响应方存储在所述区块链账本中的数据的标签。

验证模块201用于根据所述数据请求方当前发出的数据请求相对应的签名以及所述数据查询合约验证所述数据请求方的合法性。

数据调取模块202用于验证通过后,根据所述数据请求方当前发出的数据请求和所述唯一索引调取所述数据响应方存储在所述区块链账本上的数据。

数据存储模块203用于将所调取的数据反馈给所述数据请求方,并根据所述唯一索引将所调取的数据存储在所述区块链账本上。

审计模块204用于当审计方对所述数据请求方所调取的数据进行审计时,根据所述唯一索引分别调取所述数据请求方所调取的数据以及所述数据响应方存储在所述区块链账本中的数据,并对比所调取的数据以及所述数据响应方存储在所述区块链账本中的数据,以验证所述数据响应方反馈给所述数据请求方的数据的可信性。

作为本发明的一优选实施例,本发明提供的链上数据审计系统,还可以包括:日志记录合约生成模块。该日志记录合约生成模块用于采用区块链前置生成所述数据请求方和所述数据响应方间的数据交互的日志记录合约。所述日志记录合约包括:查询记录和所述唯一索引。

作为本发明的另一优选实施例,本发明提供的链上数据审计系统,还可以包括:数据查询合约调用模块。该数据查询合约调用模块用于采用区块链前置根据所述数据查询请求,调用所述区块链账本中的数据查询合约。

作为本发明的另一优选实施例,本发明提供的链上数据审计系统,还可以包括:合法性验证模块。合法性验证模块用于验证数据请求方的交易签名是否合法。若合法,则获取所述与数据请求方当前发出的数据请求相对应的签名。反之,则关闭所述数据请求方的数据请求。

此外,如图3所示,本发明提供的另一种链上数据审计系统,包括:数据请求模块300、区块链前置模块301、数据响应模块302、区块链存储模块303和审计模块304。

所述数据请求模块300与所述区块链前置模块301连接。所述区块链前置模块301与所述区块链存储模块303连接。所述区块链存储模块303分别与所述数据请求模块300、所述数据响应模块302和所述审计模块304连接。

所述区块链存储模块303存储有数据查询合约和数据响应方的数据。所述数据查询合约包括数据请求方发出的数据请求的签名和数据请求的唯一索引。

所述数据请求模块300发出数据请求后,所述区块链前置模块301根据所述数据查询合约中的签名验证所述数据请求模块300所发出的数据请求的合法性。若合法,则所述区块链前置模块301根据所述唯一索引调取所述数据响应方通过数据响应模块302存储在所述区块链账本上的数据,并将所调取的数据以所述唯一索引为标签反馈给所述数据请求模块300,所述数据请求模块300将以所述唯一索引为标签的数据存储在所述区块链存储模块303中。所述区块链前置模块301记录查询日志,以对整个数据交互过程进行存证。所述区块链前置模块301将所述查询日志存储在所述区块链存储模块303上。

当审计方需要对所调取的数据进行审计时,所述审计模块304根据所述唯一索引分别调取所述数据请求方所调取的数据以及所述数据响应方存储在所述区块链账本中的数据,并对比这两种数据,以验证所述数据响应方反馈给所述数据请求方的数据的可信性。

在本实施案例中区块链账本的个数为一个或两个。当为一个时,区块链账本设置在数据请求方和数据响应方进行数据交互的区块链上。当区块链账本为两个时,其中一个区块链账本(第一区块链账本)设置在数据请求方的区块链上,另一个区块链账本(第二区块链账本)设置在数据响应方的区块链上,。下面以区块链账本数量为两个(如图4所示)进行举例,进一步说明本发明的方案。

基于图4所示的数据请求方和数据响应方间的数据传输框架,基于本发明提供的上述链上数据审计方法和系统,该审计方式包括如下四个步骤:

步骤一:验证数据请求方的交易签名,从而校验数据请求方的身份。数据请求方发起数据请求,并对数据请求进行签名,以证明数据请求是由数据请求方主动发起。同时,生成请求数据的唯一索引,以用于保存和审计。区块链前置验证数据请求方签名,确定数据查询权限。

步骤二:身份通过后,区块链前置根据数据查询请求,调用第二区块链账本上的数据查询合约。数据查询合约包括状态查询合约和日志记录合约两个部分。

其中,状态查询合约用于查询区块链的状态数据库并返回所查询的状态值,记录唯一索引。日志记录合约用于记录查询日志,同时记录唯一索引。数据查询合约和日志记录合约的记录都可以链上提供查询接口的方式提供给审计方进行审计。

区块链前置向数据请求方返回可信链上数据。

步骤三:区块链前置将链上返回数据连同唯一索引一并返回给数据请求方。数据请求方将唯一索引连同返回的数据通过智能合约保存到第一区块链上。且在数据请求方和数据响应方的数据交互过程中,区块链前置保存数据请求方的请求日志,将交互过程进行存证,并结合数据请求方的对于请求返回的存证向审计方提供双方账本的审计数据。

步骤四:当链上返回数据需要审计时(例如,数据请求方对于链上数据的可信性有质疑时),审计方通过唯一索引查询第一区块链账本和第二区块链账本,对比请求方记录的数据和数据响应方发送的数据,以验证数据的可信性。

综上,采用本发明的技术方案,可以解决因为区块链前置和区块链是两个并行的系统,数据请求方和数据响应方之间数据不可信的问题。且二者间每一笔重要的记录都可以通过本发明提供的技术方案实现审计。

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

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

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