System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
【国外来华专利技术】
本公开涉及证明和验证子密钥的真实性。
技术介绍
1、区块链是指一种分布式数据结构,其中在分布式对等(p2p)网络(以下称为“区块链网络”)中的多个节点中的每个节点处维护区块链的副本,并且广泛公开该副本。区块链包括一系列数据区块,其中每个区块包括一个或多个事务(transaction)。除所谓的“coinbase事务”外,每个事务都指向序列中的先前事务,该序列可以跨越一个或多个区块,回到一个或多个coinbase事务。coinbase事务将在下文进一步讨论。提交给区块链网络的事务包括在新区块中。新区块的创建过程通常称为“挖掘”,该过程涉及多个节点中的每个节点争相执行“工作证明”,即,基于等待被包括在区块链的新区块中的一组定义的有序且核实有效的未决事务的表示解决加密难题。应当注意的是,区块链可以在一些节点处被修剪(prune),并且区块的发布可以通过仅发布区块头来实现。
2、区块链中的事务可用于以下目的中的一个或多个:传送数字资产(即,一定数量的数字令牌token);对虚拟化分类账或注册表中的一组条目进行排序;接收和处理时间戳条目;和/或对索引指针按时间排序。也可利用区块链实现区块链上的层级附加功能。例如,区块链协议可允许在事务中存储附加的用户数据或数据索引。能够存储在单个事务中的最大数据容量没有预先指定的限制,因此可以并入越来越复杂的数据。例如,这可用于在区块链中存储电子文档、音频或视频数据。
3、区块链网络的节点(通常称为“矿工”)执行分布式事务注册和验证过程,这将后续更详细地描述。总之,在该过程中,节点
4、成功解决工作证明难题可创建最新区块的节点通常被奖励一个称为“coinbase事务”的新事务,该事务分发数字资产数额,即令牌数量。无效事务的检测和拒绝是通过竞争节点的行动来执行的,这些竞争节点充当网络的代理并且通过激励报告和阻止不正当行为。信息的广泛发布使得用户可以连续地审计节点的性能。仅发布区块头使得参与者可以确保区块链具有持续完整性。
5、在“基于输出的”模型(有时称为基于utxo的模型)中,给定事务的数据结构包括一个或多个输入和一个或多个输出。任何可花费输出包括指定数字资产数额的元素,该元素可从进行中的事务序列导出。可花费输出有时称为utxo(“未花费事务输出”)。输出还可以包括锁定脚本,该锁定脚本指定输出的未来赎回条件。锁定脚本是限定核实和传送数字令牌或资产所必需的条件的谓词。事务(除coinbase事务之外)的每个输入包括指向先前事务中的此类输出的指针(即引用),并且还可以包括解锁脚本,用于解锁指向输出的锁定脚本。因此,考虑一对事务,将其称为第一事务和第二事务(或“目标”事务)。第一事务包括指定数字资产数额的至少一个输出,并且包括定义解锁该输出的一个或多个条件的锁定脚本。第二(目标)事务包括至少一个输入和解锁脚本,该至少一个输入包括指向第一事务的输出的指针;该解锁脚本用于解锁第一事务的输出。
6、在此类模型中,当第二(目标)事务被发送到区块链网络以在区块链中传播和记录时,在每个节点处应用的有效性条件之一将是解锁脚本满足在第一事务的锁定脚本中定义的一个或多个条件中的所有条件。另一条件将是第一事务的输出尚未被另一早期有效事务赎回。根据这些条件中的任何一个条件发现目标事务无效的任何节点都不会传播该事务(作为有效事务,但可能注册无效事务),也不将该事务包括在要记录在区块链中的新区块中。
7、另一种事务模型是基于账户的模型。在这种情况下,每个事务均不通过参考过去事务序列中先前事务的utxo来定义转移的数额,而是通过参考绝对账户余额进行定义。所有账户的当前状态由节点单独存储到区块链中,并不断更新。
8、基于bip32密钥导出协议的分层确定性(hd)钱包提供了一种方便且高效的方式来导出许多数字密钥。bip32钱包本身就很轻巧,功能也很多。这是因为用户只需要备份一个钱包种子,所有密钥都是从该钱包种子导出的,并且可以根据用户需求定义不同的密钥导出路径。
9、钱包提供商提供了附加功能,使数字钱包更方便使用。一个此类示例是,用户可以将其身份与钱包中的密钥相关联。假设用户具有与其身份相关联的公开已知的bip32主密钥。然后,用户(证明者)生成子密钥,并将其提供给另一个用户(验证者)以接收付款。如果子密钥是未增强子密钥,则验证者可以验证子密钥与证明者的身份之间的关联性。权衡在于,验证者还可以确定证明者在公开记录的交易中(即链上)使用的其他未增强子密钥。或者,如果子密钥是增强子密钥,则验证者需要直接将子密钥与证明者的身份相关联,这两种情况都不是最佳的。未增强子密钥可以从父公钥和索引导出,而增强子密钥只能从父私钥和索引导出。
技术实现思路
1、根据本文公开的一个方面,提供了一种验证与实体相关联的子公钥的真实性的计算机实现的方法。所述方法在计算设备上执行并且包括:获取所述子公钥;从证明计算设备(例如,与所述实体相关联的证明计算设备)接收零知识证明;使用所述证明、所述子公钥、和验证密钥来验证所述零知识证明是有效的,以确定已经使用密钥导出协议从父密钥导出所述子公钥;以及,基于所述验证来确定所述子公钥的所述真实性。
2、根据本文公开的另一方面,提供了一种提供与实体相关联的子公钥的真实性的证明的计算机实现的方法。所述方法在计算设备上执行并且包括:使用用于导出所述子公钥的父密钥、所述子公钥、和证明密钥来生成零知识证明;以及,向验证计算设备发送所述零知识证明,以使所述验证计算设备能够证明密钥导出协议已被用于从所述父密钥导出所述子公钥。
3、零知识证明(zero-knowledge proof,zkp)是一种方法,通过这种方法,被称为证明者(prover)的一方可以向被称为验证者(verifier)的另一方证明某一语句为真,而不揭露除所述语句为真之外的任何信息。在本公开的实施例中,生成zkp以提供密钥导出协议(例如,bip32密钥导出协议或任何其他密钥导出协议)已被用于从所述父密钥导出所述子公钥而不向所述验证者揭露所述父密钥的证明。也就是说,本文使用的术语“零知识证明”是指证明者与验证者之间的知识证明,所述知识证明可证明未揭露关于敏感/秘密数据的任何信息。
4、本公开的实施例可以用于保护hd钱包免受特权提升攻击本文档来自技高网...
【技术保护点】
1.一种计算机实现的方法,用于验证与实体相关联的子公钥的真实性,所述方法在计算设备上执行并且包括:
2.根据权利要求1所述的计算机实现的方法,其中获取所述子公钥包括从所述证明计算设备接收所述子公钥。
3.根据权利要求1或2所述的计算机实现的方法,其中所述方法包括:
4.根据前述任一项权利要求所述的计算机实现的方法,其中所述父密钥是父私钥,并且所述子公钥是增强子公钥。
5.根据权利要求1至3中任一项所述的计算机实现的方法,其中所述父密钥是父公钥。
6.根据权利要求4所述的计算机实现的方法,所述方法还包括:
7.根据权利要求6所述的计算机实现的方法,所述方法还包括:
8.根据权利要求6所述的计算机实现的方法,其中所述父密钥是由认证机构发行的已签名数字证书的经认证父公钥。
9.根据权利要求8所述的计算机实现的方法,其中所述已签名数字证书包括所述实体的唯一标识符,并且验证所述零知识证明有效包括:检查所述实体的公共唯一标识符与所述已签名数字证书中的所述实体的所述唯一标识符匹配。
10
11.根据权利要求1至5中任一项所述的计算机实现的方法,其中所述方法包括:
12.根据权利要求11所述的计算机实现的方法,其中确定所述子公钥的所述真实性还基于:
13.根据权利要求11或12所述的计算机实现的方法,所述方法还包括:
14.根据权利要求11至13中任一项所述的计算机实现的方法,其中所述方法包括:
15.一种计算机实现的方法,用于提供与实体相关联的子公钥的真实性的证明,所述方法在计算设备上执行并且包括:
16.根据权利要求15所述的计算机实现的方法,其中所述父密钥是使用哈希函数输出的第一部分生成的,并且所述方法包括:使用所述哈希函数输出的剩余部分来生成所述零知识证明。
17.根据权利要求15或16所述的计算机实现的方法,其中所述方法包括:使用指示所述子公钥是增强子公钥还是未增强子公钥的密钥索引来生成所述零知识证明。
18.根据权利要求15至17中任一项所述的计算机实现的方法,其中所述父密钥是未暴露给所述验证计算设备的父私钥,并且所述子公钥是增强子公钥。
19.根据权利要求15至17中任一项所述的计算机实现的方法,其中所述父密钥是父公钥。
20.根据权利要求19所述的计算机实现的方法,其中所述方法包括
21.根据权利要求20所述的计算机实现的方法,其中所述方法包括附加地使用以下各项来生成所述零知识证明:(iv)与所述父公钥对应的父私钥,其中所述子公钥是增强子公钥。
22.根据权利要求19或20所述的计算机实现的方法,其中所述子公钥是未增强子公钥。
23.根据权利要求15至18中任一项所述的计算机实现的方法,其中所述方法包括:
24.根据权利要求23所述的计算机实现的方法,其中所述计算设备充当所述签名机构,并且获取所述第二身份证书包括:
25.根据权利要求23或24所述的计算机实现的方法,其中获取所述第一身份证书和所述第二身份证书包括从与所述签名机构相关联的远程计算设备接收所述第一身份证书和所述第二身份证书。
26.根据权利要求23至25中任一项所述的计算机实现的方法,其中所述方法包括:向所述验证计算设备发送所述子公钥。
27.根据权利要求15至18中任一项所述的计算机实现的方法,其中所述方法包括:向所述验证计算设备发送与所述父私钥对应的父公钥。
28.根据前述任一项权利要求所述的计算机实现的方法,其中所述密钥导出协议包括将所述父密钥作为输入的哈希函数。
29.根据前述任一项权利要求所述的计算机实现的方法,其中所述密钥导出协议是BIP32。
30.一种计算机程序,所述计算机程序在由计算设备读取时使所述计算设备执行根据前述任一项权利要求所述的方法。
31.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质包括计算机可读指令,所述计算机可读指令在由计算设备读取时使所述计算设备执行根据权利要求1至29中任一项所述的方法。
32.一种计算设备,所述计算设备包括处理器和存储器,所述存储器存储指令,所述指令在由所述处理器执行时,使所述计算设备执行根据权利要求1至29中任一项所述的方法。
...【技术特征摘要】
【国外来华专利技术】
1.一种计算机实现的方法,用于验证与实体相关联的子公钥的真实性,所述方法在计算设备上执行并且包括:
2.根据权利要求1所述的计算机实现的方法,其中获取所述子公钥包括从所述证明计算设备接收所述子公钥。
3.根据权利要求1或2所述的计算机实现的方法,其中所述方法包括:
4.根据前述任一项权利要求所述的计算机实现的方法,其中所述父密钥是父私钥,并且所述子公钥是增强子公钥。
5.根据权利要求1至3中任一项所述的计算机实现的方法,其中所述父密钥是父公钥。
6.根据权利要求4所述的计算机实现的方法,所述方法还包括:
7.根据权利要求6所述的计算机实现的方法,所述方法还包括:
8.根据权利要求6所述的计算机实现的方法,其中所述父密钥是由认证机构发行的已签名数字证书的经认证父公钥。
9.根据权利要求8所述的计算机实现的方法,其中所述已签名数字证书包括所述实体的唯一标识符,并且验证所述零知识证明有效包括:检查所述实体的公共唯一标识符与所述已签名数字证书中的所述实体的所述唯一标识符匹配。
10.根据权利要求8或9所述的计算机实现的方法,其中所述已签名数字证书使用所述认证机构的私钥进行签名,并且验证所述零知识证明有效包括:使用所述认证机构的公钥来验证所述认证机构的签名。
11.根据权利要求1至5中任一项所述的计算机实现的方法,其中所述方法包括:
12.根据权利要求11所述的计算机实现的方法,其中确定所述子公钥的所述真实性还基于:
13.根据权利要求11或12所述的计算机实现的方法,所述方法还包括:
14.根据权利要求11至13中任一项所述的计算机实现的方法,其中所述方法包括:
15.一种计算机实现的方法,用于提供与实体相关联的子公钥的真实性的证明,所述方法在计算设备上执行并且包括:
16.根据权利要求15所述的计算机实现的方法,其中所述父密钥是使用哈希函数输出的第一部分生成的,并且所述方法包括:使用所述哈希函数输出的剩余部分来生成所述零知识证明。
17.根据权利要求15或16所述的计算机实现的方法,其中所述方法包括:使用指示所述子公钥是增强子公钥还是未增强子公钥的密钥索引来生成所述零知识...
【专利技术属性】
技术研发人员:穆罕默德·萨比尔·基拉兹,迈克尔拉·佩蒂特,克洛伊·塔尔坦,
申请(专利权)人:区块链许可股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。