掌桥专利:专业的专利平台
掌桥专利
首页

一种基于区块链的隐匿权益证明的验证方法及装置

文献发布时间:2023-06-19 10:32:14


一种基于区块链的隐匿权益证明的验证方法及装置

技术领域

本发明实施例涉及金融科技(Fintech)领域,尤其涉及一种基于区块链的隐匿权益证明的验证方法及装置。

背景技术

随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。

现有隐匿支付正确性的零知识校验方法主要是在验证隐匿支付交易正确性时,对匿名权益凭证中的金额进行加法或乘法的代数关系生成零知识证明,并进行验证,以便保证交易金额的正确性。即,在对匿名权益凭证中的金额进行加法或乘法的代数运算生成零知识证明后,将匿名权益凭证、证明承诺因子和零知识证明一起发送给证明验证方进行验证。然而,这种处理方式由于单个零知识证明生成过程会提前对随机数进行绑定,即单个零知识证明生成后会直接发送证明承诺因子给证明验证方,证明承诺因子使得随机数被提前绑定,从而影响批量验证的构造,无法在后续过程对零知识证明进行批量验证。

综上,目前亟需一种基于区块链的隐匿权益证明的验证方法,用以实现对隐匿权益证明的批量验证,并提高批量验证隐匿权益证明的效率。

发明内容

本发明实施例提供了一种基于区块链的隐匿权益证明的验证方法及装置,用以实现对隐匿权益证明的批量验证,并提高批量验证隐匿权益证明的效率。

第一方面,本发明实施例提供了一种基于区块链的隐匿权益证明的验证方法,包括:

验证方接收N个隐匿权益证明;每个隐匿权益证明中包括k类权益凭证、k类承诺分片和n类零知识证明分片;所述N为大于1的整数;每个隐匿权益证明中的k类权益凭证之间符合权益交易机制;每个隐匿权益证明中的k类承诺分片之间符合所述权益交易机制;

针对每个隐匿权益证明,所述验证方基于所述隐匿权益证明中的k类权益凭证和k类承诺分片,生成针对所述隐匿权益证明的承诺因子;

所述验证方对N个k类承诺分片中同类的承诺分片进行聚合处理,确定出k个承诺证明;

所述验证方基于N个承诺因子、N个k类权益凭证以及N个n类零知识证明分片,生成k个零知识证明;

所述验证方若确定所述k个承诺证明与所述k个零知识证明对应相等,则确定所述N个隐匿权益证明验证成功。

上述技术方案中,通过接收N个隐匿权益证明,并针对每个隐匿权益证明,基于隐匿权益证明中的k类权益凭证和k类承诺分片,生成针对隐匿权益证明的承诺因子。由于接收的是k类承诺分片,而不是证明承诺因子(证明承诺因子是根据随机数确定的,若接收的是证明承诺因子会使得随机数被绑定,使得后续无法实现批量验证的构造),因此可以避免用于生成隐匿权益证明的随机数被提前绑定,从而可以便于批量验证的构造。再对N个k类承诺分片中同类的承诺分片进行聚合处理,确定出k个承诺证明,并基于N个承诺因子、N个k类权益凭证以及N个n类零知识证明分片,生成k个零知识证明,在确定k个承诺证明与k个零知识证明对应相等时,确定N个隐匿权益证明验证成功。如此可以有助于实现对N个隐匿权益证明的批量验证,并可以提高批量验证隐匿权益证明的效率,从而可以解决现有技术中存在由于单个零知识证明生成过程会提前对随机数进行绑定,导致无法在后续过程对零知识证明进行批量验证的问题。

可选地,所述验证方对N个k类承诺分片中同类的承诺分片进行聚合处理,确定出k个承诺证明之前,还包括:

所述验证方为每个隐匿权益证明生成对应的随机数;

所述验证方对N个k类承诺分片中同类的承诺分片进行聚合处理,确定出k个承诺证明,包括:

针对每类承诺分片中的每个承诺分片,所述验证方根据所述承诺分片及所述承诺分片对应的随机数,确定所述承诺分片对应的子证明;各承诺分片对应的子证明构成该类承诺分片的承诺证明;

所述验证方基于N个承诺因子、N个k类权益凭证以及N个n类零知识证明分片,生成k个零知识证明,包括:

针对每类权益凭证中的每个权益凭证,所述验证方根据所述权益凭证对应的零知识证明分片、对应的承诺因子和对应的随机数,生成所述权益凭证对应的子证明;各权益凭证对应的子证明构成该类权益证明的零知识证明;

所述验证方确定所述k个承诺证明与所述k个零知识证明对应相等,包括:

所述验证方确定存在对应关系的承诺分片的子证明与权益凭证的子证明对应相等。

上述技术方案中,通过确定存在对应关系的承诺分片的子证明是否与权益凭证的子证明对应相等,如此可以有助于实现对N个隐匿权益证明的批量验证,并可以验证权益凭证是否篡改,即用户的权益凭证是否准确,以此来验证用户的权益凭证是否真实有效,并可以验证权益凭证对应的凭证金额是否满足约束关系。

可选地,通过下述方式确定隐匿权益证明中的k类权益凭证:

通过下述方式确定隐匿权益证明中的k类承诺分片:

通过下述方式确定隐匿权益证明中的n类零知识证明分片:

其中,t

上述技术方案中,通过上述公式可以得到k类权益凭证,可以得到k类承诺分片,以及得到n类零知识证明分片,如此可以为后续基于k类承诺分片和n类零知识证明分片验证权益凭证的真实性以及验证权益凭证对应的凭证金额是否满足约束关系提供支持。

可选地,通过下述方式得到每类承诺分片的承诺证明对应的子证明:

通过下述方式得到每类权益凭证对应的零知识证明的子证明:

其中,T

上述技术方案中,通过上述公式可以得到k个承诺证明对应的子证明,以及得到k类权益凭证对应的子证明,如此可以为后续通过验证承诺分片的子证明与权益凭证的子证明来验证权益凭证的真实性以及验证权益凭证对应的凭证金额是否满足约束关系提供支持。

可选地,所述验证方基于所述隐匿权益证明中的k类权益凭证和k类承诺分片,生成针对所述隐匿权益证明的承诺因子,包括:

所述验证方对第一公共加密参数、第二公共加密参数、所述隐匿权益证明中的k类权益凭证和k类承诺分片进行哈希运算,得到针对所述隐匿权益证明的承诺因子。

上述技术方案中,通过对隐匿权益证明中的k类权益凭证和k类承诺分片进行哈希运算,得到针对隐匿权益证明的承诺因子。如此,可以便于验证方基于承诺因子生成权益凭证对应的子证明,以便为后续通过验证承诺分片的子证明与权益凭证的子证明来验证权益凭证对应的凭证金额是否满足约束关系提供支持。

可选地,在所述验证方接收N个隐匿权益证明之前,还包括:

所述验证方接收证明方发送的k类权益凭证中已记录在凭证账本中的权益凭证的所有权证明;

所述验证方对所述已记录在凭证账本中的权益凭证的所有权证明进行验证,并在验证成功后,触发所述证明方生成隐匿权益证明。

上述技术方案中,证明方将k类权益凭证中已记录在凭证账本中的权益凭证的所有权证明发送给验证方,可以有助于证明方向验证方证明自己拥有权益凭证的私钥,即向验证方证明自己的身份。如此可以在验证方验证所有权证明通过后,使得证明方可以及时有效地生成隐匿权益证明。

可选地,在所述确定所述N个隐匿权益证明验证成功之后,还包括:

所述验证方更新凭证账本中的权益凭证。

上述技术方案中,在确定N个隐匿权益证明验证成功后,更新凭证账本中的权益凭证,如此可以便于权益拥有者及时准确地基于更新后的权益凭证进行权益分红等,并有助于结算方及时准确地对权益拥有者的权益进行结算。

第二方面,本发明实施例还提供了一种基于区块链的隐匿权益证明的验证装置,包括:

接收单元,用于接收N个隐匿权益证明;每个隐匿权益证明中包括k类权益凭证、k类承诺分片和n类零知识证明分片;所述N为大于1的整数;每个隐匿权益证明中的k类权益凭证之间符合权益交易机制;每个隐匿权益证明中的k类承诺分片之间符合所述权益交易机制;

处理单元,用于针对每个隐匿权益证明,基于所述隐匿权益证明中的k类权益凭证和k类承诺分片,生成针对所述隐匿权益证明的承诺因子;对N个k类承诺分片中同类的承诺分片进行聚合处理,确定出k个承诺证明;基于N个承诺因子、N个k类权益凭证以及N个n类零知识证明分片,生成k个零知识证明;若确定所述k个承诺证明与所述k个零知识证明对应相等,则确定所述N个隐匿权益证明验证成功。

