一种基于区块链的大数据可信审计方法与流程

文档序号:20775696发布日期:2020-05-19 20:44阅读:1382来源:国知局
一种基于区块链的大数据可信审计方法与流程

本发明涉及区块链技术领域,尤其涉及一种基于区块链的大数据可信审计方法。



背景技术:

区块链技术,区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,用于存储区块链网络上所有用户的余额,公共账本位于存储区块上,任何节点可见,从而保证其不可伪造和篡改。

审计作为一种作为监督机制,在现代社会中有着重要的作用。目前,随着网络发展,审计的内容的种类也越来越多。在传统审计中,主要存在以下问题:

现有审计实施过程中,需要收集的大量证明材料,并且大多需要打印为纸质文件再签字盖章,即使是电子系统记录的结构化数据,也通常需要拷贝到光盘或u盘中,再导入到审计单位数据库中。这样做一方面是为了保存审计时的当前证据文件记录,以签字或盖章的方式作为责任归属证明,另一方面,也是在用最简单的方式,防止后续对证据材料进行篡改。但是纸质材料存在天然缺陷,例如,纸质材料易被损毁、丢失,信息查询困难,层层汇总过程中可能存在篡改或丢失,多维度的数据统计分析难以达成等。



技术实现要素:

本发明的目的是针对现有审计过程中的不足,提供一种基于区块链的大数据可信审计方法。区块链技术在防止数据篡改、保障数据可追溯方面,有着天然的优势。其链式存储结构、保障数据一致性的共识算法、和多级权限控制机制,可助力审计证据的可靠存储。同时,数据上链后,也为数据的汇总、统计、分析提供了有利条件。

本发明的目的是通过以下的技术方案来实现:

一种基于区块链的大数据可信审计方法,包括如下步骤:

(1)关联数据库和区块链。

(2)用户上传sql原文至数据库,数据库根据sql原文进行运算,并将运算结果返回给用户。区块链同步存储sql原文、sql原文哈希值、运算时的数据库哈希值和运算结果的哈希值,加盖时间戳进行存证时间的不可篡改,并作为在区块链系统的标识,供后续文件和数据库数据对比使用。区块链存储成功后,向用户返回上传成功的消息,并返回sql原文哈希值、时间戳、区块id、交易id,同时,将数据库运算得到的表格数据,即运算结果展示到前端页面中,用户通过可视化页面查看数据库运算结果。

(3)对运算结果进行查询和审计:

当用户发起对该次运算的查询请求时,将区块链中存储的运算时的数据库哈希值和sql原文哈希值,和当前请求时的数据库哈希值和sql原文哈希值进行比对,比对成功,则将运算结果展示到前端页面中,用户通过可视化页面查看数据库运算结果。

当对存储在数据库中的运算结果存疑或查询比对不一致时,则可向区块链发起审计请求,同时计算当前数据库、sql原文以及运算结果的当前哈希值。将当前数据库、sql原文以及运算结果的当前哈希值分别与存储在区块链上的原始哈希值进行比对,若比对成功则表示数据未被篡改;若比对失败,则表示数据可能被篡改。数据库则标记不一致的数据字段。通过此种方式,当用户对运算结果存疑时,不需要数据库再执行运算,通过哈希值的比对即可保障运算结果的一致性。

进一步地,所述步骤(1)具体为:区块链的每个节点,通过填写数据库信息关联对应数据库,并通过共识算法存储数据库哈希值;区块链返回关联信息给用户。其中,数据库信息包括:数据库连接名称、数据库类型、数据库用户名、数据库密码、ip地址、数据库名、端口号等。区块链关联信息包括:区块链名称、节点名前缀、服务器ip地址。

进一步地,所述步骤(2)中,区块链同步存储时可选择单点运算或共识运算。

进一步地,所述步骤(1)中,用户通过客户端上传文件、接收信息以及发起校验和审计请求。

本发明的有益效果是:本发明通过区块链验证能够解决证据文件类型的多样性校验过程困难的问题,设计了通过链下存储和链上存证的双写方案。具体而言,对于结构化数据,以链上存储的文件哈希,作为验证链下(即数据库)存储文件的可靠性凭据,既保证了审计证据文件信息全部保留,且可查询、可下载,同时也提供了数据是否被篡改的审计。本发明通过同时比对数据库哈希值、sql原文哈希值和运算结果哈希值,确保了全流程的数据真实可靠,数据库无需重新根据sql原文进行运算,能有效提高审计效率,简化审计流程。

附图说明

图1是本发明区块链数据写入步骤流程图;

具体实施方式

下面根据附图和具体实施例详细描述本发明,本发明的目的和效果将变得更加明显。

如图1所示,一种基于区块链的大数据可信审计方法,包括如下步骤:

步骤一:关联数据库和区块链:

可选地,基于区块链技术的大数据可信审计方法中,每个区块链节点,通过填写数据库信息关联对应数据库,并通过共识算法存储数据库哈希值,共识存储完后返回关联信息给用户。其中,数据库信息包括:数据库连接名称、数据库类型、数据库用户名、数据库密码、ip地址、数据库名、端口号等。区块链关联信息包括:区块链名称、节点名前缀、服务器ip地址。另外,还可以设置客户端,用户通过客户端上传文件、接收信息以及发起查询和审计请求。

步骤二:上传sql原文至关联数据库,数据库进行对应运算,并且区块链进行相应数据存储:

用户通过客户端上传sql原文至数据库中,关联的数据库根据sql原文进行运算,并将运算结果返回至客户端。区块链同步存储sql原文、sql原文哈希值、运算时的数据库哈希值和运算结果哈希值,加盖时间戳进行存证时间的不可篡改,并作为在区块链系统的标识,供后续文件和数据库数据对比使用。区块链存储成功后,向客户端返回上传成功的消息,并返回哈希值、时间戳、区块id、交易id,同时,运算得到的表格数据将展示到客户端的前端页面中,用户通过可视化页面查看数据库运算结果。

区块链同步存储以上所有哈希值时可选择单点运算或共识运算,单点运算即单个节点存储以上所有哈希值,共识运算即区块链所有节点(默认为四个),经过共识后存储以上所有哈希值。共识运算的可靠性更高,单点运算的计算速度更快,可根据需求进行选择。

步骤三:对运算结果进行查询和审计:

用户通过客户端发起对数据库该次运算的查询请求时,系统将区块链中存储的运行时的数据库哈希值和sql原文哈希值,分别与当前请求时的数据库哈希值和sql原文哈希值进行比对,比对成功,则将运算结果展示到前端页面中,用户通过可视化页面查看数据库运算结果。比对失败,则提示:数据前后比对不一致,存在数据被篡改可能。那么用户需要去校验数据库中存储的数据、sql原文或审计结果的真实性,可直接向区块链发起审计请求,同时计算当前数据库、sql原文以及运算结果的当前哈希值。将当前数据库、sql原文以及运算结果的当前哈希值分别与存储在区块链上的原始哈希值进行比对,若比对成功则表示数据未被篡改;若比对失败,则数据库数据可能被篡改。若对展示的运算结果存疑,也可区块链发起审计请求,对运算结果进行审计。本发明通过同时比对数据库哈希值、sql原文哈希值和运算结果哈希值,确保了全流程的数据真实可靠,数据库无需重新根据sql原文进行运算,能有效提高审计效率,简化审计流程。

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