用于区块链交易中的知识证明的计算机实现的方法和系统技术方案

技术编号:31013499 阅读:18 留言:0更新日期:2021-11-30 02:13
公开了一种在区块链交易中实现知识证明的方法。该方法包括从验证方向证明方发送借助于数据可赎回的区块链交易,该数据包括:(i)基于临时密钥(r)、第二数据(c)和密码系统的公钥私钥对的私钥的组合的第一数据(y),其中,公钥(v)是基于整数生成元取第一次幂,其中,第一次幂是基于私钥,并且其中,需要私钥的知识以便从第一数据确定临时密钥,以及(ii)基于整数生成元取第二次幂的第三数据(x),其中,第二次幂是基于临时密钥。是基于临时密钥。是基于临时密钥。

【技术实现步骤摘要】
【国外来华专利技术】用于区块链交易中的知识证明的计算机实现的方法和系统


[0001]本公开大体涉及用于区块链交易的知识证明系统,并且更具体地涉及知识证明系统的链上非交互式实现。本公开特别适合但不限于在用于任意数据认证的签名方案中使用。

技术介绍

[0002]在本文档中,我们使用术语“区块链”来包括所有形式的电子的、基于计算机的分布式账本(ledger)。这些包括基于共识的区块链和交易链技术、经许可的和未经许可的账本、共享账本及其变型。尽管已经提出并开发了其他区块链实现方式,但是区块链技术最广为人知的应用是比特币账本。尽管为了方便和说明的目的在本文中可能提及比特币,但是应当注意,本公开不限于与比特币区块链一起使用,并且替代的区块链实现和协议落入本公开的范围内。术语“用户”在本文中可以指人类或基于处理器的资源。
[0003]区块链是一种点对点的电子分类帐,其被实现为基于计算机的、去中心化的分布式系统,该系统由区块组成,而区块又由交易组成。每个交易是一种数据结构,该数据结构对区块链系统中参与者之间的数字资产的控制权的转移进行编码,并包括至少一个输入和至少一个输出。每个区块都包含前一个区块的哈希值,因此区块被链接在一起来创建所有交易的永久、不可更改的记录,这些交易自其开始就已经被写入区块链。交易包含嵌入到其输入和输出中的被称为脚本的小程序,这些小程序指定如何以及由谁可以访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
[0004]为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)执行工作以确保每笔交易有效,而无效交易则被网络拒绝。安装在节点上的软件客户端通过执行其锁定脚本和解锁脚本来对未花费的交易输出(unspent transaction,UTXO)执行该验证工作。如果锁定脚本和解锁脚本的执行被评估为真(TRUE),则该交易有效,并将该交易写入区块链。因此,为了将交易写入区块链,必须:i)由接收交易的第一节点验证该交易

如果交易经过验证,则该节点将其中继到网络中的其他节点;ii)将该交易添加到由矿工创建的新区块中;以及iii)对该交易进行挖掘,即,将该交易添加到过去交易的公共账本中。
[0005]尽管区块链技术因使用加密货币实现而被广泛了解,但数字企业家已经开始探索使用比特币所基于的加密安全系统以及可以存储在区块链上的数据这两者以实现新的系统。如果区块链可以被用于不限于加密货币领域的自动化任务和过程,则这将是非常有利的。这样的方案将能够利用区块链的好处(例如,事件的永久性防篡改记录、分布式处理等),同时在其应用中具有更多用途。
[0006]当前研究的一个领域是使用区块链来实现“智能合约”。这些是被设计为自动执行机器可读合约或协议的条款的计算机程序。与将以自然语言编写的常规合约不同,智能合约是机器可执行程序,其包括能够处理输入以产生结果的规则,这些规则然后可以促使根据这些结果来执行动作。
[0007]与区块链相关的另一个领域是使用“令牌”(或“彩色币”)来表示现实世界的实体
并经由区块链转移现实世界的实体。潜在的敏感或秘密物品可以由没有可辨别的含义或值的令牌来表示。因此,令牌用作允许从区块链引用现实世界的物品的标识符。
[0008]知识证明是一种密码系统,其允许一方向另一方证明他或她知道某个秘密,而无需揭露有关该秘密的任何信息。存在知识证明系统的许多实例。然而,它们中的大多数在计算上是昂贵的。
[0009]因此,期望为区块链交易提供一种比现有的知识证明系统计算效率更高的知识证明系统。
[0010]现在已经设计出了这种改进的方案。

技术实现思路

