System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
【国外来华专利技术】
本公开涉及一种用于证明数据的所有权(ownership)和/或持有权(possession)的计算机实现的方法,以及一种用于由指定验证者验证数据的所有权和/或持有权的计算机实现的方法。
技术介绍
1、区块链是指一种分布式数据结构,其中在分布式对等(p2p)网络(以下称为“区块链网络”)中的多个节点中的每个节点处维护区块链的副本,并且广泛公开该副本。区块链包括一系列数据区块,其中每个区块包括一个或多个事务(transaction)。除所谓的“coinbase事务”外,每个事务都指向序列中的先前事务,该序列可以跨越一个或多个区块,回到一个或多个coinbase事务。coinbase事务将在下文进一步讨论。提交给区块链网络的事务包括在新区块中。新区块的创建过程通常称为“挖掘”,该过程涉及多个节点中的每个节点争相执行“工作证明”,即,基于等待被包括在区块链的新区块中的一组定义的有序且核实有效的未决事务的表示解决加密难题。应当注意的是,区块链可以在一些节点处被修剪(prune),并且区块的发布可以通过仅发布区块头来实现。
2、区块链中的事务可用于以下目的中的一个或多个:传送数字资产(即,一定数量的数字令牌token);对虚拟化分类账或注册表中的一组条目进行排序;接收和处理时间戳条目;和/或对索引指针按时间排序。也可利用区块链实现区块链上的层级附加功能。例如,区块链协议可允许在事务中存储附加的用户数据或数据索引。能够存储在单个事务中的最大数据容量没有预先指定的限制,因此可以并入越来越复杂的数据。例如,这可用于在区块链中存储电子文
3、区块链网络的节点(通常称为“矿工”)执行分布式事务注册和验证过程,这将后续更详细地描述。总之,在该过程中,节点核实事务并将这些事务插入到区块模板中,这些事务尝试为该区块模板标识有效的工作证明解。一旦找到有效的解,新区块便会被传播到网络的其它节点,从而使得每个节点能够在区块链上记录新区块。为了将事务记录在区块链中,用户(例如,区块链客户端应用程序)将该事务发送到网络中的节点中的一个节点进行传播。接收该事务的节点可以争相寻找将核实有效的事务并入新区块的工作证明解。每个节点被配置为执行相同的节点协议,该协议将包括用于确认事务有效的一个或多个条件。无效事务将不会传播或并入到区块中。假定事务已经核实有效,从而在区块链上被接受,则该事务(包括任何用户数据)将因此在区块链网络中的每个节点上作为不可改变的公共记录进行注册和索引。
4、成功解决工作证明难题可创建最新区块的节点通常被奖励一个称为“coinbase事务”的新事务,该事务分发数字资产数额,即令牌数量。无效事务的检测和拒绝是通过竞争节点的行动来执行的,这些竞争节点充当网络的代理并且通过激励报告和阻止不正当行为。信息的广泛发布使得用户可以连续地审计节点的性能。仅发布区块头使得参与者可以确保区块链具有持续完整性。
5、在“基于输出的”模型(有时称为基于utxo的模型)中,给定事务的数据结构包括一个或多个输入和一个或多个输出。任何可花费输出包括指定数字资产数额的元素,该元素可从进行中的事务序列导出。可花费输出有时称为utxo(“未花费事务输出”)。输出还可以包括锁定脚本,该锁定脚本指定输出的未来赎回条件。锁定脚本是限定核实和传送数字令牌或资产所必需的条件的谓词。事务(除coinbase事务之外)的每个输入包括指向先前事务中的此类输出的指针(即引用),并且还可以包括解锁脚本,用于解锁指向输出的锁定脚本。因此,考虑一对事务,将其称为第一事务和第二事务(或“目标”事务)。第一事务包括指定数字资产数额的至少一个输出,并且包括定义解锁该输出的一个或多个条件的锁定脚本。第二(目标)事务包括至少一个输入和解锁脚本,该至少一个输入包括指向第一事务的输出的指针;该解锁脚本用于解锁第一事务的输出。
6、在此类模型中,当第二(目标)事务被发送到区块链网络以在区块链中传播和记录时,在每个节点处应用的有效性条件之一将是解锁脚本满足在第一事务的锁定脚本中定义的一个或多个条件中的所有条件。另一条件将是第一事务的输出尚未被另一早期有效事务赎回。根据这些条件中的任何一个条件发现目标事务无效的任何节点都不会传播该事务(作为有效事务,但可能注册无效事务),也不将该事务包括在要记录在区块链中的新区块中。
7、另一种事务模型是基于账户的模型。在这种情况下,每个事务均不通过参考过去事务序列中先前事务的utxo来定义转移的数额,而是通过参考绝对账户余额进行定义。所有账户的当前状态由节点单独存储到区块链中,并不断更新。
技术实现思路
1、用户可能希望与验证者(verifier)共享数据(例如,身份数据)。用户可以通过提供数据的认证副本,来向验证者证明他们共享的数据是正确的。然而,一旦验证者已经接收到数据的认证副本,他们就可以在未经用户同意的情况下将数据提供给任何其他第三方。
2、本公开涉及一种用于向数据所有者(owner)提供对哪些方可以确信数据是正确的控制的方法。也就是说,数据所有者可以控制谁可以验证数据。
3、根据本文公开的一个方面,提供了一种计算机实现的方法,证明数据m的所有权和/或持有权的计算机实现的方法,所述方法包括:基于秘密值r和所述数据m来生成数据承诺(commitment)值;生成质询解π,所述质询解π与指定验证者(designated verifier)相关联,其中所述质询解π是零知识证明,其用于证明知晓所述秘密值r;以及,将所述数据m、所述质询解π、和所述数据承诺值提供给所述指定验证者;其中所述秘密值r不为所述指定验证者所知晓、或不被提供给(made available to)所述指定验证者。
4、例如,本文公开的各方面可以在以下场景中使用。爱丽丝(数据所有者)进入一家夜总会,门口的保安鲍勃要求她证明她已年满18岁。她把护照递给他。检查护照后,鲍勃询问爱丽丝他是否可以复印一份护照,以防警察来检查夜总会内的每个人是否都已成年。爱丽丝拒绝,因为她不希望他获得她的个人数据(的经过认证的证明)。相反,她表示,警察可以来找她,她会很容易地证明她已年满18岁。因此,爱丽丝想要控制谁可以确信她已成年。
5、使用本文所述的方法,爱丽丝可以向鲍勃(指定验证者)证明她的数据已被混淆(提交和哈希处理),而无需向鲍勃提供足够的信息来向查理(第三方)证明这一点。爱丽丝可以通过保留她用来对m进行承诺的秘密随机值r来控制数据m与混淆之间的关联。如果她破坏了r,则混淆与数据之间的关联也会被永久破坏。本文公开的方法涉及一种用于由指定验证者证明知道数据所有者的私有值r的非交互式零知识(nizk)知识证明。证明πbob是专门为鲍勃(指定验证者)制作的,他无法使用πbob来说服其他任何人。
6、此外,与通用证明系统相比,本文公开的系统不需要任何可信设置,因此实现起来是快速的且直截了当的。
7、应当注意的是,虽然实施例主要根据证明某些数据的所有权的一方(数据所有者本文档来自技高网...
【技术保护点】
1.一种计算机实现的方法,用于证明数据m的所有权和/或持有权,所述方法包括:
2.根据权利要求1所述的方法,其中所述的生成与所述指定验证者相关联的所述质询解π的步骤包括:生成与所述指定验证者相关联的验证者承诺值,其中所述质询解π包括所述验证者承诺值。
3.根据前述任一项权利要求所述的方法,其中所述方法还包括:从所述指定验证者接收与所述指定验证者相关联的验证者承诺密钥,其中与所述指定验证者相关联的所述零知识证明是基于所述验证者承诺密钥生成的。
4.根据前述任一项权利要求所述的方法,其中所述方法还包括:生成所述数据承诺值的哈希,并将所述数据承诺值的所述哈希提供给所述指定验证者。
5.根据权利要求4所述的方法,其中所述方法还包括:
6.根据前述任一项权利要求所述的方法,其中基于数据所有者承诺密钥来导出所述数据承诺值。
7.根据前述任一项权利要求所述的方法,其中所述方法还包括:
8.根据权利要求7所述的方法,其中通过对所述数据承诺值进行签名来生成所述数据的所述签名版本。
9.根据权利要求7所述
10.根据权利要求7所述的方法,其中所述方法还包括:生成公证区块链事务,当被存储在所述区块链上时,所述公证区块链事务使得从所述公证者接收的所述数据的所述签名版本可用。
11.根据权利要求9所述的方法,其中所述方法还包括:生成公证区块链事务,当被存储在所述区块链上时,所述公证区块链事务使得从所述公证者接收的所述数据承诺值的所述哈希可用。
12.根据权利要求1至7中任一项所述的方法,其中所述方法由公证者实现,所述方法还包括:
13.根据从属于权利要求4的权利要求12所述的方法,其中所述方法还包括:
14.根据从属于权利要求3的权利要求12所述的方法,其中所述方法还包括:
15.一种计算机实现的方法,用于由指定验证者验证数据m,所述方法包括:
16.根据权利要求15所述的方法,其中与所述指定验证者相关联的所述质询解π包括与所述指定验证者相关联的目标验证者承诺值,其中所述的检查所述质询解π是否与所述指定验证者相关联的步骤包括:生成候选验证者承诺值,并将所述候选验证者承诺值与所述目标验证者承诺值进行比较,其中,如果所述候选验证者承诺值和所述目标验证者承诺值相等,则所述质询解π与所述指定验证者相关联。
17.根据权利要求16所述的方法,其中所述方法还包括:
18.根据权利要求17所述的方法,其中将所述验证者承诺密钥与对所述数据承诺值的请求一起传输。
19.根据权利要求15至18中任一项所述的方法,其中所述方法还包括:
20.根据权利要求15至18中任一项所述的方法,其中从存储在区块链上的证明区块链事务获取所述数据承诺值的所述目标哈希。
21.根据权利要求15至20中任一项所述的方法,其中所述方法还包括:获取所述数据m的签名版本,并验证所述数据m的所述签名版本。
22.根据权利要求21所述的方法,其中从存储在区块链上的区块链事务获取所述数据m的所述签名版本。
23.根据从属于权利要求17或18的权利要求20所述的方法,其中将所述数据承诺值的所述目标哈希与所述验证者承诺密钥一起传输到所述验证者承诺值的所述生成者。
24.根据权利要求17或其任何从属权利要求所述的方法,其中所述方法还包括:
25.一种计算机设备,所述计算机设备包括:
26.一种计算机程序,所述计算机程序包含在计算机可读存储器上并且被配置为当在一个或多个处理器上运行时,执行根据权利要求1至24中任一项所述的方法。
...【技术特征摘要】
【国外来华专利技术】
1.一种计算机实现的方法,用于证明数据m的所有权和/或持有权,所述方法包括:
2.根据权利要求1所述的方法,其中所述的生成与所述指定验证者相关联的所述质询解π的步骤包括:生成与所述指定验证者相关联的验证者承诺值,其中所述质询解π包括所述验证者承诺值。
3.根据前述任一项权利要求所述的方法,其中所述方法还包括:从所述指定验证者接收与所述指定验证者相关联的验证者承诺密钥,其中与所述指定验证者相关联的所述零知识证明是基于所述验证者承诺密钥生成的。
4.根据前述任一项权利要求所述的方法,其中所述方法还包括:生成所述数据承诺值的哈希,并将所述数据承诺值的所述哈希提供给所述指定验证者。
5.根据权利要求4所述的方法,其中所述方法还包括:
6.根据前述任一项权利要求所述的方法,其中基于数据所有者承诺密钥来导出所述数据承诺值。
7.根据前述任一项权利要求所述的方法,其中所述方法还包括:
8.根据权利要求7所述的方法,其中通过对所述数据承诺值进行签名来生成所述数据的所述签名版本。
9.根据权利要求7所述的方法,其中通过对所述数据承诺值的哈希进行签名来生成所述数据的所述签名版本,其中从所述公证者接收所述数据承诺值的所述哈希。
10.根据权利要求7所述的方法,其中所述方法还包括:生成公证区块链事务,当被存储在所述区块链上时,所述公证区块链事务使得从所述公证者接收的所述数据的所述签名版本可用。
11.根据权利要求9所述的方法,其中所述方法还包括:生成公证区块链事务,当被存储在所述区块链上时,所述公证区块链事务使得从所述公证者接收的所述数据承诺值的所述哈希可用。
12.根据权利要求1至7中任一项所述的方法,其中所述方法由公证者实现,所述方法还包括:
13.根据从属于权利要求4的权利要求12所述的方法,其中所述方法还...
【专利技术属性】
技术研发人员:恩里克·拉雷亚,欧文·沃恩,
申请(专利权)人:区块链许可股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。