CN114844622A - 一种基于区块链的隐私交易生成、验证方法及系统 - Google Patents

一种基于区块链的隐私交易生成、验证方法及系统 Download PDF

Info

Publication number
CN114844622A
CN114844622A CN202210373697.1A CN202210373697A CN114844622A CN 114844622 A CN114844622 A CN 114844622A CN 202210373697 A CN202210373697 A CN 202210373697A CN 114844622 A CN114844622 A CN 114844622A
Authority
CN
China
Prior art keywords
transaction
digital
random
sig
currency
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
CN202210373697.1A
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN202210373697.1A priority Critical patent/CN114844622A/zh
Publication of CN114844622A publication Critical patent/CN114844622A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明提供的基于区块链的隐私交易生成、验证方法及系统,利用交易双方共享的随机数生成具有随机性的真实收款地址对,为随机数生成对应的承诺分量,将承诺分量同态相加获得同态相加承诺,执行Zerocash协议并生成数字币、数字币注入交易及对应的交易承诺;收款节点利用交易双方交换的随机数相加的承诺与数字币中的同态相加承诺比较,在确认一致后还原生成对应的承诺分量,进一步验证交易承诺的有效性;同时能够向区块链上的其他成员节点提供具有zk‑SNARK证明的签名数据,实现交易数据验证功能;该隐私交易过程能够完全实现区块交易数据的不可链接性和交易身份不可追踪性,同时兼容传统的区块数据结构。

Description