[0011]提供了如所附权利要求中限定的方法。
[0012]可以提供一种在区块链交易中实现知识证明的方法,该方法包括:从验证方向证明方发送借助于数据可赎回的区块链交易,该数据包括:(i)基于临时密钥、第二数据和密码系统的公钥私钥对的私钥的组合的第一数据,其中,公钥是基于整数生成元(generator)取第一次幂,其中,第一次幂基于私钥,并且其中,需要私钥的知识以便从第一数据确定临时密钥,以及(ii)基于整数生成元取第二次幂的第三数据,其中,第二次幂基于临时密钥。
[0013]可以提供一种确定2的整数次幂的值的计算机实现的方法,该方法包括:确定一系列2的幂的项的系数,其中,该系列的每一项包括2的相应幂乘以相应的所述系数,其中,每个所述项的相应的所述系数是0或1,并且所述项的总和等于所述整数;以及确定具有为1的相应值的所述系数;确定多个值的乘积,其中,每个所述值是2取对应于所述系列的每一项的2的相应幂,每一项的对应的所述系数具有为1的值。
[0014]可以提供一种在区块链交易中将两个整数相加的计算机实现的方法,该方法包括:将整数表示为二进制位串对;对作为输入的所述二进制位串对执行组合步骤,该组合步骤包括:(i)对所述输入的对应各个位的对进行异或组合以生成第一输出二进制位串,以及(ii)对所述输入的对应各个位的对进行与组合以生成另一位串并将值为0的位作为最低有效位串接到所述另一位串以生成第二输出二进制位串;以及如果所述第二输出二进制位串包含值为1的任何位,则使用先前所述组合步骤的输出作为输入来重复所述组合步骤,直到生成仅包含值为0的位的所述第二输出二进制位串为止。
[0015]可以提供一种确定区块链交易中两个整数的乘积的方法,该方法包括:将第一整数和第二整数表示为相应的第一二进制位串和第二二进制位串;对于值为1的第一整数的每一位,提供相应的存储位串,该相应的存储位串包括表示第二整数的位串和一定数量的值为0的位,值为0的位作为最低有效位添加到相应的存储位串,该数量等于由值为1的第一整数的对应位表示的2的幂;以及借助于如上定义的至少一种方法将存储位串加在一起。
[0016]可以提供一种在模算术中确定整数的方法,该方法包括:
确定一系列2的幂(mod p)的项的系数,其中,该系列的每一项包括2的相应幂(mod p)乘以相应的所述系数,其中,每个所述项的相应的所述系数为0或1,并且所述项的总和等于所述整数(mod p);存储多个值,其中,每个所述值是2取对应于该系列的每一项的2的相应幂(mod p),每一项的对应的所述系数具有为1的值;以及借助于如上定义的至少一种方法将多个值加在一起。
[0017]可以提供一种系统,包括:处理器;以及包括可执行指令的存储器,该可执行指令由于被处理器执行而促使系统执行本文所述的计算机实现的方法的任何实施例。
[0018]可以提供一种其上存储有可执行指令的非瞬时性计算机可读存储介质,该可执行指令由于被计算机系统的处理器执行而促使计算机系统至少执行本文所述的计算机实现的方法的实施例。
附图说明
[0019]将参考附图描述根据本公开的各种实施例,其中:
[0020]图1示出了区块链交易的脚本的执行以进行知识证明;
[0021]图2示出了区块链交易的脚本的执行以确定2的大幂(large pow本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种在区块链交易中实现知识证明的方法,所述方法包括:从验证方向证明方发送借助于数据可赎回的区块链交易,所述数据包括:(i)第一数据,所述第一数据是基于临时密钥、第二数据和密码系统的公钥私钥对的私钥的组合,其中,所述公钥是基于整数生成元取第一次幂,其中,所述第一次幂是基于所述私钥,并且其中,需要所述私钥的知识以便从所述第一数据确定所述临时密钥;以及(ii)第三数据,所述第三数据是基于所述整数生成元取第二次幂,其中,所述第二次幂是基于所述临时密钥。2.根据权利要求1所述的方法,其中,所述整数生成元为2。3.根据权利要求1或2所述的方法,其中,所述第二数据由所述验证方选择。4.根据前述权利要求中任一项所述的方法,还包括:将所述第二数据与所述区块链交易分别从所述验证方发送到所述证明方。5.根据前述权利要求中任一项所述的方法,其中,所述第一数据的形式为:y≡r+s
·
cmodq其中,y是所述第一数据,r是所述临时密钥,s是所述私钥,c是所述第二数据,并且q是素数。6.根据前述权利要求中任一项所述的方法,其中,所述第二数据是基于消息。7.根据权利要求6所述的方法,其中,所述消息包括用于实现智能合约的数据。8.根据权利要求6或7所述的方法,其中,所述第二数据的形式为:c≡H(x||m)modq其中,c是所述第二数据,x是所述第三数据,m是所述消息,q是素数,并且H是哈希函数。9.根据权利要求6至8中任一项所述的方法,还包括:在所述验证方处接收所述消息。10.根据前述权利要求中任一项所述的方法,还包括:在所述验证方和所述证明方之间共享至少一个临时密钥。11.根据前述权利要求中任一项所述的方法,还包括:在所述验证方处接收所述公钥。12.根据前述权利要求中任一项所述的方法,还包括:在所述验证方处接收所述第一数据和所述第二数据。13.一种确定2取整数次幂的值的计算机实现的方法,所述方法包括:确定一系列2的幂的项的系数,其中,所述系列的每一项包括2的相应幂乘以相应的所述系数,其中,每个所述项的相应的所述系数是0或1,并且所述项的总和等于所述整数;以及确定具有为1的相应值的所述系数;确定多个值的乘积,其中,每个所述值是2取对应于所述系列的每一项的2的相应幂,每一项的对应的所述系数具有为1的值。14.根据权利要求13所述的方法,其中,预先计算并存储所述值。15.根据权利要求13或14所述的方法,其中,所述方法...

【专利技术属性】
技术研发人员:C
申请(专利权)人:区块链控股有限公司
类型:发明
国别省市:

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

1