一种为智能合同提供经证实、可审计和不可变输入的方法和系统技术方案

技术编号:21855510 阅读:15 留言:0更新日期:2019-08-14 01:38
一种将可审计的不可变数据发布到区块链的方法,包括:接收包括多个区块的区块链,每个区块至少包括区块头部和一个或多个交易值,其中每个交易值至少包括交易散列;接收与包括在区块链中的区块之中的特定交易散列关联的数据文件,其中所述数据文件包括一个或多个变量;修改包括在所述数据文件中的所述一个或多个变量中的至少一个变量;通过把一个或多个散列算法应用于修改后的数据文件,生成新的散列值;至少基于生成的新的散列值和所述特定交易散列,生成新的交易值;对生成的新的交易值进行数字签名;和以电子方式传送经签名的新的交易值。

A Method and System for Providing Confirmed, Auditable and Invariant Input for Intelligent Contracts

【技术实现步骤摘要】
【国外来华专利技术】一种为智能合同提供经证实、可审计和不可变输入的方法和系统相关申请的引用本申请要求2016年12月28日提交的美国专利申请No.15/392,108的优先权。该申请的整个内容通过引用包含在本文中。
本公开涉及将不可变数据发布到由输入组成的区块链,就所述输入来说,智能合同的输入的结果是确定性的,从而使得能够证实和审计关联交易的执行。
技术介绍
随着技术的进步和变得更加复杂,企业、个人和其他实体经常寻找方法来改进他们如何做生意和彼此沟通。计算技术彻底改变这一局面的一个因素是两个实体之间的交易的进行。由于各种原因,在两个实体之间可发生交易:往来付款、购买商品或服务、数据交换、获取财产、合同对价等。在许多情况下,计算技术可提供实体可证明或验证交易及与交易关联的数据,以及进行与之相关的通信的平台。例如,与物理递送相比,通过计算设备发送资金可以明显更快地进行。然而,计算设备和电子通信有时可能受到危害,使实体及其财产处于危险之中。已经开发了一些方法来帮助保护这些通信,比如对数据消息加密和安全通信通道和协议。类似地,开发了保护数据的存储的方法。一种这样的方法是使用区块链,在区块链中,链是去中心化的,并且存储在其中的数据是不可变的,从而提供在特定时间的数据(比如特定合同条款的约定之类)的可靠证据。然而,尽管区块链可用于证实约定或者与交易的计划或发起相关的其他数据,不过,区块链目前缺乏证实和审计这种交易的执行的能力。即,关于如何将区块链用于这一目的存在技术挑战。从而,需要一种利用区块链来审计和证实与交易关联的动作的执行的技术解决方案。
技术实现思路
本公开提供了一种用于将可审计的不可变数据发布到区块链并对其进行审计和验证的系统和方法的描述。智能合同的输入存储在区块链中并且是不可变的,并且使得基于智能合同的性质和关联的输入,智能合同的输出是确定性的。结果,希望验证与智能合同相关的执行的实体可以能够生成预期的输出,以用于审计和验证所述执行。此外,通过将与这种执行相关的数据发布到区块链,还可以对进一步的执行进行审计和验证,使两个或更多个实体之间的交易的整个执行的准确捕捉、审计和证实成为可能。一种将能审计的不可变数据发布到区块链的方法,包括:通过处理服务器的接收设备,接收包括多个区块的区块链,每个区块至少包括区块头部和一个或多个交易值,其中每个交易值至少包括交易散列;通过处理服务器的接收设备,接收与包括在区块链中的区块之中的特定交易散列关联的数据文件,其中所述数据文件包括一个或多个变量;通过处理服务器的数据修改模块,修改包括在所述数据文件中的所述一个或多个变量中的至少一个变量;通过处理服务器的散列模块,通过把一个或多个散列算法应用于修改后的数据文件,生成新的散列值;通过处理服务器的生成模块,至少基于生成的新的散列值和所述特定交易散列,生成新的交易值;通过处理服务器的签名模块,对生成的新的交易值进行数字签名;和通过处理服务器的传送设备,以电子方式传送经签名的新的交易值。一种审计和验证发布到区块链的确定性数据的方法,包括:通过处理服务器的接收设备,接收包括多个区块的区块链,每个区块至少包括区块头部和一个或多个交易值,其中每个区块头部至少包括时间戳,并且每个交易值至少包括交易散列;通过处理服务器的查询模块,对区块链执行第一查询以识别第一交易值,其中第一交易值与可执行脚本关联;通过处理服务器的处理器,使用多个预定输入值执行所述可执行脚本,以接收至少一个输出变量;通过处理服务器的散列模块,至少基于所述多个预定输入值和所述至少一个输出变量,生成散列值;通过处理服务器的生成模块,至少基于生成的散列值和包括在第一交易值中的交易散列,生成新的交易值;和通过处理服务器的验证模块,验证包括在区块链中的区块之中的第二交易值,其中第二交易值对应于生成的所述新的交易值。一种将可能计的不可变数据发布到区块链的系统,包括:处理服务器的接收设备,所述接收设备被配置成接收包括多个区块的区块链,每个区块至少包括区块头部和一个或多个交易值,其中每个交易值至少包括交易散列,和与包括在区块链中的区块之中的特定交易散列关联的数据文件,其中所述数据文件包括一个或多个变量;处理服务器的数据修改模块,所述数据修改模块被配置成修改包括在所述数据文件中的所述一个或多个变量中的至少一个变量;处理服务器的散列模块,所述散列模块被配置成通过把一个或多个散列算法应用于修改后的数据文件,生成新的散列值;处理服务器的生成模块,所述生成模块被配置成至少基于生成的新的散列值和所述特定交易散列,生成新的交易值;处理服务器的签名模块,所述签名模块被配置成对生成的新的交易值进行数字签名;和处理服务器的传送设备,所述传送设备被配置成以电子方式传送经签名的新的交易值。一种审计和验证发布到区块链的确定性数据的系统,包括:处理服务器的接收设备,所述接收设备被配置成接收包括多个区块的区块链,每个区块至少包括区块头部和一个或多个交易值,其中每个区块头部至少包括时间戳,并且每个交易值至少包括交易散列;处理服务器的查询模块,所述查询模块被配置成对区块链执行第一查询以识别第一交易值,其中第一交易值与可执行脚本关联;处理服务器的处理器,所述处理器被配置成使用多个预定输入值执行所述可执行脚本,以接收至少一个输出变量;处理服务器的散列模块,所述散列模块被配置成至少基于所述多个预定输入值和所述至少一个输出变量,生成散列值;处理服务器的生成模块,所述生成模块被配置成至少基于生成的散列值和包括在第一交易值中的交易散列,生成新的交易值;和处理服务器的验证模块,所述验证模块被配置成验证包括在区块链中的区块之中的第二交易值,其中第二交易值对应于生成的所述新的交易值。附图说明根据结合附图阅读的例证实施例的以下详细说明,可最好地理解本公开的范围。附图中:图1是图解说明按照例证实施例的用于将与交易相关的可审计数据发布到区块链,并对其进行审计和验证的高级系统架构的方框图。图2是图解说明按照例证实施例的,用于利用智能合同的不可变输入的区块链中的交易数据的发布、审计和验证的图1的系统中的处理服务器的方框图。图3是图解说明按照例证实施例的图1的系统中的用于把数据发布到区块链,并对和与所述数据关联的智能合同相关的执行进行审计和验证的处理的流程图。图4是图解说明按照例证实施例的用于把可审计的不可变数据发布到区块链的例证方法的流程图。图5是图解说明按照例证实施例的用于对发布到区块链的确定性数据进行审计和验证的例证方法的流程图。图6是图解说明按照例证实施例的计算机系统架构的方框图。根据下面提供的详细说明,本公开的其他适用性领域将变得清楚。应明白的是例证实施例的详细说明只是用于说明,并且因此,并不旨在必然限制本公开的范围。具体实施方式术语表区块链-基于区块链的货币的所有交易的公共账本。一个或多个计算设备可构成区块链网络,区块链网络可被配置成处理并记录作为区块链中的区块的一部分的交易。一旦一个区块完成,该区块就被加入区块链中,并且交易记录由此被更新。在许多情况下,区块链可以是按时间顺序或者可按适合于由区块链网络使用的任何其他顺序呈现的交易的账本。在一些配置中,记录在区块链中的交易可包括目的地地址和货币金额,使得区块链记录多少货币可归于特定地址。在一些情况下,本文档来自技高网...

【技术保护点】
1.一种将能审计的不可变数据发布到区块链的方法,包括:通过处理服务器的接收设备,接收包括多个区块的区块链,每个区块至少包括区块头部和一个或多个交易值,其中每个交易值至少包括交易散列;通过处理服务器的接收设备,接收与包括在区块链中的区块之中的特定交易散列关联的数据文件,其中所述数据文件包括一个或多个变量;通过处理服务器的数据修改模块,修改包括在所述数据文件中的所述一个或多个变量中的至少一个变量;通过处理服务器的散列模块,通过把一个或多个散列算法应用于修改后的数据文件,生成新的散列值;通过处理服务器的生成模块,至少基于生成的新的散列值和所述特定交易散列,生成新的交易值;通过处理服务器的签名模块,对生成的新的交易值进行数字签名;和通过处理服务器的传送设备,以电子方式传送经签名的新的交易值。

【技术特征摘要】
【国外来华专利技术】2016.12.28 US 15/392,1081.一种将能审计的不可变数据发布到区块链的方法,包括:通过处理服务器的接收设备,接收包括多个区块的区块链,每个区块至少包括区块头部和一个或多个交易值,其中每个交易值至少包括交易散列;通过处理服务器的接收设备,接收与包括在区块链中的区块之中的特定交易散列关联的数据文件,其中所述数据文件包括一个或多个变量;通过处理服务器的数据修改模块,修改包括在所述数据文件中的所述一个或多个变量中的至少一个变量;通过处理服务器的散列模块,通过把一个或多个散列算法应用于修改后的数据文件,生成新的散列值;通过处理服务器的生成模块,至少基于生成的新的散列值和所述特定交易散列,生成新的交易值;通过处理服务器的签名模块,对生成的新的交易值进行数字签名;和通过处理服务器的传送设备,以电子方式传送经签名的新的交易值。2.按照权利要求1所述的方法,其中所述新的交易值还基于与和区块链关联的可执行脚本关联的引用标识符。3.按照权利要求2所述的方法,其中所述可执行脚本被配置成执行所述修改后的数据文件并输出确定性响应。4.按照权利要求1所述的方法,其中生成新的交易值包括通过处理服务器的散列模块,至少对生成的所述新的散列值和所述特定交易求散列。5.按照权利要求1所述的方法,还包括:把多个键-值对存储在处理服务器的数据库中,其中所述多个键-值对至少包括第一键-值对,所述第一键-值对包括作为键的所述特定交易散列和作为值的所接收的所述数据文件;和通过处理服务器的查询模块,对数据库进行查询以插入新的键-值对,所述新的键-值对包括作为键的生成的所述新的散列值和作为值的所述修改后的数据文件。6.一种审计和验证发布到区块链的确定性数据的方法,包括:通过处理服务器的接收设备,接收包括多个区块的区块链,每个区块至少包括区块头部和一个或多个交易值,其中每个区块头部至少包括时间戳,并且每个交易值至少包括交易散列;通过处理服务器的查询模块,对区块链执行第一查询以识别第一交易值,其中第一交易值与可执行脚本关联;通过处理服务器的处理器,使用多个预定输入值执行所述可执行脚本,以接收至少一个输出变量;通过处理服务器的散列模块,至少基于所述多个预定输入值和所述至少一个输出变量,生成散列值;通过处理服务器的生成模块,至少基于生成的散列值和包括在第一交易值中的交易散列,生成新的交易值;和通过处理服务器的验证模块,验证包括在区块链中的区块之中的第二交易值,其中第二交易值对应于生成的所述新的交易值。7.按照权利要求6所述的方法,其中验证第二交易值包括:通过处理服务器的查询模块,对区块链进行第二查询以识别第二交易值;和通过处理服务器的验证模块,验证第二交易值与生成的所述新的交易值等同。8.按照权利要求6所述的方法,其中验证第二交易值包括:通过处理服务器的查询模块,对区块链进行第二查询以识别第二交易值;和通过处理服务器的验证模块,验证用于对包括的交易散列进行数字签名的数字签名。9.按照权利要求8所述的方法,还包括:把公钥存储在处理服务器的存储器中,其中数字签名的验证利用所存储的公钥。10.按照权利要求6所述的方法,其中生成新的交易值包括利用处理服务器的散列模块,至少对生成的散列值和包括在第一交易值中的交易散列求散列。11.一种将能审计的不可变数据发布到区块链的系统,包括:处理服务器的接收设备,所述接收设备被配...

【专利技术属性】
技术研发人员:S·C·戴维斯
申请(专利权)人:万事达卡国际公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1