一种基于区块链的隐私交易生成、验证方法及系统
技术领域
本发明涉及区块链技术领域,具体涉及一种基于区块链的隐私交易生成、验证方法及系统。
背景技术
区块链数据指记录在区块链节点上的区块数据,包括区块中的交易、时间戳、区块头等信息。节点之间通过共识机制来共同维护数据的一致性和完整性,使得记录在最长链中的数据无法被单个节点删改,但是此特性也给区块链生态带来了其他的安全威胁,尤其是对于交易双方的隐私性问题受到越来越多的重视。
以传统数字币为例,每笔交易的用户利用自身公钥生成的交易账户或交易地址进行匿名交易,对等网络中的其他用户无法将交易地址和其对应的实际交易用户联系起来,从而实现交易的匿名化。但是这种匿名属于伪匿名,假名性不足以保护数字币用户的隐私,因为攻击者可以统计整条数字币区块链上的信息,从而分析出一整张数字币交易图谱,这种知识图谱可以追溯多个互不关联交易地址的相同来源,并且得知地址之间的交易关系。另外,在数字币区块中交易金额是透明的,对于特大金额的公司交易,结合现实生活中的已知金融信息,很容易暴露交易对象的真实身份,导致商业机密被泄露;其次,有些组织为了转账方便甚至将自身的收款公钥地址直接公布在网上,使得交易对象的公钥地址与真实身份被关联。
为此,各种新兴的隐私保护方法应运而生,主流的隐私保护机制主要包括:基于混币、基于零知识证明和基于环签名的区块链数据结构。其中基于混币的区块链隐私保护机制应用最为广泛,且容易实现,但是需要第三方信用机构提供混币服务或者通过第三方通信工具自发地聚集运行某一种混币协议,这显然与区块链去中心化的特性相违背。基于零知识证明的区块链隐私保护机制通过零知识特性保证不泄露任何有用信息,最为典型的是基于zk-SNARK实现的Zcash(零币),但是只有交易发送者能够为Zerocash交易提供证明,且将真实的数字数字币地址仍作为证明的一部分存储在zk-SNARK当中,这就产生了新的安全隐患。而基于环签名的隐私保护机制可以克服混币和零知识证明的缺点,其不需要第三方机构提供混币服务,也不需要生成公共的系统参数,它利用环签名将交易的真实输入隐藏在混合地址之中,切断了交易追踪,使攻击者难以生成交易图谱。目前,基于环签名的区块链隐私保护机制最成功的实现案例是Monero(门罗币),Monero于2014年4月被推出,基于CryptoNote协议,并在区块链模糊化方面有显著的算法差异,但是其仍然存在弊端。影响门罗币安全的最大攻击就是零混合交易,导致交易身份被破解。为此,强化不可链接性和不可追踪性仍是当今区块链隐私保护技术有待解决的难题。
发明内容
针对传统的区块数据隐私保护技术存在的上述不足,本发明提供了一种新的区块链隐私交易生成及验证方案,本发明的隐私保护方法能够完全实现区块交易数据的不可链接性和不可追踪性,同时兼容传统的区块数据结构。为此,本发明提供的一种基于区块链的隐私交易生成方法,该交易生成方法包括:
收款节点生成第一交易随机数r1、主控公钥对addrpk:=(apk,pkenc)和对应的主控私钥对addrsk:=(ask,skenc),向付款节点发送本地的主控公钥对addrpk和第一交易随机数r1
付款节点在本地生成第二交易随机数r2,利用第二交易随机数r2与第一主控公钥apk生成第一随机性公钥bpk,利用随机数r1和r2分别生成对应的承诺分量,并将这两个承诺分量同态相加,进一步将两个承诺分量、同态相加承诺、第一随机性公钥bpk共同参与执行Zerocash协议并生成数字币、数字币注入交易及对应的交易承诺,将数字币注入交易和交易承诺上链,同时利用第二主控公钥pkenc对数字币加密,将加密的数字币发送给收款节点;
付款节点利用值r1和第一随机性公钥bpk生成第二随机性公钥cpk作为真实收款地址,将与数字币注入交易中等值的币发送到真实收款地址cpk
收款节点利用第二主控私钥skenc解密数字币,将本地存储的第一交易随机数r1和数字币中记录的第二交易随机数r2相加的承诺与数字币中的同态相加承诺比较,在确认一致后还原生成对应的承诺分量,并利用第一主控公钥apk验证交易承诺的有效性,在确认有效后利用值r1、r2和第一主控私钥ask生成真实收款地址cpk和对应的私钥地址csk
进一步优选地,所述数字币注入交易的生成过程为:
第j个付款节点为第i个收款节点生成秘值ρi、第二交易随机数r2和随机因子si,将随机数r2作为第一盲化因子生成系数ki
Figure BDA0003583534940000031
其中,COMM()表示承诺函数,bpk,i表示关于第i个收款节点的第一随机性公钥;
利用系数ki作为第二盲化因子生成两个承诺分量t1,i和t2,i
Figure BDA0003583534940000032
Figure BDA0003583534940000033
将随机因子si作为第三盲化因子,并以输出的币值vi生成交易承诺cmi
Figure BDA0003583534940000034
将待支付的旧币的交易承诺所在的默克尔树根rtj、旧币的随机序列号snj、新生成的交易承诺cmi加入到数字币注入交易txpour
txpour:=(rtj,snj,cmi)
其中,待支付的旧币的随机序列号
Figure BDA0003583534940000035
PRFsn()表示关于随机序列号的伪随机函数。
进一步优选地,所述数字币的生成过程为:
第j个付款节点将生成的两个承诺分量t1,i和t2,i同态相加,获得同态相加承诺cmT,i
将新币输出的币值vi、密值ρi、第二交易随机数r2和随机因子si、同态相加承诺cmT,i、交易承诺cmi组合生成待支付的数字币ci
ci:=(vii,r2,si,cmT,i,cmi)
利用第二主控公钥pkenc,i对数字币加密,将加密的数字币Ci:=Eenc(pkenc,i,(vii,r2,si,cmT,i,cmi))发送给第i个收款节点。
进一步优选地,收款节点接收数字币的过程为:
第i个收款节点利用第二主控公钥skenc,i解密数字币,利用解密得到的秘值ρi′、第二交易随机数r2′和本地存储的第一主控公钥apk,i重新计算得到系数k′i
由系数k′i进一步生成r1+r2′的承诺cm″T,i,比较cm″T,i与数字币中的同态相加承诺cm′T,i是否一致,如果一致,则利用解密得到的币值v′i、随机因子s′i和两个承诺分量t′1,i和t′2,i重新计算得到交易承诺cm″i,比较cm″i与数字币中的交易承诺cm′i是否一致,在确认一致后利用值r1+r2′和本地存储的第一主控私钥ask,i生成公私钥对(c′pk,i,c′sk,i),进一步确认随机序列号
Figure BDA0003583534940000041
是否存在于账本上,如果不存在则判定公私钥对(c′pk,i,c′sk,i)为真实的收款地址对。
进一步优选地,所述的第一随机性公钥bpk,i表示为:
bpk,i=r2G+apk,i
关于第i个收款节点的第二随机性公钥cpk,i表示为:
cpk,i=r1G+bpk,i
第二随机性公钥cpk,i对应的私钥csk,i表示为:
csk,i=r1+r2+ask,i
其中,G表示一条指定椭圆曲线的基点,是一个给定的公开参数,ask,i第i个收款节点的第一主控私钥。
本发明提供的一种基于区块链的隐私交易验证方法,该交易验证方法包括:
付款节点构建用于执行签名的公私钥对(pksig,sksig),将旧币及对应的随机序列号、旧币的私钥地址、旧币交易承诺所在帐本中指定的路径、新币及对应的交易承诺绑定获得消息m,利用私钥sksig对消息m签名,将公钥pksig、消息m的中间值和数字签名σ附于数字币注入交易txpour中并发布到区块链网络;
验签节点提取已上传到区块链网络中的数字币注入交易txpour,利用数字币注入交易txpour中消息m的中间值重新生成消息m′,进一步利用公钥pksig验证消息m′的数字签名σ′是否与数字币注入交易txpour中的数字签名σ一致,如果一致则表明数字币注入交易txpour为真,否则表明数字币注入交易txpour为假。
进一步优选地,付款节点生成数字签名σ的过程为:
第j个付款节点利用密钥生成函数随机生成用于执行签名的公私钥对(pksig,j,sksig,j),然后使用抗碰撞的哈希函数CRH计算秘密值;
hsig,j:=CRH(pksig,j)
以旧币的私钥地址ask,j作为盲化因子,将秘密值hsig,j输入伪随机函数计算输出中间值:
Figure BDA0003583534940000051
利用证明函数构建包含有中间值hj和数字币注入交易txpour的zk-SNARK证明:
Figure BDA0003583534940000052
向量
Figure BDA0003583534940000058
Figure BDA0003583534940000059
表示为:
Figure BDA0003583534940000053
Figure BDA0003583534940000054
令待签名的消息:
Figure BDA0003583534940000055
利用签名私钥sksig,j对消息m进行签名生成数字签名σ,输出数字币注入交易txpour:=(rtj,snj,cmi,vpub,info,*),*:=(pksig,j,hjPOUR,j,Ci,σ)。
进一步优选地,验签节点验证数字签名σ的过程为:
验签节点接收数字币注入交易txpour:=(rtj,snj,cmi,vpub,info,*),然后判断snj是否在账本中存在,在确认不存在时继续判断默克尔树根rtj是否存在于账本上,在确认存在时重新计算秘密值hsig,j:=CRH(pksig,j),
Figure BDA0003583534940000056
Figure BDA0003583534940000057
将消息m代入签名验证算法生成变量b:=Vsig(pksig,j,m,σ),当签名验证函数Vsig输出b=1时表明验签成功,否则输出b=0时表明验签失败。
本发明还提供了一种基于区块链的隐私交易系统,该系统包括:分布式部署在区块链网络中的成员节点,所述成员节点具体包括:
随机参数生成器:生成随机参数和秘密参数,随机参数用于生成随机性地址,秘密参数用于生成承诺;
主控密钥生成器:利用区块链发布的公共参数序列生成主控公钥对addrpk:=(apk,pkenc)和对应的主控私钥对addrsk:=(ask,skenc);
随机地址生成器:利用交易双方共享的随机数生成第一随机性公钥bpk和第二随机性公钥cpk和对应的私钥地址csk
交易生成模块:付款节点利用交易双方交换的随机数生成对应的承诺分量,将承诺分量同态相加获得同态相加承诺,执行Zerocash协议并生成数字币、数字币注入交易及对应的交易承诺;
交易验证模块:收款节点利用交易双方交换的随机数相加的承诺与数字币中的同态相加承诺比较,在确认一致后还原生成对应的承诺分量,并利用第一主控公钥apk验证交易承诺的有效性;
签名生成模块:付款节点构建用于执行签名的公私钥对(pksig,sksig),将旧币及对应的随机序列号、旧币的私钥地址、旧币交易承诺所在帐本中指定的路径、新币及对应的交易承诺绑定获得消息m,利用私钥sksig对消息m签名,将公钥pksig、消息m的中间值和数字签名σ附于数字币注入交易txpour中并发布到区块链网络;
签名验证模块:验签节点利用数字币注入交易txpour中消息m的中间值重新生成消息m′,进一步利用公钥pksig验证消息m′的数字签名σ′是否与数字币注入交易txpour中的数字签名σ一致,如果一致则表明数字币注入交易txpour为真,否则表明数字币注入交易txpour为假;
数据加密模块:付款节点利用第二主控公钥pkenc对数据加密,获得密文;
数据解密模块:收款节点利用第二主控私钥skenc对数据加密,获得明文;
数据存储器:存储上链的隐私交易数据及交易验证数据。
结合上述技术方案,本发明的有益效果在于:
在Zerocash协议框架下的交易证明结构基础上,不直接以收款节点提供的公钥地址作为数字币接收地址,而是由收、付款节点提供的随机数共同参与生成的一次性随机公钥地址作为数字币的实际接收地址,攻击者即便知晓收款节点在网络中发布的公钥地址也无法将其与随机公钥相关联,且由于数字币交易地址具有一次有效性和随机性,无法通过分析交易图谱追踪收款方的真实身份。
收款节点的真实收款地址不直接参与承诺运算,即不以真实收款地址作为证明材料的一部分上传到区块链,而是以付款节点单独提供的随机参数所生成的一次性随机公钥地址和双方的随机数参与生成Zerocash交易证明,保证数字币所有者在举证时可以通过提供有效参数来重新计算真实的公钥地址,以此确认数字币的所有权,同时又避免了收款节点的主控公钥和真实收款地址被直接上链后带来的安全隐患。
由交易双方共同提供的安全参数参与生成的交易承诺,与以往的只有单一交易发起方提供证明材料具有更高的可信度,防止一方发生交易欺骗行为,同时融入承诺的同态相加策略,数字币接收者在将分属于两个承诺分量上的随机参数叠加后能够验证该笔交易是否与己方相关,并利用承诺分量作为证据参与数字币确权,而承诺分量本身对外是不可知的,使得交易数据具有不可链接性和不可追踪性,完全做到隐私保护功能。
由付款节点派发到收款节点的数字币加密数据中不包含真实的收款地址,只有收款节点对交易承诺验证通过后,才能够利用参与该验证的诸多秘密参数重现真实的数字币地址,使得攻击者即便拦截并解密了数字币也无法获取收款地址,并以此追踪收款节点的真实身份。
附图说明
图1为一种基于区块链的隐私交易生成方法操作流程图;
图2为一种基于区块链的隐私交易验证方法操作流程图;
图3为一种基于区块链的隐私交易系统架构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
Zerocash协议是基于zk-SNARK实现的一种数字货币,将零知识证明作为交易中的一种验证方式。在具体的Zerocash转账过程中可以理解为,证明者是Zerocash交易发送者,验证者是区块链的维护节点,需要验证的消息是交易转账信息。交易发送者提供一个证明,其他用户无法通过这个证明推断出转账信息(包括发送者地址、交易金额),但是区块链节点依然能够验证每笔交易转账的合法性。作为最早在数字货币系统中广泛应用zk-SNARK的Zcash,它旨在使用加密技术为用户提供隐私保护性更强的数字数字币,然后,向节点证明该交易是真实且准确的,解决交易被追踪进而用户身份隐私泄露的问题,即使交易已完全加密,此证据也允许节点确保网络的完整性,他们使用散列函数来证明信息准确无须公开。另外,Zcash沿用UTXO交易模式,因此能够与区块链各种币类很好的兼容,便于实现币种间的转换。
然而Zcash的匿名交易是将数字币收发地址隐藏于交易中,并以交易承诺的方式将隐匿的交易证据发送到公有区块链上,在区块链上加密的唯一手段是零知识证明,由于它是非交互式的,证明的秘密参数完全由交易发送方提供,并将秘密参数以币的方式发送给数字币接收方,由于单项的零知识证明真实可靠度有待验证,导致单方生成的交易数据可信度在一定程度上存在不可靠性。
为此,本发明提供一种新型的隐私交易保护机制,通过交易双方互换的秘值共同协商确立真实的交易地址,且真实的交易地址不直接隐藏在交易数据中,对于攻击者来说即便破解了上链的交易数据也无法获知真实的交易地址。同时以互换的秘值参与生成交易承诺,使数字币所有者在举证时能够利用已有的秘密参数验证某地址存储的数字币是否真为举证人所有,同时保留零知识证明结构对真实数据验证的有效性。为此,本发明提供的一种基于区块链的隐私交易生成方法,该交易生成方法具体包括以下过程:
如图1所示,在交易双方确认发起交易后,首先,收款节点生成第一交易随机数r1、主控公钥对addrpk:=(apk,pkenc)和对应的主控私钥对addrsk:=(ask,skenc),向付款节点发送本地的主控公钥对addrpk和第一交易随机数r1。其中一个公私钥对(apk,ask)作为收款节点对外公布的固有公私钥值,而对当前交易真实的收款地址由公私钥对(apk,ask)衍生,另一个公私钥对(pkenc,skenc)用于执行数据加解密。发送的数据可通过第二主控私钥skenc执行加密,并在付款节点通过第二主控公钥pkenc解密数据,或者在初始化阶段由双方协商的共享密钥实现数据加解密操作。
付款节点在本地生成第二交易随机数r2,利用第二交易随机数r2与第一主控公钥apk生成第一随机性公钥bpk,利用随机数r1和r2分别生成对应的承诺分量,并将这两个承诺分量同态相加,进一步将这两个承诺分量、同态相加承诺、第一随机性公钥bpk共同参与执行Zerocash协议并生成数字币、数字币注入交易及对应的交易承诺,将数字币注入交易和交易承诺上链,同时利用第二主控公钥pkenc对数字币加密,将加密的数字币发送给收款节点。
付款节点利用值r1和第一随机性公钥bpk生成第二随机性公钥cpk作为真实收款地址,将与数字币注入交易中等额的币发送到真实收款地址cpk。对于收款节点公布的固有公钥apk,付款节点可利用本地的随机数r2生成一次性随机公钥地址bpk=r2G+apk,其中G表示一条指定椭圆曲线的基点,是一个给定的公开参数,通过盲化因子r2将固有公钥apk隐匿,并由bpk作为对象参与承诺数据的运算,因此对于上链的交易数据来说收款节点的身份是安全的。然后,利用bpk和随机数r1可进一步迭代生成真实的收款地址cpk=r1G+bpk,付款节点以此地址向收款节点支付UTXO中指定数量的数字币,由于该收款地址是通过交易双方共同交换的随机参数协商生成的,符合了交互性共识机制的特性,并由双方的随机参数同时参与交易承诺的运算,相对于只依赖单方出示的交易证据具有高度可靠性。
收款节点利用第二主控私钥skenc解密数字币,将本地存储的第一交易随机数r1和数字币中记录的第二交易随机数r2相加的承诺与数字币中的同态相加承诺比较,如果不一致,则向付款节点返回错误消息,如果一致则还原生成对应的承诺分量,并利用第一主控公钥apk验证交易承诺的有效性,在确认有效后利用值r1、r2和第一主控私钥ask生成真实收款地址cpk和对应的私钥csk。真实的收款地址cpk=(r1+r2)G+apk=r1G+(r2G+apk)=r1G+bpk,因此收、付款节点之间确立了相同的公钥地址;另有apk=askG,可知cpk=(r1+r2)G+askG=(r1+r2+ask)G,r1+r2+ask的值即为cpk的私钥csk,收款节点通过该私钥csk花费公钥地址cpk上存储的数字数字币。
本发明基于Zerocash协议框架下的隐私交易在执行前,需要先完成铸币操作,并将铸币交易(Mint transaction)数据上传到区块链中,使用伪随机函数
Figure BDA0003583534940000091
Figure BDA0003583534940000092
来定位付款和分发序列号,并且假定PRFsn是抗碰撞的。利用
Figure BDA0003583534940000101
生成公私钥对(apk_u,ask_u)作为铸币的原始地址,用户u产生一个随机种子值ask_u,然后通过这个种子值计算
Figure BDA0003583534940000102
为了铸造一个价值为vu的新币cu,用户u首先选取秘值ρu来确定当前币cu的序列号
Figure BDA0003583534940000103
然后用户对三元组(apk_u,vuu)进行承诺,分为两个阶段:
(1)承诺(apk_u,ruu),
Figure BDA0003583534940000104
(2)承诺(vu,ku,su),
Figure BDA0003583534940000105
其中,ru和su是用户u在本地生成的秘密参数。铸造的新币表示为cu:=(apk_u,vuu,ru,su,cmu),以及一个发币交易txMint:=(snu,vu,ku,su,cmu),通过验证
Figure BDA0003583534940000106
是否和cmu相等,任何人都能够验证txMint中的cmu是否为交易金额vu的新币承诺,而且其他用户即使知道apk_u也不能推测出发送者,知道ρu也无法推测出序列号snu,因为这些值都被隐藏在ku中。因此,只有当用户u存入正确金额vu的新币到指定的账户地址后,txMint才会被账本接受。
区块链上的其他成员或矿工服务器首先需要验证发币交易txMint的有效性,在确认该发币交易txMint所公示的承诺有效后,才会将交易数据以区块形式存储到区块链上。具体过程为:验证节点接收待上链的发币交易txMint:=(snu,vu,ku,su,cmu),重新计算承诺
Figure BDA0003583534940000107
比较承诺cm′u与cmu是否一致,如果一致则表明发币交易txMint有效,将该笔交易数据存储到当前区块,否则为无效交易,不予存储上链。生效的发币交易txMint中记录有承诺cmu所在的默克尔树根rt及其路径pathu,以此查询承诺cmu的具体存储位置。
Zerocash依赖一个抗碰撞的哈希函数CRH来避免对CMList的直接表示。通过使用一个可更新、可添加的基于CRH的默克尔树方案来构造CMList。用rt表示树的根,用默克尔树叶节点表示已生成的交易承诺COMM,该叶节点的插入会导致根节点rt更新的时间和空间复杂度与树的深度成关联关系。因此可以将时间和空间复杂度减小到与CMList大小的对数成比例,这种指数改进增加了一个给定的zk-SNARK,能够支持CMList的大小,便于数字币的扩展。
在铸币完成后,生成的新币即可在区块链上进行交易流通。下面用一个实施例具体说明数字币浇注交易(Pour transaction)过程。
收款节点在本地生成第一交易随机数r1、主控公钥对addrpk:=(apk,pkenc)和对应的主控私钥对addrsk:=(ask,skenc)。公私钥对(apk,ask)可采用特定的椭圆曲线生成,将椭圆曲线的基准参数发送给付款节点,用于生成同态的随机地址。公私钥对(pkenc,skenc)可使用区块链上公布的公共参数序列pp生成,公共参数序列pp是由系统开发者或可信第三方在初始化阶段由安全算法自动产生。
zk-SNARK用于证明\验证一个特定的NP语句POUR,我们可以通过设计一个相对较小的算术电路CPOUR来验证NP语句POUR的有效性。满足zk-SNARK的算术电路CPOUR使用一个三重多项式时间算法(KeyGen、Prove、Verify)。
密钥生成算法:KeyGen(1λ,CPOUR)→(pkPOUR,vkPOUR),输入一个安全参数λ(对外保密)和算术电路CPOUR,输出证明密钥pkPOUR和验证密钥vkPOUR,这两个密钥对外都是公开的,任何需要使用的人都能够取得来证明\验证成员资格。
证明生成算法:Prove(pkPOUR,x,a)→π,输入证明密钥pkPOUR、公开的任意输入值x和私有证词a,该证词a满足算术电路CPOUR,输出证明π。
证明验证算法:Verify(vkPOUR,x,π)→b,输入验证密钥vkPOUR、输入值x和证明π,输出一个布尔变量b,当布尔变量b返回TRUE时证明π通过验证,返回FALSE时证明π未通过验证。
利用数字签名方案Sig(Gsig,Ksig,Ssig,Vsig),构造一次性强不可伪造的数字签名:
Gsig(1λ)→ppsig给定一个安全参数λ,利用参数生成函数Gsig生成公共参数ppsig
Ksig(ppsig)→(pksig,sksig)输入公共参数ppsig,利用密钥生成函数Ksig为单个用户生成一个签名公钥pksig和签名私钥sksig
Ssig(sksig,m)→σ输入签名私钥sksig和待签名的消息m,利用签名函数Ssig生成消息m的签名σ;
Vsig(pksig,m,σ)→b输入签名公钥pksig、消息m和签名σ,验证函数Vsig输出布尔变量b=1表示签名σ有效,验证函数Vsig输出变量b=0表示签名σ无效。
利用公钥编码方案Enc(Genc,Kenc,Eenc,Denc),构造数据的加解密过程:
Genc(1λ)→ppenc给定一个安全参数λ,利用参数生成函数Genc生成公共参数ppenc
Kenc(ppenc)→(pkenc,skenc)输入公共参数ppenc,利用密钥生成函数Kenc为单个用户生成一个数据加密公钥pkenc和数据解密私钥skenc
Eenc(pkenc,m)→c输入数据加密公钥pkenc和待加密的消息m,利用加密函数Eenc生成密文c;
Denc(skenc,c)→m输入数据解密私钥skenc和密文c,利用解密函数Denc生成明文消息m。
至此,将上述计算得到的公共参数序列pp:=(pkPOUR,vkPOUR,ppenc,ppsig)向全体区块链成员公开,用于执行交易数据出证\验证、签名\验签、加解密的事务。
在一个实施例中,假设第i个收款节点选取一个随机种子值ask,i,然后通过这个种子值计算固有公钥值
Figure BDA0003583534940000121
使用公共参数ppenc依照上述计算方法在本地生成了主控公钥对addrpk:=(apk,i,pkenc,i)和对应的主控私钥对addrsk:=(ask,i,skenc,i)。向付款节点发送本地的主控公钥对addrpk和第一交易随机数r1。由于双方交换的数据为非链上传送,考虑到安全性可使用公私钥对(pkenc,i,skenc,i)或双方协商的其他共享密钥实现数据加解密操作。
第j个付款节点在解密收款节点发送的密文数据后,为第i个收款节点生成秘值ρi、第二交易随机数r2和随机因子si,将随机数r2作为第一盲化因子生成系数ki
Figure BDA0003583534940000122
其中,COMM()表示承诺函数,bpk,i表示关于第i个收款节点的第一随机性公钥,bpk,i=r2G+apk,i,指定椭圆曲线的基点G可由双方协商确定形成独享参数,也可通过上链到前一区块或通过广播的形式形成供当前区段所使用的共享参数。
然后,利用系数ki作为第二盲化因子进一步生成两个承诺分量t1,i和t2,i
Figure BDA0003583534940000123
Figure BDA0003583534940000124
将随机因子si作为第三盲化因子,并以输出的币值vi生成交易承诺cmi
Figure BDA0003583534940000125
将待支付的旧币的交易承诺所在的默克尔树根rtj、旧币的随机序列号snj、新生成的交易承诺cmi加入到数字币注入交易txpour
txpour:=(rtj,snj,cmi)
其中,待支付的旧币的随机序列号
Figure BDA0003583534940000131
PRFsn()表示关于随机序列号的伪随机函数,ask,j为旧币的私钥地址,ρj为旧币的秘值。
进一步生成输出给第i个收款节点的数字币ci,付款节点将生成的两个承诺分量t1,i和t2,i同态相加,获得同态相加承诺cmT,i
本发明采用具有加同态性的椭圆曲线Pedersen承诺方法生成叠加的承诺,即多对象和的承诺等同于单一对象承诺的和。假设G和H是椭圆曲线的阶为大素数p上不同的点,并且关于H的离散对数是未知的。k是需要建立承诺的秘密值,r是来自于域F(p)的随机数。按照下面等式计算k的Pedersen承诺:COMM=k*G+r*H,由于EC曲线离散对数问题的困难性,如果已知G和H,反向求k和r的数值是困难的,即使Pedersen承诺的生成者公布了随机数r,其他任何人也都无法从承诺中获得正确的k值。
因此,将两个承诺分量t1,i和t2,i可通过形式化为上述同态的数据结构,即可满足Pedersen承诺同态相加的性质。这两个承诺分量t1,i和t2,i之和可以表示为
Figure BDA0003583534940000132
Figure BDA0003583534940000133
在完成上述计算之后,将新币输出的币值vi、密值ρi、第二交易随机数r2和随机因子si、同态相加承诺cmT,i、交易承诺cmi组合生成待支付的数字币ci
ci:=(vii,r2,si,cmT,i,cmi)
然后,利用第二主控公钥pkenc,i对数字币加密,将加密的数字币Ci:=Eenc(pkenc,i,(vii,r2,si,cmT,i,cmi))发送给收款节点。由于发送的加密币Ci不包含真实的收款地址cpk,i,攻击者即便截获加密数据也无法通过破解得到任何地址信息,对收款节点始终是安全的。
当第i个收款节点收到加密的数字币Ci后,首先利用第二主控私钥skenc,i解密数字币获得明文ci:=Denc(skenc,i,Ci)=(v′ii′,r2′,s′i,cm′T,i,cm′i),然后利用解密得到的秘值ρi′、第二交易随机数r2′和本地存储的第一主控公钥apk,i重新计算得到系数k′i,其中第一随机性公钥b′pk,i=r2′G+apk,i,系数
Figure BDA0003583534940000141
由系数k′i进一步生成r1+r2′的承诺
Figure BDA0003583534940000142
比较cm″T,i与数字币中的同态相加承诺cm′T,i是否一致,如果一致则表明数字币中记载的cm′T,i确为两个随机数r1、r2′的共同承诺,否则表明cm′T,i与随机数r1、r2′的承诺不符,向第j个付款节点反馈错误消息。
在确认一致时,利用解密得到的币值v′i、随机因子s′i和两个承诺分量
Figure BDA0003583534940000143
Figure BDA0003583534940000144
Figure BDA0003583534940000145
重新计算得到交易承诺
Figure BDA0003583534940000146
Figure BDA0003583534940000147
比较cm″i与数字币中的交易承诺cm′i是否一致,如果一致则表明交易承诺cm′i有效,否则向第j个付款节点发送承诺验证失败消息。
在确认一致后进一步计算随机序列号
Figure BDA0003583534940000148
判断该序列号是否存在于账本上,如果存在,则表明该随机序列号sn′i对应的交易存在双花问题,该交易无法通过其他节点的验证,系统会丢弃该笔交易并将错误数据反馈给付款节点,如果不存在则确认公私钥对(c′pk,i,c′sk,i)为真实的收款地址对。其中,利用值r1+r2′和本地存储的第一主控私钥ask,i能够还原真实收款地址c′pk,i和对应的私钥地址c′sk,i。由于c′pk,i=(r1+r2′)G+ask,iG=(r1+r2′+ask,i)G,因此c′sk,i=r1+r2′+ask,i。在r1+r2′的承诺和交易承诺的验证通过后,利用秘密参数能够重新生成真实的收款地址c′pk,i及私钥地址c′sk,i。该地址无需经加密的数字币传送,使得攻击者即便拦截并解密了数字币也无法获取收款节点的真实身份信息。
在建立上述交易过程后,如前文提到的,需要将交易承诺映射到默克尔树rt内的叶节点上,区块链上的其他成员通过付款节点出示的默克尔树rt到叶节点之间的路径,即可找到指定交易承诺并实施验证过程。如图2所示,为了防止交易的重塑性攻击,需要使用数字签名执行数据验签事务,付款节点构建用于执行签名的公私钥对(pksig,sksig),将旧币及对应的随机序列号、旧币的私钥地址、旧币交易承诺所在帐本中指定的路径、新币及对应的交易承诺绑定在一起获得消息m,利用私钥sksig对消息m签名,将公钥pksig、消息m的中间值和数字签名σ附于数字币注入交易txpour中并发布到区块链网络。
验签节点提取已上传到区块链网络中的数字币注入交易txpour,利用数字币注入交易txpour中消息m的中间值重新生成消息m′,进一步利用公钥pksig验证消息m′的数字签名σ′是否与数字币注入交易txpour中的数字签名σ一致,如果一致则表明数字币注入交易txpour为真,将交易数据存储到本地区块中并参与挖矿,否则表明数字币注入交易txpour为假,删除该交易数据,不予上链。
关于上述zk-SNARK的算术电路CPOUR结构,在本发明实施例中提供的一种基于区块链的隐私交易验证方法的具体过程为:
第j个付款节点在构建数字币注入交易txpour时,提取公共参数序列pp:=(pkPOUR,vkPOUR,ppenc,ppsig),利用密钥生成函数Ksig生成一个签名公钥pksig,j和签名私钥sksig,j,Ksig(ppsig)→(pksig,j,sksig,j);利用抗碰撞的哈希函数CRH计算秘密值hsig,j:=CRH(pksig,j);进一步计算中间值
Figure BDA0003583534940000151
将秘密值hsig,j与旧币的私钥地址ask,j绑定并隐藏到中间值hj内;利用证明函数Prove()构建包含有中间值hj和数字币注入交易txpour的zk-SNARK证明
Figure BDA0003583534940000152
向量
Figure BDA0003583534940000153
Figure BDA0003583534940000154
表示为
Figure BDA0003583534940000155
其中vpub为旧币的总额与向外支付的新币的差值,即通过vpub定义数字币的找零值,公开的差值vpub由设置的字符串info指定数字币的赎回地址,以便将剩余数字币发送到赎回地址,字符串info和vpub均包含在数字币注入交易txpour中。vpub为非必要参数,当旧币全部花费时可以将其设置为零,此时旧币的总额与新币的支付额等价。cj表示旧币,pathj为旧币交易承诺所在帐本中指定的路径,addrsk,j为旧币的主控私钥对(ask,j,skenc,j)。
令消息
Figure BDA0003583534940000161
利用签名私钥sksig,j对消息m进行签名得到数字签名σ,Ssig(sksig,j,m)→σ,最终输出的数字币注入交易txpour:=(rtj,snj,cmi,vpub,info,*),其中*:=(pksig,j,hjPOUR,j,Ci,σ)。
数字币注入交易txpour在被上链之前,需要由其他用户节点达成共识。主要由区块链上的矿工成员或与该交易拥有利用关系的第三方实施交易证明的验证过程。首先接收第j个付款节点在网络中传送的数字币注入交易txpour:=(rtj,snj,cmi,vpub,info,*),然后判断snj是否在账本中存在,如果存在则表明该数字币注入交易txpour存在双花问题,输出变量b:=0,数字币注入交易txpour验证失败,否则输出变量b:=1,继续判断默克尔树根rtj是否存在于账本上,如果不存在则输出变量b:=0,数字币注入交易txpour验证失败,否则继续保持变量b:=1,并重新计算秘密值hsig,j:=CRH(pksig,j),
Figure BDA0003583534940000162
将消息m代入签名验证算法生成变量b:=Vsig(pksig,j,m,σ),其中签名验证函数Vsig输出b=0或1(为假或真);将
Figure BDA0003583534940000165
代入证明验证函数生成变量
Figure BDA0003583534940000163
Figure BDA0003583534940000164
其中证明验证函数Vsig输出b=0或1(为假或真);最后计算布尔表达式b∧b′,当双布尔变量同时输出1时,b∧b′也输出1,表示输出结果为TRUE,本笔数字币注入交易txpour通过验证可以存储到当前区块,对于双布尔变量的其他输出状态组合来说b∧b′均输出0,表示输出结果为FALSE,数字币注入交易txpour未通过验证,删除交易对应的数据。
为了实现上述隐私交易生成及验证方法,本发明还提供了一种基于区块链的隐私交易系统,该系统包括分布式部署在区块链网络中的成员节点,如图3所示,各成员节点具体包括:
参数生成器:生成随机参数和秘密参数,随机参数用于生成随机地址,秘密参数用于生成承诺;
主控密钥生成器:收款节点利用区块链发布的公共参数序列生成主控公钥对addrpk:=(apk,pkenc)和对应的主控私钥对addrsk:=(ask,skenc);
随机地址生成器:利用交易双方共享的随机数生成第一随机性公钥bpk和第二随机性公钥cpk和对应的私钥地址csk
交易生成模块:付款节点利用交易双方交换的随机数生成对应的承诺分量,将承诺分量同态相加获得同态相加承诺,执行Zerocash协议并生成数字币、数字币注入交易及对应的交易承诺;
交易验证模块:收款节点利用交易双方交换的随机数相加的承诺与数字币中的同态相加承诺比较,在确认一致后还原生成对应的承诺分量,并利用第一主控公钥apk验证交易承诺的有效性;
签名生成模块:付款节点构建用于执行签名的公私钥对(pksig,sksig),将旧币及对应的随机序列号、旧币的私钥地址、旧币交易承诺所在帐本中指定的路径、新币及对应的交易承诺绑定获得消息m,利用私钥sksig对消息m签名,将公钥pksig、消息m的中间值和数字签名σ附于数字币注入交易txpour中并发布到区块链网络;
签名验证模块:验签节点利用数字币注入交易txpour中消息m的中间值重新生成消息m′,进一步利用公钥pksig验证消息m′的数字签名σ′是否与数字币注入交易txpour中的数字签名σ一致,如果一致则表明数字币注入交易txpour为真,否则表明数字币注入交易txpour为假;
数据加密模块:付款节点利用第二主控公钥pkenc对数据加密,获得密文;
数据解密模块:收款节点利用第二主控私钥skenc对数据加密,获得明文;
数据存储器:存储上链的隐私交易数据及交易签名数据。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

