区块链供应链交易隐藏动态监管系统及方法
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链供应链交易隐藏动态监管系统及方法。
背景技术
现有的区块链供应链系统,将核心企业节点设备、供应商节点设备、保理商节点设备及银行节点设备等通过区块链联系了起来。核心企业节点设备、供应商节点设备、保理商节点设备及银行节点设备等作为区块链节点加入区块链供应链系统时,需要经过授权才能加入,区块链节点之间具有一定的信任基础,通过应收账款、票据凭证、抵押货物凭证等交易数据上链的方式增强了数据的可信性。
然而,这些交易数据中往往存在商业机密,将交易数据明文上链,导致了商业机密和个人隐私的泄露,且没有监管机构的监管。
因此,有必要提供一种区块链供应链交易隐藏动态监管方案。
发明内容
本发明的主要目的在于提供一种区块链供应链交易隐藏动态监管系统及方法,旨在解决区块链供应链中交易数据明文上链导致隐私泄露且无监管的技术问题。
为实现上述目的,本发明的第一方面提供一种区块链供应链交易隐藏动态监管系统,所述系统包括:
监管机构节点设备,用于在接收到核心企业节点设备的签名参数申请时,发送多个签名参数;
所述核心企业节点设备,用于利用Pedersen承诺对核心企业承诺给一级供应商的应付款进行加密得到机密交易;利用Bulletproof范围证明基于所述多个签名参数及生成的随机数计算证明参数;对所述机密交易及所述证明参数进行签名并将签名后的交易数据上传至区块链供应链平台;
一级供应商节点设备,用于利用所述区块链供应链平台接收所述交易数据并解密后输出给所述一级供应商;
所述监管机构节点设备,还用于从所述区块链供应链平台上获取所述交易数据;获取所述交易数据中的机密交易及证明参数,并基于所述证明参数确定所述机密交易中的应付款以实现所述应付款的监管;
所述区块链供应链平台,用于存储所述交易数据;验证所述交易数据的正确性及所述监管机构节点设备签名的合法性。
根据本发明的一个可选实施例,所述多个签名参数包括第一签名参数、第二签名参数及第三签名参数,所述随机数包括第一随机数及第二随机数;
所述利用Pedersen承诺对核心企业承诺给一级供应商的应付款进行加密得到机密交易包括:
利用Pedersen承诺基于所述应付款及所述第一随机数加密得到机密交易;
所述核心企业节点设备利用Bulletproof范围证明基于所述多个签名参数及生成的随机数计算证明参数包括:
基于所述交易数据计算得到第一计算数及第二计算数;
利用Bulletproof范围证明基于所述第一计算数、所述第二计算数及所述第二随机数计算第一证明参数;
利用所述Bulletproof范围证明基于所述第一签名参数、所述第二签名参数及所述第三签名参数计算第二证明参数;
基于所述第一计算数及所述第二签名参数计算目标证明参数。
根据本发明的一个可选实施例,所述基于所述第一计算数及所述第二签名参数计算目标证明参数包括:
向所述监管机构节点设备发送所述第一证明参数和所述第二证明参数并接收所述监管机构节点设备回复的第一公开参数;
利用Pedersen承诺随机计算第一承诺参数和第二承诺参数;
向所述监管机构节点设备发送所述第一承诺参数和所述第二承诺参数并接收所述监管机构节点设备回复的第二公开参数;
基于所述第一计算数、所述第二签名参数、所述第一公开参数和所述第二公开参数计算目标证明参数。
根据本发明的一个可选实施例,所述监管机构节点设备在接收到所述核心企业节点设备的签名参数申请时,发送多个签名参数包括:
生成第一候选参数、第二候选参数及第三候选参数;对所述第一候选参数进行签名得到第一签名参数,对所述第二候选参数进行签名得到第二签名参数及对所述第三候选参数进行签名得到第三签名参数;在接收到所述核心企业节点设备的签名参数申请时,发送所述第一签名参数、所述第二签名参数及所述第三签名参数;或者
生成第一候选参数、第二候选参数及第三候选参数;利用Bulletproof范围证明基于所述第一候选参数、所述第二候选参数及所述第三候选参数计算第二证明参数;使用私钥对所述第二证明参数进行签名并保存所述签名及对应的所述第一候选参数、所述第二候选参数及所述第三候选参数;当接收到核心企业节点设备的签名参数请求时,将所述第一候选参数作为第一签名参数、所述第二候选参数作为所述第二签名参数及所述第三候选参数作为所述第三签名参数发送给所述核心企业节点设备,并将所述第二证明参数的签名一并发送给所述核心企业节点设备。
根据本发明的一个可选实施例,所述一级供应商节点设备,还用于:
将所述交易数据中的UTXO拆分为第一UTXO和第二UTXO,其中,所述第一UTXO中的金额和第二UTXO中的金额之和等于所述UTXO中的金额;
基于所述第一UTXO和第二UTXO与其他区块链实体节点设备进行交易;
基于Bulletproof对所述第一UTXO和第二UTXO进行范围证明。
根据本发明的一个可选实施例,所述一级供应商节点设备或者所述其他区块链实体节点设备,还用于当所述应付款到期后,向所述核心企业节点设备兑付应付款,响应于所述应付款兑付成功,将持有的UTXO进行无效化签名或者返还给所述核心企业节点设备。
根据本发明的一个可选实施例,所述系统还包括:
至少一个风险评估机构节点设备,用于读取所述区块链供应链平台上存储的交易数据,使用预先训练好的风险评估模型对所述交易数据进行风险评估,并将风险评估结果发送给所述其他区块链实体节点设备。
本发明的第二方面提供一种区块链供应链交易隐藏动态监管方法,所述方法包括:
当所述监管机构节点设备接收到核心企业节点设备的签名参数请求时,向所述核心企业节点设备发送第一签名参数、第二签名参数及第三签名参数;
所述核心企业节点设备利用Pedersen承诺对核心企业承诺给一级供应商的应付款进行加密得到机密交易;
所述核心企业节点设备利用Bulletproof范围证明基于所述多个签名参数及生成的随机数计算证明参数;
所述核心企业节点设备对所述机密交易及所述证明参数进行签名并将签名后的交易数据上传至区块链供应链平台;
一级供应商节点设备利用所述区块链供应链平台接收所述交易数据并解密后输出给所述一级供应商;
所述监管机构节点设备从所述区块链供应链平台上获取所述交易数据;获取所述交易数据中的机密交易及证明参数,并基于所述证明参数确定所述机密交易中的应付款以实现所述应付款的监管。
根据本发明的一个可选实施例,所述监管机构节点设备接收到核心企业节点设备的签名参数请求时,向所述核心企业节点设备发送第一签名参数、第二签名参数及第三签名参数包括:
生成第一候选参数、第二候选参数及第三候选参数;对所述第一候选参数进行签名得到第一签名参数,对所述第二候选参数进行签名得到第二签名参数及对所述第三候选参数进行签名得到第三签名参数;在接收到所述核心企业节点设备的签名参数申请时,发送所述第一签名参数、所述第二签名参数及所述第三签名参数;或者
生成第一候选参数、第二候选参数及第三候选参数;利用Bulletproof范围证明基于所述第一候选参数、所述第二候选参数及所述第三候选参数计算证明参数;使用私钥对所述证明参数进行签名并保存所述签名及对应的所述第一候选参数、所述第二候选参数及所述第三候选参数;当接收到核心企业节点设备的签名参数请求时,将所述第一候选参数作为第一签名参数、所述第二候选参数作为所述第二签名参数及所述第三候选参数作为所述第三签名参数发送给所述核心企业节点设备。
根据本发明的一个可选实施例,所述方法还包括:
通过所述一级供应商节点设备将所述交易数据中的UTXO拆分为第一UTXO和第二UTXO,其中,所述第一UTXO中的金额和第二UTXO中的金额之和等于所述UTXO中的金额;
基于所述第一UTXO和第二UTXO与其他区块链实体节点设备进行交易;
基于Bulletproof对所述第一UTXO和第二UTXO进行范围证明。
根据本发明的一个可选实施例,所述方法还包括:
通过至少一个风险评估机构节点设备读取所述区块链供应链平台上存储的交易数据,使用预先训练好的风险评估模型对所述交易数据进行风险评估,并将风险评估结果发送给所述其他区块链实体节点设备。
本发明实施例所述的区块链供应链交易隐藏动态监管系统及方法,通过引入Pedersen承诺和Bulletproof范围证明的概念,将核心企业的明文应付款加密成机密交易并上链,只有交易双方能够解密交易数据中的金额,保护了交易隐私不被泄露,保障了区块链实体商业机密。而监管机构在获取到机密交易和Bulletproof范围证明后,通过Bulletproof范围证明对机密交易进行监管。
附图说明
图1为本发明实施例的区块链供应链交易隐藏动态监管系统的架构示意图;
图2为本发明实施例的区块链供应链交易隐藏动态监管系统的架构示意图;
图3为本发明实施例的区块链供应链交易隐藏动态监管方法的流程示意图;
图4为本发明实施例的区块链节点设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
如图1所示,为本发明实施例的区块链供应链交易隐藏动态监管系统的架构示意图。
区块链供应链交易隐藏动态监管系统1可以包括,但不限于:区块链供应链平台10、核心企业节点设备11、一级供应商节点设备12、其他区块链实体节点设备13及监管机构节点设备14。
在一个可选的实施例中,所述其他区块链实体节点设备13可以包括以下一种或多种的组合:二级供应商节点设备13、银行节点设备13、保理商节点设备13。所述核心企业、一级供应商、二级供应商、银行、保理商均称之为区块链实体。所述核心企业节点设备11、一级供应商节点设备12、二级供应商节点设备13、银行节点设备13、保理商节点设备13称之为区块链实体节点设备。
区块链实体在接入区块链供应链平台10之前,先向证书颁发机构(CertificateAuthority,CA)申请数字证书。CA在判明申请者的身份后,便为申请者分配一个公钥,同时将分配的公钥与申请者的身份信息关联起来并签字后形成数字证书发给申请者。后续,当区块链实体接入区块链供应链平台10时,区块链供应链平台10使用CA的公钥对接入的区块链实体的数字证书上的签字进行验证,当验证通过,则数字证书被认为是有效的,允许区块链实体接入区块链供应链平台10,当验证失败,则数字证书被认为是无效的,拒绝区块链实体接入区块链供应链平台10。所述数字证书的内容包括:电子签证机关的信息、公钥用户信息、公钥、签字和有效期等等。
在一些实施例中,核心企业节点设备11,用于向监管机构节点设备14申请多个签名参数及生成随机数;利用Pedersen承诺对核心企业承诺给一级供应商的应付款进行加密得到机密交易;利用Bulletproof范围证明基于所述多个签名参数及所述随机数计算证明参数;对所述机密交易及所述证明参数进行签名并将签名后的交易数据上传至区块链供应链平台10。
核心企业购买一级供应商的产品并承诺应付款,一级供应商可基于所述应付款的一部分购买二级供应商的产品,二级供应商可以进一步将一级供应商承诺的应付款拆分后购买其他二级供应商的产品,以此类推。保理商可以购买一级供应商、二级供应商持有的应付款。银行可以基于供应商的应付款提供贷款。
为了避免交易隐私被泄露,核心企业购买一级供应商的产品并承诺应付款之后,核心企业通过核心企业节点设备11对所述应付款进行加密得到机密交易,确保了核心企业与一级供应商之间的交易隐私。
核心企业在进行交易数据范围证明之前,可以预先向监管机构节点设备申请第一签名参数ρ、第二签名参数sL及第三签名参数sR。
由于签名参数与交易数据证明值无关,所以可以提前申请多个签名参数并保存在本地,最后离线使用这些签名参数并生成证明参数。所述签名参数是指通过监管机构节点设备选取的多个候选参数,并对多个候选参数进行签名后得到的参数;或者,通过监管机构节点设备选取的多个候选参数,并基于多个候选参数计算证明参数,对证明参数签名并保存签名,此时与签名对应的候选参数作为签名参数。
在一个可选的实施例中,所述核心企业节点设备11可以基于所述交易数据计算得到第一计算数及第二计算数,并生成第一随机数及第二随机数。
核心企业节点设备可以预先使用随机数生成算法生成随机数。例如,生成第一随机数r,第二随机数α。
其中,所述第二随机数α为在Zp内的一个数。所述Zp为整数模p加法群。
在本发明的一个可选实施例中,所述基于所述交易数据计算得到第一计算数及第二计算数包括:
对所述交易数据进行二进制展开;
计算展开后的交易数据中的每一个二进制数与2n的商值得到所述第一计算数;
计算所述第一计算数与单位数组的差值得到所述第二计算数。
所述第一计算数aL为由二进制数0或者1组成的一个n维数组,且所述n维数组中的每一个数与2n的乘积与所述交易数据中相同位置处的数据对应。
示例性的,假设n维数组aL={0,1,1,…0,1,0},那么{0*20,1*21,1*22,…,0*2n-2,1*2n-1,0*2n}=v,v为应付款。
在本发明的一个可选实施例中,所述第二计算数
1
n为由二进制数1组成的n维数组。
示例性的,假设n维数组aL={0,1,1,…0,1,0},那么aR={-1,0,0,…-1,0,-1}。
在一个可选的实施例中,所述核心企业节点设备11用于利用Pedersen承诺对核心企业承诺给一级供应商的应付款进行加密得到机密交易。
Pedersen承诺将一个交易数据隐藏进一个加密后的密文中。核心企业节点设备可以之后选择解密承诺的数值。承诺一旦发出,则核心企业节点设备无法找到另外一个数值依然具有相同的承诺计算结果。
机密交易是指使用Pedersen承诺隐藏交易数据,使得只有交易双方可以看到交易数据,而其他人看不到交易数据,同时双方无法伪造交易数据。
在具体实施时,利用Pedersen承诺基于所述应付款及所述第一随机数加密得到的机密交易中的UTXO=gvhr,其中,v为所述应付款,v∈[0,2n-1],r为所述第一随机数。
第一系统参数g和第二系统参数h是离散对数的基,是一个全世界范围内公开的系统参数。
所述核心企业节点设备11利用Bulletproof范围证明基于所述第一随机数、所述第二随机数及所述第一计算数计算第一证明参数。
Bulletproof是当前最高效的范围证明算法,用于证明一个承诺的值处于[0,2n-1]之间。
在本发明的一个可选实施例中,所述第一证明参数
其中,g、h均为公开的系统参数,α为所述第二随机数,a
L为所述第一计算数,a
R为所述第二计算数。
需要注意的是,本实施例中系统参数g、h与第一系统参数g和第二系统参数h不同。
所述核心企业节点设备11利用所述Bulletproof范围证明基于所述第一签名参数、所述第二签名参数及所述第三签名参数计算第二证明参数。
在本发明的一个可选实施例中,所述第二证明参数
其中,ρ为所述第一签名参数,s
L为所述第二签名参数,s
R为所述第三签名参数。
所述核心企业节点设备11基于所述第一计算数及所述第二签名参数计算目标证明参数。
具体的,所述核心企业节点设备11基于所述第一计算数及所述第二签名参数计算目标证明参数包括:
向所述监管机构节点设备14发送所述第一证明参数A和所述第二证明参数S并接收所述监管机构节点设备回复的第一公开参数z;
利用Pedersen承诺随机计算第一承诺参数
和第二承诺参数
向所述交易数据监管方节点设备发送所述第一承诺参数和所述第二承诺参数并接收所述交易数据监管方节点设备回复的第二公开参数x;
基于所述第一计算数、所述第二签名参数、所述第一公开参数和所述第二公开参数计算目标证明参数P=aL-z·1n+sL·x,其中,z为所述第一公开参数,x为所述第二公开参数。
在该可选的实施例中,核心企业节点设备向监管机构节点设备发送所述第一证明参数
所述第二证明参数
所述监管机构节点设备动态选择一个随机数z作为第一公开数并公开回复给核心企业节点设备,其中随机数
核心企业节点设备11生成第五随机数τ1和第六随机数τ2,第五随机数τ1和第六随机数τ2均为在Zp内的一个数。
核心企业节点设备11可以利用Pedersen承诺基于所述第五随机数、第一系统参数g和第二系统参数h计算第一承诺
利用Pedersen承诺基于所述第六随机数、第一系统参数g和第二系统参数h计算第二承诺
核心企业节点设备11将第一承诺和第二承诺发送给监管机构节点设备14。所述监管机构节点设备14动态选择一个随机数x作为第二公开数并公开回复给核心企业节点设备,其中随机数
核心企业节点设备11发送所述机密交易、所述第一证明参数、所述第二证明参数及所述目标证明参数至所述监管机构节点设备14,使得所述监管机构节点设备14基于所述目标证明参数、第一公开参数及第二公开参数确定所述机密交易中的应付款,从而实现对所述应付款的监管。
在一些实施例中,一级供应商节点设备12用于利用所述区块链供应链平台10接收所述交易数据并解密后输出给所述一级供应商。
一级供应商作为核心企业应付款的接收方,通过一级供应商节点设备12接收核心企业节点设备11发送的验证参数。核心企业可以通过密钥协商等方式告知一级供应商应付款及第一随机数r。
在一个可选的实施例中,所述一级供应商节点设备12,还用于将所述交易数据中的UTXO拆分为第一UTXO和第二UTXO,基于所述第一UTXO和第二UTXO与其他区块链实体节点设备进行交易。
所述一级供应商节点设备12将交易数据发送给所述区块链供应链平台10进行存储。
在该可选的实施例中,所述第一UTXO中的金额和第二UTXO中的金额之和等于所述UTXO中的金额。
一级供应商可以将交易数据中的UTXO拆分后交易给二级供应商、保理商或者通过银行进行抵押贷款。二级供应商、保理商或者银行接收到拆分后的UTXO可以进一步进行拆分并交易。一旦拆分后的UTXO被使用后,原来的UTXO就不再可用,但是关于原来的UTXO的交易数据依旧会记录在区块链供应链平台上,供溯源和查询。
在一个可选的实施例中,所述一级供应商节点设备12,还用于基于Bulletproof对所述第一UTXO和第二UTXO进行范围证明。
在该可选的实施例中,当一笔UTXO0拆分成UTXO1和UTXO2时,可以使用加法同态性,得到UTXO0=UTXO1+UTXO2,并且可以使用Bulletproof算法证明拆分后的UTXO1和UTXO2中的金额均为合法值,即UTXO中的金额为一定范围内的正数。
示例性的,假设
该UTXO的持有者可以将其拆分为UTXO
1和UTXO
2。使用加法同态性得到:
由此可见,x
0=x
1+x
2,如此保证了两笔UTXO中的金额之和等于原UTXO所隐藏的金额。于此同时,使用Bulletproof算法生成范围证明,用于证明UTXO
1和UTXO
2中的金额在合理范围内。举例来说,金额的范围可以设置为[0,2^32-1]。关于Bulletproof算法生成范围证明的过程,为现有技术,本发明不再详细赘述。
需要说明的是,上述实施例中以将UTXO拆分为两个子UTXO为例进行了说明,实际上一级供应商节点设备也可以将UTXO拆分成3份或者更多份,以更灵活的与二级供应商进行交易。
需要说明的是,本实施例中,一级供应商节点设备在将UTXO拆分为多个子UTXO时,还可以基于子UTXO发起可监管机密交易,与核心企业节点设备发起可监管机密交易的方法相同,一级供应商节点设备也需要先向监管机构节点设备先申请第一签名参数、第二签名参数及第三签名参数,然后按照前述核心企业节点设备发起可监管机密交易的方法发起可监管机密交易,同样的,其它的供应商节点设备(包括一级、二级、三级甚至更低级的供应商节点设备)在获取到UTXO后同样能按照前述方法发起可监管机密交易,这样整个系统中的机密交易都处于监管机构节点设备的监管之下。
在一个可选的实施例中,所述一级供应商节点设备12或者所述其他区块链实体节点设备13,还用于当所述应付款到期后,向所述核心企业节点设备兑付应付款,响应于所述应付款兑付成功,将持有的UTXO进行无效化签名或者返还给所述核心企业节点设备。
所述UTXO中标记了应付款的到期时间戳。
当持有UTXO的区块链实体(例如,一级供应商、二级供应商、保理商、银行等)通过各自的节点设备确定应付款到期后,可以通过所述区块链供应链平台10上记录的交易数据向所述核心企业节点设备11兑付应付款。
核心企业通过核心企业节点设备11接收到兑付应付款的信息时,确认应付款是否到期。在确认应付款到期后,兑付债款。收到债款后的区块链实体进行签名,表示已经收到了债款。持有UTXO的区块链实体在收到债款的同时或者之后,将自身所持有的UTXO无效化签名或者返还给核心企业,形成完整的交易数据记录在区块链供应链平台10上。
所述监管机构节点设备14,用于在接收到所述核心企业节点设备的签名参数申请时,发送多个签名参数。
在一个可选的实施例中,所述监管机构节点设备在接收到所述核心企业节点设备的签名参数申请时,发送多个签名参数包括:
生成第一候选参数、第二候选参数及第三候选参数;对所述第一候选参数进行签名得到第一签名参数,对所述第二候选参数进行签名得到第二签名参数及对所述第三候选参数进行签名得到第三签名参数;在接收到所述核心企业节点设备的签名参数申请时,发送所述第一签名参数、所述第二签名参数及所述第三签名参数。
在该可选的实施例中,监管机构节点设备分别对第一候选参数、第二候选参数及第三候选参数进行签名,发送第一候选参数、第二候选参数及第三候选参数及各自的签名给核心企业节点设备。
在一个替代的实施例中,所述监管机构节点设备在接收到所述核心企业节点设备的签名参数申请时,发送多个签名参数包括:
生成第一候选参数、第二候选参数及第三候选参数;利用Bulletproof范围证明基于所述第一候选参数、所述第二候选参数及所述第三候选参数计算第二证明参数;使用私钥对所述第二证明参数进行签名并保存所述签名及对应的所述第一候选参数、所述第二候选参数及所述第三候选参数;当接收到核心企业节点设备的签名参数请求时,将所述第一候选参数作为第一签名参数、所述第二候选参数作为所述第二签名参数及所述第三候选参数作为所述第三签名参数发送给所述核心企业节点设备,并将所述第二证明参数的签名一并发送给所述核心企业节点设备。
在该可选的实施例中,监管机构节点设备将第二证明参数
的签名及多个签名参数发送给核心企业节点设备,核心企业节点设备验证第二证明参数的签名即可确定上述三个签名参数的真实性。由于仅需对第二证明参数进行签名,无需对第一候选参数、第二候选参数及第三候选参数进行签名,减少了签名次数;且将未签名的多个候选参数作为多个签名参数发送给核心企业节点设备,减少了信息的传输量,提高了签名参数的发送效率。
其中,所述第一签名参数ρ、所述第二签名参数sL及所述第三签名参数sR均为Zp范围内的数。这些签名参数都是动态生成的一次性随机数。
所述监管机构节点设备14利用Bulletproof范围证明基于所述第一签名参数、所述第二签名参数及所述第三签名参数计算证明参数。
在本发明的一个可选实施例中,所述第二证明参数
其中,h是离散对数的基,是一个全世界范围内公开的系统参数,g、h均为公开的系统参数,ρ为所述第一签名参数,s
L为所述第二签名参数,s
R为所述第三签名参数。
所述监管机构节点设备14使用私钥对所述证明参数进行签名并保存所述签名及对应的所述第一签名参数、所述第二签名参数及所述第三签名参数。
监管机构节点设备14使用数字签名技术对证明参数进行签名。数字签名技术是基于非对称加密算法和信息摘要算法实现的对于消息来源及完整性的认证,同时是签名者不可抵赖的保证。在一个数字签名系统中有两个角色,一个是消息的签名者,一个是消息的认证者。消息的签名者根据自己的私钥可以对一条消息的信息摘要进行签名,消息的认证者根据自己的公钥对一条消息的信息摘要进行验证。如果验证通过则可证明该消息的来源是消息的签名者,消息的信息摘要相同且签名者不可抵赖。
所述监管机构节点设备14,还用于当接收到核心企业节点设备的签名参数请求时,向所述核心企业节点设备发送所述第一签名参数、所述第二签名参数及所述第三签名参数。
交易数据发送方在进行交易数据范围证明之前,通过核心企业节点设备向监管机构节点设备申请签名参数,监管机构节点设备将签名过的证明参数对应的第一签名参数、所述第二签名参数及所述第三签名参数发送给监管机构节点设备。
在本发明的一个可选实施例中,所述监管机构节点设备14,还用于当接收到所述核心企业节点设备发送的所述第一证明参数和所述第二证明参数时,回复第一公开参数。
在该可选的实施例中,核心企业节点设备向监管机构节点设备发送第一证明参数
和第二证明参数
所述监管机构节点设备动态选择一个随机数z作为第一公开数并公开回复给核心企业节点设备,其中随机数
在本发明的一个可选实施例中,所述监管机构节点设备14,还用于当接收到所述核心企业节点设备发送的第一承诺参数和第二承诺参数时,回复第二公开参数。
在该可选的实施例中,核心企业节点设备将第一承诺和第二承诺发送给监管机构节点设备。所述监管机构节点设备动态选择一个随机数x作为第二公开数并公开回复给核心企业节点设备,其中随机数
由此可见,随机数y是所述监管机构节点设备14在接收到核心企业节点设备发送的第一证明参数和第二证明参数时动态并随机产生的一次性随机数,随机数x是所述监管机构节点设备14在接收到第一承诺参数和第二承诺参数时动态并随机产生的一次性随机数。
所述监管机构节点设备14,还用于从所述区块链供应链平台上获取所述交易数据;获取所述交易数据中的机密交易及证明参数,并基于所述证明参数确定所述机密交易中的应付款以实现所述应付款的监管。
在本发明的一个可选实施例中,所述监管机构节点设备14基于所述证明参数确定所述机密交易中的应付款以实现所述应付款的监管包括:
将所述第一公开参数、所述第二公开参数及所述第二签名参数带入所述目标证明参数中,计算得到目标随机数;
根据所述目标随机数计算出所述机密交易中的交易数据;
其中,所述目标随机数为由0或者1组成的n维数组,且所述n维数组中的每一个数与2n的乘积与所述应付款中相同位置处的数据对应。
在该可选的实施例中,监管机构节点设备根据证明中的签名及证明中的参数P即可推算出证明中的交易数据v。由于aL是交易数据v的二进制形式,P,x,z均为公开值,因而监管机构节点设备可以根据所拥有的随机数sL的值计算出aL的值,进而推算出应付款v。
本实施例,通过监管机构节点设备选取多个签名参数并计算出证明参数,对计算得到的证明参数进行签名后即可将签名后的多个签名参数发给核心企业节点设备,使得核心企业节点设备根据多个签名参数计算证明参数。由于监管机构节点设备与核心企业节点设备均使用相同的多个签名参数计算得到相同的证明参数,因而在区块链网络上进行机密交易扭转时,监管机构节点设备便能够监管到核心企业节点设备的证明参数,从而实现了机密交易的监管。
所述区块链供应链平台10,用于存储所述交易数据;验证所述交易数据的正确性及所述监管机构节点设备签名的合法性。
需要说明的是,所述区块链供应链交易隐藏动态监管系统1中的区块链供应链平台10、核心企业节点设备11、一级供应商节点设备12、所述监管机构节点设备14必须存在的,所述其他区块链实体节点设备13可选的存在。即,二级供应商节点设备、银行节点设备、保理商节点设备可选的存在于所述区块链供应链交易隐藏动态监管系统1中。
允许监管机构动态监管,不需要对每笔交易进行审核,通过预先分发的一次性随机数进行监管,具有完美前向安全的特性。
如图2所示,为本发明实施例的区块链供应链交易隐藏动态监管系统的另一架构示意图。
区块链供应链交易隐藏动态监管系统1除了包括图1中所述的区块链供应链平台10、核心企业节点设备11、一级供应商节点设备12、其他区块链实体节点设备13、监管机构节点设备14,还可以包括至少一个风险评估机构节点设备15。
其中,所述至少一个风险评估机构节点设备15,用于读取所述区块链供应链平台10上存储的交易数据,使用预先训练好的风险评估模型对所述交易数据进行风险评估,并将风险评估结果发送给所述其他区块链实体节点设备13。
至少一个风险评估机构节点设备15可以事先获取所述区块链供应链平台10上记录的历史交易数据,并基于历史交易数据训练风险评估模型,来评估每笔交易数据中的应付款的价值。
至少一个风险评估机构节点设备15读取到所述区块链供应链平台10上新记录的交易数据时,使用风险评估模型来评估新记录的交易数据中的应付款的价值,并将风险评估结果发送给交易数据对应的UTXO(即核心企业的应付款)的潜在购买者。所述潜在购买者可以包括,但不限于二级供应商,保理商,银行等。
二级供应商,保理商,银行等获取了风险评估结果后,可以选择与UTXO的持有者进行交易,并最终完成应付款的兑付过程。
在一些实施例中,所述区块链供应链平台10,可以是基于任何UTXO模型的区块链系统以及支持UTXO账户模型的区块链系统。
在一些实施例中,所述区块链供应链系统1还可以包括:数据解密模块,UTXO金额范围证明模块,区块链钱包,轻量钱包,统计分析工具,实体列表等。
需要说明的是,所有区块链实体的交易上链之前,需要提前获取监管机构动态选取的一次性签名参数及基于随机数计算的证明参数并签名,区块链实体基于一次性签名参数生成Bulletproof证明,具有前向安全的特性。区块链供应链平台除了验证交易数据的正确性以外,还要验证监管机构签名的合法性。由于签名参数是由监管机构动态生成的一次性数,当监管机构的密钥泄露,不会导致大范围的交易数据泄露。
本实施例所述的区块链供应链隐私交易动态监管系统,通过引入Pedersen承诺和Bulletproof范围证明的概念,将核心企业的明文应付款加密成机密交易并上链,只有交易双方能够解密交易数据中的金额,保护了交易隐私不被泄露,保障了区块链实体商业机密。而监管机构在获取到机密交易和Bulletproof范围证明后,通过Bulletproof范围证明对机密交易进行监管。
实施例三
参阅图3所示,为本发明实施例揭露的区块链供应链交易隐藏动态监管方法的流程示意图。
所述区块链供应链交易隐藏动态监管方法,应用于区块链供应链网络中,所述区块链供应链交易隐藏动态监管方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S31,当所述监管机构节点设备接收到核心企业节点设备的签名参数请求时,向所述核心企业节点设备发送第一签名参数、第二签名参数及第三签名参数。
在一个可选的实施例中,,所述监管机构节点设备接收到核心企业节点设备的签名参数请求时,向所述核心企业节点设备发送第一签名参数、第二签名参数及第三签名参数包括:
生成第一候选参数、第二候选参数及第三候选参数;对所述第一候选参数进行签名得到第一签名参数,对所述第二候选参数进行签名得到第二签名参数及对所述第三候选参数进行签名得到第三签名参数;在接收到所述核心企业节点设备的签名参数申请时,发送所述第一签名参数、所述第二签名参数及所述第三签名参数。
在一个可选的实施例中,生成第一候选参数、第二候选参数及第三候选参数;利用Bulletproof范围证明基于所述第一候选参数、所述第二候选参数及所述第三候选参数计算证明参数;使用私钥对所述证明参数进行签名并保存所述签名及对应的所述第一候选参数、所述第二候选参数及所述第三候选参数;当接收到核心企业节点设备的签名参数请求时,将所述第一候选参数作为第一签名参数、所述第二候选参数作为所述第二签名参数及所述第三候选参数作为所述第三签名参数发送给所述核心企业节点设备。
S32,所述核心企业节点设备利用Pedersen承诺对核心企业承诺给一级供应商的应付款进行加密得到机密交易。
S33,所述核心企业节点设备利用Bulletproof范围证明基于所述多个签名参数及生成的随机数计算证明参数。
S34,所述核心企业节点设备对所述机密交易及所述证明参数进行签名并将签名后的交易数据上传至区块链供应链平台。
S35,一级供应商节点设备利用所述区块链供应链平台接收所述交易数据并解密后输出给所述一级供应商。
S36,所述监管机构节点设备从所述区块链供应链平台上获取所述交易数据;获取所述交易数据中的机密交易及证明参数,并基于所述证明参数确定所述机密交易中的应付款以实现所述应付款的监管。
在一个可选的实施例中,所述方法还包括:
通过所述一级供应商节点设备将所述交易数据中的UTXO拆分为第一UTXO和第二UTXO,其中,所述第一UTXO中的金额和第二UTXO中的金额之和等于所述UTXO中的金额;
基于所述第一UTXO和第二UTXO与其他区块链实体节点设备进行交易;
基于Bulletproof对所述第一UTXO和第二UTXO进行范围证明。
在一个可选的实施例中,所述方法还包括:
通过至少一个风险评估机构节点设备读取所述区块链供应链平台上存储的交易数据,使用预先训练好的风险评估模型对所述交易数据进行风险评估,并将风险评估结果发送给所述其他区块链实体节点设备。
关于实施例三所述的区块链供应链隐私交易动态监管方法中的各个实施例的具体过程可参见实施例一及实施例二的相应描述,本发明不再详细阐述。
需要说明的是,所有区块链实体的交易上链之前,需要提前获取监管机构动态生成的一次性签名参数及基于随机数计算的证明参数并签名,区块链实体基于一次性签名参数生成Bulletproof证明,具有前向安全的特性。区块链供应链平台除了验证交易数据的正确性以外,还要验证监管机构签名的合法性。由于签名参数是由监管机构动态生成的一次性数,当监管机构的密钥泄露,不会导致大范围的交易数据泄露。
本实施例所述的区块链供应链隐私交易动态监管方法,通过引入Pedersen承诺和Bulletproof范围证明的概念,将核心企业的明文应付款加密成机密交易并上链,只有交易双方能够解密交易数据中的金额,保护了交易隐私不被泄露,保障了区块链实体商业机密。而监管机构在获取到机密交易和Bulletproof范围证明后,通过Bulletproof范围证明对机密交易进行监管。
图4为本发明实施例揭露的区块链节点设备的内部结构示意图。
在本实施例中,所述区块链节点设备4可以包括存储器41、处理器42和总线43及收发器44。
所述区块链节点设备4可以为核心企业节点设备,还可以为监管机构节点设备,或者一级供应商节点设备,其他区块链实体(例如,二级供应商,银行,保理商)节点设备等。当所述区块链节点设备4为核心企业节点设备时,执行实施例一或者实施例二中所述的核心企业节点设备的功能;当所述区块链节点设备4为监管机构节点设备时,执行实施例一或者实施例二中所述的监管机构节点设备的功能;当所述区块链节点设备4为一级供应商节点设备时,执行实施例一或者实施例二中所述的一级供应商节点设备的功能;当所述区块链节点设备4为其他区块链实体节点设备时,执行实施例一或者实施例二中所述的其他区块链实体节点设备的功能。
其中,存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器41在一些实施例中可以是所述区块链节点设备4的内部存储单元,例如所述区块链节点设备4的硬盘。存储器41在另一些实施例中也可以是所述区块链节点设备4的外部存储设备,例如所述区块链节点设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器41还可以既包括所述区块链节点设备4的内部存储单元,也包括外部存储设备。存储器41不仅可以用于存储安装于所述区块链节点设备4的应用程序及各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器42在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器,用于运行存储器41中存储的程序代码或处理数据。
该总线43可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,所述区块链节点设备4还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该区块链节点设备4与其他调度服务器之间建立通信连接。
可选地,该区块链节点设备4还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元,比如键盘(Keyboard),可选的,用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)触摸器等。其中,显示器也可以称为显示屏或显示单元,用于显示在所述调度服务器中处理的消息以及用于显示可视化的用户界面。
图4仅示出了具有组件41-44的所述区块链节点设备4,本领域技术人员可以理解的是,图4示出的结构并不构成对所述区块链节点设备4的限定,既可以是总线型结构,也可以是星形结构,所述区块链节点设备4还可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在上述实施例中,可以全部或部分地通过应用程序、硬件、固件或者其任意组合来实现。当使用应用程序实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如,同轴电缆、光纤、数字用户线)或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD),或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用应用程序功能单元的形式实现。
所述集成的单元如果以应用程序功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以应用程序产品的形式体现出来,该计算机应用程序产品存储在一个存储介质中,包括若干指令用以使得一台调度服务器(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、硬盘、只读存储器(Read-OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。