可选地,所述处理单元还用于:

在确定出k个承诺证明之前,为每个隐匿权益证明生成对应的随机数;

所述处理单元具体用于:

针对每类承诺分片中的每个承诺分片,根据所述承诺分片及所述承诺分片对应的随机数,确定所述承诺分片对应的子证明;各承诺分片对应的子证明构成该类承诺分片的承诺证明;

所述处理单元具体用于:

针对每类权益凭证中的每个权益凭证,根据所述权益凭证对应的零知识证明分片、对应的承诺因子和对应的随机数,生成所述权益凭证对应的子证明;各权益凭证对应的子证明构成该类权益证明的零知识证明;

所述处理单元具体用于:

确定存在对应关系的承诺分片的子证明与权益凭证的子证明对应相等。

可选地,所述处理单元具体用于:

通过下述方式确定隐匿权益证明中的k类权益凭证:

通过下述方式确定隐匿权益证明中的k类承诺分片:

通过下述方式确定隐匿权益证明中的n类零知识证明分片:

其中,t

可选地,所述处理单元具体用于:

通过下述方式得到每类承诺分片的承诺证明对应的子证明:

通过下述方式得到每类权益凭证对应的零知识证明的子证明:

其中,T

可选地,所述处理单元具体用于:

对第一公共加密参数、第二公共加密参数、所述隐匿权益证明中的k类权益凭证和k类承诺分片进行哈希运算,得到针对所述隐匿权益证明的承诺因子。

可选地,所述处理单元还用于:

在接收N个隐匿权益证明之前,接收证明方发送的k类权益凭证中已记录在凭证账本中的权益凭证的所有权证明;

对所述已记录在凭证账本中的权益凭证的所有权证明进行验证,并在验证成功后,触发所述证明方生成隐匿权益证明。

可选地,所述处理单元还用于:

在确定所述N个隐匿权益证明验证成功之后,更新凭证账本中的权益凭证。

第三方面,本发明实施例提供一种计算设备,包括至少一个处理器以及至少一个存储器,其中,所述存储器存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述第一方面任意所述的基于区块链的隐匿权益证明的验证方法。

第四方面,本发明实施例提供一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述第一方面任意所述的基于区块链的隐匿权益证明的验证方法。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种隐匿权益证明验证系统架构的示意图;

图2为本发明实施例提供的一种基于区块链的隐匿权益证明的验证方法的流程示意图;

图3为本发明实施例提供的一种基于区块链的隐匿权益证明的验证装置的结构示意图;

图4为本发明实施例提供的一种计算设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

下面首先对本发明实施例中涉及的部分用语进行解释说明,以便于本领域技术人员进行理解。

(1)区块链:区块链是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的Hash值,通过这种方式组成一条链。此外,区块链的核心理念有两个:一个是密码学技术,另一个是去中心化思想。基于这两个理念做到区块链上的历史信息无法被篡改。区块链中的一个区块由块头和块体组成。其中,块头主要包括该区块高度h、上一个区块的hash等,而块体主要存储交易数据。

(2)零知识证明:零知识证明是指证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。

(3)联盟链:在区块链技术中,根据区块链网络访问控制权限的不同,区块链可以分为公有链、私有链和联盟链。其中,公有链的节点是任何人都可以参与的,任何人都可以访问的一种区块链结构;私有链是仅仅对单独的个体开放(比如公司,学校内部等)的区块链结构;联盟链则是目前应用非常广泛的,非常普遍的一种区块链结构。在这种结构中,区块链由特定的某些组织维护,对某些个体开放,并且可以引入监管节点,让区块链在不可篡改的同时满足相应的监管需求。

(4)机密交易:机密交易是一种在区块链中账户之间进行转账操作时,完全隐匿交易金额,同时允许区块链节点对交易数据的正确性进行验证的交易。比如一笔转账a拆分为b+c,允许节点在验证a=b+c,且b>0,c>0。可以使用perdenser commitent和bulletproofs来实现机密交易。

(5)隐匿权益:隐匿权益是一种特殊的支付方式,特点如下:1、身份隐匿:权益和权益拥有者在进行转账时可以不披露自己的身份,但是可以证实自己针对权益的所有权,并且可以给出权益与自己身份关联的证明。2、抗双花:同一份权益凭证不能被花费两次。3、权益隐匿:除了权益拥有者,以及交易发起者,其他认不能知道权益凭证的内容,比如交易金额等。4、交易隐匿:除了交易参与者,第三方无法获知交易的具体细节,比如交易参与方的信息、交易发起时间、签名等;需要说明的是,交易上链时间公开。5、监管友好:监管方可以在交易发生后的时刻获取必要的仲裁信息。

隐匿权益的基本功能简介如下:

a、开具:经过金融机构进行必要的线上线下审核后,作为可兑现的固定金额的凭证,进行权益凭证开具。

b、兑现:每份流通的权益凭证凭会绑定一个权益兑现服务方公钥,权益拥有者凭借权益凭证至权益兑现服务方进行兑现,同时该权益凭证作废。

c、金额支付:

拆分:每份权益凭证可以被拆分成多份,拆分后的多张权益凭证总面值等同于原面值。

合并:可以通过业务侧支付前实现。多份权益凭证可以被合并称为一份。合并后的权益凭证总面值等于原面值。

权益支付:字符串类型的权益凭证可以全部转让给他人。

(6)数字证书:数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。它是由权威机构—CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。

(7)所有权证明:所有权证明是一种零知识证明,证明者可以在不公开隐匿权益金额的情况下向验证者证明自己拥有该权益凭证的私钥。

(8)平衡证明:平衡证明是一种零知识证明,证明者可以在不公开多个隐匿权益权益凭证金额的情况下,向验证者证明该组权益凭证金额满足一定代数关系。

如上介绍了本发明实施例中涉及的部分用语,下面对本发明实施例涉及的技术特征进行介绍。

为了便于理解本发明实施例,首先以图1中示出的系统架构为例说明适用于本发明实施例的隐匿权益证明验证系统架构。该隐匿权益证明验证系统架构可以应用于区块链各用户间的隐匿权益凭证验证等,在实际应用场景中,本发明对此并不作限定。如图1所示,该系统架构可以包括权益拥有方110、验证方130和权益代理方120。其中,权益拥有方110与权益代理方120进行连接,权益代理方120与验证方130进行连接,权益拥有方110与验证方130进行连接,比如可以通过有线方式连接,或者通过无线方式连接,具体不作限定。需要说明的是,权益拥有方可以为一个或多个,本发明对此并不作限定。

其中,权益拥有方110为权益凭证结息的发起者和接收者,权益拥有方110拥有一个多个权益凭证。权益拥有方110拥有一对公私钥对,用以生成数字签名,证明自己的身份。

权益代理方120负责管理权益拥有方110的借款、结息、转账等行为。权益代理方120拥有一对公私钥对,用以生成数字签名,证明自己的身份。

验证方130对权益拥有方100在借款、结息、转账等行为的交易过程进行验证和清算。

示例性地,权益拥有方100基于自己拥有的权益凭证生成该权益凭证的所有权证明,并对该权益凭证的所有权证明进行签名,生成该权益凭证的所有权证明的数字签名。然后将该权益凭证的所有权证明以及该权益凭证的所有权证明的数字签名发送给权益代理方120。权益代理方120基于权益拥有方100的权益凭证对应的分红权益凭证生成该分红权益凭证的所有权证明,并对该分红权益凭证的所有权证明以及该权益凭证的所有权证明进行签名,生成该分红权益凭证的所有权证明以及该权益凭证的所有权证明的数字签名。再将该分红权益凭证的所有权证明以及该权益凭证的所有权证明的数字签名、该权益凭证的所有权证明、该分红权益凭证的所有权证明发送给验证方130进行验证,在验证通过后,触发权益拥有方100生成隐匿权益证明。在对权益凭证的所有权证明、该分红权益凭证的所有权证明验证通过后,权益拥有方100基于自己拥有的权益凭证生成新的权益凭证,并生成分红权益凭证,并基于自己拥有的权益凭证、新的权益凭证以及分红权益凭证生成对应的隐匿权益证明,并将隐匿权益证明发送给验证方130进行验证,在验证通过后,确定权益拥有方100拥有的权益凭证、新的权益凭证以及分红权益凭证符合权益交易机制。

需要说明的是,上述图1所示的结构仅是一种示例,本发明实施例对此不做限定。

基于上述描述,图2示例性的示出了本发明实施例提供的一种基于区块链的隐匿权益证明的验证方法的流程,该流程可以由基于区块链的隐匿权益证明的验证装置执行。

如图2所示,该流程具体包括:

步骤201,验证方接收N个隐匿权益证明。

步骤202,针对每个隐匿权益证明,所述验证方基于所述隐匿权益证明中的k类权益凭证和k类承诺分片,生成针对所述隐匿权益证明的承诺因子。

步骤203,所述验证方对N个k类承诺分片中同类的承诺分片进行聚合处理,确定出k个承诺证明。

步骤204,所述验证方基于N个承诺因子、N个k类权益凭证以及N个n类零知识证明分片,生成k个零知识证明。

步骤205,所述验证方若确定所述k个承诺证明与所述k个零知识证明对应相等,则确定所述N个隐匿权益证明验证成功。

上述步骤201和步骤202中,验证方接收N个隐匿权益证明,并针对每个隐匿权益证明,基于隐匿权益证明中的k类权益凭证和k类承诺分片,生成针对隐匿权益证明的承诺因子。具体地,在验证方接收N个隐匿权益证明之前,接收证明方发送的k类权益凭证中已记录在凭证账本中的权益凭证的所有权证明,并对已记录在凭证账本中的权益凭证的所有权证明进行验证,并在验证成功后,触发证明方生成隐匿权益证明。如此,可以有助于证明方向验证方证明自己拥有权益凭证的私钥,即向验证方证明自己的身份。如此可以在验证方验证所有权证明通过后,使得证明方可以及时有效地生成隐匿权益证明。验证方接收一个证明方发送的N个隐匿权益证明或者接收N个证明方各自发送的一个隐匿权益证明,然后针对每个隐匿权益证明,验证方对第一公共加密参数、第二公共加密参数、隐匿权益证明中的k类权益凭证和k类承诺分片进行哈希运算,得到针对隐匿权益证明的承诺因子。如此,可以便于验证方基于承诺因子生成权益凭证对应的子证明,以便为后续通过验证承诺分片的子证明与权益凭证的子证明来验证权益凭证对应的凭证金额是否满足约束关系提供支持。其中,每个隐匿权益证明中包括k类权益凭证、k类承诺分片和n类零知识证明分片;N为大于1的整数;k、n均为大于等于1的整数;每个隐匿权益证明中的k类权益凭证之间符合权益交易机制;每个隐匿权益证明中的k类承诺分片之间符合权益交易机制。

上述步骤203和步骤204中,验证方对N个k类承诺分片中同类的承诺分片进行聚合处理,确定出k个承诺证明。并基于N个承诺因子、N个k类权益凭证以及N个n类零知识证明分片,生成k个零知识证明。具体地,验证方为每个隐匿权益证明生成对应的随机数,针对每类承诺分片中的每个承诺分片,根据承诺分片及承诺分片对应的随机数,确定承诺分片对应的子证明,各承诺分片对应的子证明构成该类承诺分片的承诺证明。再针对每类权益凭证中的每个权益凭证,根据权益凭证对应的零知识证明分片、对应的承诺因子和对应的随机数,生成权益凭证对应的子证明,各权益凭证对应的子证明构成该类权益证明的零知识证明。

此外,可以通过下述方式确定隐匿权益证明中的k类权益凭证:

通过下述方式确定隐匿权益证明中的k类承诺分片:

通过下述方式确定隐匿权益证明中的n类零知识证明分片:

其中,t

基于此,通过上述公式可以得到k类权益凭证,可以得到k类承诺分片,以及得到n类零知识证明分片,如此可以为后续基于k类承诺分片和n类零知识证明分片验证权益凭证的真实性以及验证权益凭证对应的凭证金额是否满足约束关系提供支持。

进一步地,可以通过下述方式得到每类承诺分片的承诺证明对应的子证明:

通过下述方式得到每类权益凭证对应的零知识证明的子证明:

其中,T

基于此,通过上述公式可以得到k个承诺证明对应的子证明,以及得到k类权益凭证对应的子证明,如此可以为后续通过验证承诺分片的子证明与权益凭证的子证明来验证权益凭证的真实性以及验证权益凭证对应的凭证金额是否满足约束关系提供支持。

上述步骤205中,验证方若确定k个承诺证明与k个零知识证明对应相等,则确定N个隐匿权益证明验证成功。具体地,验证方确定存在对应关系的承诺分片的子证明与权益凭证的子证明对应相等,则确定N个隐匿权益证明验证成功。通过确定存在对应关系的承诺分片的子证明是否与权益凭证的子证明对应相等,如此可以有助于实现对N个隐匿权益证明的批量验证,并可以验证权益凭证是否篡改,即用户的权益凭证是否准确,以此来验证用户的权益凭证是否真实有效,并可以验证权益凭证对应的凭证金额是否满足约束关系。然后在确定N个隐匿权益证明验证成功后,更新凭证账本中的权益凭证,如此可以便于权益拥有者及时准确地基于更新后的权益凭证进行权益分红等,并有助于结算方及时准确地对权益拥有者的权益进行结算。

示例性地,在业务使用场景中,除批量验证乘法约束关系外,还需要更多参与方与更多约束,从而实现整个转账逻辑的正确性。在权益凭证的转账交易过程中,考虑的参与方有四个,即,权益拥有者:为权益凭证结息的发起者和接收者,在凭证账本上拥有匿名权益凭证,并拥有一对公私钥对,用以生成数字签名Sig,证明自己的身份。代理银行:代为管理结息银行的资金,同时负责发起借贷行为和结息行为,即,负责管理权益凭证在转账交易过程中的借款、结息、转账等行为,在交易过程中管理匿名分红权益凭证。并拥有一对公私钥对,用以生成数字签名Sig,证明自己的身份。结息银行:将资金托管给代理银行,结息过程中会对交易过程进行验证和清算。凭证账本:记录隐匿权益的权益凭证,权益凭证的表述方式为C=v*G+r*H,其中G和H为公开参数,v为权益凭证对应的金额,r为凭证密钥。

例如,在银行结息示例中,用户A在凭证账本上共有三个权益凭证,分别为价值100的权益,对应密钥r

有鉴于此,下面继续以用户A拥有三个权益凭证为例,对本发明实施例中验证隐匿权益证明的实施过程进行具体描述。

Step1:转账交易初始化。

a、用户A基于权益凭证C

b、代理银行E基于分红权益凭证C

c、凭证账本验证sig_A、sig_E、C

Step2:生成分红权益凭证以及平衡证明。

在凭证账本验证数字签名和所有权证明通过后,触发用户A生成分红权益凭证以及平衡证明。其中,生成分红权益凭证以及平衡证明的过程具体为:

a、代理银行E对分红权益凭证因子(即权益分红比例)v

b、用户A验证sig_E,若验证失败则进入失败处理。若验证成功,则生成随机数r