Claims (9)

1.一种基于区块链的隐私交易生成方法,其特征在于,该交易生成方法包括:
收款节点生成第一交易随机数r1、主控公钥对addrpk:=(apk,pkenc)和对应的主控私钥对addrsk:=(ask,skenc),向付款节点发送本地的主控公钥对addrpk和第一交易随机数r1
付款节点在本地生成第二交易随机数r2,利用第二交易随机数r2与第一主控公钥apk生成第一随机性公钥bpk,利用随机数r1和r2分别生成对应的承诺分量,并将这两个承诺分量同态相加,进一步将两个承诺分量、同态相加承诺、第一随机性公钥bpk共同参与执行Zerocash协议并生成数字币、数字币注入交易及对应的交易承诺,将数字币注入交易和交易承诺上链,同时利用第二主控公钥pkenc对数字币加密,将加密的数字币发送给收款节点;
付款节点利用值r1和第一随机性公钥bpk生成第二随机性公钥cpk作为真实收款地址,将与数字币注入交易中等值的币发送到真实收款地址cpk
收款节点利用第二主控私钥skenc解密数字币,将本地存储的第一交易随机数r1和数字币中记录的第二交易随机数r2相加的承诺与数字币中的同态相加承诺比较,在确认一致后还原生成对应的承诺分量,并利用第一主控公钥apk验证交易承诺的有效性,在确认有效后利用值r1、r2和第一主控私钥ask生成真实收款地址cpk和对应的私钥地址csk
2.根据权利要求1所述的基于区块链的隐私交易生成方法,其特征在于,所述数字币注入交易的生成过程为:
第j个付款节点为第i个收款节点生成秘值ρi、第二交易随机数r2和随机因子si,将随机数r2作为第一盲化因子生成系数ki
Figure FDA0003583534930000011
其中,COMM()表示承诺函数,bpk,i表示关于第i个收款节点的第一随机性公钥;
利用系数ki作为第二盲化因子生成两个承诺分量t1,i和t2,i
Figure FDA0003583534930000012
Figure FDA0003583534930000013
将随机因子si作为第三盲化因子,并以输出的币值vi生成交易承诺cmi
Figure FDA0003583534930000021
将待支付的旧币的交易承诺所在的默克尔树根rtj、旧币的随机序列号snj、新生成的交易承诺cmi加入到数字币注入交易txpour
txpour:=(rtj,snj,cmi)
其中,待支付的旧币的随机序列号
Figure FDA0003583534930000022
PRFsn()表示关于随机序列号的伪随机函数。
3.根据权利要求2所述的基于区块链的隐私交易生成方法,其特征在于,所述数字币的生成过程为:
第j个付款节点将生成的两个承诺分量t1,i和t2,i同态相加,获得同态相加承诺cmT,i
将新币输出的币值vi、密值ρi、第二交易随机数r2和随机因子si、同态相加承诺cmT,i、交易承诺cmi组合生成待支付的数字币ci
ci:=(vi,ρi,r2,si,cmT,i,cmi)
利用第二主控公钥pkenc,i对数字币加密,将加密的数字币Ci:=Eenc(pkenc,i,(vi,ρi,r2,si,cmT,i,cmi))发送给第i个收款节点。
4.根据权利要求3所述的基于区块链的隐私交易生成方法,其特征在于,收款节点接收数字币的过程为:
第i个收款节点利用第二主控公钥skenc,i解密数字币,利用解密得到的秘值ρi′、第二交易随机数r2′和本地存储的第一主控公钥apk,i重新计算得到系数k′i
由系数k′i进一步生成r1+r2′的承诺cm″T,i,比较cm″T,i与数字币中的同态相加承诺cm′T,i是否一致,如果一致,则利用解密得到的币值v′i、随机因子s′i和两个承诺分量t′1,i和t′2,i重新计算得到交易承诺cm″i,比较cm″i与数字币中的交易承诺cm′i是否一致,在确认一致后利用值r1+r2′和本地存储的第一主控私钥ask,i生成公私钥对(c′pk,i,c′sk,i),进一步确认随机序列号
Figure FDA0003583534930000023
是否存在于账本上,如果不存在则判定公私钥对(c′pk,i,c′sk,i)为真实的收款地址对。
5.根据权利要求2所述的基于区块链的隐私交易生成方法,其特征在于,所述的第一随机性公钥bpk,i表示为:
bpk,i=r2G+apk,i
关于第i个收款节点的第二随机性公钥cpk,i表示为:
cpk,i=r1G+bpk,i
第二随机性公钥cpk,i对应的私钥csk,i表示为:
csk,i=r1+r2+ask,i
其中,G表示一条指定椭圆曲线的基点,是一个给定的公开参数,ask,i第i个收款节点的第一主控私钥。
6.一种基于区块链的隐私交易验证方法,其特征在于,该交易验证方法包括:
付款节点构建用于执行签名的公私钥对(pksig,sksig),将旧币及对应的随机序列号、旧币的私钥地址、旧币交易承诺所在帐本中指定的路径、新币及对应的交易承诺绑定获得消息m,利用私钥sksig对消息m签名,将公钥pksig、消息m的中间值和数字签名σ附于数字币注入交易txpour中并发布到区块链网络;
验签节点提取已上传到区块链网络中的数字币注入交易txpour,利用数字币注入交易txpour中消息m的中间值重新生成消息m′,进一步利用公钥pksig验证消息m′的数字签名σ′是否与数字币注入交易txpour中的数字签名σ一致,如果一致则表明数字币注入交易txpour为真,否则表明数字币注入交易txpour为假。
7.根据权利要求6所述的基于区块链的隐私交易验证方法,其特征在于,付款节点生成数字签名σ的过程为:
第j个付款节点利用密钥生成函数随机生成用于执行签名的公私钥对(pksig,j,sksig,j),然后使用抗碰撞的哈希函数CRH计算秘密值;
hsig,j:=CRH(pksig,j)
以旧币的私钥地址ask,j作为盲化因子,将秘密值hsig,j输入伪随机函数计算输出中间值:
Figure FDA0003583534930000041
利用证明函数构建包含有中间值hj和数字币注入交易txpour的zk-SNARK证明:
Figure FDA0003583534930000042
向量
Figure FDA0003583534930000049
Figure FDA0003583534930000043
表示为:
Figure FDA0003583534930000044
Figure FDA0003583534930000045
令待签名的消息:
Figure FDA0003583534930000046
利用签名私钥sksig,j对消息m进行签名生成数字签名σ,输出数字币注入交易txpour:=(rtj,snj,cmi,vpub,info,*),*:=(pksig,j,hj,πPOUR,j,Ci,σ)。
8.根据权利要求7所述的基于区块链的隐私交易验证方法,其特征在于,验签节点验证数字签名σ的过程为:
验签节点接收数字币注入交易txpour:=(rtj,snj,cmi,vpub,info,*),然后判断snj是否在账本中存在,在确认不存在时继续判断默克尔树根rtj是否存在于账本上,在确认存在时重新计算秘密值hsig,j:=CRH(pksig,j),
Figure FDA0003583534930000047
Figure FDA0003583534930000048
将消息m代入签名验证算法生成变量b:=Vsig(pksig,j,m,σ),当签名验证函数Vsig输出b=1时表明验签成功,否则输出b=0时表明验签失败。
9.一种基于区块链的隐私交易系统,其特征在于,该系统包括分布式部署在区块链网络中的成员节点,各成员节点具体包括:
参数生成器:生成随机参数和秘密参数,随机参数用于生成随机地址,秘密参数用于生成承诺;
主控密钥生成器:收款节点利用区块链发布的公共参数序列生成主控公钥对addrpk:=(apk,pkenc)和对应的主控私钥对addrsk:=(ask,skenc);
随机地址生成器:利用交易双方共享的随机数生成第一随机性公钥bpk和第二随机性公钥cpk和对应的私钥地址csk
交易生成模块:付款节点利用交易双方交换的随机数生成对应的承诺分量,将承诺分量同态相加获得同态相加承诺,执行Zerocash协议并生成数字币、数字币注入交易及对应的交易承诺;
交易验证模块:收款节点利用交易双方交换的随机数相加的承诺与数字币中的同态相加承诺比较,在确认一致后还原生成对应的承诺分量,并利用第一主控公钥apk验证交易承诺的有效性;
签名生成模块:付款节点构建用于执行签名的公私钥对(pksig,sksig),将旧币及对应的随机序列号、旧币的私钥地址、旧币交易承诺所在帐本中指定的路径、新币及对应的交易承诺绑定获得消息m,利用私钥sksig对消息m签名,将公钥pksig、消息m的中间值和数字签名σ附于数字币注入交易txpour中并发布到区块链网络;
签名验证模块:验签节点利用数字币注入交易txpour中消息m的中间值重新生成消息m′,进一步利用公钥pksig验证消息m′的数字签名σ′是否与数字币注入交易txpour中的数字签名σ一致,如果一致则表明数字币注入交易txpour为真,否则表明数字币注入交易txpour为假;
数据加密模块:付款节点利用第二主控公钥pkenc对数据加密,获得密文;
数据解密模块:收款节点利用第二主控私钥skenc对数据加密,获得明文;
数据存储器:存储上链的隐私交易数据及交易验证数据。
CN202210373697.1A 2022-04-06 2022-04-06 一种基于区块链的隐私交易生成、验证方法及系统 Pending CN114844622A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210373697.1A CN114844622A (zh) 2022-04-06 2022-04-06 一种基于区块链的隐私交易生成、验证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210373697.1A CN114844622A (zh) 2022-04-06 2022-04-06 一种基于区块链的隐私交易生成、验证方法及系统

