System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 区块链事务制造技术_技高网

区块链事务制造技术

技术编号:43041952 阅读:17 留言:0更新日期:2024-10-22 14:28
一种计算机实现的方法,用于生成用于记录到区块链的可证明任务,所述可证明任务用于验证(n+1)个数据项。生成任务区块链事务,所述任务区块链事务包括第一锁定脚本,所述第一锁定脚本包括(n+1)个子脚本,每个相应子脚本定义与知识证明对应的不同解锁条件,每个解锁条件由(n+1)个验证值r<subgt;i</subgt;的序列中的不同的一个验证值来满足,所述验证值r<subgt;i</subgt;是从(i+1)个数据值导出的。生成一个或多个第一证明事务模板,每个第一证明事务模板对应于所述序列验证值中的不同的一个验证值,每个第一证明事务模板包括模板第一解锁脚本和标识所述第一锁定脚本的输出点,所述模板第一解锁脚本包括与所述对应验证值对应的公钥,其中第一解锁脚本是从所述模板第一解锁脚本和所述对应验证值导出的。

【技术实现步骤摘要】
【国外来华专利技术】

本公开涉及一种生成用于记录到区块链的可证明任务的计算机实现的方法、用于生成证明事务的方法以及用于实现这些方法的设备和计算机程序。


技术介绍

1、区块链是指一种分布式数据结构,其中在分布式对等(p2p)网络(以下称为“区块链网络”)中的多个节点中的每个节点处维护区块链的副本,并且广泛公开该副本。区块链包括一系列数据区块,其中每个区块包括一个或多个事务(transaction)。除所谓的“coinbase事务”外,每个事务都指向序列中的先前事务,该序列可以跨越一个或多个区块,回到一个或多个coinbase事务。coinbase事务将在下文进一步讨论。提交给区块链网络的事务包括在新区块中。新区块的创建过程通常称为“挖掘”,该过程涉及多个节点中的每个节点争相执行“工作证明”,即,基于等待被包括在区块链的新区块中的一组定义的有序且核实有效的未决事务的表示解决加密难题。应当注意的是,区块链可以在一些节点处被修剪(prune),并且区块的发布可以通过仅发布区块头来实现。

2、区块链中的事务可用于以下目的中的一个或多个:传送数字资产(即,一定数量的数字令牌);对虚拟化分类账或注册表中的一组条目进行排序;接收和处理时间戳条目;和/或对索引指针按时间排序。也可利用区块链实现区块链上的层级附加功能。例如,区块链协议可允许在事务中存储附加的用户数据或数据索引。能够存储在单个事务中的最大数据容量没有预先指定的限制,因此可以并入越来越复杂的数据。例如,这可用于在区块链中存储电子文档、音频或视频数据。

3、区块链网络的节点(通常称为“矿工”)执行分布式事务注册和验证过程,这将后续更详细地描述。总之,在该过程中,节点核实事务并将这些事务插入到区块模板中,这些事务尝试为该区块模板标识有效的工作证明解。一旦找到有效的解,新区块便会被传播到网络的其它节点,从而使得每个节点能够在区块链上记录新区块。为了将事务记录在区块链中,用户(例如,区块链客户端应用程序)将该事务发送到网络中的节点中的一个节点进行传播。接收该事务的节点可以争相寻找将核实有效的事务并入新区块的工作证明解。每个节点被配置为执行相同的节点协议,该协议将包括用于确认事务有效的一个或多个条件。无效事务将不会传播或并入到区块中。假定事务已经核实有效,从而在区块链上被接受,则该事务(包括任何用户数据)将因此在区块链网络中的每个节点上作为不可改变的公共记录进行注册和索引。

4、成功解决工作证明难题可创建最新区块的节点通常被奖励一个称为“coinbase事务”的新事务,该事务分发数字资产数额,即令牌数量。无效事务的检测和拒绝是通过竞争节点的行动来执行的,这些竞争节点充当网络的代理并且通过激励报告和阻止不正当行为。信息的广泛发布使得用户可以连续地审计节点的性能。仅发布区块头使得参与者可以确保区块链具有持续完整性。

