CN111738857A - 应用于区块链的隐匿支付证明的生成与验证方法及装置 - Google Patents
应用于区块链的隐匿支付证明的生成与验证方法及装置 Download PDFInfo
- Publication number
- CN111738857A CN111738857A CN202010596098.7A CN202010596098A CN111738857A CN 111738857 A CN111738857 A CN 111738857A CN 202010596098 A CN202010596098 A CN 202010596098A CN 111738857 A CN111738857 A CN 111738857A
- Authority
- CN
- China
- Prior art keywords
- sub
- proof
- random number
- anonymous
- generating
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种应用于区块链的隐匿支付证明的生成与验证方法及装置,其中方法为:根据第一随机数、证明承诺因子和第一交易对象,生成隐匿支付证明的第一子部分;根据第二随机数、所述证明承诺因子和第一密钥,生成第二子部分;根据第三随机数、所述证明承诺因子和所述中间凭证因子,生成第三子部分;根据第四随机数、所述证明承诺因子和中间密钥,生成第四子部分;根据所述第一随机数、第三随机数、第五随机数、所述证明承诺因子、所述第一交易对象、所述第一密钥、第二密钥和所述中间密钥,生成第五子部分。上述方法应用于金融科技(Fintech)时,提升了隐匿支付证明的生成效率。
Description
技术领域
本发明涉及金融科技(Fintech)中的区块链(blockchain)领域,尤其涉及一种应用于区块链的隐匿支付证明的生成与验证方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)和区块链(blockchain)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。现有区块链交易的方法中,在验证隐匿支付交易正确性时,需要对匿名权益凭证中的加密对象(如交易金额)进行加法或乘法的代数关系生成隐匿支付证明,并进行验证,从而确定加密对象的正确性。
现有匿名权益凭证的验证过程中,常见的约束关系为乘法约束关系,如约束关系o3=o1*o2,账本1用户A有权益凭证C(o1),账本2用户B有权益凭证C(o2),转账给账本1用户C生成权益凭证C(o3)。目前使用双线性配对的方式构造隐匿支付证明的方式,运算过程较为复杂,而隐匿支付证明的生成和验证都是区块链交易中的重要环节,双线性配对的方式构造隐匿支付证明会区块链交易的效率较低。因此,目前区块链交易的效率较低是一个亟待解决的问题。
发明内容
本发明提供一种应用于区块链的隐匿支付证明生成与验证方法及装置,解决了现有技术中区块链交易的效率较低的问题。
第一方面,本发明提供一种应用于区块链的隐匿支付证明生成方法,包括:根据第一随机数、证明承诺因子和第一交易对象,生成隐匿支付证明的第一子部分;所述隐匿支付证明用于验证第一匿名凭证中的第一交易对象、第二匿名凭证中的第二交易对象满足中间匿名凭证中的中间凭证因子所约束的预设关系;根据第二随机数、所述证明承诺因子和第一密钥,生成所述隐匿支付证明的第二子部分;所述第一密钥为用于生成所述第一匿名凭证的密钥;根据第三随机数、所述证明承诺因子和所述中间凭证因子,生成所述隐匿支付证明的第三子部分;根据第四随机数、所述证明承诺因子和中间密钥,生成所述隐匿支付证明的第四子部分;所述中间密钥为用于生成所述中间匿名凭证的密钥;根据所述第一随机数、所述第三随机数、第五随机数、所述证明承诺因子、所述第一交易对象、所述第一密钥、第二密钥和所述中间密钥,生成所述隐匿支付证明的第五子部分;所述第二密钥为用于生成所述第二匿名凭证的密钥。
上述方式下,根据随机数、证明承诺因子、中间凭证因子、密钥、交易对象等分别生成隐匿支付证明的第一子部分、第二子部分、第三子部分、第四子部分和第五子部分,由于上述数据在运算过程中并未涉及双线性构造配对,各数据间的运算均是一维运算,因此,运算效率相对于双线性配对的零知识证明构造方式更高,提升了区块链中交易的效率。
可选的,所述根据第一随机数、证明承诺因子和第一交易对象,生成隐匿支付证明的第一子部分;包括:m1=a-c·v1;其中,m1为所述第一子部分,a为所述第一随机数,c为所述证明承诺因子,v1为所述第一交易对象;所述根据第二随机数、所述证明承诺因子和第一密钥,生成所述隐匿支付证明的第二子部分;包括:m2=b-c·r1;其中,m2为所述第二子部分,b为所述第二随机数,r1为所述第一密钥;所述根据第三随机数、所述证明承诺因子和所述中间凭证因子,生成所述隐匿支付证明的第三子部分;包括:m3=d-c·e;其中,m3为所述第三子部分,d为所述第三随机数,e为所述中间凭证因子;所述根据第四随机数、所述证明承诺因子和中间密钥,生成所述隐匿支付证明的第四子部分;包括:m4=f-c·re;其中,m4为所述第四子部分,f为所述第四随机数,re为所述中间密钥;所述根据所述第一随机数、所述第三随机数、第五随机数、所述证明承诺因子、所述第一交易对象、所述第一密钥、第二密钥和所述中间密钥,生成所述隐匿支付证明的第五子部分;包括:m5=g-c2·r2-c·a·re+c2·v1·re-c·d·r1+c2·e·r1;其中,m5为所述第五子部分,g为所述第五随机数,r2为所述第二密钥。
上述方法中,通过简单的加减乘运算分别得到所述第一子部分、所述第二子部分、所述第三子部分、所述第四子部分和所述第五子部分,从而提供了一种高效运算得到所述隐匿支付证明的方法。
可选的,所述证明承诺因子按照以下方式得到:根据所述第一随机数、第一生成元、所述第二随机数和第二生成元,确定第一中间变量;所述第一生成元和所述第二生成元为椭圆曲线的任意两个生成元;根据所述第三随机数、所述第一生成元、所述第四随机数和所述第二生成元,确定第二中间变量;根据所述第一随机数、所述第三随机数、所述第一生成元、所述第五随机数和所述第二生成元,确定第三中间变量;至少将所述第一中间变量、所述第二中间变量和所述第三中间变量作为预设哈希算法的输入,将所述预设哈希算法的输出值,作为所述证明承诺因子。
上述方式下,首先随机得到所述第一中间变量、所述第二中间变量和所述第三中间变量,并通过得到的这三个公开且随机的中间变量,通过单向运算的预设哈希算法得到所述证明承诺因子,从而将这三个公开且随机的中间变量与所述证明承诺因子绑定,增加了所述证明承诺因子的不可篡改性。
可选的,所述根据第一随机数、证明承诺因子和第一交易对象,生成隐匿支付证明的第一子部分之前;还包括:生成所述第一匿名凭证的所有权证明;将所述第一匿名凭证的所有权证明发送至中间交易方;所述第一匿名凭证的所有权证明用于所述中间交易方验证所有权通过之后,触发所述隐匿支付证明的生成。
上述方式下,需要先生成所述第一匿名凭证的所有权证明后,并由所述中间交易方验证所述区块链用户通过之后,才所述隐匿支付证明的生成,从而增加了交易的安全性。
第二方面,本发明提供一种应用于区块链的隐匿支付证明验证方法,包括:获取第一匿名凭证、第二匿名凭证、中间匿名凭证、证明承诺因子和隐匿支付证明;所述隐匿支付证明包括第一子部分、第二子部分、第三子部分、第四子部分和第五子部分;所述隐匿支付证明用于验证所述第一匿名凭证中的第一交易对象、所述第二匿名凭证中的第二交易对象是否满足所述中间匿名凭证中的中间凭证因子所约束的预设关系;根据所述第一子部分、第一生成元、所述第二子部分、第二生成元、所述证明承诺因子和所述第一匿名凭证,确定第一校验部分;所述第一生成元和所述第二生成元为椭圆曲线的任意两个生成元;根据所述第三子部分、所述第一生成元、所述第四子部分、所述第二生成元、所述证明承诺因子和所述中间匿名凭证,确定第二校验部分;根据所述第一子部分、所述第三子部分、所述第一生成元、所述第五子部分、所述第二生成元、所述证明承诺因子所述第一匿名凭证、所述第二匿名凭证和所述中间匿名凭证,确定第三校验部分;若确定所述第一校验部分、所述第二校验部分和所述第三校验部分按照预设哈希算法得到的输出值与所述证明承诺因子相等,则验证所述隐匿支付证明通过。
可选的,所述根据所述第一子部分、第一生成元、所述第二子部分、第二生成元、所述证明承诺因子和所述第一匿名凭证,确定第一校验部分;包括:t1’=m1*G+m2*H+c*C1;其中,t1’为所述第一校验部分,m1为所述第一子部分,G为所述第一生成元,m2为所述第二子部分,H为所述第二生成元,c为所述证明承诺因子,C1为所述第一匿名凭证;所述根据所述第三子部分、所述第一生成元、所述第四子部分、所述第二生成元、所述证明承诺因子和所述中间匿名凭证,确定第二校验部分;包括:t2’=m3*G+m4*H+c*Ce;其中,m3为所述第三子部分,m4为所述第四子部分,Ce为所述中间匿名凭证;所述根据所述第一子部分、所述第三子部分、所述第一生成元、所述第五子部分、所述第二生成元、所述证明承诺因子所述第一匿名凭证、所述第二匿名凭证和所述中间匿名凭证,确定第三校验部分;包括:t3’=(m1m3)*G+m5*H+c2*C2+cm1*Ce+cm3*C1;其中,m5为所述第五子部分,C2为所述第二匿名凭证。
上述第二方面及第二方面各个可选方法的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第三方面,本发明提供一种应用于区块链的隐匿支付证明生成装置,包括:第一生成模块,用于根据第一随机数、证明承诺因子和第一交易对象,生成隐匿支付证明的第一子部分;所述隐匿支付证明用于验证第一匿名凭证中的第一交易对象、第二匿名凭证中的第二交易对象满足中间匿名凭证中的中间凭证因子所约束的预设关系;以及用于根据第二随机数、所述证明承诺因子和第一密钥,生成所述隐匿支付证明的第二子部分;所述第一密钥为用于生成所述第一匿名凭证的密钥;以及用于根据第三随机数、所述证明承诺因子和所述中间凭证因子,生成所述隐匿支付证明的第三子部分;以及用于根据第四随机数、所述证明承诺因子和中间密钥,生成所述隐匿支付证明的第四子部分;所述中间密钥为用于生成所述中间匿名凭证的密钥;第二生成模块,用于根据所述第一随机数、所述第三随机数、第五随机数、所述证明承诺因子、所述第一交易对象、所述第一密钥、第二密钥和所述中间密钥,生成所述隐匿支付证明的第五子部分;所述第二密钥为用于生成所述第二匿名凭证的密钥。
可选的,所述第一生成模块具体用于按照以下方式生成所述第一子部分、所述第二子部分、所述第三子部分、所述第四子部分:m1=a-c·v1;其中,m1为所述第一子部分,a为所述第一随机数,c为所述证明承诺因子,v1为所述第一交易对象;m2=b-c·r1;其中,m2为所述第二子部分,b为所述第二随机数,r1为所述第一密钥;m3=d-c·e;其中,m3为所述第三子部分,d为所述第三随机数,e为所述中间凭证因子;m4=f-c·re;其中,m4为所述第四子部分,f为所述第四随机数,re为所述中间密钥;m5=g-c2·r2-c·a·re+c2·v1·re-c·d·r1+c2·e·r1;其中,m5为所述第五子部分,g为所述第五随机数,r2为所述第二密钥。
可选的,所述第一生成模块还用于:根据所述第一随机数、第一生成元、所述第二随机数和第二生成元,确定第一中间变量;所述第一生成元和所述第二生成元为椭圆曲线的任意两个生成元;根据所述第三随机数、所述第一生成元、所述第四随机数和所述第二生成元,确定第二中间变量;根据所述第一随机数、所述第三随机数、所述第一生成元、所述第五随机数和所述第二生成元,确定第三中间变量;至少将所述第一中间变量、所述第二中间变量和所述第三中间变量作为预设哈希算法的输入,将所述预设哈希算法的输出值,作为所述证明承诺因子。
可选的,所述第一生成模块还用于:生成所述第一匿名凭证的所有权证明;将所述第一匿名凭证的所有权证明发送至中间交易方;所述第一匿名凭证的所有权证明用于所述中间交易方验证所有权通过之后,触发所述隐匿支付证明的生成。
上述第三方面及第三方面各个可选装置的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第四方面,本发明提供一种应用于区块链的隐匿支付证明验证装置,包括:获取模块,用于获取第一匿名凭证、第二匿名凭证、中间匿名凭证、证明承诺因子和隐匿支付证明;所述隐匿支付证明包括第一子部分、第二子部分、第三子部分、第四子部分和第五子部分;所述隐匿支付证明用于验证所述第一匿名凭证中的第一交易对象、所述第二匿名凭证中的第二交易对象是否满足所述中间匿名凭证中的中间凭证因子所约束的预设关系;验证模块,用于根据所述第一子部分、第一生成元、所述第二子部分、第二生成元、所述证明承诺因子和所述第一匿名凭证,确定第一校验部分;所述第一生成元和所述第二生成元为椭圆曲线的任意两个生成元;根据所述第三子部分、所述第一生成元、所述第四子部分、所述第二生成元、所述证明承诺因子和所述中间匿名凭证,确定第二校验部分;根据所述第一子部分、所述第三子部分、所述第一生成元、所述第五子部分、所述第二生成元、所述证明承诺因子所述第一匿名凭证、所述第二匿名凭证和所述中间匿名凭证,确定第三校验部分;若确定所述第一校验部分、所述第二校验部分和所述第三校验部分按照预设哈希算法得到的输出值与所述证明承诺因子相等,则验证所述隐匿支付证明通过。
可选的,所述验证模块具体用于按照以下方式验证所述隐匿支付证明通过:t1’=m1*G+m2*H+c*C1;其中,t1’为所述第一校验部分,m1为所述第一子部分,G为所述第一生成元,m2为所述第二子部分,H为所述第二生成元,c为所述证明承诺因子,C1为所述第一匿名凭证;t2’=m3*G+m4*H+c*Ce;其中,m3为所述第三子部分,m4为所述第四子部分,Ce为所述中间匿名凭证;t3’=(m1m3)*G+m5*H+c2*C2+cm1*Ce+cm3*C1;其中,m5为所述第五子部分,C2为所述第二匿名凭证。
第五方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面或第二方面及各个可选的方法。
第六方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面或第二方面及各个可选的方法。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为区块链的结构示意图;
图2为本发明实施例提供的一种应用于区块链的隐匿支付证明生成方法的步骤流程示意图;
图3为本发明实施例提供的一种应用于区块链的隐匿支付证明生成装置的结构示意图;
图4为本发明实施例提供的一种应用于区块链的隐匿支付证明验证装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面首先列出本申请中出现的名词释义。
区块链:如图1所示,区块链是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的Hash值,通过这种方式组成一条链。区块链的核心理念有两个,一个是密码学技术,另一个是去中心化思想,基于这两个理念做到区块链上的历史信息无法被篡改。一个区块由块头和块体组成,其中块头定义包括该区块高度h,上一个区块的hash指prevHash等重要字段,而块体主要存储交易数据。
节点:对等网络中的每一个参与者就是一个节点,节点参与网络组建和数据交换。在区块链对等网络中,一个节点是指一个具有唯一身份的参与者,该节点具有一份完整的账本拷贝,具有参与区块链对等网络共识和账本维护的能力。
共识算法:区块链对等网络中的各个节点通过一种算法对一批交易进行确认,并确保所有节点对这批数据具有一致的确认结果,这种算法就是区块链的共识算法。
数字证书:数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。它是由权威机构——CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。
数字信封技术:数字信封技术同时利用了非对称加密技术的安全性和对称加密技术的高性能特征,其中非对称加密技术用于密钥交换,对称加密技术用于保障数据的机密性,以发送方Alice发送数据Data给Bob为例,主要包括以下流程:(1)Alice端产生一串随机对称密钥DEK,并采用对称加密算法对Data进行加密,产生密文Cryp_Data;(2)Alice端用Bob的公钥Puk_b加密对称密钥DEK,生成Cryp_Key;(3)Alice端用Alice的私钥Prk_a产生Cryp_Data和Cryp_Key的签名Sig(Cryp_Data&&Cryp_Key);(4)Alice将[Cryp_Data,Cryp_Key,Sig(Cryp_Data&&Cryp_Key)]发送给Bob;(5)Bob接收到数据后,首先用Alice公钥Pub_a验证签名Sig(Cryp_Data&&Cryp_Key)的有效性,若签名验证有效,则用Bob私钥Prk_b解密Cryp_Key,获取对称密钥DEK;(6)Bob获取对称密钥DEK后,解密Cryp_Data获取明文数据Data。通过密码信封技术,Alice和Bob(通信双方)可在不安全的信道上进行机密数据交换。
机密交易:机密交易是一种在区块链中账户之间进行转账操作时,完全隐匿交易金额,同时允许区块链节点对交易数据的正确性进行验证的交易。如一笔转账a拆分为b+c,允许节点在验证a=b+c,且b>0,c>0。我们使用perdensercommitent和bulletproofs来实现机密交易。
隐匿支付:隐匿支付是一种特殊的支付方式,特点如下:1.身份隐匿:权益和权益拥有者在进行转账时可以不披露自己的身份,但是可以证实自己针对权益的所有权,并且可以给出权益与自己身份关联的证明。2.抗双花:同一份权益凭证不能被花费两次。3.权益隐匿:除了权益拥有者,以及交易发起者,其他认不能知道权益凭证的内容,如交易金额。4.交易隐匿:除了交易参与者,第三方无法获知交易的具体细节,如交易参与方的信息,交易发起时间,签名等。注意,交易上链时间公开。5.监管友好:监管方可以在交易发生后的时刻获取必要的仲裁信息。
隐匿支付的基本功能简介如下:开具:经过金融机构进行必要的线上线下审核后,作为可兑现的固定金额的凭证,进行权益凭证开具。兑现:每份流通的权益凭证凭会绑定一个权益兑现服务方公钥,权益拥有者凭借权益凭证至权益兑现服务方进行兑现,同时该权益凭证作废。金额支付:拆分:每份权益凭证可以被拆分成多份,拆分后的多张权益凭证总面值等同于原面值。合并:可以通过业务侧支付前实现。多份权益凭证可以被合并称为一份。合并后的权益凭证总面值等于原面值。权益支付:字符串类型的权益凭证可以全部转让给他人。
金融科技(Fintech)是指将信息技术融入金融领域后,为金融领域带来的一种新的创新科技,通过使用先进的信息技术辅助实现金融作业、交易执行以及金融系统改进,可以提升金融系统的处理效率、业务规模,并可以降低成本和金融风险。现有区块链交易的方法中,在验证隐匿支付交易正确性时,需要对匿名权益凭证中的加密对象(如交易金额)进行加法或乘法的代数关系生成隐匿支付证明的,并进行验证,从而确定加密对象的正确性。目前使用双线性配对的方式构造隐匿支付证明的方式,运算过程较为复杂,导致区块链交易的效率较低。因此,采用何种方式提升区块链交易的效率是金融科技领域亟待解决的问题。
为此,如图2所示,本申请实施例提供一种应用于区块链的交易方法。
步骤201:根据第一随机数、证明承诺因子和第一交易对象,生成隐匿支付证明的第一子部分。
步骤202:根据第二随机数、所述证明承诺因子和第一密钥,生成所述隐匿支付证明的第二子部分。
所述第一密钥为用于生成所述第一匿名凭证的密钥。
步骤203:根据第三随机数、所述证明承诺因子和所述中间凭证因子,生成所述隐匿支付证明的第三子部分。
步骤204:根据第四随机数、所述证明承诺因子和中间密钥,生成所述隐匿支付证明的第四子部分。
所述中间密钥为用于生成所述中间匿名凭证的密钥。
步骤205:根据所述第一随机数、所述第三随机数、第五随机数、所述证明承诺因子、所述第一交易对象、所述第一密钥、第二密钥和所述中间密钥,生成所述隐匿支付证明的第五子部分。
所述第二密钥为用于生成所述第二匿名凭证的密钥。
需要说明的是,步骤201~和步骤205并不是先后约束的关系,可以异步执行。步骤201~步骤205的执行主体可以为区块链的客户端,也可以为区块链节点,运行在一台主机上。所述隐匿支付证明可以用于验证第一匿名凭证中的第一交易对象、第二匿名凭证中的第二交易对象满足中间匿名凭证中的中间凭证因子所约束的预设关系。步骤201~和步骤205中的所述隐匿支付证明中每个子部分都是通过非双线性配对的方式得到的,如初等函数运算。
其中,上述提到的各元素具体可以为:所述第一交易对象为第一类型的交易对象;所述第二交易对象为第二类型的交易对象;所述中间凭证因子是中间交易方在中间账本定义的。
生成所述隐匿支付证明后,可以将所述隐匿支付证明包含在所述凭证交易数据中。具体来说,所述凭证交易数据可以包括:所述第一匿名凭证;所述第二匿名凭证;所述中间匿名凭证;所述隐匿支付证明;证明承诺因子;所述凭证发起账本用于记录所述第一类型的匿名凭证;所述凭证接收账本用于记录所述第二类型的匿名凭证。
并且,第一匿名凭证用于表征凭证发起账本具有第一交易对象的权益;第二匿名凭证用于表征凭证接收账本具有第二交易对象的权益;中间匿名凭证用于表征中间账本具有中间凭证因子的权益;所述第一交易对象为凭证发起账本拟销毁并按照所述中间凭证因子转化为所述第二交易对象的交易对象;所述第二交易对象为凭证接收账本拟新增并由所述第一交易对象按照所述中间凭证因子生成的交易对象;所述中间凭证因子具体为在所述中间账本中规定的交易对象间转化关系的因子。
其中,上述匿名凭证(包括第一匿名凭证、第二匿名凭证和中间匿名凭证)都可以按照以下方式生成C=vG+rH,其中G和H为椭圆曲线上的两个生成元,v为交易对象(如凭证金额),r为凭证密钥,r可以为256位随机数。
具体来说匿名凭证可以按照以下方式生成:
C1=v1*G+r1*H,Ce=e*G+re*H,C2=v2*G+r2*H,其中v1*e=v2。其中,C1为第一匿名凭证,v1为第一交易对象,r1为第一密钥;Ce为中间匿名凭证,e为中间凭证因子,re为中间密钥;C2为第二匿名凭证,v2为第二交易对象,r2为第二密钥。
区块链用户可以作为证明生成方,根据匿名凭证C1,C2,Ce以及对应随机数,生成所述隐匿支付证明。
区块链节点可以作为证明验证方,可以根据匿名凭证C1,C2,Ce和所述隐匿支付证明,在不知道凭证金额v及随机数r的情况下验证C1,C2,Ce中的金额满足约束关系v1*e=v2。需要说明的是,区块链中的每个区块链节点都可以成为证明验证方。
步骤201~步骤205之后,可以发送凭证交易数据至隐匿支付交易相关的区块链节点,用于相关的区块链节点对凭证发起账本和凭证接收账本进行操作。
步骤201~步骤205中的应用场景,举例来说,在隐匿跨境支付示例中,用户A在凭证发起账本中拥有100人民币,对应密钥r1,C1=100*G+r1*H,中间交易方为汇率管理方,拥有中间账本(汇率账本),在汇率账本上定义了汇率e为10,对应密钥re,密钥凭证Ce=10*G+re*H,生成新的权益凭证C2=1000*G+r2*H,将100人民币转换为1000日元,实现整个隐匿跨境支付流程。
需要说明的是,在业务使用场景中,除验证乘法约束关系外,还需要更多参与方与更多约束,从而实现整个转账逻辑的正确性,参与方具体可以包括:
执行交易方:执行交易方包括隐匿支付行为的发起方和接收方。发起方和接收方在各自的凭证账本(凭证发起账本和凭证接收账本)上拥有匿名权益凭证。发起方和接收方分别拥有一对公私钥对,用以生成数字签名Sig,证明自己的身份。
中间交易方(汇率管理方):汇率管理方为隐匿支付行为汇率凭证的所有方,在转账过程中管理匿名汇率凭证。汇率管理方也拥有一对公私钥对,用以生成数字签名Sig,证明自己的身份。
凭证账本:包括凭证发起账本和凭证接收账本。凭证账本记录了隐匿支付的权益凭证,权益凭证的表述方式为C=v*G+r*H,其中G和H为椭圆曲线上的生成元,v为凭证对应金额,r为凭证密钥。
汇率账本:汇率账本记录了隐匿支付的中间凭证因子(凭证汇率因子),表示为C=e*G+re*H,e为汇率,r为凭证密钥,凭证账本中的凭证在一些时刻需要将凭证中的金额与汇率相乘,根据凭证账本上现有权益凭证进行转账。
需要说明的是,在步骤201之前,可以先进行交易初始化,一种可选的实施方式为:
生成所述第一匿名凭证的所有权证明;将所述第一匿名凭证的所有权证明发送至所述中间交易方。
具体来说,所述第一匿名凭证的所有权证明可以用于:所述中间交易方验证所述区块链用户通过之后,触发所述中间交易方通过所述中间账本以及所述区块链节点通过所述凭证发起账本和所述凭证接收账本执行转账交易。上述实施方式的执行主体可以为区块链用户。
举例来说,上述实施方式涉及到的过程具体可以如下:
(1-1)用户A(区块链用户)对第一匿名凭证C1生成第一匿名凭证的所有权证明c1_own_proof,生成对第一匿名凭证的所有权证明的数字签名sig_A(c1_own_proof),并将sig_A,c1_own_proof发送给汇率管理方E。
(1-2)汇率管理方E对中间匿名凭证Ce而生成所有权证明ce_own_proof,计算派生隐私re*H,生成数字签名sig_B(ce_own_proof,c1_own_proof,re*H),将sig_A,sig_E,ce_own_proof,c1_own_proof,re*H通过区块链节点发送给凭证账本以及通过中间交易方发送给汇率账本。需要说明的是,中间交易方可以和区块链节点为同一实体,也可以为区块链外的实体。
(1-3)中间交易方通过汇率账本验证sig_A,sig_E,ce_own_proof,锁定Ce,记录re*H,将Ce发送给凭证账本。
(1-4)区块链节点通过凭证账本验证sig_A,sig_E,c1_own_proof,锁定C1,记录Ce。
需要说明的是,交易初始化还有其他的步骤,在步骤201之前,一种可选的实施方式为:
获取所述中间凭证因子和中间密钥以及所述中间交易方对所述中间凭证因子和所述中间密钥的签名;若所述区块链用户验证所述中间交易方对所述中间凭证因子和所述中间密钥的签名失败,则向所述中间交易方发送凭证更新请求;所述凭证更新请求用于指示所述中间交易方生成中间匿名更新凭证。
上述可选实施方式涉及到的过程具体可以如下:
(2-1)汇率管理方将中间凭证因子e,中间凭证密钥re,签名Sig_E(e,re)发送给用户A。
(2-2)用户A验证Sig_E,验证失败则进入失败处理。验证成功后,生成随机数r2,计算权益凭证C2=v1e*G+r2*H。对权益凭证C2生成所有权证明,同时对C1,C2,Ce生成隐匿支付证明balance_proof(C1,Ce,C2)。
更具体地,步骤201~步骤205可以按照以下方式(以下称为m1~m5实施方式)执行:
m1=a-c·v1;其中,m1为所述第一子部分,a为所述第一随机数,c为所述证明承诺因子,v1为所述第一交易对象。
需要说明的是,所述第一子部分的生成方式并不唯一,还可以有多种方式,如选取m1=f1(a)-f3(c)·v1,其中,f1、f3表示整数映射关系,即任何整数经f1、f3映射得到的数仍为整数。
m2=b-c·r1;其中,m2为所述第二子部分,b为所述第二随机数,r1为所述第一密钥。
需要说明的是,所述第二子部分的生成方式并不唯一,还可以有多种方式,如选取m2=f2(b)-f3(c)·r1,其中,f2表示整数映射关系,即任何整数经f2映射得到的数仍为整数。
m3=d-c·e;其中,m3为所述第三子部分,d为所述第三随机数,e为所述中间凭证因子。
需要说明的是,所述第三子部分的生成方式并不唯一,还可以有多种方式,如选取m3=f4(d)-f3(c)·e,其中,f4表示整数映射关系。
m4=f-c·re。其中,m4为所述第四子部分,f为所述第四随机数,re为所述中间密钥。
需要说明的是,所述第四子部分的生成方式并不唯一,还可以有多种方式,如选取m4=f5(f)-f3(c)·re,其中,f5表示整数映射关系。
m5=g-c2·r2-c·a·re+c2·v1·re-c·d·r1+c2·e·r1;其中,m5为所述第五子部分,g为所述第五随机数,r2为所述第二密钥。
需要说明的是,所述第五子部分的生成方式并不唯一,还可以有多种方式,如选取m5=f6(g)-f3(c)2·r2-f3(c)·f1(a)·re+f3(c)2·v1·re-f3(c)·f4(d)·r1+f3(c)2·e·r1,f6表示整数映射关系。
其中,所述证明承诺因子可以按照以下方式得到:
所述区块链用户根据所述第一随机数、第一生成元、所述第二随机数和第二生成元,确定第一中间变量;所述第一生成元和所述第二生成元为椭圆曲线的任意两个生成元。
所述区块链用户根据所述第三随机数、所述第一生成元、所述第四随机数和所述第二生成元,确定第二中间变量。
所述区块链用户根据所述第一随机数、所述第三随机数、所述第一生成元、所述第五随机数和所述第二生成元,确定第三中间变量。
所述区块链用户至少将所述第一中间变量、所述第二中间变量和所述第三中间变量作为预设哈希算法的输入,将所述预设哈希算法的输出值,作为所述证明承诺因子。
更具体地,可以按照以下方式生成证明承诺因子:
t1=a*G+b*H,te=d*G+e*H,t2=(ad)*G+f*H。
c=Hash(G,H,C1,Ce,C2,t1,t2,t3),Hash表示所述预设哈希算法。证明承诺因子可由区块链用户生成。
需要说明的是,可以按照以下方式验证所述隐匿支付证明通过:
根据所述第一子部分、第一生成元、所述第二子部分、第二生成元、所述证明承诺因子和所述第一匿名凭证,确定第一校验部分;所述第一生成元和所述第二生成元为椭圆曲线的任意两个生成元。
根据所述第三子部分、所述第一生成元、所述第四子部分、所述第二生成元、所述证明承诺因子和所述中间匿名凭证,确定第二校验部分。
根据所述第一子部分、所述第三子部分、所述第一生成元、所述第五子部分、所述第二生成元、所述证明承诺因子所述第一匿名凭证、所述第二匿名凭证和所述中间匿名凭证,确定第三校验部分。
若确定所述第一校验部分、所述第二校验部分和所述第三校验部分按照预设哈希算法得到的输出值与所述证明承诺因子相等,则验证所述隐匿支付证明通过。
上述实施方式的执行主体可以为收到隐匿支付证明的区块链节点,区块链中每个区块链节点都可以对隐匿支付证明验证,并在区块链上共识,后续可统一对凭证发起账本和凭证接收账本做修改。
基于m1~m5实施方式,更具体地,所述区块链节点可以按照以下方式验证所述隐匿支付证明通过:
t1’=m1*G+m2*H+c*C1,t2’=m3*G+m4*H+c*Ce,
t3’=(m1m3)*G+m5*H+c2*C2+cm1*Ce+cm3*C1。
验证c是否与Hash(G,H,C1,Ce,C2,t1’,t2’,t3’)相等,Hash表示所述预设哈希算法。
需要说明的是,若验证所述隐匿支付证明通过,则可以执行如下操作:
将所述第二匿名凭证写入凭证接收账本,并在凭证发起账本中将所述第一匿名凭证设置为无效;所述凭证发起账本用于记录所述第一类型的匿名凭证;所述凭证接收账本用于记录所述第二类型的匿名凭证。
向中间交易方发送交易成功通知;所述交易成功通知用于指示所述中间交易方将所述中间匿名凭证设置为无效。
具体来说,上述实施方式涉及的具体过程可以为:
(3-1)凭证账本对使用C1,Ce,C2,balance_proof验证签名Sig_A2,并使用C1,Ce对比锁定的C1和Ce。
(3-2)凭证账本使用C1,Ce,C2验证balance_proof。
(3-3)凭证账本验证成功后,将匿名凭证C2记录入账本,将C1标记为无效,通知汇率账本。
(3-4)汇率账本生成新的汇率凭证Ce*=eG+(re+re*)H,将Ce标记为无效。
(3-5)当凭证账本出现验证失败时,请求汇率账本生成新的汇率凭证Ce*=eG+(re+re*)H,将Ce标记为无效,处理完成后,解除对C1的锁定。
(3-6)当凭证账本出现验证失败时,生成新的汇率凭证Ce*=eG+(re+re*)H,将Ce标记为无效,处理完成后,请求凭证账本解除对C1的锁定。
如图3所示,本发明提供一种应用于区块链的隐匿支付证明生成装置,包括:第一生成模块301,用于根据第一随机数、证明承诺因子和第一交易对象,生成隐匿支付证明的第一子部分;所述隐匿支付证明用于验证第一匿名凭证中的第一交易对象、第二匿名凭证中的第二交易对象满足中间匿名凭证中的中间凭证因子所约束的预设关系;以及用于根据第二随机数、所述证明承诺因子和第一密钥,生成所述隐匿支付证明的第二子部分;所述第一密钥为用于生成所述第一匿名凭证的密钥;以及用于根据第三随机数、所述证明承诺因子和所述中间凭证因子,生成所述隐匿支付证明的第三子部分;以及用于根据第四随机数、所述证明承诺因子和中间密钥,生成所述隐匿支付证明的第四子部分;所述中间密钥为用于生成所述中间匿名凭证的密钥;第二生成模块302,用于根据所述第一随机数、所述第三随机数、第五随机数、所述证明承诺因子、所述第一交易对象、所述第一密钥、第二密钥和所述中间密钥,生成所述隐匿支付证明的第五子部分;所述第二密钥为用于生成所述第二匿名凭证的密钥。
可选的,所述第一生成模块301具体用于按照以下方式生成所述第一子部分、所述第二子部分、所述第三子部分、所述第四子部分:m1=a-c·v1;其中,m1为所述第一子部分,a为所述第一随机数,c为所述证明承诺因子,v1为所述第一交易对象;m2=b-c·r1;其中,m2为所述第二子部分,b为所述第二随机数,r1为所述第一密钥;m3=d-c·e;其中,m3为所述第三子部分,d为所述第三随机数,e为所述中间凭证因子;m4=f-c·re;其中,m4为所述第四子部分,f为所述第四随机数,re为所述中间密钥;m5=g-c2·r2-c·a·re+c2·v1·re-c·d·r1+c2·e·r1;其中,m5为所述第五子部分,g为所述第五随机数,r2为所述第二密钥。
可选的,所述第一生成模块301还用于:根据所述第一随机数、第一生成元、所述第二随机数和第二生成元,确定第一中间变量;所述第一生成元和所述第二生成元为椭圆曲线的任意两个生成元;根据所述第三随机数、所述第一生成元、所述第四随机数和所述第二生成元,确定第二中间变量;根据所述第一随机数、所述第三随机数、所述第一生成元、所述第五随机数和所述第二生成元,确定第三中间变量;至少将所述第一中间变量、所述第二中间变量和所述第三中间变量作为预设哈希算法的输入,将所述预设哈希算法的输出值,作为所述证明承诺因子。
可选的,所述第一生成模块301还用于:生成所述第一匿名凭证的所有权证明;将所述第一匿名凭证的所有权证明发送至中间交易方;所述第一匿名凭证的所有权证明用于所述中间交易方验证所有权通过之后,触发所述隐匿支付证明的生成。
如图4所示,本发明提供一种应用于区块链的隐匿支付证明验证装置,包括:获取模块401,用于获取第一匿名凭证、第二匿名凭证、中间匿名凭证、证明承诺因子和隐匿支付证明;所述隐匿支付证明包括第一子部分、第二子部分、第三子部分、第四子部分和第五子部分;所述隐匿支付证明用于验证所述第一匿名凭证中的第一交易对象、所述第二匿名凭证中的第二交易对象是否满足所述中间匿名凭证中的中间凭证因子所约束的预设关系;验证模块402,用于根据所述第一子部分、第一生成元、所述第二子部分、第二生成元、所述证明承诺因子和所述第一匿名凭证,确定第一校验部分;所述第一生成元和所述第二生成元为椭圆曲线的任意两个生成元;根据所述第三子部分、所述第一生成元、所述第四子部分、所述第二生成元、所述证明承诺因子和所述中间匿名凭证,确定第二校验部分;根据所述第一子部分、所述第三子部分、所述第一生成元、所述第五子部分、所述第二生成元、所述证明承诺因子所述第一匿名凭证、所述第二匿名凭证和所述中间匿名凭证,确定第三校验部分;若确定所述第一校验部分、所述第二校验部分和所述第三校验部分按照预设哈希算法得到的输出值与所述证明承诺因子相等,则验证所述隐匿支付证明通过。
可选的,所述验证模块402具体用于按照以下方式验证所述隐匿支付证明通过:t1’=m1*G+m2*H+c*C1;其中,t1’为所述第一校验部分,m1为所述第一子部分,G为所述第一生成元,m2为所述第二子部分,H为所述第二生成元,c为所述证明承诺因子,C1为所述第一匿名凭证;t2’=m3*G+m4*H+c*Ce;其中,m3为所述第三子部分,m4为所述第四子部分,Ce为所述中间匿名凭证;t3’=(m1m3)*G+m5*H+c2*C2+cm1*Ce+cm3*C1;其中,m5为所述第五子部分,C2为所述第二匿名凭证。
基于同一发明构思,本发明实施例还提供了一种计算机设备,包括程序或指令,当所述程序或指令被执行时,使得计算机设备执行本申请实施例提供的一种应用于区块链的隐匿支付证明生成或验证方法及任一可选方法。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,包括程序或指令,当所述程序或指令被执行时,使得计算机设备执行本申请实施例提供的一种应用于区块链的隐匿支付证明生成或验证方法及任一可选方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种应用于区块链的隐匿支付证明生成方法,其特征在于,包括:
根据第一随机数、证明承诺因子和第一交易对象,生成隐匿支付证明的第一子部分;所述隐匿支付证明用于验证第一匿名凭证中的第一交易对象、第二匿名凭证中的第二交易对象满足中间匿名凭证中的中间凭证因子所约束的预设关系;
根据第二随机数、所述证明承诺因子和第一密钥,生成所述隐匿支付证明的第二子部分;所述第一密钥为用于生成所述第一匿名凭证的密钥;
根据第三随机数、所述证明承诺因子和所述中间凭证因子,生成所述隐匿支付证明的第三子部分;
根据第四随机数、所述证明承诺因子和中间密钥,生成所述隐匿支付证明的第四子部分;所述中间密钥为用于生成所述中间匿名凭证的密钥;
根据所述第一随机数、所述第三随机数、第五随机数、所述证明承诺因子、所述第一交易对象、所述第一密钥、第二密钥和所述中间密钥,生成所述隐匿支付证明的第五子部分;所述第二密钥为用于生成所述第二匿名凭证的密钥。
2.如权利要求1所述的方法,其特征在于,所述根据第一随机数、证明承诺因子和第一交易对象,生成隐匿支付证明的第一子部分;包括:
m1=a-c·v1;其中,m1为所述第一子部分,a为所述第一随机数,c为所述证明承诺因子,v1为所述第一交易对象;
所述根据第二随机数、所述证明承诺因子和第一密钥,生成所述隐匿支付证明的第二子部分;包括:
m2=b-c·r1;其中,m2为所述第二子部分,b为所述第二随机数,r1为所述第一密钥;
所述根据第三随机数、所述证明承诺因子和所述中间凭证因子,生成所述隐匿支付证明的第三子部分;包括:
m3=d-c·e;其中,m3为所述第三子部分,d为所述第三随机数,e为所述中间凭证因子;
所述根据第四随机数、所述证明承诺因子和中间密钥,生成所述隐匿支付证明的第四子部分;包括:
m4=f-c·re;其中,m4为所述第四子部分,f为所述第四随机数,re为所述中间密钥;
所述根据所述第一随机数、所述第三随机数、第五随机数、所述证明承诺因子、所述第一交易对象、所述第一密钥、第二密钥和所述中间密钥,生成所述隐匿支付证明的第五子部分;包括:
m5=g-c2·r2-c·a·re+c2·v1·re-c·d·r1+c2·e·r1;其中,m5为所述第五子部分,g为所述第五随机数,r2为所述第二密钥。
3.如权利要求1或2所述的方法,其特征在于,所述证明承诺因子按照以下方式得到:
根据所述第一随机数、第一生成元、所述第二随机数和第二生成元,确定第一中间变量;所述第一生成元和所述第二生成元为椭圆曲线的任意两个生成元;
根据所述第三随机数、所述第一生成元、所述第四随机数和所述第二生成元,确定第二中间变量;
根据所述第一随机数、所述第三随机数、所述第一生成元、所述第五随机数和所述第二生成元,确定第三中间变量;
至少将所述第一中间变量、所述第二中间变量和所述第三中间变量作为预设哈希算法的输入,将所述预设哈希算法的输出值,作为所述证明承诺因子。
4.如权利要求1或2所述的方法,其特征在于,所述根据第一随机数、证明承诺因子和第一交易对象,生成隐匿支付证明的第一子部分之前;还包括:
生成所述第一匿名凭证的所有权证明;
将所述第一匿名凭证的所有权证明发送至中间交易方;所述第一匿名凭证的所有权证明用于所述中间交易方验证所有权通过之后,触发所述隐匿支付证明的生成。
5.一种应用于区块链的隐匿支付证明验证方法,其特征在于,包括:
获取第一匿名凭证、第二匿名凭证、中间匿名凭证、证明承诺因子和隐匿支付证明;所述隐匿支付证明包括第一子部分、第二子部分、第三子部分、第四子部分和第五子部分;所述隐匿支付证明用于验证所述第一匿名凭证中的第一交易对象、所述第二匿名凭证中的第二交易对象是否满足所述中间匿名凭证中的中间凭证因子所约束的预设关系;
根据所述第一子部分、第一生成元、所述第二子部分、第二生成元、所述证明承诺因子和所述第一匿名凭证,确定第一校验部分;所述第一生成元和所述第二生成元为椭圆曲线的任意两个生成元;
根据所述第三子部分、所述第一生成元、所述第四子部分、所述第二生成元、所述证明承诺因子和所述中间匿名凭证,确定第二校验部分;
根据所述第一子部分、所述第三子部分、所述第一生成元、所述第五子部分、所述第二生成元、所述证明承诺因子所述第一匿名凭证、所述第二匿名凭证和所述中间匿名凭证,确定第三校验部分;
若确定所述第一校验部分、所述第二校验部分和所述第三校验部分按照预设哈希算法得到的输出值与所述证明承诺因子相等,则验证所述隐匿支付证明通过。
6.如权利要求5所述的方法,其特征在于,
所述根据所述第一子部分、第一生成元、所述第二子部分、第二生成元、所述证明承诺因子和所述第一匿名凭证,确定第一校验部分;包括:
t1’=m1*G+m2*H+c*C1;其中,t1’为所述第一校验部分,m1为所述第一子部分,G为所述第一生成元,m2为所述第二子部分,H为所述第二生成元,c为所述证明承诺因子,C1为所述第一匿名凭证;
所述根据所述第三子部分、所述第一生成元、所述第四子部分、所述第二生成元、所述证明承诺因子和所述中间匿名凭证,确定第二校验部分;包括:
t2’=m3*G+m4*H+c*Ce;其中,m3为所述第三子部分,m4为所述第四子部分,Ce为所述中间匿名凭证;
所述根据所述第一子部分、所述第三子部分、所述第一生成元、所述第五子部分、所述第二生成元、所述证明承诺因子所述第一匿名凭证、所述第二匿名凭证和所述中间匿名凭证,确定第三校验部分;包括:
t3’=(m1m3)*G+m5*H+c2*C2+cm1*Ce+cm3*C1;其中,m5为所述第五子部分,C2为所述第二匿名凭证。
7.一种应用于区块链的隐匿支付证明生成装置,其特征在于,包括:
第一生成模块,用于根据第一随机数、证明承诺因子和第一交易对象,生成隐匿支付证明的第一子部分;所述隐匿支付证明用于验证第一匿名凭证中的第一交易对象、第二匿名凭证中的第二交易对象满足中间匿名凭证中的中间凭证因子所约束的预设关系;以及用于
根据第二随机数、所述证明承诺因子和第一密钥,生成所述隐匿支付证明的第二子部分;所述第一密钥为用于生成所述第一匿名凭证的密钥;以及用于
根据第三随机数、所述证明承诺因子和所述中间凭证因子,生成所述隐匿支付证明的第三子部分;以及用于
根据第四随机数、所述证明承诺因子和中间密钥,生成所述隐匿支付证明的第四子部分;所述中间密钥为用于生成所述中间匿名凭证的密钥;
第二生成模块,用于根据所述第一随机数、所述第三随机数、第五随机数、所述证明承诺因子、所述第一交易对象、所述第一密钥、第二密钥和所述中间密钥,生成所述隐匿支付证明的第五子部分;所述第二密钥为用于生成所述第二匿名凭证的密钥。
8.一种应用于区块链的隐匿支付证明生成装置,其特征在于,包括:
获取模块,用于获取第一匿名凭证、第二匿名凭证、中间匿名凭证、证明承诺因子和隐匿支付证明;所述隐匿支付证明包括第一子部分、第二子部分、第三子部分、第四子部分和第五子部分;所述隐匿支付证明用于验证所述第一匿名凭证中的第一交易对象、所述第二匿名凭证中的第二交易对象是否满足所述中间匿名凭证中的中间凭证因子所约束的预设关系;
验证模块,用于根据所述第一子部分、第一生成元、所述第二子部分、第二生成元、所述证明承诺因子和所述第一匿名凭证,确定第一校验部分;所述第一生成元和所述第二生成元为椭圆曲线的任意两个生成元;根据所述第三子部分、所述第一生成元、所述第四子部分、所述第二生成元、所述证明承诺因子和所述中间匿名凭证,确定第二校验部分;根据所述第一子部分、所述第三子部分、所述第一生成元、所述第五子部分、所述第二生成元、所述证明承诺因子所述第一匿名凭证、所述第二匿名凭证和所述中间匿名凭证,确定第三校验部分;若确定所述第一校验部分、所述第二校验部分和所述第三校验部分按照预设哈希算法得到的输出值与所述证明承诺因子相等,则验证所述隐匿支付证明通过。
9.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至4或5至6中任意一项所述的方法被执行。
10.一种计算机可读存储介质,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至4或5至6中任意一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010596098.7A CN111738857B (zh) | 2020-06-28 | 2020-06-28 | 应用于区块链的隐匿支付证明的生成与验证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010596098.7A CN111738857B (zh) | 2020-06-28 | 2020-06-28 | 应用于区块链的隐匿支付证明的生成与验证方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111738857A true CN111738857A (zh) | 2020-10-02 |
CN111738857B CN111738857B (zh) | 2021-07-06 |
Family
ID=72652117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010596098.7A Active CN111738857B (zh) | 2020-06-28 | 2020-06-28 | 应用于区块链的隐匿支付证明的生成与验证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111738857B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112287040A (zh) * | 2020-10-30 | 2021-01-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链的权益合并方法及装置 |
CN112633890A (zh) * | 2020-12-22 | 2021-04-09 | 深圳前海微众银行股份有限公司 | 一种基于区块链的隐匿权益证明的验证方法及装置 |
CN116389164A (zh) * | 2023-05-26 | 2023-07-04 | 建信金融科技有限责任公司 | 数据的检测方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1283616A2 (en) * | 2001-08-07 | 2003-02-12 | Nec Corporation | Zero-knowledge proving system and method |
CN110555772A (zh) * | 2019-09-06 | 2019-12-10 | 深圳前海微众银行股份有限公司 | 凭证验证方法、装置、设备与可读存储介质 |
WO2020070499A1 (en) * | 2018-10-05 | 2020-04-09 | Omlis Limited | Pairing-based digital signature with designated verifier scheme based providing non repudiation |
CN111159745A (zh) * | 2019-12-30 | 2020-05-15 | 深圳前海微众银行股份有限公司 | 一种适用于区块链的验证方法及装置 |
CN111342962A (zh) * | 2020-04-01 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 一种验证密文消息范围的方法和系统 |
-
2020
- 2020-06-28 CN CN202010596098.7A patent/CN111738857B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1283616A2 (en) * | 2001-08-07 | 2003-02-12 | Nec Corporation | Zero-knowledge proving system and method |
WO2020070499A1 (en) * | 2018-10-05 | 2020-04-09 | Omlis Limited | Pairing-based digital signature with designated verifier scheme based providing non repudiation |
CN110555772A (zh) * | 2019-09-06 | 2019-12-10 | 深圳前海微众银行股份有限公司 | 凭证验证方法、装置、设备与可读存储介质 |
CN111159745A (zh) * | 2019-12-30 | 2020-05-15 | 深圳前海微众银行股份有限公司 | 一种适用于区块链的验证方法及装置 |
CN111342962A (zh) * | 2020-04-01 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 一种验证密文消息范围的方法和系统 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112287040A (zh) * | 2020-10-30 | 2021-01-29 | 深圳前海微众银行股份有限公司 | 一种基于区块链的权益合并方法及装置 |
CN112287040B (zh) * | 2020-10-30 | 2022-11-04 | 深圳前海微众银行股份有限公司 | 一种基于区块链的权益合并方法、装置、设备及介质 |
CN112633890A (zh) * | 2020-12-22 | 2021-04-09 | 深圳前海微众银行股份有限公司 | 一种基于区块链的隐匿权益证明的验证方法及装置 |
CN112633890B (zh) * | 2020-12-22 | 2024-04-05 | 深圳前海微众银行股份有限公司 | 一种基于区块链的隐匿权益证明的验证方法及装置 |
CN116389164A (zh) * | 2023-05-26 | 2023-07-04 | 建信金融科技有限责任公司 | 数据的检测方法及装置 |
CN116389164B (zh) * | 2023-05-26 | 2023-09-12 | 建信金融科技有限责任公司 | 数据的检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111738857B (zh) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11349645B2 (en) | Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys | |
TWI706275B (zh) | 用於資訊保護的系統和方法 | |
CN111008836B (zh) | 一种隐私安全转账支付方法、装置、系统及存储介质 | |
CN110337665B (zh) | 用于信息保护的系统和方法 | |
CN106961336B (zh) | 一种基于sm2算法的密钥分量托管方法和系统 | |
CN108352015B (zh) | 用于基于区块链的系统结合钱包管理系统的安全多方防遗失存储和加密密钥转移 | |
WO2021114819A1 (zh) | 生成和执行智能合约交易的方法及装置 | |
CN111738857B (zh) | 应用于区块链的隐匿支付证明的生成与验证方法及装置 | |
CN111162912B (zh) | 一种适用于区块链的验证方法、装置及存储介质 | |
CN113393225B (zh) | 数字货币加密支付方法及系统 | |
CN112470423A (zh) | 用于资产混合的计算机实现的系统和方法 | |
CN116349203A (zh) | 识别拒绝服务攻击 | |
Zhou et al. | Distributed bitcoin account management | |
Yasusaka et al. | Privacy-preserving pre-consensus protocol for blockchains | |
Sui et al. | AuxChannel: Enabling efficient bi-directional channel for scriptless blockchains | |
CN111523892B (zh) | 一种区块链的跨链交易方法及装置 | |
CN115913513A (zh) | 支持隐私保护的分布式可信数据交易方法、系统及装置 | |
CN117917041A (zh) | 生成共享加密密钥 | |
Wang et al. | MOBT: A kleptographically-secure hierarchical-deterministic wallet for multiple offline Bitcoin transactions | |
Sarencheh et al. | PARScoin: A Privacy-preserving, Auditable, and Regulation-friendly Stablecoin | |
Rajasree et al. | An Abuse-Free Optimistic Signature Exchange Protocol Using Block Cipher | |
CN117474544A (zh) | 基于PCNs网络的区块链交易数据隐私保护方法及系统 | |
CN113793149A (zh) | 离线交易认证系统、方法及中心服务器、客户端 | |
Wing | Digital Cash |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |