基于区块链的信息验证方法及装置与流程

文档序号:26051001发布日期:2021-07-27 15:26阅读:95来源:国知局
基于区块链的信息验证方法及装置与流程

本公开属于通信技术领域,具体涉及一种基于区块链的信息验证方法及装置。



背景技术:

最基础的数据都是通用的,能够被所有人、所有系统、所有流程识别的。我们应当倾尽全力去确保它们的完整性、一致性和准确性,这是一个需要投入巨大精力去维护的工作。尤其适用于供应链的主数据,供应链主数据指的是供应链上能够被大家共同使用的,跨应用系统、跨功能和职能模块的核心数据。例如供应商的主数据,包含供应商的名称、供应商的注册地址、供应商的税号、供应商的经营范围等;再如商品的主数据,包含商品编码、商品名称、商品规格、商品属性等;仓库的主数据包括仓库名称、仓库地址、仓库属性、仓库容积、消防等级等。不论是采购部门、物流部门、计划部门,不论是wms(warehousemanagementsystem,仓库管理系统),这些最基础的数据都是通用的。

因此,如何确保数据的完整性、一致性和准确性,使得可以有效并且高效的存储和查询数据,以及保证该存储过程安全可靠,成为需要解决的问题。



技术实现要素:

本公开针对现有技术中存在的上述不足,提供一种基于区块链的信息验证方法及装置。

作为本公开的第一个方面,提供一种基于区块链的信息验证方法,包括:

接收用户设备的信息采集请求,并获取其中的待采集数据的信息;

在区块链的创世区块中根据所述待采集数据的信息查询所述待采集数据的类型编码,所述待采集数据为相同类型的数据;

根据所述类型编码确定所述区块链中对应的区块,并获取所述区块中的第一默克尔树信息和所述待采集数据的存储地址;

根据所述待采集数据的存储地址获取源数据;

计算所述源数据的第二默克尔树信息;

响应于根据所述第一默克尔树信息和所述第二默克尔树信息确定出所述待采集数据未被篡改,向所述用户设备返回所述待采集数据的存储地址。

优选地,所述响应于根据所述第一默克尔树信息和所述第二默克尔树信息确定出所述待采集数据未被篡改,包括:

响应于确定出所述第一默克尔树信息中的根节点信息和所述第二默克尔树信息中的根节点信息一致,且所述第一默克尔树信息中的所有叶子节点信息和所述第二默克尔树信息中的所有叶子节点信息均一致,确定所述待采集数据未被篡改。

优选地,所述方法还包括:

根据数据的类型建立对应的类型编码,并获取相同类型编码的数据以及所述相同类型编码的数据的存储地址;

将所述相同类型编码的数据划分成预设数量的第一数据块,并对所述预设数量的第一数据块进行编号;

根据所述第一数据块的内容和所述第一数据块的编号计算所述第一默克尔树信息;

在所述区块链中生成新区块,所述新区块包括所述第一默克尔树信息和所述相同类型编码的数据的存储地址。

优选地,所述根据所述第一数据块的内容和所述第一数据块的编号计算所述第一默克尔树信息,包括:

计算所述第一数据块的内容和所述第一数据块的编号的哈希值,作为所述第一默克尔树的叶子节点信息;

根据所述第一默克尔树的叶子节点信息计算所述第一默克尔树的根节点信息,并根据所述第一默克尔树的叶子节点信息和所述第一默克尔树的根节点信息生成所述第一默克尔树信息。

优选地,所述计算所述源数据的第二默克尔树信息,包括:

将所述源数据划分成预设数量的第二数据块,并对所述预设数量的第二数据块进行编号;

根据所述第二数据块的内容和所述第二数据块的编号计算所述第二默克尔树信息。

作为本公开的第二个方面,提供一种基于区块链的信息验证装置,包括:

接收模块,用于接收用户设备的信息采集请求;

第一获取模块,用于获取所述信息采集请求中的待采集数据的信息;

查询模块,用于在区块链的创世区块中根据所述待采集数据的信息查询所述待采集数据的类型编码,所述待采集数据为相同类型的数据;

确定模块,用于根据所述类型编码确定所述区块链中对应的区块;

第二获取模块,用于获取所述区块中的第一默克尔树信息和所述待采集数据的存储地址;

第三获取模块,用于根据所述待采集数据的存储地址获取源数据;

第一计算模块,用于计算所述源数据的第二默克尔树信息;

发送模块,用于响应于根据所述第一默克尔树信息和所述第二默克尔树信息确定出所述待采集数据未被篡改,向所述用户设备返回所述待采集数据的存储地址。

优选地,所述确定模块,具体用于:

在区块链的创世区块中根据所述待采集数据的信息查询到所述待采集数据的类型编码,所述待采集数据为相同类型的数据;

根据所述类型编码确定所述区块链中对应的区块。

