CN114092242A - 基于范围证明实现隐私交易的方法和系统 - Google Patents

基于范围证明实现隐私交易的方法和系统 Download PDF

Info

Publication number
CN114092242A
CN114092242A CN202111293998.5A CN202111293998A CN114092242A CN 114092242 A CN114092242 A CN 114092242A CN 202111293998 A CN202111293998 A CN 202111293998A CN 114092242 A CN114092242 A CN 114092242A
Authority
CN
China
Prior art keywords
vector
value
values
verification
vectors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111293998.5A
Other languages
English (en)
Inventor
林立
王尧
雷浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202111293998.5A priority Critical patent/CN114092242A/zh
Publication of CN114092242A publication Critical patent/CN114092242A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database

Abstract

本说明书实施例提供一种在区块链中基于范围证明实现隐私交易的方法。根据该方法,第一账户所在的第一设备获得与区块链交易金额有关的m个数值,以及待证明的m个目标范围对应于二进制表示的m个位数;将各数值转换为对应位数的比特串,并通过依序拼接m个比特串得到数值向量;获取挑战数组;根据数值向量,m个位数,以及挑战数组,生成两个向量多项式及其内积产生的结果多项式,并基于多项式的系数,生成第一组承诺值。然后,第一设备获取变量值x,将x代入前述多项式,得到两个验证向量和结果值,并据此生成第二组承诺值。验证设备至少基于m个位数,第一组承诺值和第二组承诺值,验证m个数值是否对应属于m个目标范围。

Description