具体地,用户A按照平衡证明的生成方式生成balance_proof1(C

c、用户A对C

其中,用户A生成的平衡证明balance_proof1中包括(C

Step3:凭证账本验证平衡证明并完成转账。

a、凭证账本使用C

b、凭证账本在基于接收到的C

具体地,凭证账本按照平衡证明的验证方式对balance_proof1、balance_proof2、balance_proof3进行批量验证。即,凭证账本分别计算出balance_proof1对应的承诺因子c

然后,基于三个随机数β

c、凭证账本在批量验证成功后,将权益凭证C

此外,需要说明的是,若是转账失败,则可以采用以下方式进行处理:

(1)在转账交易初始化失败时,凭证账本拒绝该笔转账交易。

(2)在凭证账本出现验证失败时,会生成新的分红权益凭证C

上述实施例表明,通过接收N个隐匿权益证明,并针对每个隐匿权益证明,基于隐匿权益证明中的k类权益凭证和k类承诺分片,生成针对隐匿权益证明的承诺因子。由于接收的是k类承诺分片,而不是证明承诺因子(证明承诺因子是根据随机数确定的,若接收的是证明承诺因子会使得随机数被绑定,使得后续无法实现批量验证的构造),因此可以避免用于生成隐匿权益证明的随机数被提前绑定,从而可以便于批量验证的构造。再对N个k类承诺分片中同类的承诺分片进行聚合处理,确定出k个承诺证明,并基于N个承诺因子、N个k类权益凭证以及N个n类零知识证明分片,生成k个零知识证明,在确定k个承诺证明与k个零知识证明对应相等时,确定N个隐匿权益证明验证成功。如此可以有助于实现对N个隐匿权益证明的批量验证,并可以提高批量验证隐匿权益证明的效率,从而可以解决现有技术中存在由于单个零知识证明生成过程会提前对随机数进行绑定,导致无法在后续过程对零知识证明进行批量验证的问题。

基于相同的技术构思,图3示例性的示出了本发明实施例提供的一种基于区块链的隐匿权益证明的验证装置,该装置可以执行基于区块链的隐匿权益证明的验证方法的流程。

如图3所示,该装置包括:

接收单元301,用于接收N个隐匿权益证明;每个隐匿权益证明中包括k类权益凭证、k类承诺分片和n类零知识证明分片;所述N为大于1的整数;每个隐匿权益证明中的k类权益凭证之间符合权益交易机制;每个隐匿权益证明中的k类承诺分片之间符合所述权益交易机制;

处理单元302,用于针对每个隐匿权益证明,基于所述隐匿权益证明中的k类权益凭证和k类承诺分片,生成针对所述隐匿权益证明的承诺因子;对N个k类承诺分片中同类的承诺分片进行聚合处理,确定出k个承诺证明;基于N个承诺因子、N个k类权益凭证以及N个n类零知识证明分片,生成k个零知识证明;若确定所述k个承诺证明与所述k个零知识证明对应相等,则确定所述N个隐匿权益证明验证成功。

可选地,所述处理单元302还用于:

在确定出k个承诺证明之前,为每个隐匿权益证明生成对应的随机数;

所述处理单元302具体用于:

针对每类承诺分片中的每个承诺分片,根据所述承诺分片及所述承诺分片对应的随机数,确定所述承诺分片对应的子证明;各承诺分片对应的子证明构成该类承诺分片的承诺证明;

所述处理单元302具体用于:

针对每类权益凭证中的每个权益凭证,根据所述权益凭证对应的零知识证明分片、对应的承诺因子和对应的随机数,生成所述权益凭证对应的子证明;各权益凭证对应的子证明构成该类权益证明的零知识证明;

所述处理单元302具体用于:

确定存在对应关系的承诺分片的子证明与权益凭证的子证明对应相等。

可选地,所述处理单元302具体用于:

通过下述方式确定隐匿权益证明中的k类权益凭证:

通过下述方式确定隐匿权益证明中的k类承诺分片:

通过下述方式确定隐匿权益证明中的n类零知识证明分片:

其中,t

可选地,所述处理单元302具体用于:

通过下述方式得到每类承诺分片的承诺证明对应的子证明:

通过下述方式得到每类权益凭证对应的零知识证明的子证明:

其中,T

可选地,所述处理单元302具体用于:

对第一公共加密参数、第二公共加密参数、所述隐匿权益证明中的k类权益凭证和k类承诺分片进行哈希运算,得到针对所述隐匿权益证明的承诺因子。

可选地,所述处理单元302还用于:

在接收N个隐匿权益证明之前,接收证明方发送的k类权益凭证中已记录在凭证账本中的权益凭证的所有权证明;

对所述已记录在凭证账本中的权益凭证的所有权证明进行验证,并在验证成功后,触发所述证明方生成隐匿权益证明。

可选地,所述处理单元302还用于:

在确定所述N个隐匿权益证明验证成功之后,更新凭证账本中的权益凭证。

基于相同的技术构思,本发明实施例还提供了一种计算设备,如图4所示,包括至少一个处理器401,以及与至少一个处理器连接的存储器402,本发明实施例中不限定处理器401与存储器402之间的具体连接介质,图4中处理器401和存储器402之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。

在本发明实施例中,存储器402存储有可被至少一个处理器401执行的指令,至少一个处理器401通过执行存储器402存储的指令,可以执行前述的基于区块链的隐匿权益证明的验证方法中所包括的步骤。

其中,处理器401是计算设备的控制中心,可以利用各种接口和线路连接计算设备的各个部分,通过运行或执行存储在存储器402内的指令以及调用存储在存储器402内的数据,从而实现数据处理。可选的,处理器401可包括一个或多个处理单元,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理下发指令。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。在一些实施例中,处理器401和存储器402可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

处理器401可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合基于区块链的隐匿权益证明的验证实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器402可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器402是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器402还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

基于相同的技术构思,本发明实施例还提供了一种计算机可读存储介质,其存储有可由计算设备执行的计算机程序,当所述程序在所述计算设备上运行时,使得所述计算设备执行上述基于区块链的隐匿权益证明的验证方法的步骤。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-RON、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

相关技术
  • 一种基于区块链的隐匿权益证明的验证方法及装置
  • 一种基于委托权益证明算法的区块链共识方法和装置
技术分类

06120112585630