5、在“基于输出的”模型(有时称为基于utxo的模型)中,给定事务的数据结构包括一个或多个输入和一个或多个输出。任何可花费输出包括指定数字资产数额的元素,该元素可从进行中的事务序列导出。可花费输出有时称为utxo(“未花费事务输出”)。输出还可以包括锁定脚本,该锁定脚本指定输出的未来赎回条件。锁定脚本是限定核实和传送数字令牌或资产所必需的条件的谓词。事务(除coinbase事务之外)的每个输入包括指向先前事务中的此类输出的指针(即引用),并且还可以包括解锁脚本,用于解锁指向输出的锁定脚本。因此,考虑一对事务,将其称为第一事务和第二事务(或“目标”事务)。第一事务包括指定数字资产数额的至少一个输出,并且包括定义解锁该输出的一个或多个条件的锁定脚本。第二(目标)事务包括至少一个输入和解锁脚本,该至少一个输入包括指向第一事务的输出的指针;该解锁脚本用于解锁第一事务的输出。

6、在此类模型中,当第二(目标)事务被发送到区块链网络以在区块链中传播和记录时,在每个节点处应用的有效性条件之一将是解锁脚本满足在第一事务的锁定脚本中定义的一个或多个条件中的所有条件。另一条件将是第一事务的输出尚未被另一早期有效事务赎回。根据这些条件中的任何一个条件发现目标事务无效的任何节点都不会传播该事务(作为有效事务,但可能注册无效事务),也不将该事务包括在要记录在区块链中的新区块中。

7、另一种事务模型是基于账户的模型。在这种情况下,每个事务均不通过参考过去事务序列中先前事务的utxo来定义转移的数额,而是通过参考绝对账户余额进行定义。所有账户的当前状态由节点单独存储到区块链中,并不断更新。


技术实现思路

1、企业将数据上传到第三方云平台的业务趋势日益增长。用户委托这些云服务提供者妥善存储和维护他们的数据。如果用户需要确保所存储数据的完整性,则他们自己可以定期检查这些数据。为此,用户需要下载所有感兴趣的数据,以便验证其完整性。

2、然而,用户通常资源受限,无法及时完成完整性验证,而可能存在第三方工作者愿意充当外包服务提供者来完成任务,因为他们愿意花费计算资源进行这些验证。因此,用户可以将计算外包(outsource)给这些工作者。然而,在外包计算方面会出现问题,其中用户(外包者outsourcer)可能不信任工作者会正确地执行计算,同样工作者也不信任用户会为已完成的工作支付。

3、本文描述了一种顺序支付协议,以解决先前描述的支付问题。重要的是,外包者与工作者之间不存在信任要求。对于用户来说,对所外包的验证进行高效验证和有效奖励是很有帮助的。外包者采用任务事务的形式提交任务,从而向任何工作者提供参与验证任务的机会。由于这些原因,该方案也可以称为顺序验证协议。

4、无论外包者的行为如何,所提出的协议都可保证在诚实工作者向区块链网络提交正确验证结果的情况下,他们会接收到对应支付。此外,该协议还引入了竞争模型,以鼓励工作者尽快完成任务。

5、根据本文公开的一个方面,提供了一种计算机实现的方法,用于生成用于记录到区块链的可证明任务(provable task),所述可证明任务用于验证(民+1)个数据项,所述方法包括:生成任务区块链事务(task blockchain transaction),其中所述任务区块链事务包括第一锁定脚本,所述第一锁定脚本包括(n+1)个子脚本,每个相应子脚本定义与知识证明对应的不同解锁条件,其中每个解锁条件由(n+1)个验证值ri的序列中的不同的一个验证值来满足,其中0≤i≤n,其中每个子脚本包括与满足所述子脚本的所述解锁条件的对应验证值相对应的公钥,其中当与证明区块链事务(proof blockchain transaction)的第一解锁脚本一起执行时,所述相应子脚本被配置为基于所述解锁条件来验证在所述第一解锁脚本中提供的验证值,所述验证值ri是从(i+1)个待要验证的数据值导出的;将所述任务区块链事务提供给区块链网络的一个或多个节点;生成一个或多个第一证明事务模板,每个第一证明事务模板对应于所述验证值的序列中的不同的一个验证值,每个第一证明事务模板包括模板第一解锁脚本、和输出点,本文档来自技高网...

