发明内容
本发明的主要目的在于提供一种区块链交易数据证明监管方法及方法,旨在解决区块链机密交易无法监管的技术问题。
为实现上述目的,本发明的第一方面提供一种区块链交易数据证明监管方法,应用于交易数据发送方节点设备中,所述方法包括:
预先向交易数据监管方节点设备申请第一签名参数、第二签名参数及第三签名参数;
确定交易数据,基于所述交易数据计算得到第一计算数及第二计算数,并生成第一随机数及第二随机数;
利用Pedersen承诺基于所述交易数据及所述第一随机数加密得到机密交易;
利用Bulletproof范围证明基于所述第一计算数、所述第二计算数及所述第二随机数计算第一证明参数;
利用所述Bulletproof范围证明基于所述第一签名参数、所述第二签名参数及所述第三签名参数计算第二证明参数;
基于所述第一计算数及所述第二签名参数计算目标证明参数;
发送所述机密交易、所述第一证明参数、所述第二证明参数及所述目标证明参数至所述交易数据监管方节点设备,使得所述交易数据监管方节点设备基于所述第一证明参数、所述第二证明参数及所述目标证明参数对所述机密交易进行验证并监管所述交易数据。
根据本发明的一个可选实施例,所述第一证明参数其中,h、g、h均为系统参数,α为所述第二随机数,aL为所述第一计算数,aR为所述第二计算数。
根据本发明的一个可选实施例,所述基于所述交易数据计算得到第一计算数及第二计算数包括:
对所述交易数据进行二进制展开;
计算展开后的交易数据中的每一个二进制数与2n的商值得到所述第一计算数;
计算所述第一计算数与单位数组的差值得到所述第二计算数。
根据本发明的一个可选实施例,所述第二证明参数其中,ρ为所述第一签名参数,sL为所述第二签名参数,sR为所述第三签名参数。
根据本发明的一个可选实施例,基于所述第一计算数及所述第二签名参数计算目标证明参数包括:
向所述交易数据监管方节点设备发送所述第一证明参数和所述第二证明参数并接收所述交易数据监管方节点设备回复的第一公开参数;
利用Pedersen承诺随机计算第一承诺参数和第二承诺参数;
向所述交易数据监管方节点设备发送所述第一承诺参数和所述第二承诺参数并接收所述交易数据监管方节点设备回复的第二公开参数;
基于所述第一计算数、所述第二签名参数、所述第一公开参数和所述第二公开参数计算目标证明参数P=aL-z·1n+sL·x,其中,z为所述第一公开参数,x为所述第二公开参数。
为实现上述目的,本发明的第二方面提供一种区块链交易数据证明监管方法,应用于交易数据监管方节点设备中,所述方法还包括:
选取第一签名参数、第二签名参数及第三签名参数;
利用Bulletproof范围证明基于所述第一签名参数、所述第二签名参数及所述第三签名参数计算证明参数;
使用私钥对所述证明参数进行签名并保存所述签名及对应的所述第一签名参数、所述第二签名参数及所述第三签名参数;
当接收到交易数据发送方节点设备的签名参数请求时,向所述交易数据发送方节点设备发送所述第一签名参数、所述第二签名参数及所述第三签名参数;
获取所述交易数据发送方节点设备的机密交易、第一证明参数、第二证明参数及目标证明参数,并基于所述第一证明参数、所述第二证明参数及所述目标证明参数对所述机密交易进行验证并监管所述交易数据。
根据本发明的一个可选实施例,所述方法还包括:
当接收到所述交易数据发送方节点设备发送的所述第一证明参数和所述第二证明参数时,回复第一公开参数;
当接收到所述交易数据发送方节点设备发送的第一承诺参数和第二承诺参数时,回复第二公开参数。
根据本发明的一个可选实施例,所述基于所述第一证明参数、所述第二证明参数及所述目标证明参数对所述机密交易进行验证并监管所述交易数据包括:
将所述第一公开参数、所述第二公开参数及所述第二签名参数带入所述目标证明参数中,计算得到目标随机数;
根据所述目标随机数计算出所述机密交易中的交易数据;
其中,所述目标随机数为由0或者1组成的n维数组,且所述n维数组中的每一个数与2n的乘积与所述交易数据中相同位置处的数据对应。
为实现上述目的,本发明的第三方面提供一种区块链交易数据证明监管系统,所述系统包括:
交易数据发送方节点设备及交易数据监管方节点设备,其中,所述交易数据发送方节点设备及交易数据监管方节点设备用于实现所述的区块链交易数据证明监管方法。
为实现上述目的,本发明的第四方面提供一种区块链节点设备,所述区块链节点设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的区块链交易数据证明监管方法的下载程序,所述区块链交易数据证明监管方法的下载程序被所述处理器执行时实现所述的区块链交易数据证明监管方法。
为实现上述目的,本发明的第五方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有区块链交易数据证明监管方法的下载程序,所述区块链交易数据证明监管方法的下载程序可被一个或者多个处理器执行以实现所述的区块链交易数据证明监管方法。
本发明实施例提供的区块链交易数据证明监管方法、系统、区块链节点设备及存储介质,通过交易数据监管方节点设备选取多个签名参数并计算出证明参数,对计算得到的证明参数进行签名后即可将签名后的多个签名参数发给交易数据发送方节点设备,使得交易数据发送方节点设备根据多个签名参数计算证明参数。由于交易数据监管方节点设备与交易数据发送方节点设备均使用相同的多个签名参数计算得到相同的证明参数,因而在区块链网络上进行机密交易扭转时,交易数据监管方节点设备便能够监管到交易数据发送方节点设备的证明参数,从而实现了机密交易的监管。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本实施例中的区块链交易数据证明监管方法可以应用于区块链交易数据证明监管系统中,所述区块链交易数据证明监管系统可以包括,但不限于:交易数据发送方节点设备和交易数据监管方节点设备。
实施例一
如图1所示,为本发明实施例一的区块链交易数据证明监管方法的流程图。
所述区块链交易数据证明监管方法应用于交易数据发送方节点设备中,所述区块链交易数据证明监管方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S11,预先向交易数据监管方节点设备申请第一签名参数、第二签名参数及第三签名参数。
其中,ρ为所述第一签名参数,sL为所述第二签名参数,sR为所述第三签名参数。
交易数据发送方在进行交易数据范围证明之前,可以通过交易数据发送方节点设备向交易数据监管方节点设备申请签名参数。
由于签名参数与交易数据证明值无关,所以可以提前申请多个签名后的签名参数并保存在本地,最后离线使用这些签名参数并生成证明参数。
签名后的签名参数是指通过交易数据监管方节点设备选取多个参数,并基于多个参数进行计算后进行签名的参数。
S12,确定交易数据,基于所述交易数据计算得到第一计算数及第二计算数,并生成第一随机数及第二随机数。
交易数据发送方节点设备可以预先使用随机数生成算法生成多个随机数。例如,生成第一随机数r,第二随机数α。
其中,所述第二随机数α为在Zp内的一个数。
在一个可选的实施例中,所述基于所述交易数据计算得到第一计算数及第二计算数包括:
对所述交易数据进行二进制展开;
计算展开后的交易数据中的每一个二进制数与2n的商值得到所述第一计算数;
计算所述第一计算数与单位数组的差值得到所述第二计算数。
在本发明的一个可选实施例中,所述第一计算数aL为由二进制数0或者1组成的一个n维数组,且所述n维数组中的每一个数与2n的乘积与所述交易数据中相同位置处的数据对应。
示例性的,假设n维数组aL={0,1,1,…0,1,0},那么{0*20,1*21,1*22,…,1*2n-2,0*2n-1}=v,v为交易数据。
在本发明的一个可选实施例中,所述第二计算数1n为由二进制数1组成的n维数组。
示例性的,假设n维数组aL={0,1,1,…0,1,0},那么aR={-1,0,0,…-1,0,-1}。
S13,利用Pedersen承诺基于所述交易数据及所述第一随机数加密得到机密交易。
Pedersen承诺将一个交易数据隐藏进一个加密后的密文中。交易数据发送方节点设备可以之后选择解密承诺的数值。承诺一旦发出,则交易数据发送方节点设备无法找到另外一个数值依然具有相同的承诺计算结果。
机密交易是指使用Pedersen承诺隐藏交易数据,使得只有交易双方可以看到交易数据,而其他人看不到交易数据,同时双方无法伪造交易数据。
在具体实施时,利用Pedersen承诺基于所述交易数据及所述第一随机数加密得到的机密交易中的UTXO=gvhr,其中,v为所述交易数据,v∈[0,2n-1],r为所述第一随机数。
第一系统参数g和第二系统参数h是离散对数的基,是一个全世界范围内公开的系统参数。
S14,利用Bulletproof范围证明基于所述第一计算数、所述第二计算数及所述第二随机数计算第一证明参数。
Bulletproof是当前最高效的范围证明算法,用于证明一个承诺的值处于[0,2n-1]之间。
在本发明的一个可选实施例中,所述第一证明参数其中,g、h均为公开的系统参数,α为所述第二随机数,aL为所述第一计算数,aR为所述第二计算数。
需要注意的是,本实施例中系统参数g、h与第一系统参数g和第二系统参数h不同。
S15,利用所述Bulletproof范围证明基于所述第一签名参数、所述第二签名参数及所述第三签名参数计算第二证明参数。
在本发明的一个可选实施例中,所述第二证明参数其中,ρ为所述第一签名参数,sL为所述第二签名参数,sR为所述第三签名参数。
S16,基于所述第一计算数及所述第二签名参数计算目标证明参数。
在本发明的一个可选实施例中,基于所述第一计算数及所述第二签名参数计算目标证明参数包括:
向所述交易数据监管方节点设备发送所述第一证明参数A和所述第二证明参数S并接收所述交易数据监管方节点设备回复的第一公开参数z;
利用Pedersen承诺随机计算第一承诺参数和第二承诺参数
向所述交易数据监管方节点设备发送所述第一承诺参数和所述第二承诺参数并接收所述交易数据监管方节点设备回复的第二公开参数x;
基于所述第一计算数、所述第二签名参数、所述第一公开参数和所述第二公开参数计算目标证明参数P=aL-z·1n+sL·x,其中,z为所述第一公开参数,x为所述第二公开参数。
在该可选的实施例中,交易数据发送方节点设备向交易数据监管方节点设备发送所述第一证明参数所述第二证明参数/> 所述交易数据监管方节点设备选择一个随机数y作为第一公开数并公开回复给交易数据发送方节点设备,其中随机数/>
交易数据发送方节点设备生成第五随机数τ1和第六随机数τ2,第五随机数τ1和第六随机数τ2均为在Zp内的一个数。
交易数据发送方节点设备可以利用Pedersen承诺基于所述第五随机数、第一系统参数g和第二系统参数h计算第一承诺利用Pedersen承诺基于所述第六随机数、第一系统参数g和第二系统参数h计算第二承诺/>
交易数据发送方节点设备将第一承诺和第二承诺发送给交易数据监管方节点设备。所述交易数据监管方节点设备选择一个随机数x作为第二公开数并公开回复给交易数据发送方节点设备,其中随机数
S17,发送所述机密交易、所述第一证明参数、所述第二证明参数及所述目标证明参数至所述交易数据监管方节点设备,使得所述交易数据监管方节点设备基于所述第一证明参数、所述第二证明参数及所述目标证明参数对所述机密交易进行验证并监管所述交易数据。
交易数据发送方节点设备将机密交易、第一证明参数、所述第二证明参数及所述目标证明参数至所述交易数据监管方节点设备等其他数据一起发送给交易数据监管方节点设备,使得交易数据监管方节点设备对所述机密交易进行验证并确定交易数据,从而实现监管的目的。
需要说明的是,本实施例中仅描述交易数据监管方节点设备和交易数据发送方节点设备的交互过程,但区块链交易数据证明监管系统中还可以包括交易数据验证方节点设备,交易数据验证方节点设备的相关内容与现有技术中的Bulletproof范围证明算法一致,在此不再赘述。所述交易数据验证方节点设备除了验证证明本身的正确性,还需要验证交易数据监管方节点设备的签名的正确性。
实施例二
如图2所示,为本发明实施例二的区块链交易数据证明监管方法的流程图。
所述区块链交易数据证明监管方法应用于交易数据监管方节点设备中,所述区块链交易数据证明监管方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S21,选取第一签名参数、第二签名参数及第三签名参数。
交易数据监管方节点设备随机选取多个参数,使用所述多个参数计算证明参数。其中,所述多个参数均为Zp范围内的数。
示例性的,选取所述第一签名参数ρ,所述第二签名参数sL,所述第三签名参数sR。
S22,利用Bulletproof范围证明基于所述第一签名参数、所述第二签名参数及所述第三签名参数计算证明参数。
在本发明的一个可选实施例中,所述第二证明参数其中,h是离散对数的基,是一个全世界范围内公开的系统参数,g、h均为公开的系统参数,ρ为所述第一签名参数,sL为所述第二签名参数,sR为所述第三签名参数。
S23,使用私钥对所述证明参数进行签名并保存所述签名及对应的所述第一签名参数、所述第二签名参数及所述第三签名参数。
交易数据监管方节点设备使用数字签名技术对证明参数进行签名。数字签名技术是基于非对称加密算法和信息摘要算法实现的对于消息来源及完整性的认证,同时是签名者不可抵赖的保证。在一个数字签名系统中有两个角色,一个是消息的签名者,一个是消息的认证者。消息的签名者根据自己的私钥可以对一条消息的信息摘要进行签名,消息的认证者根据自己的公钥对一条消息的信息摘要进行验证。如果验证通过则可证明该消息的来源是消息的签名者,消息的信息摘要相同且签名者不可抵赖。
S24,当接收到交易数据发送方节点设备的签名参数请求时,向所述交易数据发送方节点设备发送所述第一签名参数、所述第二签名参数及所述第三签名参数。
交易数据发送方在进行交易数据范围证明之前,通过交易数据发送方节点设备向交易数据监管方节点设备申请签名参数,交易数据监管方节点设备将签名过的证明参数对应的第一签名参数、所述第二签名参数及所述第三签名参数发送给交易数据监管方节点设备。
S25,获取所述交易数据发送方节点设备的机密交易、第一证明参数、第二证明参数及目标证明参数,并基于所述第一证明参数、所述第二证明参数及所述目标证明参数对所述机密交易进行验证并监管所述交易数据。
在本发明的一个可选实施例中,所述方法还包括:
当接收到所述交易数据发送方节点设备发送的所述第一证明参数和所述第二证明参数时,回复第一公开参数。
在该可选的实施例中,交易数据发送方节点设备向交易数据监管方节点设备发送第一证明参数和第二证明参数/>所述交易数据监管方节点设备选择一个随机数y作为第一公开数并公开回复给交易数据发送方节点设备,其中随机数/>
在本发明的一个可选实施例中,所述方法还包括:
当接收到所述交易数据发送方节点设备发送的第一承诺参数和第二承诺参数时,回复第二公开参数。
在该可选的实施例中,交易数据发送方节点设备将第一承诺和第二承诺发送给交易数据监管方节点设备。所述交易数据监管方节点设备选择一个随机数x作为第二公开数并公开回复给交易数据发送方节点设备,其中随机数
在本发明的一个可选实施例中,所述基于所述第一证明参数、所述第二证明参数及所述目标证明参数对所述机密交易进行验证并监管所述交易数据包括:
将所述第一公开参数、所述第二公开参数及所述第二签名参数带入所述目标证明参数中,计算得到目标随机数;
根据所述目标随机数计算出所述机密交易中的交易数据;
其中,所述目标随机数为由0或者1组成的n维数组,且所述n维数组中的每一个数与2n的乘积与所述交易数据中相同位置处的数据对应。
在该可选的实施例中,交易数据监管方节点设备根据证明中的签名及证明中的参数P即可推算出证明中的交易数据v。由于aL是交易数据v的二进制形式,P,x,z均为公开值,因而交易数据监管方节点设备可以根据所拥有的随机数sL的值计算出aL的值,进而推算出交易数据v。
本实施例,通过交易数据监管方节点设备选取多个签名参数并计算出证明参数,对计算得到的证明参数进行签名后即可将签名后的多个签名参数发给交易数据发送方节点设备,使得交易数据发送方节点设备根据多个签名参数计算证明参数。由于交易数据监管方节点设备与交易数据发送方节点设备均使用相同的多个签名参数计算得到相同的证明参数,因而在区块链网络上进行机密交易扭转时,交易数据监管方节点设备便能够监管到交易数据发送方节点设备的证明参数,从而实现了机密交易的监管。
实施例三
参阅图3所示,为本发明实施例三揭露的区块链交易数据证明监管装置的功能模块示意图。
在一些实施例中,所述区块链交易数据证明监管装置30运行于交易数据发送方节点设备中。所述区块链交易数据证明监管装置30可以包括多个由下载程序所组成的功能模块。所述区块链交易数据证明监管装置30中的各个下载程序的程序代码可以存储于调度服务器的存储器中,并由至少一个处理器所执行,以执行(详见图1描述)区块链交易数据的证明监管。
本实施例中,所述区块链交易数据证明监管装置30根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:参数申请模块301、随机数生成模块302、交易加密模块303、第一证明模块304、第二证明模块305、目标证明模块306及数据发送模块307。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列下载程序,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
所述参数申请模块301,用于预先向交易数据监管方节点设备申请第一签名参数、第二签名参数及第三签名参数。
其中,ρ为所述第一签名参数,sL为所述第二签名参数,sR为所述第三签名参数。
交易数据发送方在进行交易数据范围证明之前,可以通过交易数据发送方节点设备向交易数据监管方节点设备申请签名参数。
由于签名参数与交易数据证明值无关,所以可以提前申请多个签名后的签名参数并保存在本地,最后离线使用这些签名参数并生成证明参数。
签名后的签名参数是指通过交易数据监管方节点设备选取多个参数,并基于多个参数进行计算后进行签名的参数。
所述随机数生成模块302,用于确定交易数据,基于所述交易数据计算得到第一计算数及第二计算数,并生成第一随机数及第二随机数。
交易数据发送方节点设备可以预先使用随机数生成算法生成多个随机数。例如,生成第一随机数r,第二随机数α,第一计算数aL,第二计算数aR。
其中,所述第二随机数α为在Zp内的一个数。
在一个可选的实施例中,所述随机数生成模块302基于所述交易数据计算得到第一计算数及第二计算数包括:
对所述交易数据进行二进制展开;
计算展开后的交易数据中的每一个二进制数与2n的商值得到所述第一计算数;
计算所述第一计算数与单位数组的差值得到所述第二计算数。
在本发明的一个可选实施例中,所述第一计算数aL为由二进制数0或者1组成的一个n维数组,且所述n维数组中的每一个数与2n的乘积与所述交易数据中相同位置处的数据对应。
示例性的,假设n维数组aL={0,1,1,…0,1,0},那么{0*20,1*21,1*22,…,1*2n-2,0*2n-1}=v,v为交易数据。
在本发明的一个可选实施例中,所述第二计算数1n为由二进制数1组成的n维数组。
示例性的,假设n维数组aL={0,1,1,…0,1,0},那么aR={-1,0,0,…-1,0,-1}。
所述交易加密模块303,用于利用Pedersen承诺基于所述交易数据及所述第一随机数加密得到机密交易。
Pedersen承诺将一个交易数据隐藏进一个加密后的密文中。交易数据发送方节点设备可以之后选择解密承诺的数值。承诺一旦发出,则交易数据发送方节点设备无法找到另外一个数值依然具有相同的承诺计算结果。
机密交易是指使用Pedersen承诺隐藏交易数据,使得只有交易双方可以看到交易数据,而其他人看不到交易数据,同时双方无法伪造交易数据。
在具体实施时,利用Pedersen承诺基于所述交易数据及所述第一随机数加密得到的机密交易中的UTXO=gvhr,其中,v为所述交易数据,v∈[0,2n-1],r为所述第一随机数。
第一系统参数g和第二系统参数h是离散对数的基,是一个全世界范围内公开的系统参数。
所述第一证明模块304,用于利用Bulletproof范围证明基于所述第一计算数、所述第二计算数及所述第二随机数计算第一证明参数。
Bulletproof是当前最高效的范围证明算法,用于证明一个承诺的值处于[0,2n-1]之间。
在本发明的一个可选实施例中,所述第一证明参数其中,g、h均为公开的系统参数,α为所述第二随机数,aL为所述第一计算数,aR为所述第二计算数。
需要注意的是,本实施例中系统参数g、h与第一系统参数g和第二系统参数h不同。
所述第二证明模块305,用于利用所述Bulletproof范围证明基于所述第一签名参数、所述第二签名参数及所述第三签名参数计算第二证明参数。
在本发明的一个可选实施例中,所述第二证明参数其中,ρ为所述第一签名参数,sL为所述第二签名参数,sR为所述第三签名参数。
所述目标证明模块306,用于基于所述第一计算数及所述第二签名参数计算目标证明参数。
在本发明的一个可选实施例中,所述目标证明模块306基于所述第一计算数及所述第二签名参数计算目标证明参数包括:
向所述交易数据监管方节点设备发送所述第一证明参数和所述第二证明参数并接收所述交易数据监管方节点设备回复的第一公开参数;
利用Pedersen承诺随机计算第一承诺参数和第二承诺参数;
向所述交易数据监管方节点设备发送所述第一承诺参数和所述第二承诺参数并接收所述交易数据监管方节点设备回复的第二公开参数;
基于所述第一计算数、所述第二签名参数、所述第一公开参数和所述第二公开参数计算目标证明参数P=aL-z·1n+sL·x,其中,z为所述第一公开参数,x为所述第二公开参数。
在该可选的实施例中,交易数据发送方节点设备向交易数据监管方节点设备发送所述第一证明参数所述第二证明参数/> 所述交易数据监管方节点设备选择一个随机数y作为第一公开数并公开回复给交易数据发送方节点设备,其中随机数/>
交易数据发送方节点设备生成第五随机数τ1和第六随机数τ2,第五随机数τ1和第六随机数τ2均为在Zp内的一个数。
交易数据发送方节点设备可以利用Pedersen承诺基于所述第五随机数、第一系统参数g和第二系统参数h计算第一承诺利用Pedersen承诺基于所述第六随机数、第一系统参数g和第二系统参数h计算第二承诺/>
交易数据发送方节点设备将第一承诺和第二承诺发送给交易数据监管方节点设备。所述交易数据监管方节点设备选择一个随机数x作为第二公开数并公开回复给交易数据发送方节点设备,其中随机数
所述数据发送模块307,用于发送所述机密交易、所述第一证明参数、所述第二证明参数及所述目标证明参数至所述交易数据监管方节点设备,使得所述交易数据监管方节点设备基于所述第一证明参数、所述第二证明参数及所述目标证明参数对所述机密交易进行验证并监管所述交易数据。
交易数据发送方节点设备将机密交易、第一证明参数、所述第二证明参数及所述目标证明参数至所述交易数据监管方节点设备等其他数据一起发送给交易数据监管方节点设备,使得交易数据监管方节点设备对所述机密交易进行验证,从而实现监管的目的。
实施例四
参阅图4所示,为本发明实施例四揭露的区块链交易数据证明监管装置的功能模块示意图。
在一些实施例中,所述区块链交易数据证明监管装置40运行于交易数据发送方节点设备中。所述区块链交易数据证明监管装置40可以包括多个由下载程序所组成的功能模块。所述区块链交易数据证明监管装置40中的各个下载程序的程序代码可以存储于调度服务器的存储器中,并由至少一个处理器所执行,以执行(详见图2描述)区块链交易数据的证明监管。
本实施例中,所述区块链交易数据证明监管装置40根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:参数选取模块401、参数证明模块402、签名保存模块403、参数发送模块404、交易监管模块405及参数回复模块406。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列下载程序,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
所述参数选取模块401,用于选取第一签名参数、第二签名参数及第三签名参数。
交易数据监管方节点设备随机选取多个参数,使用所述多个参数计算证明参数。其中,所述多个参数均为Zp范围内的数。
示例性的,选取所述第一签名参数ρ,所述第二签名参数sL,所述第三签名参数sR。
所述参数证明模块402,用于利用Bulletproof范围证明基于所述第一签名参数、所述第二签名参数及所述第三签名参数计算证明参数。
在本发明的一个可选实施例中,所述第二证明参数其中,h是离散对数的基,是一个全世界范围内公开的系统参数,g、h均为公开的系统参数,ρ为所述第一签名参数,sL为所述第二签名参数,sR为所述第三签名参数。
所述签名保存模块403,用于使用私钥对所述证明参数进行签名并保存所述签名及对应的所述第一签名参数、所述第二签名参数及所述第三签名参数。
交易数据监管方节点设备使用数字签名技术对证明参数进行签名。数字签名技术是基于非对称加密算法和信息摘要算法实现的对于消息来源及完整性的认证,同时是签名者不可抵赖的保证。在一个数字签名系统中有两个角色,一个是消息的签名者,一个是消息的认证者。消息的签名者根据自己的私钥可以对一条消息的信息摘要进行签名,消息的认证者根据自己的公钥对一条消息的信息摘要进行验证。如果验证通过则可证明该消息的来源是消息的签名者,消息的信息摘要相同且签名者不可抵赖。
所述参数发送模块404,用于当接收到交易数据发送方节点设备的签名参数请求时,向所述交易数据发送方节点设备发送所述第一签名参数、所述第二签名参数及所述第三签名参数。
交易数据发送方在进行交易数据范围证明之前,通过交易数据发送方节点设备向交易数据监管方节点设备申请签名参数,交易数据监管方节点设备将签名过的证明参数对应的第一签名参数、所述第二签名参数及所述第三签名参数发送给交易数据监管方节点设备。
所述交易监管模块405,用于获取所述交易数据发送方节点设备的机密交易、第一证明参数、第二证明参数及目标证明参数,并基于所述第一证明参数、所述第二证明参数及所述目标证明参数对所述机密交易进行验证并监管所述交易数据。
所述参数回复模块406,用于当接收到所述交易数据发送方节点设备发送的所述第一证明参数和所述第二证明参数时,回复第一公开参数。
在该可选的实施例中,交易数据发送方节点设备向交易数据监管方节点设备发送第一证明参数和第二证明参数/>所述交易数据监管方节点设备选择一个随机数y作为第一公开数并公开回复给交易数据发送方节点设备,其中随机数/>
所述参数回复模块406,还用于当接收到所述交易数据发送方节点设备发送的第一承诺参数和第二承诺参数时,回复第二公开参数。
在该可选的实施例中,交易数据发送方节点设备将第一承诺和第二承诺发送给交易数据监管方节点设备。所述交易数据监管方节点设备选择一个随机数x作为第二公开数并公开回复给交易数据发送方节点设备,其中随机数
在本发明的一个可选实施例中,所述交易监管模块405基于所述第一证明参数、所述第二证明参数及所述目标证明参数对所述机密交易进行验证并监管所述交易数据包括:
将所述第一公开参数、所述第二公开参数及所述第二签名参数带入所述目标证明参数中,计算得到目标随机数;
根据所述目标随机数计算出所述机密交易中的交易数据;
其中,所述目标随机数为由0或者1组成的n维数组,且所述n维数组中的每一个数与2n的乘积与所述交易数据中相同位置处的数据对应。
在该可选的实施例中,交易数据监管方节点设备根据证明中的签名及证明中的参数P即可推算出证明中的交易数据v。由于aL是交易数据v的二进制形式,P,x,z均为公开值,因而交易数据监管方节点设备可以根据所拥有的随机数sL的值计算出aL的值,进而推算出交易数据v。
本实施例,通过交易数据监管方节点设备选取多个签名参数并计算出证明参数,对计算得到的证明参数进行签名后即可将签名后的多个签名参数发给交易数据发送方节点设备,使得交易数据发送方节点设备根据多个签名参数计算证明参数。由于交易数据监管方节点设备与交易数据发送方节点设备均使用相同的多个签名参数计算得到相同的证明参数,因而在区块链网络上进行机密交易扭转时,交易数据监管方节点设备便能够监管到交易数据发送方节点设备的证明参数,从而实现了机密交易的监管。
实施例五
图5为本发明实施例揭露的区块链节点设备的内部结构示意图。
在本实施例中,所述区块链节点设备5可以包括存储器51、处理器52和总线53及收发器54。
所述区块链节点设备5可以是交易数据发送方节点设备,执行实施例一所述的区块链交易数据证明监管方法中的全部或者部分步骤。所述区块链节点设备5可以是交易数据监管方节点设备,执行实施例二所述的区块链交易数据证明监管方法中的全部或者部分步骤。
其中,存储器51至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器51在一些实施例中可以是所述区块链节点设备5的内部存储单元,例如所述区块链节点设备5的硬盘。存储器51在另一些实施例中也可以是所述区块链节点设备5的外部存储设备,例如所述区块链节点设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器51还可以既包括所述区块链节点设备5的内部存储单元,也包括外部存储设备。存储器51不仅可以用于存储安装于所述区块链节点设备5的应用程序及各类数据,例如,区块链交易数据证明监管装置30及其各个功能模块,或者区块链交易数据证明监管装置40及其各个功能模块,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器52在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器,用于运行存储器51中存储的下载程序或处理数据。
该总线53可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,所述区块链节点设备5还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该区块链节点设备5与其他调度服务器之间建立通信连接。
可选地,该区块链节点设备5还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元,比如键盘(Keyboard),可选的,用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)触摸器等。其中,显示器也可以称为显示屏或显示单元,用于显示在所述调度服务器中处理的消息以及用于显示可视化的用户界面。
图5仅示出了具有组件51-54的所述区块链节点设备5,本领域技术人员可以理解的是,图5示出的结构并不构成对所述区块链节点设备5的限定,既可以是总线型结构,也可以是星形结构,所述区块链节点设备5还可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在上述实施例中,可以全部或部分地通过应用程序、硬件、固件或者其任意组合来实现。当使用应用程序实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如,同轴电缆、光纤、数字用户线)或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD),或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用应用程序功能单元的形式实现。
所述集成的单元如果以应用程序功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以应用程序产品的形式体现出来,该计算机应用程序产品存储在一个存储介质中,包括若干指令用以使得一台调度服务器(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、硬盘、只读存储器(Read-OnlyMemory,ROM)、磁碟或者光盘等各种可以存储下载程序的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。