优选地,所述发送模块中,所述响应于根据所述第一默克尔树信息和所述第二默克尔树信息确定出所述待采集数据未被篡改,包括:

响应于确定出所述第一默克尔树信息中的根节点信息和所述第二默克尔树信息中的根节点信息一致,且所述第一默克尔树信息中的所有叶子节点信息和所述第二默克尔树信息中的所有叶子节点信息均一致,确定所述待采集数据未被篡改。

优选地,所述装置,还包括:

建立模块,用于根据数据的类型建立对应的类型编码;

第四获取模块,用于获取相同类型编码的数据以及所述相同类型编码的数据的存储地址;

划分模块,用于将所述相同类型编码的数据划分成预设数量的第一数据块;

编号模块,用于对所述预设数量的第一数据块进行编号;

第二计算模块,用于根据所述第一数据块的内容和所述第一数据块的编号计算所述第一默尔树信息;

生成模块,用于在所述区块链中生成新区块,所述新区块包括所述第一默克尔树信息和所述相同类型编码的数据的存储地址。

优选地,所述第二计算模块,具体用于:

计算所述第一数据块的内容和所述第一数据块的编号的哈希值,作为所述第一默克尔树的叶子节点信息;

根据所述第一默克尔树的叶子节点信息计算所述第一默克尔树的根节点信息,并根据所述第一默克尔树的叶子节点信息和所述第一默克尔树的根节点信息生成所述第一默克尔树信息。

优选地,所述第一计算模块,具体用于:

将所述源数据划分成预设数量的第二数据块,并对所述预设数量的第二数据块进行编号;

根据所述第二数据块的内容和所述第二数据块的编号计算所述第二默克尔树信息。

本公开实施例所提供的基于区块链的信息验证方法,基于区块链的信息验证装置接收用户设备的信息采集请求,并获取中的待采集数据的信息。该装置在区块链的创世区块中根据待采集数据的信息查询待采集数据的类型编码,待采集数据为相同类型的数据,并根据类型编码确定区块链中对应的区块。该装置获取该区块中的第一默克尔树信息和待采集数据的存储地址,并根据待采集数据的存储地址获取源数据,计算源数据的第二默克尔树信息,根据第一默克尔树信息与第二默克尔树信息确定出待采集数据未被篡改时,向用户设备返回待采集数据的存储地址,以供用户设备根据该待采集数据的存储地址获取待采集数据。验证了待采集数据的完整性、一致性和准确性,可以有效并且高效的存储和查询待采集数据,为需求方获取供应方相关信息提供了便利,以及保证该存储过程安全可靠。

附图说明

图1为本公开实施例提供的一种基于区块链的信息验证方法的流程图;

图2为本公开实施例提供的一种基于区块链的信息验证方法的另一流程图;

图3为本公开实施例提供的图2中步骤s204的一种可选实施方式;

图4为本公开实施例提供的图1中步骤s107的一种可选实施方式;

图5为本公开实施例提供的一种基于区块链的信息验证装置的结构示意图。

具体实施方式

为使本领域技术人员更好地理解本公开的技术方案,下面结合附图和具体实施方式对本公开作进一步详细描述。

为了确保数据的完整性、一致性和准确性,使得可以有效并且高效的存储和查询数据,以及保证该存储过程安全可靠的问题。本公开提供一种基于区块链的信息验证方法及装置。以下分别结合本公开提供的实施例的附图逐一进行详细说明。

图1示出本公开实施例提供的基于区块链的信息验证方法的流程图。该基于区块链的信息验证方法可应用于基于区块链的信息验证装置。如图1所示,本实施例提供的基于区块链的信息验证方法包括以下步骤。

步骤s101,接收用户设备的信息采集请求。

步骤s102,获取信息采集请求中的待采集数据的信息。

步骤s103,在区块链的创世区块中根据待采集数据的信息查询待采集数据的类型编码。

步骤s104,根据类型编码确定区块链中对应的区块。

步骤s105,获取区块中的第一默克尔树信息和待采集数据的存储地址。

步骤s106,根据待采集数据的存储地址获取源数据。

步骤s107,计算源数据的第二默克尔树信息。

步骤s108,响应于根据第一默克尔树信息和第二默克尔树信息确定出待采集数据未被篡改,向用户设备返回待采集数据的存储地址。

其中,待采集数据为用户设备需要采集的数据。待采集数据的信息包括待采集数据的范围或类型等信息。源数据的范围大于或等于待采集数据的范围,源数据为相同类型的所有数据,源数据构成一个数据库。待采集数据的存储地址即为存储源数据的数据库的索引地址或ip(internetprotocol,网络之间互连的协议)地址或该数据库地址的指针信息。