【技术保护点】

1.一种计算机实现的方法,用于生成用于记录到区块链的可证明任务,所述可证明任务用于验证(n+1)个数据项,所述方法包括:

2.根据权利要求1所述的方法,其中所述验证值ri是基于所述(i+1)个数据值的级联生成的。

3.根据前述任一项权利要求所述的方法,其中所述验证值ri是基于所述(i+1)个数据值的哈希生成的。

4.根据前述任一项权利要求所述的方法,其中与所述验证值的序列中的最终验证值rn对应的所述第一证明事务模板的所述模板第一解锁脚本包括第一签名标志,所述第一签名标志用于对包括所述第一解锁脚本的第一证明事务的输入而不是所述第一证明事务的输出进行签名。

5.根据前述任一项权利要求所述的方法,其中与所述验证值的序列中的前n个验证值中的一个验证值对应的所述第一证明事务模板的所述模板第一解锁脚本包括第二签名标志,所述第二签名标志用于对包括所述第一解锁脚本的所述第一证明事务的输入和所述第一证明事务的输出进行签名。

6.根据前述任一项权利要求所述的方法,其中所述第一证明事务模板的第一输出定义数字资产数额,所述第一输出具有与所述第一证明事务模板中的所述第一解锁脚本相同的索引。

7.根据权利要求5和6所述的方法,其中所述第一输出还包括第二锁定脚本,所述第二锁定脚本用于将所述数字资产数额分配给所述任务事务的提供者,其中剩余数额被分配给提供所述第一证明事务的所述工作者,所述第一证明事务包括所述第一证明事务模板和所述对应验证值,所述剩余数额基于在所述第一输出中定义的所述数额和在所述任务事务中定义的数字资产的奖励数额。

8.根据前述任一项权利要求所述的方法,其中每个第一证明事务模板包括不同的序列号,所述序列号随着i增加而增加,其中与最终验证值rn对应的所述第一证明事务模板的序列号最大,而与第一验证值r0对应的所述第一证明事务模板的序列号最小。

9.根据前述任一项权利要求所述的方法,其中与rx对应的所述第一证明事务模板还包括第二锁定脚本,其中0≤x<n,所述第二锁定脚本包括(n-x)个子脚本,每个相应子脚本定义与知识证明对应的不同解锁条件,其中每个解锁条件由(n-x)个剩余验证值ri的集合中的不同的一个验证值来满足,所述剩余验证值的集合包括所述验证值的序列中的x<i≤n的所述验证值,其中所述相应子脚本包括与对应剩余验证值相对应的公钥,其中当与第二证明区块链事务的第二解锁脚本一起执行时,所述相应子脚本被配置为基于所述解锁条件来验证在所述第二解锁脚本中提供的所述剩余验证值;

10.根据前述任一项权利要求所述的方法,其中所述第一解锁脚本包括所述模板第一解锁脚本和所述验证值。

11.根据权利要求1至9中任一项所述的方法,其中所述第一解锁脚本包括所述模板第一解锁脚本、与所述工作者相关联的公钥、使用所述工作者的所述公钥导出的所述工作者的签名、以及使用所述工作者的所述公钥导出的所述验证值的签名。

12.根据权利要求11所述的方法,其中所述工作者的所述签名和所述验证值的所述签名是基于不同的签名消息生成的。

13.根据权利要求11或12所述的方法,其中所述工作者的所述签名与第一签名标志相关联,所述第一签名标志用于对包括所述第一解锁脚本的所述第一证明事务的输入而不是所述第一证明事务的输出进行签名,并且其中所述验证值的所述签名与第三签名标志相关联,所述第三签名标志用于对所述证明事务的所有输入和输出进行签名。