基于范围证明实现隐私交易的方法和系统
技术领域
本说明书一个或多个实施例涉及区块链系统和数据隐私保护,尤其涉及在区块链中基于范围证明实现隐私交易的方法和系统,以及保护隐私的数据验证方法和系统。
背景技术
区块链技术是利用点对点传输、共识机制、加密算法等计算机技术实现数据分布式存储的一种应用模式。在区块链网络中,数据的存储和记录通过交易的方式实现。各个交易的交易内容由区块链网络的所有节点共同维护,任何一方无法对区块中的内容进行篡改。
由于区块链数据透明可跟踪的特性,常规区块链中每条交易公开记录在区块中,任何节点均可以访问读取。然而,当交易涉及个人隐私时,如何在保证节点可以正常对交易进行验证和执行的前提下,不泄露隐私信息,成为有待解决的问题。
因此,希望提供有效的方案,能够在不泄露隐私的情况下验证和执行区块链交易,从而在区块链中实现安全有效的隐私交易。
发明内容
本说明书一个或多个实施例描述了一种在区块链中基于范围证明实现隐私交易的方法和系统,其中对于区块链交易中待证明的多个数值,可以通过聚合的范围证明,证明其各自属于对应的目标范围,且对于数值数量m,目标范围的位数均没有限定和要求,因此能够支持对多个不同位数的范围进行验证。
根据第一方面,提供了一种在区块链中基于范围证明实现隐私交易的方法,包括:
第一账户所在的第一设备获得与第一账户的区块链交易金额有关的m个数值,以及待证明的m个目标范围对应于二进制表示的m个位数;
将各数值转换为对应位数的比特串,并通过依序拼接m个比特串得到数值向量;
获取挑战数组;
根据所述数值向量,所述m个位数,以及所述挑战数组,生成两个向量多项式及其内积产生的结果多项式,并基于所述结果多项式的系数,生成第一组承诺值;
获取随机的变量值x;
将所述变量值x代入所述两个向量多项式和结果多项式,得到两个验证向量和结果值,并生成第二组承诺值,其中至少包括所述结果值和与所述两个验证向量相关的向量数据;
验证设备至少基于所述m个位数,所述第一组承诺值和第二组承诺值,验证所述m个数值是否对应属于所述m个目标范围。
根据一种实施方式,第一设备获取挑战数组包括,从所述验证设备接收其生成的挑战数组;获取随机的变量值x包括,从所述验证设备接收其生成的变量值x;所述方法还包括:向所述验证设备发送所述第一组承诺值和第二组承诺值。
根据另一种实施方式,第一设备获取挑战数组包括,根据约定的第一生成器和公开的第一数据源,生成所述挑战数组;获取随机的变量值x包括,根据约定的第二生成器和公开的第二数据源,生成所述变量值x;所述方法还包括:所述第一设备至少基于所述第一组承诺值和第二组承诺值,生成零知识证明,并将该零知识证明上传至区块链;所述验证设备从所述区块链获得所述零知识证明。
在一个实施例中,所述验证设备为记账节点对应的设备,所述方法还包括,所述验证设备在验证所述m个数值对应属于所述m个目标范围的情况下,将与所述m个数值相关的交易写入区块链。
根据一种实施方式,所述m个数值包括以下中的一项或多项:交易金额,账户余额,基于交易金额和账户余额确定的交易比例值。
根据一种实施方式,所述两个向量多项式分别基于第一基础向量和第二基础向量而生成;其中,所述第一基础向量和第二基础向量的内积结果,等于第一运算值和第二运算值δ之和,其中,第一运算值依赖于所述m个数值,第二运算值仅依赖于所述挑战数组和m个位数。
进一步的,在一个实施例中,方法还包括:第一设备生成与所述数值向量具有预定关系的辅助向量;生成用于混淆所述数值向量和辅助向量的第一和第二盲化向量;根据所述数值向量、辅助向量生成基准值A,根据所述第一和第二盲化向量,生成盲化值S。
进一步的,在一个示例中,第一设备生成两个向量多项式具体包括:基于所述第一基础向量引入第一盲化向量和变量,得到第一向量多项式;基于所述第二基础向量引入第二盲化向量和变量,得到第二向量多项式。
相应的,在一个实施例中,验证设备验证所述m个数值是否对应属于所述m个目标范围,具体包括:根据所述基准值A,所述盲化值S,所述挑战数组,所述m个位数,计算得到第一计算值;根据所述两个验证向量,计算得到第二计算值;验证第一计算值是否等于第二计算值。
根据一种实施方式,所述挑战数组包括第三挑战数e;第一设备生成第一组承诺值,具体包括:根据所述结果多项式的一次项系数,本地生成的第一随机数,所述m个数值各自在第一账户的公钥pk下进行加密的m个密文的第二部分,以及所述第三挑战数,生成第一承诺值T1;根据所述结果多项式的二次项系数,本地生成的第二随机数,所述m个密文的第二部分,和所述第三挑战数,生成第二承诺值T2,其中在第一承诺值和第二承诺值计算中,所述第三挑战数e均作用于所述第二部分的指数上。
进一步的,在一个实施例中,第一设备生成第二组承诺值,具体包括:根据所述第一随机数、第二随机数、所述变量值x以及与所述公钥对应的私钥sk,生成验证值τx;确定第二组承诺值,其中至少包括所述验证值τx,所述结果值,所述两个验证向量。
相应的,在一个实施例中,验证设备验证所述m个数值是否对应属于所述m个目标范围,具体包括:根据所述验证值τx,所述结果值,所述第二运算值δ,所述第三挑战数e,所述m个密文的第二部分的连乘,计算得到第三计算值;其中,所述第三挑战数e作用于所述第二部分的指数上;根据所述第一承诺值T1,第二承诺值T2,所述变量值x,所述第三挑战数e,所述m个密文的第一部分的连乘,计算得到第四计算值;所述第三挑战数e作用于所述第一部分的指数上;验证所述第三计算值和第四计算值是否相等。
在一种实施方式中,方法还包括:第一设备将所述两个验证向量的维度N处理为偶数;基于N维的两个验证向量,生成两个中间值,以及N/2维的两个子向量;所述向量数据包括,所述两个中间值,和所述两个子向量。
进一步的,在上述实施方式的一个实施例中,第一设备将所述两个验证向量的维度N处理为偶数,具体包括:在所述两个验证向量的原始维度为奇数的情况下,获得第三随机值;将所述第三随机值作为附加向量元素,分别添加到所述两个验证向量,得到维度为偶数的验证向量。
在一个实施例中,所述两个验证向量包括第一验证向量和第二验证向量;第一设备生成两个中间值,以及N/2维的两个子向量,具体包括:将约定的两个N维的生成向量,以及所述两个验证向量,均拆分为N/2维的前后子向量,基于这些子向量的指数组合和约定参数,计算第一中间值和第二中间值;获取第四随机值;根据所述第一验证向量的前后子向量和所述第四随机值,生成N/2维的第一子向量;根据所述第二验证向量的前后子向量和所述第四随机值,生成N/2维的第二子向量。
相应的,在一个实施例中,验证设备验证所述m个数值是否对应属于所述m个目标范围,具体包括:基于所述两个生成向量的前后子向量的组合,得到两个生成子向量,并基于两个生成子向量分别与第一子向量和第二子向量的指数运算,得到第五计算值;根据所述两个生成向量的前后子向量自身分别与所述第一子向量、第二子向量的指数运算组合,计算得到第六计算值;在第五计算值等于第六计算值的情况下,确定所述第一设备提供的辅助值基于所述两个验证向量而得到,并基于所述辅助值验证所述m个目标范围。
根据第二方面,提供了一种保护隐私的数据验证的方法,包括:
第一设备获得待证明的m个数值,以及待证明的m个目标范围对应于二进制表示的m个位数;
将各数值转换为对应位数的比特串,并通过依序拼接m个比特串得到数值向量;
获取挑战数组;
根据所述数值向量,所述m个位数,以及所述挑战数组,生成两个向量多项式及其内积产生的结果多项式,并基于所述结果多项式的系数,生成第一组承诺值;
获取随机的变量值x;
将所述变量值x代入所述两个向量多项式和结果多项式,得到两个验证向量和结果值,并生成第二组承诺值,其中至少包括所述结果值和与所述两个验证向量相关的向量数据;
验证设备至少基于所述m个位数,所述第一组承诺值和第二组承诺值,验证所述m个数值是否对应属于所述m个目标范围。
根据第三方面,提供了一种基于范围证明实现隐私交易的区块链系统,至少包括第一账户所在的第一设备,和验证设备,其中:
所述第一设备配置用于,获得与第一账户的区块链交易金额有关的m个数值,以及待证明的m个目标范围对应于二进制表示的m个位数;将各数值转换为对应位数的比特串,并通过依序拼接m个比特串得到数值向量;获取挑战数组;根据所述数值向量,所述m个位数,以及所述挑战数组,生成两个向量多项式及其内积产生的结果多项式,并基于所述结果多项式的系数,生成第一组承诺值;获取随机的变量值x;将所述变量值x代入所述两个向量多项式和结果多项式,得到两个验证向量和结果值,并生成第二组承诺值,其中至少包括所述结果值和与所述两个验证向量相关的向量数据;
所述验证设备配置用于,至少基于所述m个位数,所述第一组承诺值和第二组承诺值,验证所述m个数值是否对应属于所述m个目标范围。
根据第四方面提供了一种保护隐私的数据验证系统,包括第一设备和验证设备,其中:
所述第一设备配置用于,获得待证明的m个数值,以及待证明的m个目标范围对应于二进制表示的m个位数;将各数值转换为对应位数的比特串,并通过依序拼接m个比特串得到数值向量;获取挑战数组;根据所述数值向量,所述m个位数,以及所述挑战数组,生成两个向量多项式及其内积产生的结果多项式,并基于所述结果多项式的系数,生成第一组承诺值;获取随机的变量值x;将所述变量值x代入所述两个向量多项式和结果多项式,得到两个验证向量和结果值,并生成第二组承诺值,其中至少包括所述结果值和与所述两个验证向量相关的向量数据;
所述验证设备配置用于,至少基于所述m个位数,所述第一组承诺值和第二组承诺值,验证所述m个数值是否对应属于所述m个目标范围。
在本说明书的实施例中,区块链系统中的账户设备针对多个数值和各自的目标范围生成零知识范围证明,使得验证设备在不知晓多个数值各自大小的情况下,一次性对各自所属的目标范围进行验证,实现聚合的零知识范围证明。并且,实施例中的方案对待证明的数值数量m,各自的位数均没有限定和要求,因此能够支持对多个不同位数的范围进行验证。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是在一个实施例中进行隐私交易的方案示意图;
图2示出根据一个实施例的通过范围证明实现隐私交易的流程图;
图3示出在一个实施例中与验证向量有关的优化证明过程;
图4示出根据一个实施例的区块链系统的示意图;
图5示出根据一个实施例的数据验证系统的示意图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
目前,在基于账户模型的区块链系统中,可以方便地通过区块链交易,实现用户之间的转账。账户模型是区块链系统的一种交易机制,典型的例子包括以太坊。在该区块链系统中,区块链的用户自主生成一对公私钥(pk,sk),并公开pk作为自己的身份在链上进行注册。同时用户在链上有一个账户余额
Figure BDA0003335970000000061
用户可以生成一笔区块链交易,或简称为交易,声明将自己账户的部分余额v发送到别人账户中,并使用自己的私钥sk对该交易进行签名。链上共识节点收到该交易后,使用账户的公钥pk对签名进行验证,通过后检测v≥0、
Figure BDA0003335970000000062
若都通过,则将发送者链上账户余额减去v,同时将接收者链上账户余额加上v。经过链上共识算法共识这笔交易后,通过区块链的log通知对应接收者这笔交易的存在。
然而,在一些场景下,上述交易金额v,账户余额
Figure BDA0003335970000000063
等信息被用户视为隐私信息,不宜将其公开。为了保护隐私信息,提出了一种隐私交易的方案,也就是利用密文进行交易的验证和执行。为了对密文的信息进行验证,常常需要使用零知识证明。
零知识证明(ZKP),指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。具体而言,证明者通过只有自己拥有的见证信息(witness)生成一个某个论断(statement)的证明σ,验证者可以公开验证σ从而确定证明者拥有该论断的witness,同时又无法得到该witness的任何信息。
具体到区块链隐私交易的场景中,则要使用范围证明。范围证明是一种特殊的零知识证明协议,首先确定一个最大范围[0,vmax],证明者拥有一个金额v及其对应的密文或者承诺c,其生成范围证明σ后,验证者通过验证σ以及c,就可以确定c对应的明文v是属于[0,vmax]的,同时不泄漏v的任何信息。如此,有助于在隐私交易的情况下,针对交易密文进行必要的验证。
图1是在一个实施例中进行隐私交易的方案示意图。在图1所示的系统框架中,每个账户拥有可用于同态加密算法的公钥私钥对(pk,sk),该同态加密算法至少支持加法同态。账户的余额用该账户的公钥加密后存储于链上。换而言之,区块链的各个记账节点(也作用为共识节点)均以余额密文的形式,维持所有账户的余额状态信息。
假设存在一个发送者S,其加密公私钥为(pkS,skS),发送者链上加密的账户余额为
Figure BDA0003335970000000064
发送者需要发送金额v给接收者,其使用自己的公钥pkS和接收者公钥pkR分别对v进行加密得到密文
Figure BDA0003335970000000065
Figure BDA0003335970000000066
同时,发送者生成零知识证明σ,用以证明密文CS和CR对应明文是相同的、v≥0、且
Figure BDA0003335970000000067
接着,发送者将CS、CR和σ发送到链上。链上共识节点验证其签名后,再验证σ真实性。如果都通过,则确认这笔交易有效,将其记录到区块链上,并使用同态加密算法的加法同态特性,更改发送者和接收者的链上金额。具体的,在典型的密文相乘等效于明文相加的同态加密算法下,可以将发送者余额修改为
Figure BDA0003335970000000071
将接收者余额修改为
Figure BDA0003335970000000072
经过链上共识算法共识这笔交易后,通过区块链的log日志通知对应接收者这笔交易的存在。接收者使用自己的私钥skR
Figure BDA0003335970000000073
进行解密后,更改本地的账户余额为
Figure BDA0003335970000000074
在以上过程中,发送者至少需要通过零知识证明σ,证明v≥0、
Figure BDA00033359700000000713
而不泄露v,
Figure BDA0003335970000000075
自身的信息。这个证明即是一种范围证明。已经存在一些现有技术,针对单个数值生成零知识范围证明。
然而,为了提升隐私交易的验证效率,还希望可以将不同的m个范围证明一次性使用一个聚合协议进行证明,并且,这m个范围证明的范围上界对应的比特位数可以不同。这在实际应用中具有非常现实的需求。例如,在一些区块链系统中,不仅要求账户余额大于等于交易金额:
Figure BDA0003335970000000076
还要求交易金额与账户余额的比例小于等于一定比例值
Figure BDA0003335970000000077
可以将p用分数的形式表示,即
Figure BDA0003335970000000078
并且限定分子分母均取一定范围的整数,例如取p1,p2∈[1,15],如p=0.2,则可设p1=1,p2=5。如此,比例要求也可以表示为:
Figure BDA0003335970000000079
其可以进一步转化为
Figure BDA00033359700000000710
即该比例要求可以转化为一个范围证明协议。但是这个范围证明协议的比特位数和金额范围的比特数显著不同,即
Figure BDA00033359700000000711
针对以上需求,在本说明书的实施例中,提供针对多个数值聚合的范围证明,其中各个目标范围的比特位数可以不同。
下面先对实现上述聚合的范围证明的理论原理进行解释说明。
如结合图1所述,区块链系统框架中,每个账户拥有同态加密算法下的公钥私钥对(pk,sk)。这里假定,采用twisted-ElGamal作为同态加密算法。根据该算法,秘钥的生成过程如下。首先,账户随机选取sk∈Zp作为私钥,其中Zp为模p的整数环。然后,基于私钥sk计算公钥为:pk=hsk,其中h为约定的循环群中的一个生成元。
对于当前待加密的明文v,可以利用公钥pk对其进行加密,得到密文C=(c1,c2)=(gvhr,pkr),其中g为上述循环群中的另一个生成元,r为本次加密随机选取的随机数。也就是说,公钥pk加密的密文C包含两个部分,第一部分c1和第二部分c2,两个部分之间满足关系:
Figure BDA00033359700000000712
需要说明的是,加密所基于的生成元g和h,可以预先在区块链系统中约定。
现在假定,区块链中的某个账户有m个待证明范围的数值明文vi,这里i=1,…,m。该账户将各个明文vi在公钥pk下加密为密文Ci=(ci,1,ci,2),并在区块链系统中公开这些密文。假定,该账户需要通过范围证明,说服验证者
Figure BDA0003335970000000081
同时不泄漏vi的任何信息,这里
Figure BDA0003335970000000082
为每个vi的目标范围。这里可以看到,该目标范围一般表示为二进制形式,其中,ni为vi的目标范围对应于二进制表示的位数。
为了实现上述m个数值针对各自目标范围的聚合范围证明,可以首先将各个数值vi转换为对应位数的二进制表示,即比特串,并将m个比特串依序拼接,得到一个数值向量
Figure BDA0003335970000000083
其中,
Figure BDA0003335970000000084
为vi的二进制表示。该数值向量的维数为N,N等于m个数值对应的m个位数之和,即
Figure BDA0003335970000000085
此外,为了表述的方便,记
Figure BDA0003335970000000086
表示前i个数值对应的前i个位数之和,也即,第i个数值对应的比特串的结尾在数值向量中的位置。如此,第i个数值对应的二进制表示,即对应于数值向量aL中[Ni-1+1:Ni]范围的元素构成的子向量
Figure BDA0003335970000000087
Figure BDA0003335970000000088
则证明各个
Figure BDA0003335970000000089
等效于证明:
Figure BDA00033359700000000810
其中,<a,d>表示向量a和b的内积。
在实施范围证明协议过程中,假定还基于上述数值向量aL,生成有对应的辅助向量aR,辅助向量aR与数值向量aL满足如下的预定关系:
Figure BDA00033359700000000815
其中,“°”为Hadamard算子,表示两个向量之间对位相乘,其结果为维度不变的向量。
基于以上关系式(2),若施加任意随机数y,以下关系式(3)仍然成立:
Figure BDA00033359700000000816
基于以上关系式(1),若如下施加任意随机数e,以下关系式(4)仍然成立:
Figure BDA00033359700000000811
其中,
Figure BDA00033359700000000812
是将
Figure BDA00033359700000000813
前后补零,扩充到N维得到的向量;因此有
Figure BDA00033359700000000814
再将式(1)左右各乘以与e相关的系数,即可得到关系式(4)。
结合以上关系式(3)和(4),再施加任意随机数z,进行进一步转换。具体的,在关系式(4)左右侧均乘以z2,而由于关系式(3)中的两项均为0,对其施加z后也为0,综合上述结果可以得到以下关系式(5):
Figure BDA0003335970000000091
对关系式(5)可以进一步等价变换为关系式(6):
Figure BDA0003335970000000092
其中,
Figure BDA0003335970000000093
是仅依赖于随机数组(y,z,e)和各个数值对应的位数ni(基于各个位数ni就可确定出
Figure BDA0003335970000000094
)就可计算的值。
因此,m个数值的聚合范围证明,可以表示为关系式(1),并最终等效于证明关系式(6)是否成立。
如果将关系式(6)左侧内积的两个向量分别称为第一基础向量W1和第二基础向量W2,即W1=aL-z·1N
Figure BDA0003335970000000095
则第一基础向量W1和第二基础向量W2的内积结果,可以拆分为第一运算值和第二运算值δ(y,z,e)之和,其中,第一运算值依赖于各个数值vi,第二运算值δ(y,z,e)仅依赖于作为可公开信息的随机数组(y,z,e)和m个位数ni
基于以上关系式(6)的性质,提出针对多数值聚合的范围证明方案。
图2示出根据一个实施例的通过范围证明实现隐私交易的流程图。下面结合该流程图描述为进行隐私交易而实施的范围证明协议的过程。
在步骤201,第一账户所在的第一设备,获得与第一账户的区块链交易金额有关的m个数值vi,以及待证明的m个目标范围对应于二进制表示的m个位数ni,其中,i=1,…,m。需要理解,上述第一账户可以是区块链系统中任意一个账户,上述第一设备即为该账户所在的客户端设备。上述m个数值,可以包括一个或多个交易金额,账户余额,还可以包括,基于交易金额和账户余额确定的交易比例值,以及其他在区块链场景中需证明其范围的数值,在此不做限定。
在步骤202,第一设备将各数值vi转换为对应位数的比特串,并通过依序拼接m个比特串得到数值向量,即前述
Figure BDA0003335970000000096
在步骤203,第一设备生成辅助向量,并实施盲化操作。
具体地,第一设备基于上述数值向量aL,按照以下关系式(7)生成与其具有预定关系的辅助向量aR
aR=aL-1N (7)
显然,如此生成的辅助向量aR满足关系式(2)示出的预定关系。
此外,在盲化操作过程中,第一设备还分别生成用于盲化数值向量aL和辅助向量aR的第一盲化向量sL和第二盲化向量sR,并根据上述数值向量、辅助向量生成基准值A,根据第一和第二盲化向量,生成盲化值S。
具体地,第一设备按照下面的公式(8),根据数值向量aL和辅助向量aR生成基准值A:
Figure BDA0003335970000000101
其中,h为加密时使用的生成元,α为第一设备随机选取的随机数,粗体标出的g,h,是以加密所基于的循环群中的生成元为元素,形成的N维向量,在此称为生成向量。公式(8)中涉及对向量之间的指数操作,该指数操作如下定义:向量g=(g1,…,gN)的向量l=(l1,…,lN)次方表示为
Figure BDA0003335970000000102
需要说明的是,以上的生成向量g,h,需满足离散关系未知的条件,并且可以预先在区块链系统中约定。
此外,基于相似的计算方式,第一设备按照下面的公式(9),根据第一和第二盲化向量生成盲化值S:
Figure BDA0003335970000000103
其中,ρ为第一设备随机选取的随机数,g,h为前述生成向量。
然后,在步骤204,第一设备可以向验证设备提供该基准值A和盲化值S。这里的验证设备,可以是区块链系统中任何一个期望对第一账户的m个数值范围进行验证的设备。典型的,该验证设备可以是记账节点(或称为共识节点)对应的设备。
接着,在步骤205,第一设备获取挑战数组(y,z,e)。在图2所示的实施例中,由验证设备随机生成一组随机数(y,z,e),发送给第一设备,于是,第一设备接收验证设备发送的随机数作为挑战数组(y,z,e)。可以理解,该挑战数组即对应于前述公式(6)中的随机数y,z,e。
接着,在步骤206,第一设备根据前述数值向量aL,所述m个位数,以及挑战数组(y,z,e),生成两个向量多项式及其内积产生的结果多项式,并基于所述结果多项式的系数,和m个数值对应的m个密文,生成第一组承诺值。
在一个具体实施例中,第一设备根据前述公式(6)所示出的关系,分别在第一基础向量W1和第二基础向量W2的基础上引入盲化向量和变量X,从而生成两个向量多项式。具体而言,在一个例子中,可以基于第一基础向量W1引入第一盲化向量sL和变量X,得到第一向量多项式l(X)。例如,按照以下公式(10)构造第一向量多项式l(X):
l(X)=aL-z·1N+sL·X (10)
另一方面,基于第二基础向量W2,引入第二盲化向量和变量X,生成第二向量多项式r(X)。例如,按照以下公式(11)构造第二向量多项式r(X):
Figure BDA0003335970000000111
相应的,这两个向量多项式的内积所产生的结果多项式可表示为t(X):
t(X)=〈l(X),r(X)〉=t0+t1·X+t2·X2 (12)
可以理解,变量X是附加在盲化向量上的,因此,结果多项式t(X)中的常数项t0,即对应于第一基础向量W1和第二基础向量W2的内积,又根据公式(6)示出的关系,该内积结果t0,即等于
Figure BDA0003335970000000112
在得到上述结果多项式的基础上,第一设备基于该结果多项式的系数,生成第一组承诺值。
在一个具体实施例中,第一设备根据上述结果多项式t(X)的一次项系数t1,本地生成的第一随机数τ1,m个数值中各数值vj在第一账户的公钥pk下进行加密的密文Cj的第二部分cj,2的连乘组合,以及第三挑战数e,生成第一承诺值T1
例如,可以根据以下公式(13)生成第一承诺值T1
Figure BDA0003335970000000113
类似的,第一设备还可以根据结果多项式t(X)的二次项系数t2,本地生成的第二随机数τ2,密文Cj的第二部分cj,2,和第三挑战数e,生成第二承诺值T2
例如,可以根据以下公式(14)生成第二承诺值T2
Figure BDA0003335970000000114
可以看到,在第一承诺值和第二承诺值计算中,第三挑战数e均作用于第二部分cj,2的指数上。
接着,在步骤207,第一设备向验证设备提供上述第一组承诺值,即第一承诺值T1和第二承诺值T2
然后,在步骤208,第一设备获取随机的变量值x。在图2所示的实施例中,由验证设备生成该变量值x,发送给第一设备。第一设备由此获得该变量值x。
于是,在步骤209,第一设备将该变量值x代入两个向量多项式和结果多项式,得到两个验证向量和结果值,并生成第二组承诺值。
具体的,第一设备将变量值x代入第一向量多项式l(X),得到第一验证向量l,即:
l=l(x)=aL-z·1N+sL·x (15)
将变量值x代入第二向量多项式r(X),得到第二验证向量r,即:
Figure BDA0003335970000000121
计算两个验证向量的内积,得到结果值
Figure BDA0003335970000000122
此外,第一设备还可以根据前述的第一随机数τ1、第二随机数τ2、变量值x以及与公钥pk对应的私钥sk,生成第一验证值τx
例如,可以如下生成第一验证值τx
τx=τ2·x21·x+z2·sk-1 (17)
进一步的,第一设备还可以基于变量值x,以及生成基础值A和盲化值S时采用的随机数α,ρ,生成第二验证值μ:
μ=α+ρ·x (18)
基于以上结果,第一设备可以确定出第二组承诺值,其中可以包括结果值
Figure BDA0003335970000000125
两个验证向量l,r,第一验证值τx,第二验证值μ。
于是在步骤210,第一设备将第二组承诺值提供给验证设备。
在步骤211,验证设备至少基于m个位数ni,第一设备提供的前述第一组承诺值和第二组承诺值,验证m个数值是否对应属于m个目标范围。
在一个实施例中,验证设备的验证过程可以包括,验证结果值
Figure BDA0003335970000000123
是否为两个验证向量l,r的内积。即,验证以下关系是否成立:
Figure BDA0003335970000000124
在一个实施例中,验证设备还进行以下的第二验证过程。根据之前获得的基准值A,盲化值S,挑战数组(y,z,e),所述m个位数ni,计算得到第一计算值P。例如,可以如下计算P:
Figure BDA0003335970000000131
其中,
Figure BDA0003335970000000132
另一方面,根据前述的两个验证向量l,r,计算得到第二计算值V2。例如,可以如下计算V2:
V2=hμgl(h′)r (21)然后验证第一计算值P是否等于第二计算值V2,即验证:
Figure BDA0003335970000000133
可以证明,如果第一设备按照前述流程,构建基础值A,盲化值S,两个验证向量l,r的话,以上关系式(22)必然是成立。具体的,可以将公式(8)(9)中的基础值A和盲化值S代入公式(20),然后分别针对生成元h,生成向量g,h′,验证关系式(22)左右两侧的指数是否相等。
例如,针对生成元h,通过第一计算值P的计算过程,可以得到h的指数为α+ρx,而第二计算值V2中生成元的指数为μ;根据关系式(18),两者相等。针对生成向量g,通过第一计算值P的计算过程,可以得到g的指数为aL-z+sL·x;而第二计算值V2中g的指数为l;根据关系式(15),两者相等。针对h′,可以进行类似的验证。
通过对关系式(22)的验证,可以确定第一设备是否按照约定构造了基础值A,盲化值S,和两个验证向量l,r。
在一个实施例中,验证设备还进行以下的第三验证过程。
根据获得的验证值τx,结果值
Figure BDA0003335970000000134
前述第二运算值δ,第三挑战数e,m个密文的第二部分cj,2,计算得到第三计算值V3,其中,第三挑战数e作用于第二部分的指数上。例如,可以如下计算V3:
Figure BDA0003335970000000135
另一方面,验证设备还可以根据获得的第一承诺值T1,第二承诺值T2,变量值x,第三挑战数e,m个密文的第一部分cj,1,计算得到第四计算值V4,其中,第三挑战数e作用于第一部分的指数上。例如,可以如下计算V4:
Figure BDA0003335970000000136
然后,验证第三计算值V3与第四计算值V4是否相等,即验证:
Figure BDA0003335970000000141
可以证明,如果m个数值分别满足目标范围,即符合关系式(6),则关系式(25)必然是成立。
具体的,对于各个数值vj的密文来说,其第一部分cj,1和第二部分cj,2之间满足关系:
Figure BDA0003335970000000142
上述关系式(26)可以将(24)中以cj,1为底数的项,转化为以生成元g和cj,2为底数的项。再将计算T1的公式(13),计算T2的公式(14),分别代入(25)右侧,于是可以分别针对不同底数项,验证关系式(25)左右两侧的指数是否相等。
例如,针对底数项
Figure BDA0003335970000000143
通过第四计算值V4的计算过程,可以得到其指数为τ1x+τ2x2+z2·sk-1,而左侧的第三计算值V3中该底数项的指数为τx;根据关系式(17),两者相等。
针对生成元g,通过第四计算值V4的计算过程,可以得到其指数为
Figure BDA0003335970000000144
Figure BDA0003335970000000145
而左侧的第三计算值V3中生成元g的指数为
Figure BDA0003335970000000146
进一步地,结合公式(12)有:
Figure BDA0003335970000000147
并且,如前所述,根据公式(6)示出的关系,常数项t0的值等于
Figure BDA0003335970000000148
因此,可以看到,关系式(25)左右两侧生成元g的指数也相等。
通过对关系式(25)的验证,可以确定第一设备的m个数值,是否位于声明的m个位数ni所定义的m个目标范围内。
回顾以上过程,第一设备生成且提供给验证设备的信息,从基础值A、盲化值S,到第一组承诺值和第二组承诺值,均不会泄露各个数值vi自身,由此使得,验证设备在不知晓多个数值各自大小的情况下,一次性对各自所属的目标范围进行验证,实现聚合的零知识范围证明。并且,以上方案,对待证明的数值数量m,各自的位数均没有限定和要求,因此能够支持对多个不同位数的范围进行验证。
在涉及加密的有些零知识证明方案中,除涉及承诺值的交互之外,证明者往往还需要通过安全信道,将加密使用的随机数r等信息发送给验证者。然而,在图2所示的方案中,使用私钥sk作为witness之一,并引入第三挑战数e对各个数值的密文进行聚合,实现对加密相关信息的验证,而不需要附加地传送加密随机数r。
需要理解,图2示出了范围证明的实施场景示例,其中,第一设备通过与验证设备交互,获得挑战数组和变量值,并向其提供各个承诺值。在另一实施场景中,还可以通过非交互方式,实现上述聚合的范围证明。
具体的,在区块链系统中,可以约定一些数据生成器,例如伪随机数发生器,基于哈希函数的生成器,等。使用该约定的生成器,基于相同的数据源,可以生成相同的随机数。如此,在图2的步骤205,第一设备需要获得挑战数组时,第一设备可以根据约定的第一生成器和公开的第一数据源,生成挑战数组(y,z,e)。该公开的第一数据源,可以是区块链系统中公开的数据,也可以是第一设备之前计算的结果。例如,在第一设备计算得到基础值A和盲化值S后,可以将该这两个值作为随机种子,输入伪随机数发生器,得到挑战数组。类似的,在步骤208,第一设备需要获得变量值x时,它可以根据约定的第二生成器和公开的第二数据源,生成该变量值x。该第二生成器与前述的第一生成器可以是相同的生成器,也可以是不同的生成器,在此不做限定。该第二数据源,可以是区块链系统中公开的数据,也可以是第一设备之前计算的结果,例如第一组承诺值。
如上,第一设备以非交互的方式,获得挑战数组和变量值x。此外,在步骤209后,第一设备基于之前步骤计算的结果,生成零知识证明σ,并将其上传至区块链,该零知识证明σ可以包括基础值A,盲化值S,第一组承诺值,第二组承诺值等。
如此,区块链系统中的任意验证设备,例如,各个记账节点,都可以从区块链上获得上述零知识证明σ,并对其进行验证。在需要使用挑战数组(y,z,e)时,验证设备根据约定的第一生成器和第一数据源,生成挑战数组(y,z,e),例如,从零知识证明中读取基础值A和盲化值S,将其作为随机种子,输入约定的伪随机数发生器,得到挑战数组。由于基于的生成器和数据源均相同,验证设备可以生成与第一设备相同的挑战数组。在需要使用变量值x时,验证设备类似地根据约定的第二生成器和第二数据源,生成变量值x,不复赘述。
通过这样的方式,第一设备不必与各个验证设备逐个交互来生成各个验证设备对应的零知识证明;而是以非交互方式生成通用的零知识证明后,发布到区块链上,使得各个验证设备各自从区块链获得该零知识证明后,都可以基于该零知识证明验证数值范围,从而进一步提升了验证效率。
可以理解,基于上述零知识证明,即聚合的范围证明,区块链系统中的各个验证设备都对m个数值的目标范围进行验证。在各个验证设备都验证通过的情况下,记账节点将与该m个数值相关的交易确定为有效交易,将其写入区块链,由此实现隐私交易。
进一步的,在以上聚合的范围证明的协议执行过程中,存储和传输的最大数据量来自于N维的向量l和r,具体需要存储和传输2N个
Figure BDA0003335970000000161
上的数。在待证明的数值数量较大,或者对应目标范围的位数比较大时,上述N维度较大,如此,向量l和r所需的存储空间和传输通信代价均比较大。因此,为了进一步优化性能,希望能够对上述向量的存储和传输进行优化。
回到图2,可以看到,第一设备提供向量l,r,是为了验证设备能够计算两者的内积<l,r>,从而验证公式(19),以及计算glhr(这里的h相当于公式(21)中的h′,为了不失一般性以及描述的方便,后续将其记为h),从而验证公式(22)。为简化存储和传输,该问题可转化为,第一设备直接向验证设备提供辅助值Q=glhr和c=<l,r>,并且证明其知道满足辅助值Q=glhr和c=<l,r>的向量l和r。进一步的,可以将Q=glhr和c=<l,r>这2个证明目标通过与g和h离散关系未知的参数
Figure BDA0003335970000000167
转化为第一设备说服验证设备,其知道满足Q=glhr·u<l,r>的向量l和r。
可选的,在一个实施例中,为了确保参数u的随机性,验证设备随机选取
Figure BDA0003335970000000162
并提供给第一设备,第一设备基于xip更新u为:
Figure BDA0003335970000000163
并基于更新后的u更新上述Q的值,然后启动后续证明。证明的过程如图3所示。
图3示出在一个实施例中与验证向量有关的优化证明过程。在图3的证明过程中,若l和r的维数N为奇数,则在步骤301,验证设备随机选取
Figure BDA0003335970000000164
并发送给第一设备。为方便区分,将t称为第三随机值。在步骤302,第一设备使用该第三随机数t将l和r的维数补齐为偶数,也就是,将t作为各自向量的最后一个元素,扩展得到N+1维向量。此外,还使用与g和h离散关系未知的gN
Figure BDA0003335970000000165
将g和h维数补齐为偶数。在步骤303,根据随机数t对证明目标的Q和c进行如下更新:
Figure BDA0003335970000000166
如果l和r的维数N为偶数,则跳过上述步骤301-303,直接进行下面的维数为偶数的向量降维证明协议。通过该向量降维证明协议,第一设备基于N维的验证向量l和r,生成两个中间值L和R,以及N/2维的两个子向量l′和r′,以其代替N维的验证向量作为第二组承诺值的一部分,用于验证设备的验证。
具体的,在步骤304,第一设备将生成向量g和h,验证向量l和r的每一个,均拆分为维度相等的前后子向量,基于这些子向量的指数组合和前述参数u,计算第一中间值L和第二中间值R。具体的,第一设备可以如下计算第一和第二中间值L和R:
Figure BDA0003335970000000171
其中,
Figure BDA0003335970000000172
为维度N的半值,角标[:n’]表示从开始元素到第n’个元素,即N维向量的前半段;[n’+1:]表示从n’+1个元素到末尾元素,即N维向量的后半段。
在步骤305,第一设备将第一中间值L和第二中间值R发送给验证设备。
在步骤306,验证设备随机选取
Figure BDA0003335970000000173
并发送给第一设备。需要说明,此处的x与图2中的变量值无关,只是出于简洁和标记方便记为x。下文将其称为第四随机值。
在步骤307,第一设备根据第一验证向量l的前后子向量和上述第四随机值,生成N/2维的第一子向量l′;还根据第二验证向量r的前后子向量和上述第四随机值,生成N/2维的第二子向量r′。例如,第一设备按照以下公式(30)生成第一子向量l′,按照以下公式(31)生成第二子向量r′:
l′=x·l[:n′]+x-1·l[n′+1:] (30)
r′=x-1·r[:n′]+x·r[n′+1:] (31)
在步骤308,第一设备将第一子向量和第二子向量发送给验证设备。
在步骤309,验证设备执行验证。
具体的,验证设备基于生成向量的前后子向量的组合,得到两个生成子向量,并基于两个生成子向量分别与第一子向量和第二子向量的指数运算,得到第五计算值P’。更具体地,可以如下得到N/2维的第一生成子向量g′和第二生成子向量h′:
Figure BDA0003335970000000174
Figure BDA0003335970000000175
基于以上两个生成子向量和第一子向量,第二子向量,按照以下公式(33)计算第五计算值P’:
Figure BDA0003335970000000176
此外,验证设备还根据生成向量的前后子向量自身与第一子向量、第二子向量的指数运算组合,计算得到第六计算值V6。例如,按照以下公式(34)计算V6:
Figure BDA0003335970000000177
接着,验证设备验证第五计算值P’与第六计算值V6是否相等,即验证以下关系式(35)是否成立:
Figure BDA0003335970000000181
若验证通过,则验证设备可以确定,第一设备知道满足Q=glhr和c=<l,r>的向量l和r。
通过以上过程,第一设备就可以使用第一和第二中间值L、R,两个N/2维的子向量l′和r′代替l和r进行存储和传输,将2N维存储减少为2n′+2维存储。
更进一步的,可以看到,l′和r′可以构成新的证明目标
Figure BDA0003335970000000182
可以继续使用上述降维证明方案不断迭代压缩,最终的存储可以由2N减少为
Figure BDA0003335970000000183
需要说明,以上图3以第一设备与验证设备交互的场景为示例描述。该场景也可以类似地转换为非交互场景,转换方式如前所述,不复赘述。
通过以上方式,通过降低两个验证向量的存储和传输成本,进一步优化聚合的范围证明。
更进一步的,可以理解,尽管以上结合区块链系统中隐私交易的场景,描述了多数值的聚合范围证明过程,但是上述聚合范围证明过程也可以应用于其他需要对数值范围进行零知识证明的场景。例如,在隐私保护的联邦学习场景中,数据持有方和模型训练方为了不泄露各自的隐私数据,需要基于加密的数据进行模型联合训练。然而,在训练之前或训练过程中,数据持有方有可能需要通过零知识证明,向其他参与方,特别是模型训练方证明,所提供的训练数据是位于一定数值范围的合法数据。在这样的情况下,可以将数据持有方作为图2中的第一设备,将模型训练方作为图2的验证设备,类似的执行图2的方法流程,实现聚合的范围证明。又例如,在多方安全计算的场景中,某一计算参与方也可能需要通过零知识证明向其他参与方证明,所提供的计算数据是位于一定数值范围的合法数据。以上聚合的范围证明的实施过程,可以应用于任何隐私保护场景下,数据提供设备需要向验证设备证明其数值范围的技术场景中。
根据另一方面的实施例,提供了一种基于范围证明实现隐私交易的区块链系统。图4示出根据一个实施例的区块链系统的示意图,其中至少包括第一账户所在的第一设备41,和验证设备42。其中,第一设备41配置用于,获得与第一账户的区块链交易金额有关的m个数值,以及待证明的m个目标范围对应于二进制表示的m个位数;将各数值转换为对应位数的比特串,并通过依序拼接m个比特串得到数值向量;获取挑战数组;根据所述数值向量,所述m个位数,以及所述挑战数组,生成两个向量多项式及其内积产生的结果多项式,并基于所述结果多项式的系数,生成第一组承诺值;获取随机的变量值x;将所述变量值x代入所述两个向量多项式和结果多项式,得到两个验证向量和结果值,并生成第二组承诺值,其中至少包括所述结果值和与所述两个验证向量相关的向量数据。
验证设备42配置用于,至少基于所述m个位数,所述第一组承诺值和第二组承诺值,验证所述m个数值是否对应属于所述m个目标范围。
在一个实施例中,第一设备41可进一步包括以下模块,从而实现其功能。具体的,第一设备41可以包括:
第一获取模块411,配置为获得与第一账户的区块链交易金额有关的m个数值,以及待证明的m个目标范围对应于二进制表示的m个位数;
比特处理模块412,配置为将各数值转换为对应位数的比特串,并通过依序拼接m个比特串得到数值向量;
挑战数获取模块413,配置为获取挑战数组;
第一承诺模块414,配置为根据所述数值向量,所述m个位数,以及所述挑战数组,生成两个向量多项式及其内积产生的结果多项式,并基于所述结果多项式的系数,生成第一组承诺值;
变量值获取模块415,配置为获取随机的变量值x;
第二承诺模块416,配置为将所述变量值x代入所述两个向量多项式和结果多项式,得到两个验证向量和结果值,并生成第二组承诺值,其中至少包括所述结果值和与所述两个验证向量相关的向量数据。
通过以上区块链系统,可以实现基于范围证明的隐私交易,其中支持针对多个数值、多个不同范围聚合的零知识范围证明。
根据又一方面的实施例,提供了一种保护隐私的数据验证系统。图5示出根据一个实施例的数据验证系统的示意图,其中包括第一设备51,和验证设备52。在一个例子中,第一设备51例如可以是联邦学习场景下的数据提供方,验证设备52可以是模型训练方。在另一个例子中,第一设备51和验证设备52可以是多方安全计算的参与方。
为进行保护隐私的数据验证,第一设备51配置用于,获得待证明的m个数值,以及待证明的m个目标范围对应于二进制表示的m个位数;将各数值转换为对应位数的比特串,并通过依序拼接m个比特串得到数值向量;获取挑战数组;根据所述数值向量,所述m个位数,以及所述挑战数组,生成两个向量多项式及其内积产生的结果多项式,并基于所述结果多项式的系数,生成第一组承诺值;获取随机的变量值x;将所述变量值x代入所述两个向量多项式和结果多项式,得到两个验证向量和结果值,并生成第二组承诺值,其中至少包括所述结果值和与所述两个验证向量相关的向量数据。
验证设备52配置用于,至少基于所述m个位数,所述第一组承诺值和第二组承诺值,验证所述m个数值是否对应属于所述m个目标范围。
通过以上数据验证系统,可以实现基于范围证明的数据验证,其中支持针对多个数值、多个不同范围聚合的零知识范围证明。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行图2中第一设备和/或验证设备中执行的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现图2中第一设备和/或验证设备中执行的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (20)

