【技术实现步骤摘要】
【国外来华专利技术】哈希函数攻击
[0001]本公开涉及一种零知识证明,这种零知识证明可用于证明是否存在哈希函数攻击成功而不披露攻击本身的细节。
技术介绍
[0002]区块链是指一种分布式数据结构形式,其中在点对点(P2P)网络中的多个节点中的每个节点处维护区块链副本。区块链包括一系列数据区块,其中每个区块包括一笔或多笔交易。每笔交易都可以回指序列中的先前交易。交易可以通过提交到网络包括在新区块中。新区块的创建过程称为“挖掘”,该过程涉及多个挖掘节点中的每个挖掘节点争相执行“工作量证明”,即基于等待包括在区块中的未决交易池解决加密难题。
[0003]区块链中的交易通常用于传递数字资产,即用作价值储存手段的数据。但是也可利用区块链实现区块链上的分层附加功能。例如,区块链协议可允许在交易输出中存储附加用户数据。现代区块链在单一交易中可储存的最大数据容量在不断增加,从而能够并入更复杂的数据。例如,这可用于在区块链中存储电子文档,甚至音频或视频数据。
[0004]网络中的每个节点可以具有以下三个角色中的任何一个、两个或全部:转发、挖掘和 ...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】1.一种在区块链网络的节点处理至少一笔证明交易的计算机实现的方法,所述方法包括:接收所述至少一笔证明交易,其中所述至少一笔证明交易包括至少一个椭圆曲线数字签名算法(ECDSA)签名和至少一个零知识证明(ZKP)组成部分;基于与所述至少一笔证明交易的ECDSA签名和签名部分相关联的公钥来验证所述至少一笔证明交易的ECDSA签名;通过确定ZKP组成部分对于ECDSA签名以及定义哈希值和定义哈希函数是否正确,确定至少一个ZKP组成部分是否证明知道哈希函数攻击成功,因为所述ZKP组成部分证明ECDSA签名的r部分的对应临时密钥对应于所述定义哈希值相对于所述定义哈希函数的原像。2.根据权利要求1所述的方法,其中所述至少一笔证明交易包括第二ZKP组成部分和第二ECDSA签名,其中节点验证所述第二ECDSA签名,并通过以下方式确定第一和第二ZKP组成部分是否共同证明知道对所述定义哈希函数的碰撞攻击成功:检查所述第一和第二ECDSA签名是否具有不同的r部分,确定所述第一ZKP组成部分对于所述ECDSA签名以及所述定义哈希值和所述定义哈希函数是否正确,确定所述第二ZKP组成部分对于所述第二ECDSA签名以及与所述第一ZKP组成部分相同的定义哈希值和定义哈希函数是否正确,因为所述第二ZKP组成部分证明所述第二ECDSA签名的r部分的对应临时密钥对应于所述定义哈希值相对于所述定义哈希函数的原像。3.根据权利要求2所述的方法,其中基于与ECDSA签名相同的公钥验证所述第二ECDSA签名。4.根据权利要求1或2所述的方法,其中所述至少一笔证明交易包括防伪签名,所述节点基于与所述ECDSA签名相同的公钥验证所述防伪签名。5.根据权利要求1、2、3或4所述的方法,其中所述至少一笔证明交易识别至少一笔挑战交易的代码,从而使所述节点根据所述至少一笔证明交易运行所述至少一笔挑战交易的代码,这又使所述节点通过确定所述ZKP组成部分是否满足所述至少一笔挑战交易的代码中包含的一个或多个证明要求来确定所述至少一笔证明交易的所述或每个ZKP组成部分是否正确。6.根据权利要求5所述的方法,其中用于验证所述ECDSA签名的所述公钥在所述至少一笔证明交易中显示,但不是由所述至少一笔挑战交易指定。7.根据权利要求6所述的方法,其中所述公钥在所述至少一笔证明交易中被编码为字符串,从而在所述至少一笔证明交易中显示,或从所述至少一笔证明交易的ECDSA签名中推导出,由此所述公钥由所述ECDSA签名本身显示。8.根据权利要求5至7中任一项所述的方法,其中所述哈希值在所述至少一笔证明交易中定义,而不是由所述至少一笔挑战交易指定。9.根据权利要求5至7中任一项所述的方法,其中所述哈希值在所述至少一笔挑战交易中定义。10.根据从属于权利要求2的权利要求5至9中任一项所述的方法,其中所述至少一笔挑战交易的代码还包含所述第一和第二ECDSA签名具有不同r部分的要求。11.根据从属于权利要求3的权利要求5至9中任一项所述的方法,其中所述至少一笔挑
战交易的代码还包含使用相同私钥生成所述第一和第二ECDSA签名的要求。12.根据权利要求5至11中任一项所述的方法,其中所述至少一笔挑战交易的代码使所述节点验证所述至少一笔证明交易中的所述ECDSA签名或每个ECDSA签名。13.根据权利要求5至11中任一项所述的方法,其中所述挑战交易的代码包括所述挑战交易的一个或多个未花费交易输出的锁定脚本,所述ECDSA签名和所述ZKP组成部分嵌入到所述证明交易的解锁脚本中。14.根据权利要求13所述的方法,其中通过将所述挑战交易的锁定脚本与所述证明交易的解锁脚本级联并运行所述级联脚本,根据所述证明交易运行所述挑战交易的代码。15.根据权利要求5至12中任一项所述的方法,其中所述至少一笔挑战交易的代码是虚拟机字节码,在所述至少一笔证明交易的一个或多个数据字段中提供所述ZKP组成部分或每个ZKP组成部分。16.根据权利要求5至11中任一项所述的方法,其中所述ECDSA签名的验证是由所述节点根据区块链网络的区块链协议执行的隐式函数。17.根据权利要求5至16中任一项所述的方法,其中如果所述ZKP组成部分不正确,则所述至少一笔挑战交易的代码返回的结果为“false”,其中所述代码要求所述ZKP组成部分正确,以便返回的结果为“true”。18.根据权利要求17所述的方法,其中如果所述ECDSA签名验证失败,则所述代码返回的结果也为“false”,其中所述代码要求所述ZKP组成部分正确且所述ECDSA签名验证成功,以便返回的结果为“true”。19.根据从属于权利要求2的权利要求17或18所述的方法,其中如果任何ECDSA签名验证失败和/或如果任何ZKP组成部分不正确和/或如果所述第一和第二ECDSA签名具有相同的r部分,则返回的结果为“false”,其中为了使返回的结果为...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。