去中心化环境下流水线计算的验证方法和系统及介质

文档序号:947606 发布日期:2020-10-30 浏览:30次 >En<

阅读说明:本技术 去中心化环境下流水线计算的验证方法和系统及介质 (Verification of pipeline computations in decentralized environments ) 是由 张天诩 李明煜 夏虞斌 于 2020-07-06 设计创作,主要内容包括:本发明提供了一种去中心化环境下流水线计算的验证方法和系统及介质,结合密码散列函数和数字签名技术,在去中心化环境下执行流水线计算的过程中生成并保存证据,用户利用计算过程中生成的证据可以验证流水线的最终计算结果是否为根据原始输入数据经过流水线程序得到的。将所有证据串联成证据树,在去中心化环境下证明流水线的最终结果是否为根据原始输入数据经过流水线程序得到的。与现有的去中心化计算相比,赋予用户检查结果正确性的能力。(The invention provides a verification method, a system and a medium for pipeline calculation under a decentralized environment, which are combined with a password hash function and a digital signature technology, generate and store evidence in the process of executing the pipeline calculation under the decentralized environment, and a user can verify whether a final calculation result of a pipeline is obtained through a pipeline program according to original input data by using the evidence generated in the calculation process. And all evidences are connected in series to form an evidence tree, and whether the final result of the pipeline is obtained by a pipeline program according to the original input data is proved under a decentralized environment. Compared with the existing decentralized calculation, the method gives the user the capability of checking the correctness of the result.)

去中心化环境下流水线计算的验证方法和系统及介质

技术领域

本发明涉及流水线计算的正确性验证技术领域,具体地,涉及一种适用于去中心化环境下的流水线计算的验证方法和系统及介质,尤其是一种适用于去中心化环境下的流水线计算的正确性验证方法。

背景技术

随着区块链技术的盛行,去中心化计算已经成为一种趋势。所谓去中心化计算,就是将计算机资源(包括硬件和软件)分散到单独的计算节点,这些节点可能处于不同的地理位置,或者属于不同的个人或机构。去中心化计算可以有效利用分散的计算能力,但是一般来说这些分散的计算能力都不强,无法单独完成较大的计算,因此需要将较大的计算拆分为流水线(pipeline),流水线是指将计算过程拆分为多个步骤,由多台计算机合作完成计算。但是在去中心化环境中,流水线计算产生的中间结果可能被去中心化网络以外的攻击者篡改,进而得到错误的最终结果。

用户拿到最终结果后,无法得知计算的中间过程,即便结果是错误的,用户也无法验证结果的正确性。这是一个必须解决的问题。

发明内容

针对现有技术中的缺陷,本发明的目的是提供一种去中心化环境下流水线计算的验证方法和系统及介质。

根据本发明提供的一种去中心化环境下流水线计算的验证方法,包括:

执行步骤:根据流水线各个阶段执行计算,得到流水线计算结果;

验证步骤:验证流水线计算结果的正确性。

优选地,所述执行步骤包括:

第一阶段执行步骤:由流水线第一阶段计算机读取输入数据并根据流水线第一阶段程序进行计算,得到第一阶段计算结果,对输入数据、流水线第一阶段程序和第一阶段计算结果生成第一证据,将第一阶段计算结果和第一证据上传至数据库;

第二阶段执行步骤:由流水线第二阶段计算机从数据库读取第一阶段计算结果和对应证据,将第一阶段计算结果作为输入,根据流水线第二阶段程序进行计算,得到第二阶段计算结果,对第一阶段计算结果和第一证据、流水线第二阶段程序、第二阶段计算结果生成第二证据,将第二阶段计算结果和第二证据上传至数据库。

优选地,所述第二证据的生成是使用密码散列函数对第一阶段计算结果和第一证据、流水线第二阶段程序、第二阶段计算结果分别计算摘要,使用计算机的私钥对摘要进行数字签名,摘要和数字签名一起构成第二证据。

优选地,所述验证步骤包括:

后一阶段验证步骤:根据流水线计算结果中的数字签名验证完成流水线计算结果中的最终结果计算的计算机是否是本网络中的节点,根据流水线计算结果中的摘要验证流水线计算结果中的最终结果有没有被修改,同时验证最终结果是否以流水线倒数第二阶段计算结果作为输入,由流水线最后阶段程序计算得到;如果验证未通过,说明流水线最后阶段计算过程中出错,最终结果不正确;

前一阶段验证步骤:验证完成流水线倒数第二阶段结果计算的计算机是否是本网络中的节点,是否被修改,是不是以流水线倒数第三阶段计算结果作为输入,由流水线倒数第二阶段程序计算得到;如果验证未通过,说明流水线倒数第二阶段计算过程中出错,最终结果不正确。

第一阶段验证步骤:验证完成流水线第一阶段结果计算的计算机是否是本网络中的节点,是否被修改,是否以原始输入数据为输入,由流水线第一阶段程序计算得到;如果验证未通过,说明流水线倒数第二阶段计算过程中出错,最终结果不正确;如果通过验证,说明最终结果是由原始输入数据经过流水线程序得到的。

根据本发明提供的一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现所述的方法的步骤。

根据本发明提供的一种去中心化环境下流水线计算的验证系统,包括:

执行模块:根据流水线各个阶段执行计算,得到流水线计算结果;

验证模块:验证流水线计算结果的正确性。

优选地,所述执行模块包括:

第一阶段执行模块:由流水线第一阶段计算机读取输入数据并根据流水线第一阶段程序进行计算,得到第一阶段计算结果,对输入数据、流水线第一阶段程序和第一阶段计算结果生成第一证据,将第一阶段计算结果和第一证据上传至数据库;

第二阶段执行模块:由流水线第二阶段计算机从数据库读取第一阶段计算结果和对应证据,将第一阶段计算结果作为输入,根据流水线第二阶段程序进行计算,得到第二阶段计算结果,对第一阶段计算结果和第一证据、流水线第二阶段程序、第二阶段计算结果生成第二证据,将第二阶段计算结果和第二证据上传至数据库。

优选地,所述第二证据的生成是使用密码散列函数对第一阶段计算结果和第一证据、流水线第二阶段程序、第二阶段计算结果分别计算摘要,使用计算机的私钥对摘要进行数字签名,摘要和数字签名一起构成第二证据。

优选地,所述验证模块包括:

后一阶段验证模块:根据流水线计算结果中的数字签名验证完成流水线计算结果中的最终结果计算的计算机是否是本网络中的节点,根据流水线计算结果中的摘要验证流水线计算结果中的最终结果有没有被修改,同时验证最终结果是否以流水线倒数第二阶段计算结果作为输入,由流水线最后阶段程序计算得到;如果验证未通过,说明流水线最后阶段计算过程中出错,最终结果不正确;

前一阶段验证模块:验证完成流水线倒数第二阶段结果计算的计算机是否是本网络中的节点,是否被修改,是不是以流水线倒数第三阶段计算结果作为输入,由流水线倒数第二阶段程序计算得到;如果验证未通过,说明流水线倒数第二阶段计算过程中出错,最终结果不正确。

第一阶段验证模块:验证完成流水线第一阶段结果计算的计算机是否是本网络中的节点,是否被修改,是否以原始输入数据为输入,由流水线第一阶段程序计算得到;如果验证未通过,说明流水线倒数第二阶段计算过程中出错,最终结果不正确;如果通过验证,说明最终结果是由原始输入数据经过流水线程序得到的。

与现有技术相比,本发明具有如下的有益效果:

本发明通过对流水线计算中每一步的计算结果生成证据并保存在数据库中,将所有证据串联成证据树,在去中心化环境下证明流水线的最终结果是否为根据原始输入数据经过流水线程序得到的。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的流水线计算方法流程图;

图2为本发明的流水线结果正确性的验证方法流程图;

图3为本发明的软件架构示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

实施例1

本发明所要解决的技术问题在于提供一种去中心化环境下流水线计算的正确性验证方法,以提高去中心化环境下流水线计算结果的安全性保证,帮助对流水线结果的正确性进行验证。为了解决上述技术问题,本发明提供一种去中心化环境下流水线计算的正确性验证方法,结合密码散列函数(Cryptographic Hash Function)和数字签名技术,在去中心化环境下执行流水线计算的过程中生成并保存证据,用户利用计算过程中生成的证据可以验证流水线的最终计算结果是否为根据原始输入数据经过流水线程序得到的。与现有的去中心化计算相比,赋予用户检查结果正确性的能力。

具体包括如下步骤:

根据流水线各个阶段执行计算。

验证流水线计算结果的正确性。

其中,所述根据流水线各个阶段执行计算的步骤,可以包括:

由流水线第一阶段计算机读取输入数据并根据流水线第一阶段程序进行计算,对输入数据、流水线第一阶段程序和计算结果生成证据,将计算结果和对应证据上传至数据库。

由流水线第二阶段计算机从数据库读取第一阶段的计算结果和证据,将第一阶段计算结果作为输入,根据流水线第二阶段程序进行计算,对第一阶段对计算结果和证据、流水线第二阶段程序、计算结果生成证据,将计算结果和对应证据上传至数据库。

按照上述方法,依次执行直至获得最终计算结果和对应证据。

其中,所述对第一阶段对计算结果和证据、流水线第二阶段程序、计算结果生成证据的步骤,可以包括:

使用密码散列函数对第一阶段对计算结果和证据、流水线第二阶段程序、计算结果分别计算摘要(Digest)。

使用计算机的私钥对摘要进行数字签名,摘要和数字签名一起构成证据。

其中,所述验证流水线计算结果的正确性的步骤,可以包括:

根据最终结果和对应证据验证,最终结果是流水线上一阶段计算结果作为输入,根据流水线最后一个阶段程序计算得到的,同时验证上一阶段证据是否被修改。

按照上述方法依次向前验证流水线每个阶段,直至验证流水线第一阶段的结果是最初输入数据作为输入,根据流水线第一阶段程序计算得到的。

完成验证最终结果是不是根据原始输入数据经过流水线程序得到的。

其中,所述根据结果和对应证据验证的步骤,可以包括:

根据数字签名验证执行计算的计算机是否为本去中心化网络中的节点。

对读取的上一阶段结果计算摘要,和证据中上一阶段计算结果的摘要对比,如果相同,说明本阶段的输入数据是未被修改过的上一阶段的结果。

对已知流水线本阶段程序计算摘要,和证据中程序的摘要对比,如果相同,说明本阶段结果是经过流水线本阶段程序计算得到的

上面三个验证说明结果是未被修改的上一阶段的结果作为输入,经过流水线本阶段程序计算得到的。

下面结合附图对本发明作进一步的说明。

如图1所示,为本发明流水线计算方法的流程图,完成去中心化环境下,支持结果正确性验证的流水线计算。下面结合图1对流水线计算步骤进行详细描述:

在步骤101中,负责流水线第一阶段计算的计算机,读取流水线计算的输入数据,根据流水线第一阶段的程序完成第一阶段的计算。与此同时,该计算机利用密码散列函数对它负责的输入数据、它的程序、它的结果计算摘要,并且利用私钥对生成的摘要签名。最后将计算结果和带有数字签名的摘要上传至数据库。

在步骤102中,负责流水线第二阶段计算的计算机,以流水线第一阶段的计算结果作为输入,根据流水线第二阶段的程序完成第二阶段的计算。与此同时,与上述步骤相同,计算输入数据(包含输入数据对应的带数字签名的摘要)、程序、结果的摘要并签名。并且将计算结果和带有数字签名的摘要上传至数据库。

按照流水线计算的阶段,依次执行上述的计算并上传结果和结果对应的带数字签名的摘要,直到步骤103所示,执行到流水线最后一个阶段。将流水线计算的最终结果和对应的带签名的摘要发送给用户,这样就完成了计算。

如图2所示,为本发明流水线结果正确性的验证方法流程图,用户拿到流水线计算的最终结果和对应证据后,可以按照图2所示步骤完成结果正确性的验证,下面结合图2对流水线结果正确性验证方法的步骤进行详细描述:

在步骤201中,用户根据数字签名可以验证完成最终结果计算的计算机是否是本网络中的节点,根据摘要可以验证最终结果有没有被修改,同时也可以验证最终结果是否以流水线倒数第二阶段计算结果作为输入,由流水线最后阶段程序计算得到。如果验证未通过,说明流水线最后阶段计算过程中出错,最终结果不正确。

在步骤202中,上一步骤验证通过后,以同样的方法可以验证完成流水线倒数第二阶段结果计算的计算机是否是本网络中的节点,是否被修改,是不是以流水线倒数第三阶段计算结果作为输入,由流水线倒数第二阶段程序计算得到。如果验证未通过,说明流水线倒数第二阶段计算过程中出错,最终结果不正确。

依次向前验证,直到步骤203所示,验证完成流水线第一阶段结果计算的计算机是否是本网络中的节点,是否被修改,是否以原始输入数据为输入,由流水线第一阶段程序计算得到。如果验证未通过,说明流水线倒数第二阶段计算过程中出错,最终结果不正确。如果通过验证,说明最终结果是由原始输入数据经过流水线程序得到的。

如图3所示,为本发明的软件架构示意图,展示了去中心化环境下,流水线计算的过程。

在步骤301中,展示了去中心化环境下,本发明流水线计算第一步骤的计算过程。

在步骤302中,展示了去中心化环境下,本发明流水线计算生成最终结果的最后步骤的计算过程。

在步骤303中,展示了证据的组成部分。

实施例2

一种去中心化环境下流水线计算的正确性验证系统,包括:

执行模块:根据流水线各个阶段执行计算,得到流水线计算结果;

验证模块:验证流水线计算结果的正确性。

所述执行模块包括:

第一阶段执行模块:由流水线第一阶段计算机读取输入数据并根据流水线第一阶段程序进行计算,得到第一阶段计算结果,对输入数据、流水线第一阶段程序和第一阶段计算结果生成第一证据,将第一阶段计算结果和第一证据上传至数据库;

第二阶段执行模块:由流水线第二阶段计算机从数据库读取第一阶段计算结果和对应证据,将第一阶段计算结果作为输入,根据流水线第二阶段程序进行计算,得到第二阶段计算结果,对第一阶段计算结果和第一证据、流水线第二阶段程序、第二阶段计算结果生成第二证据,将第二阶段计算结果和第二证据上传至数据库。

所述第二证据的生成是使用密码散列函数对第一阶段计算结果和第一证据、流水线第二阶段程序、第二阶段计算结果分别计算摘要,使用计算机的私钥对摘要进行数字签名,摘要和数字签名一起构成第二证据。

所述验证模块包括:

后一阶段验证模块:根据流水线计算结果中的数字签名验证完成流水线计算结果中的最终结果计算的计算机是否是本网络中的节点,根据流水线计算结果中的摘要验证流水线计算结果中的最终结果有没有被修改,同时验证最终结果是否以流水线倒数第二阶段计算结果作为输入,由流水线最后阶段程序计算得到;如果验证未通过,说明流水线最后阶段计算过程中出错,最终结果不正确;

前一阶段验证模块:验证完成流水线倒数第二阶段结果计算的计算机是否是本网络中的节点,是否被修改,是不是以流水线倒数第三阶段计算结果作为输入,由流水线倒数第二阶段程序计算得到;如果验证未通过,说明流水线倒数第二阶段计算过程中出错,最终结果不正确。

第一阶段验证模块:验证完成流水线第一阶段结果计算的计算机是否是本网络中的节点,是否被修改,是否以原始输入数据为输入,由流水线第一阶段程序计算得到;如果验证未通过,说明流水线倒数第二阶段计算过程中出错,最终结果不正确;如果通过验证,说明最终结果是由原始输入数据经过流水线程序得到的。

通过对流水线计算中每一步的计算结果生成证据并保存在数据库中,将所有证据串联成证据树,在去中心化环境下证明流水线的最终结果是否为根据原始输入数据经过流水线程序得到的。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:处理器操作方法及装置以及相关产品

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!