1.一种在区块链中基于范围证明实现隐私交易的方法,包括:
第一账户所在的第一设备获得与第一账户的区块链交易有关的m个数值,以及待证明的m个目标范围对应于二进制表示的m个位数;
将各数值转换为对应位数的比特串,并通过依序拼接m个比特串得到数值向量;
获取挑战数组;
根据所述数值向量,所述m个位数,以及所述挑战数组,生成两个向量多项式及其内积产生的结果多项式,并基于所述结果多项式的系数,生成第一组承诺值;
获取随机的变量值x;
将所述变量值x代入所述两个向量多项式和结果多项式,得到两个验证向量和结果值,并生成第二组承诺值,其中至少包括所述结果值和与所述两个验证向量相关的向量数据;
所述m个位数,所述第一组承诺值和第二组承诺值被发送给验证设备,以使验证设备验证所述m个数值是否对应属于所述m个目标范围。
2.根据权利要求1所述的方法,其中,
获取挑战数组包括,从所述验证设备接收其生成的挑战数组;
获取随机的变量值x包括,从所述验证设备接收其生成的变量值x;
所述方法还包括:向所述验证设备发送所述第一组承诺值和第二组承诺值。
3.根据权利要求1所述的方法,其中,
获取挑战数组包括,根据约定的第一生成器和公开的第一数据源,生成所述挑战数组;
获取随机的变量值x包括,根据约定的第二生成器和公开的第二数据源,生成所述变量值x;
所述方法还包括:所述第一设备至少基于所述第一组承诺值和第二组承诺值,生成零知识证明,并将该零知识证明上传至区块链;
所述验证设备从所述区块链获得所述零知识证明。
4.根据权利要求1所述的方法,其中,所述验证设备为记账节点对应的设备,所述方法还包括,所述验证设备在验证所述m个数值对应属于所述m个目标范围的情况下,将与所述m个数值相关的交易写入区块链。
5.根据权利要求1所述的方法,其中,所述m个数值包括以下中的一项或多项:交易金额,账户余额,基于交易金额和账户余额确定的交易比例值。
6.根据权利要求1所述的方法,其中,所述两个向量多项式分别基于第一基础向量和第二基础向量而生成;其中,所述第一基础向量和第二基础向量的内积结果,等于第一运算值和第二运算值δ之和,其中,第一运算值依赖于所述m个数值,第二运算值仅依赖于所述挑战数组和m个位数。
7.根据权利要求6所述的方法,还包括:
生成与所述数值向量具有预定关系的辅助向量;
生成用于混淆所述数值向量和辅助向量的第一和第二盲化向量;
根据所述数值向量、辅助向量生成基准值A,根据所述第一和第二盲化向量,生成盲化值S。
8.根据权利要求7所述的方法,其中,所述生成两个向量多项式,包括:
基于所述第一基础向量引入第一盲化向量和变量,得到第一向量多项式;
基于所述第二基础向量引入第二盲化向量和变量,得到第二向量多项式。
9.根据权利要求8所述的方法,其中,验证所述m个数值是否对应属于所述m个目标范围,包括:
根据所述基准值A,所述盲化值S,所述挑战数组,所述m个位数,计算得到第一计算值;
根据所述两个验证向量,计算得到第二计算值;
验证第一计算值是否等于第二计算值。
10.根据权利要求6所述的方法,其中,所述挑战数组包括第三挑战数e;生成第一组承诺值,包括:
根据所述结果多项式的一次项系数,本地生成的第一随机数,所述m个数值各自在第一账户的公钥pk下进行加密的m个密文的第二部分,以及所述第三挑战数,生成第一承诺值T1
根据所述结果多项式的二次项系数,本地生成的第二随机数,所述m个密文的第二部分,和所述第三挑战数,生成第二承诺值T2,其中在第一承诺值和第二承诺值计算中,所述第三挑战数e均作用于所述第二部分的指数上。
11.根据权利要求10所述的方法,其中,生成第二组承诺值,包括:
根据所述第一随机数、第二随机数、所述变量值x以及与所述公钥对应的私钥sk,生成验证值τx
确定第二组承诺值,其中至少包括所述验证值τx,所述结果值,所述两个验证向量。
12.根据权利要求11所述的方法,其中,验证所述m个数值是否对应属于所述m个目标范围,包括:
根据所述验证值τx,所述结果值,所述第二运算值δ,所述第三挑战数e,所述m个密文的第二部分的连乘,计算得到第三计算值;其中,所述第三挑战数e作用于所述第二部分的指数上;
根据所述第一承诺值T1,第二承诺值T2,所述变量值x,所述第三挑战数e,所述m个密文的第一部分的连乘,计算得到第四计算值;所述第三挑战数e作用于所述第一部分的指数上;
验证所述第三计算值和第四计算值是否相等。
13.根据权利要求1所述的方法,还包括:
第一设备将所述两个验证向量的维度N处理为偶数;
基于N维的两个验证向量,生成两个中间值,以及N/2维的两个子向量;
所述向量数据包括,所述两个中间值,和所述两个子向量。
14.根据权利要求13所述的方法,其中,第一设备将所述两个验证向量的维度N处理为偶数,包括:
在所述两个验证向量的原始维度为奇数的情况下,获得第三随机值;
将所述第三随机值作为附加向量元素,分别添加到所述两个验证向量,得到维度为偶数的验证向量。
15.根据权利要求13所述的方法,其中,所述两个验证向量包括第一验证向量和第二验证向量;所述生成两个中间值,以及N/2维的两个子向量,包括:
将约定的两个N维的生成向量,以及所述两个验证向量,均拆分为N/2维的前后子向量,基于这些子向量的指数组合和约定参数,计算第一中间值和第二中间值;
获取第四随机值;
根据所述第一验证向量的前后子向量和所述第四随机值,生成N/2维的第一子向量;
根据所述第二验证向量的前后子向量和所述第四随机值,生成N/2维的第二子向量。
16.根据权利要求15所述的方法,其中,验证所述m个数值是否对应属于所述m个目标范围,包括:
基于所述两个生成向量的前后子向量的组合,得到两个生成子向量,并基于两个生成子向量分别与第一子向量和第二子向量的指数运算,得到第五计算值;
根据所述两个生成向量的前后子向量自身分别与所述第一子向量、第二子向量的指数运算组合,计算得到第六计算值;
在第五计算值等于第六计算值的情况下,确定所述第一设备提供的辅助值基于所述两个验证向量而得到,并基于所述辅助值验证所述m个目标范围。
17.一种保护隐私的数据验证的方法,包括:
第一设备获得待证明的m个数值,以及待证明的m个目标范围对应于二进制表示的m个位数;
将各数值转换为对应位数的比特串,并通过依序拼接m个比特串得到数值向量;
获取挑战数组;
根据所述数值向量,所述m个位数,以及所述挑战数组,生成两个向量多项式及其内积产生的结果多项式,并基于所述结果多项式的系数,生成第一组承诺值;
获取随机的变量值x;
将所述变量值x代入所述两个向量多项式和结果多项式,得到两个验证向量和结果值,并生成第二组承诺值,其中至少包括所述结果值和与所述两个验证向量相关的向量数据;
验证设备至少基于所述m个位数,所述第一组承诺值和第二组承诺值,验证所述m个数值是否对应属于所述m个目标范围。
18.根据权利要求17所述的方法,其中,第一设备为联邦学习中的数据提供方;所述验证设备为联邦学习中的模型训练方,所述m个数值为供联邦学习用的样本数据。
19.一种基于范围证明实现隐私交易的区块链系统,至少包括第一账户所在的第一设备,和验证设备,其中:
所述第一设备配置用于,获得与第一账户的区块链交易金额有关的m个数值,以及待证明的m个目标范围对应于二进制表示的m个位数;将各数值转换为对应位数的比特串,并通过依序拼接m个比特串得到数值向量;获取挑战数组;根据所述数值向量,所述m个位数,以及所述挑战数组,生成两个向量多项式及其内积产生的结果多项式,并基于所述结果多项式的系数,生成第一组承诺值;获取随机的变量值x;将所述变量值x代入所述两个向量多项式和结果多项式,得到两个验证向量和结果值,并生成第二组承诺值,其中至少包括所述结果值和与所述两个验证向量相关的向量数据;
所述验证设备配置用于,至少基于所述m个位数,所述第一组承诺值和第二组承诺值,验证所述m个数值是否对应属于所述m个目标范围。
20.一种保护隐私的数据验证系统,包括第一设备和验证设备,其中:
所述第一设备配置用于,获得待证明的m个数值,以及待证明的m个目标范围对应于二进制表示的m个位数;将各数值转换为对应位数的比特串,并通过依序拼接m个比特串得到数值向量;获取挑战数组;根据所述数值向量,所述m个位数,以及所述挑战数组,生成两个向量多项式及其内积产生的结果多项式,并基于所述结果多项式的系数,生成第一组承诺值;获取随机的变量值x;将所述变量值x代入所述两个向量多项式和结果多项式,得到两个验证向量和结果值,并生成第二组承诺值,其中至少包括所述结果值和与所述两个验证向量相关的向量数据;
所述验证设备配置用于,至少基于所述m个位数,所述第一组承诺值和第二组承诺值,验证所述m个数值是否对应属于所述m个目标范围。
CN202111293998.5A 2021-11-03 2021-11-03 基于范围证明实现隐私交易的方法和系统 Pending CN114092242A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111293998.5A CN114092242A (zh) 2021-11-03 2021-11-03 基于范围证明实现隐私交易的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111293998.5A CN114092242A (zh) 2021-11-03 2021-11-03 基于范围证明实现隐私交易的方法和系统