Publications (1)

Publication Number Publication Date
CN114844622A true CN114844622A (zh) 2022-08-02

Family

ID=82563071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210373697.1A Pending CN114844622A (zh) 2022-04-06 2022-04-06 一种基于区块链的隐私交易生成、验证方法及系统

Country Status (1)

Country Link
CN (1) CN114844622A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115021946A (zh) * 2022-08-09 2022-09-06 西南石油大学 一种基于环签名的去中心化混币方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115021946A (zh) * 2022-08-09 2022-09-06 西南石油大学 一种基于环签名的去中心化混币方法
CN115021946B (zh) * 2022-08-09 2022-10-21 西南石油大学 一种基于环签名的去中心化混币方法

Similar Documents

Publication Publication Date Title
CN109937557B (zh) 用于信息保护的系统和方法
Delgado-Segura et al. A fair protocol for data trading based on bitcoin transactions
Zhai et al. Research on the Application of Cryptography on the Blockchain
CN108764874B (zh) 基于区块链的匿名转账方法、系统及存储介质
CN110089069B (zh) 用于信息保护的系统和方法
CN108418783B (zh) 一种保护区块链智能合约隐私的方法、介质
CN109858281B (zh) 一种基于零知识证明的区块链账户模型隐私保护方法
JP2020507222A (ja) 情報保護のためのシステム及び方法
JP2020502856A (ja) 情報保護のためのシステム及び方法
CN111814191B (zh) 区块链隐私数据保护方法、装置及系统
Wu et al. A regulated digital currency
CN107666388A (zh) 基于完全同态加密方法的区块链信息加密方法
CN108768652A (zh) 一种可抗量子攻击的联盟区块链底层加密方法
CN110728576A (zh) 一种基于零知识证明的去中心化匿名数据交易方法
CN113159762B (zh) 基于Paillier和博弈论的区块链交易方法
CN114565386A (zh) 多方协同隐私保护的区块链托管交易方法及系统
Gao et al. Secure, fair and instant data trading scheme based on bitcoin
Nguyen et al. WI is almost enough: Contingent payment all over again
CN114844622A (zh) 一种基于区块链的隐私交易生成、验证方法及系统
Chenli et al. Fairtrade: Efficient atomic exchange-based fair exchange protocol for digital data trading
CN114978622A (zh) 一种基于区块链和零知识证明的匿名凭证验证方法及系统
Grooteman et al. Providing Trusted Datafeeds to the Blockchain
Jiang et al. Auditable zerocoin scheme with user awareness
Sekar Preventing front-running attacks using timelock encryption
Shook et al. A smart contract refereed data retrieval protocol with a provably low collateral requirement

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