在初始阶段,将不同类型的数据存储在不同的数据库中,一种类型的数据组成一个数据库,每个数据库对应生成第一默克尔树信息,将第一默克尔树信息连同待采集数据的存储地址一起写入区块链新生成的新区块中。即一种数据的类型对应一个区块链中的区块。

本公开实施例所提供的基于区块链的信息验证方法,基于区块链的信息验证装置接收用户设备的信息采集请求,获取信息采集请求中的待采集数据的信息,根据待采集数据的信息中的待采集数据的范围或类型等信息确定区块链中对应的区块。区块链中生成的每一个新区块对应一种类型的数据,对应一个类型编码(类型编码是预先创建的,一种数据的类型创建一种类型编码),即创世区块中保存区块链所有新区块与类型编码的对应关系。待采集数据为相同类型的数据,根据待采集数据的信息中的待采集数据的范围或类型确定对应的类型编码,并在创世区块找到该待采集数据的类型编码,并根据创世区块中的新区块与类型编码的对应关系,确定区块链中对应的区块。

进一步的,基于区块链的信息验证装置获取该区块中的第一默克尔树信息和待采集数据的存储地址,并根据待采集数据的存储地址获取源数据,计算源数据的第二默克尔树信息,将第一默克尔树信息与第二默克尔树信息进行比较,当确定出待采集数据未被篡改时,向用户设备返回待采集数据的存储地址,以供用户设备根据该待采集数据的存储地址获取待采集数据。

本公开实施例验证了待采集数据的完整性、一致性和准确性,并且区块链上不存储待采集数据,待采集数据存储在另外的数据库中,降低了区块链上数据的存储空间,使得可以有效并且高效的存储和查询待采集数据,为需求方获取供应方相关信息提供了便利,以及保证该存储过程安全可靠。同时促进了供应方经营管理系统的积极性,有效制约了由于信息不对称导致的供应方信誉问题。

需要说明的是,第一默克尔树信息是初始阶段,一个数据库(包括所有类型相同的数据)对应生成的默克尔树的信息。第二默克尔树信息是获取到的源数据对应生成默克尔树的信息。若第一默克尔树信息与第二默克尔树信息一致,则说明待采集数据没有被篡改,用户设备可以采集该待采集数据。该装置也可以对待采集数据进行分析,将分析结果、分析时间、数据结构特点和数据摘要等结果发送至用户设备,以供用户设备使用。

需要说明的是,本公开实施例提供的基于区块链的信息验证方法,尤其适用于供应链管理体系认证主体作为用户设备希望采集供应链的主数据的应用场景。

进一步的,所述步骤s108中,响应于根据第一默克尔树信息和第二默克尔树信息确定出待采集数据未被篡改,包括:响应于确定出第一默克尔树信息中的根节点信息和第二默克尔树信息中的根节点信息一致,且第一默克尔树信息中的所有叶子节点信息和第二默克尔树信息中的所有叶子节点信息均一致,确定待采集数据未被篡改。

本公开实施例中,区块链中生成的新区块预先保存第一默克尔树信息,在新区块的区块头中预先保存第一默克尔树信息中的根节点信息和待采集数据的存储地址,在新区块的区块体中预先保存第一默克尔树信息中的叶子节点信息。相应的,在步骤s104中,从对应区块的区块头提取出第一默克尔树信息中的根节点信息和待采集数据的存储地址,从对应区块的区块体提取出第一默克尔树信息中的所有叶子节点信息。

需要说明的是,若步骤s108中,比较第一默克尔树信息和第二默克尔树信息的过程中,只要发现一个信息未比对一致,则说明待采集数据被篡改,不向用户设备发送待采集数据的存储地址。

图2示出本公开实施例提供的一种基于区块链的信息验证方法的另一流程图。进一步的,如图2所示,在初始阶段,所述方法还包括:

步骤s201,根据数据的类型建立对应的类型编码。

步骤s202,获取相同类型编码的数据以及相同类型编码的数据的存储地址。

步骤s203,将相同类型编码的数据划分成预设数量的第一数据块,并对预设数量的第一数据块进行编号。

步骤s204,根据第一数据块的内容和第一数据块的编号计算第一默克尔树信息。

步骤s205,在区块链中生成新区块。

在初始阶段,相同类型编码的数据保存在一个数据库中,一个数据库中划分出预设数量的第一数据块,并对各第一数据库顺序编号。每个数据库对应生成一个默克尔树,不同类型编码的数据对应生成不同的默克尔树,不同的默克尔树之间的数据不交叉。每个默克尔树对应生成第一默克尔树信息,即根据第一数据块的内容和第一数据块的编号计算第一默克尔树信息。在区块链中生成新区块,其中,新区块包括第一默克尔树信息和相同类型编码的数据的存储地址。

需要说明的是,步骤s201-步骤s205只执行一次,在区块链生成之后,步骤s101-步骤s108可以重复执行。

图3示出本公开实施例提供的图2中步骤s204的一种可选实施方式。进一步的,如图3所示,所述步骤s204,根据第一数据块的内容和第一数据块的编号计算第一默克尔树信息,包括:

步骤s301,计算第一数据块的内容和第一数据块的编号的哈希值,作为第一默克尔树的叶子节点信息。

步骤s302,根据第一默克尔树的叶子节点信息计算第一默克尔树的根节点信息,并根据第一默克尔树的叶子节点信息和第一默克尔树的根节点信息生成第一默克尔树信息。

在步骤s301-步骤s302中,计算第一数据块的内容和第一数据块的编号两者的哈希值,作为第一默克尔树的叶子节点信息,而不是只计算数据块的内容的哈希值,与现有技术中不同。根据第一默克尔树的叶子节点信息计算第一默克尔树的中间节点的哈希值,依次类推,最后得到第一默克尔树的根节点的哈希值,即第一默克尔树的根节点信息。

图4示出本公开实施例提供的图1中步骤s107的一种可选实施方式。进一步的,如图4所示,所述步骤s107,计算源数据的第二默克尔树信息,包括:

步骤s401,将源数据划分成预设数量的第二数据块,并对预设数量的第二数据块进行编号。

步骤s402,根据第二数据块的内容和第二数据块的编号计算第二默克尔树信息。

在步骤s401-步骤s402中,对源数据按照与步骤图2和图3的实施例相同的方法生成一个新的默克尔树。计算第二数据块的内容和第二数据块的编号两者的哈希值,作为第二默克尔树的叶子节点信息,而不是只计算数据块的内容的哈希值,与现有技术中不同。根据第二默克尔树的叶子节点信息计算第二默克尔树的中间节点的哈希值,依次类推,最后得到第二默克尔树的根节点的哈希值,即第二默克尔树的根节点信息。

图5示出本公开实施例提供的基于区块链的信息验证装置的结构示意图。基于与图1对应的实施例相同的技术构思,如图5所示,本公开实施例提供的基于区块链的信息验证装置,包括如下模块。

接收模块11,用于接收用户设备的信息采集请求;

第一获取模块12,用于获取所述信息采集请求中的待采集数据的信息;

查询模块13,用于在区块链的创世区块中根据所述待采集数据的信息查询所述待采集数据的类型编码,所述待采集数据为相同类型的数据;

确定模块14,用于根据所述类型编码确定所述区块链中对应的区块;

第二获取模块15,用于获取所述区块中的第一默克尔树信息和所述待采集数据的存储地址;

第三获取模块16,用于根据所述待采集数据的存储地址获取源数据;

第一计算模块17,用于计算所述源数据的第二默克尔树信息;

发送模块18,用于响应于根据所述第一默克尔树信息和所述第二默克尔树信息确定出所述待采集数据未被篡改,向所述用户设备返回所述待采集数据的存储地址。

在一些实施例中,所述发送模块18中,所述响应于根据所述第一默克尔树信息和所述第二默克尔树信息确定出所述待采集数据未被篡改,包括:

响应于确定出所述第一默克尔树信息中的根节点信息和所述第二默克尔树信息中的根节点信息一致,且所述第一默克尔树信息中的所有叶子节点信息和所述第二默克尔树信息中的所有叶子节点信息均一致,确定所述待采集数据未被篡改。

在一些实施例中,所述装置,还包括:

建立模块,用于根据数据的类型建立对应的类型编码;

第四获取模块,用于获取相同类型编码的数据以及所述相同类型编码的数据的存储地址;

划分模块,用于将所述相同类型编码的数据划分成预设数量的第一数据块;

编号模块,用于对所述预设数量的第一数据块进行编号;

第二计算模块,用于根据所述第一数据块的内容和所述第一数据块的编号计算所述第一默尔树信息;

生成模块,用于在所述区块链中生成新区块,所述新区块包括所述第一默克尔树信息和所述相同类型编码的数据的存储地址。

在一些实施例中,所述第二计算模块,具体用于:

计算所述第一数据块的内容和所述第一数据块的编号的哈希值,作为所述第一默克尔树的叶子节点信息;

根据所述第一默克尔树的叶子节点信息计算所述第一默克尔树的根节点信息,并根据所述第一默克尔树的叶子节点信息和所述第一默克尔树的根节点信息生成所述第一默克尔树信息。

在一些实施例中,所述第一计算模块17,具体用于:

将所述源数据划分成预设数量的第二数据块,并对所述预设数量的第二数据块进行编号;

根据所述第二数据块的内容和所述第二数据块的编号计算所述第二默克尔树信息。

可以理解的是,以上实施方式仅仅是为了说明本公开的原理而采用的示例性实施方式,然而本公开并不局限于此。对于本领域内的普通技术人员而言,在不脱离本公开的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本公开的保护范围。

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