Publications (1)

Publication Number Publication Date
CN114092242A true CN114092242A (zh) 2022-02-25

Family

ID=80298714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111293998.5A Pending CN114092242A (zh) 2021-11-03 2021-11-03 基于范围证明实现隐私交易的方法和系统

Country Status (1)

Country Link
CN (1) CN114092242A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115865426A (zh) * 2022-11-14 2023-03-28 中国联合网络通信集团有限公司 隐私求交方法和装置
CN116389164A (zh) * 2023-05-26 2023-07-04 建信金融科技有限责任公司 数据的检测方法及装置
CN117278213A (zh) * 2023-10-31 2023-12-22 杭州趣链科技有限公司 基于多项式承诺的方法、电子设备及可读存储介质

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070087756A1 (en) * 2005-10-04 2007-04-19 Hoffberg Steven M Multifactorial optimization system and method
CN103795535A (zh) * 2012-10-29 2014-05-14 索尼公司 信息处理设备、信息处理方法和信息处理系统
CN104137471A (zh) * 2012-03-02 2014-11-05 索尼公司 信息处理设备、信息处理方法以及程序
CN106452745A (zh) * 2016-09-27 2017-02-22 中国农业大学 一种秘密数据共享的验证方法及装置
US20170308893A1 (en) * 2016-04-25 2017-10-26 Digital Asset Holdings Asset and obligation management using flexible settlement times
CN109120398A (zh) * 2018-08-03 2019-01-01 河南师范大学 一种基于区块链系统的秘密共享方法与装置
US20190253235A1 (en) * 2018-11-07 2019-08-15 Alibaba Group Holding Limited Blockchain data protection using homomorphic encryption
CN110545279A (zh) * 2019-09-05 2019-12-06 国网区块链科技(北京)有限公司 兼具隐私和监管功能的区块链交易方法、装置及系统
CN110730963A (zh) * 2018-11-27 2020-01-24 阿里巴巴集团控股有限公司 用于信息保护的系统和方法
US20200058022A1 (en) * 2018-11-27 2020-02-20 Alibaba Group Holding Limited System and method for information protection
CN110826089A (zh) * 2019-12-12 2020-02-21 四川大学 一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统
CN110933045A (zh) * 2019-11-08 2020-03-27 中国电子科技网络信息安全有限公司 一种基于承诺的区块链数字资产隐私保护方法
CN111342962A (zh) * 2020-04-01 2020-06-26 支付宝(杭州)信息技术有限公司 一种验证密文消息范围的方法和系统
CN111429138A (zh) * 2020-03-25 2020-07-17 中国工商银行股份有限公司 区块链节点数据安全交互方法及第一交互节点
CN111815322A (zh) * 2020-06-08 2020-10-23 北京邮电大学 一种基于以太坊的具备可选隐私服务的分布式支付方法
CN111885079A (zh) * 2020-07-31 2020-11-03 支付宝(杭州)信息技术有限公司 保护数据隐私的多方联合处理数据的方法及装置
US20210058230A1 (en) * 2018-09-30 2021-02-25 Advanced New Technologies Co., Ltd. Blockchain-based transaction method and apparatus, and remitter device
CN113094633A (zh) * 2021-04-21 2021-07-09 大连理工大学 一种基于标量等式内积的高效范围证明方法

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070087756A1 (en) * 2005-10-04 2007-04-19 Hoffberg Steven M Multifactorial optimization system and method
CN104137471A (zh) * 2012-03-02 2014-11-05 索尼公司 信息处理设备、信息处理方法以及程序
CN103795535A (zh) * 2012-10-29 2014-05-14 索尼公司 信息处理设备、信息处理方法和信息处理系统
US20170308893A1 (en) * 2016-04-25 2017-10-26 Digital Asset Holdings Asset and obligation management using flexible settlement times
CN106452745A (zh) * 2016-09-27 2017-02-22 中国农业大学 一种秘密数据共享的验证方法及装置
CN109120398A (zh) * 2018-08-03 2019-01-01 河南师范大学 一种基于区块链系统的秘密共享方法与装置
US20210058230A1 (en) * 2018-09-30 2021-02-25 Advanced New Technologies Co., Ltd. Blockchain-based transaction method and apparatus, and remitter device
US20190253235A1 (en) * 2018-11-07 2019-08-15 Alibaba Group Holding Limited Blockchain data protection using homomorphic encryption
CN110730963A (zh) * 2018-11-27 2020-01-24 阿里巴巴集团控股有限公司 用于信息保护的系统和方法
US20200058022A1 (en) * 2018-11-27 2020-02-20 Alibaba Group Holding Limited System and method for information protection
CN110545279A (zh) * 2019-09-05 2019-12-06 国网区块链科技(北京)有限公司 兼具隐私和监管功能的区块链交易方法、装置及系统
CN110933045A (zh) * 2019-11-08 2020-03-27 中国电子科技网络信息安全有限公司 一种基于承诺的区块链数字资产隐私保护方法
CN110826089A (zh) * 2019-12-12 2020-02-21 四川大学 一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统
CN111429138A (zh) * 2020-03-25 2020-07-17 中国工商银行股份有限公司 区块链节点数据安全交互方法及第一交互节点
CN111342962A (zh) * 2020-04-01 2020-06-26 支付宝(杭州)信息技术有限公司 一种验证密文消息范围的方法和系统
CN111815322A (zh) * 2020-06-08 2020-10-23 北京邮电大学 一种基于以太坊的具备可选隐私服务的分布式支付方法
CN111885079A (zh) * 2020-07-31 2020-11-03 支付宝(杭州)信息技术有限公司 保护数据隐私的多方联合处理数据的方法及装置
CN113094633A (zh) * 2021-04-21 2021-07-09 大连理工大学 一种基于标量等式内积的高效范围证明方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115865426A (zh) * 2022-11-14 2023-03-28 中国联合网络通信集团有限公司 隐私求交方法和装置
CN115865426B (zh) * 2022-11-14 2024-03-26 中国联合网络通信集团有限公司 隐私求交方法和装置
CN116389164A (zh) * 2023-05-26 2023-07-04 建信金融科技有限责任公司 数据的检测方法及装置
CN116389164B (zh) * 2023-05-26 2023-09-12 建信金融科技有限责任公司 数据的检测方法及装置
CN117278213A (zh) * 2023-10-31 2023-12-22 杭州趣链科技有限公司 基于多项式承诺的方法、电子设备及可读存储介质
CN117278213B (zh) * 2023-10-31 2024-02-09 杭州趣链科技有限公司 基于多项式承诺的方法、电子设备及可读存储介质