14.根据权利要求11至13中任一项所述的方法,其中所述第一解锁脚本的组件以预定顺序提供,所述顺序如下:使用所述工作者的所述公钥导出的所述工作者的所述签名;所述任务区块链事务的提供者的签名;与所述对应验证值对应的所述公钥;与所述工作者相关联的所述公钥;以及使用所述工作者的所述公钥导出的所述验证值的所述签名。

15.根据前述任一项权利要求所述的方法,其中所述数据值是数据项的哈希。

16.一种计算机实现的方法,用于生成用于记录到区块链的第一证明事务,所述方法包括:

17.根据权利要求16所述的方法,其中基于所述导出的验证值的所述值是所述导出的验证值。

18.根据权利要求16所述的方法,其中基于所述导出的验证值的所述值是工作者的签名,所述工作者生成使用所述工作者的公钥和所述导出的验证值导出的所述证明事务,其中所述方法还包括:在所述第一解锁脚本中提供与所述工作者相关联的所述公钥以及使用所述工作者的所述公钥和所述导出的验证值导出的所述工作者的所述签名。

19.一种计算机设备,所述计算机设备包括:

20.一种计算机程序,所述计算机程序包含...

【技术特征摘要】
【国外来华专利技术】

1.一种计算机实现的方法,用于生成用于记录到区块链的可证明任务,所述可证明任务用于验证(n+1)个数据项,所述方法包括:

2.根据权利要求1所述的方法,其中所述验证值ri是基于所述(i+1)个数据值的级联生成的。

3.根据前述任一项权利要求所述的方法,其中所述验证值ri是基于所述(i+1)个数据值的哈希生成的。

4.根据前述任一项权利要求所述的方法,其中与所述验证值的序列中的最终验证值rn对应的所述第一证明事务模板的所述模板第一解锁脚本包括第一签名标志,所述第一签名标志用于对包括所述第一解锁脚本的第一证明事务的输入而不是所述第一证明事务的输出进行签名。

5.根据前述任一项权利要求所述的方法,其中与所述验证值的序列中的前n个验证值中的一个验证值对应的所述第一证明事务模板的所述模板第一解锁脚本包括第二签名标志,所述第二签名标志用于对包括所述第一解锁脚本的所述第一证明事务的输入和所述第一证明事务的输出进行签名。

6.根据前述任一项权利要求所述的方法,其中所述第一证明事务模板的第一输出定义数字资产数额,所述第一输出具有与所述第一证明事务模板中的所述第一解锁脚本相同的索引。

7.根据权利要求5和6所述的方法,其中所述第一输出还包括第二锁定脚本,所述第二锁定脚本用于将所述数字资产数额分配给所述任务事务的提供者,其中剩余数额被分配给提供所述第一证明事务的所述工作者,所述第一证明事务包括所述第一证明事务模板和所述对应验证值,所述剩余数额基于在所述第一输出中定义的所述数额和在所述任务事务中定义的数字资产的奖励数额。

8.根据前述任一项权利要求所述的方法,其中每个第一证明事务模板包括不同的序列号,所述序列号随着i增加而增加,其中与最终验证值rn对应的所述第一证明事务模板的序列号最大,而与第一验证值r0对应的所述第一证明事务模板的序列号最小。

9.根据前述任一项权利要求所述的方法,其中与rx对应的所述第一证明事务模板还包括第二锁定脚本,其中0≤x<n,所述第二锁定脚本包括(n-x)个子脚本,每个相应子脚本定义与知识证明对应的不同解锁条件,其中每个解锁条件由(n-x)个剩余验证值ri的集合中的不同的一个验证值来满足,所述剩余验证值的集合包括所述验证值的序列中的x<i≤n的所述验证值,其中所述相应子脚本包括与对应剩余验证值相对应的公钥...

【专利技术属性】
技术研发人员:潘柳璇克雷格·史蒂文·赖特
申请(专利权)人:区块链许可股份公司
类型:发明
国别省市:

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

1