Similar Documents

Publication Publication Date Title
US11558398B2 (en) Selectivity in privacy and verification with applications
De Feo et al. SeaSign: compact isogeny signatures from class group actions
Beullens et al. Calamari and Falafl: logarithmic (linkable) ring signatures from isogenies and lattices
Shacham et al. Compact proofs of retrievability
Kim et al. Multi-theorem preprocessing NIZKs from lattices
CN114092242A (zh) 基于范围证明实现隐私交易的方法和系统
Dong et al. Fair private set intersection with a semi-trusted arbiter
Vergnaud Efficient and secure generalized pattern matching via fast fourier transform
JP2007510947A (ja) 多数当事者の効率的な乗算のための方法及び装置
GB2490407A (en) Joint encryption using base groups, bilinear maps and consistency components
JP2011164607A (ja) シンボルシーケンスの編集距離のプライバシーを保護した計算の方法およびシステム
US20230336567A1 (en) Selectivity in privacy and verification with applications
Hazay et al. Computationally secure pattern matching in the presence of malicious adversaries
Nguyen et al. New code-based privacy-preserving cryptographic constructions
Branco et al. A code-based linkable ring signature scheme
Nitulescu Lattice-based zero-knowledge SNARGs for arithmetic circuits
Vitto et al. Dynamic universal accumulator with batch update over bilinear groups
Couteau et al. Non-interactive keyed-verification anonymous credentials
Delgado-Segura et al. Bitcoin private key locked transactions
Kohlweiss et al. Privacy-preserving blueprints
Blanton et al. Improved signature schemes for secure multi-party computation with certified inputs
JP4598269B2 (ja) 楕円曲線上の高速有限体演算
Ma et al. A practical NIZK argument for confidential transactions over account-model blockchain
Blass et al. Iterative oblivious pseudo-random functions and applications
Blazy et al. Anonymous attribute-based designated verifier signature

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination