WO2020253108A1 - 信息隐匿方法、装置、设备及存储介质 - Google Patents

信息隐匿方法、装置、设备及存储介质 Download PDF

Info

Publication number
WO2020253108A1
WO2020253108A1 PCT/CN2019/120877 CN2019120877W WO2020253108A1 WO 2020253108 A1 WO2020253108 A1 WO 2020253108A1 CN 2019120877 W CN2019120877 W CN 2019120877W WO 2020253108 A1 WO2020253108 A1 WO 2020253108A1
Authority
WO
WIPO (PCT)
Prior art keywords
transaction
account
key
information
virtual
Prior art date
Application number
PCT/CN2019/120877
Other languages
English (en)
French (fr)
Inventor
谢丹力
Original Assignee
深圳壹账通智能科技有限公司
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 深圳壹账通智能科技有限公司 filed Critical 深圳壹账通智能科技有限公司
Publication of WO2020253108A1 publication Critical patent/WO2020253108A1/zh

Links

Images

Classifications

    • 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/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • 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/40Authorisation, 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/401Transaction verification
    • 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/40Authorisation, 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/401Transaction verification
    • G06Q20/4014Identity check for transactions
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing

Definitions

  • the transaction information publishing module is used to publish real transaction information and virtual transaction information to the blockchain, where the real transaction information includes: ciphertext data A, transaction signature S, the RangProof certificate, and ciphertext data E; the virtual transaction information comprising: n ciphertext data B N, n th transaction signature S N, n ciphertext data E N.
  • Fig. 1 is a schematic structural diagram of a device hardware operating environment involved in an embodiment of an information hiding device according to the present invention.
  • each node on the blockchain is deployed with an information hiding program.
  • each node can be used as a transaction transferer to perform transfer transactions to other nodes, or as a transaction transferer to receive other
  • the transfer transaction initiated by the node can also be used as a transaction verifier (for example, as a miner node) to verify and store data on the chain. Therefore, the present invention does not limit the role of each blockchain node in the transfer transaction, which is specifically determined according to actual application scenarios.
  • the invention realizes the information hiding method based on the account model.
  • PartyX also generates a transaction signature S and a RangProof proof that the account balance is greater than or equal to 0, so that the transaction verifier on the blockchain can verify the transaction data on the chain.
  • the method of generating the transaction signature S and updating the RangProof certificate whose account balance is greater than or equal to 0 in this embodiment is the same as that of the prior art, so it will not be repeated.
  • Step S220 if the verification is passed, update the account information of the transaction transfer party PartyX, the virtual transaction transfer party PartyN, and the transaction transfer party PartyM on the blockchain, the account information includes: account balance and account transaction version number ;
  • the transaction transfer party PartyM queries the blockchain for transaction information to determine whether there is a transaction transferred to this account.
  • Each transaction generates a corresponding account transaction version number. Therefore, by judging whether the account transaction version number on the blockchain is consistent with the local account transaction version number, it can be determined whether there is a new transaction transferred to this account .
  • FIG. 5 is a schematic flowchart of a fourth embodiment of an information hiding method according to the present invention. Based on the second or third embodiment of the above method, in this embodiment, the information hiding method further includes:
  • the invention also provides an information hiding device.
  • PartyX in order to ensure that the transaction amount a and blind factor x can only be decrypted by both parties to the transaction, PartyX, the transaction transferer, further uses the key agreement algorithm ECDH to generate the transaction transferer PartyX and the transaction transferer PartyM.
  • the decrypted key Key and then use the key Key to encrypt the transaction amount a and the blind factor x to obtain the ciphertext data E.

Abstract

一种信息隐匿方法、装置、设备及计算机可读存储介质,涉及区块链技术领域,该方法包括:在进行转账交易时,交易转出方PartyX生成交易转出方PartyX与交易转入方PartyM之间的真实交易信息;引入n个虚拟交易转出方PartyN,并生成虚拟交易转出方PartyN与交易转入方PartyM之间的虚拟交易金额b对应的虚拟交易信息;使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥Key N;将真实交易信息和虚拟交易信息发布到区块链上。其利用多个虚拟交易来达到隐藏转出方身份的目的,实现了只有交易转入方才能够识别出真实交易的转出方,从而保证了交易转出方身份的不可追踪性。

Description

信息隐匿方法、装置、设备及存储介质
本申请要求于2019年6月21日提交中国专利局、申请号为201910541454.2、发明名称为“防止追踪交易转出方的转账方法、装置、设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在申请中。
技术领域
本发明涉及区块链技术领域,尤其涉及一种信息隐匿方法、装置、设备及计算机可读存储介质。
背景技术
目前业内普遍使用的方法是使用公钥地址(公钥的散列值)作为交易双方的身份标识,并以为这样的方式就是安全的,这其实是对密码学的一个错误理解。使用公钥作为身份标识,这只是一个化名,而在当今计算机的大数据分析下,很容易统计出这个化名下的用户行为特征,并对这些特征进行分析(比如用户画像),就很可能将该公钥地址的身份进行定位,如果用户在线下也有一些信息泄露,两者一结合就可能推测出用户的真实身份和其在链上使用的公钥地址的对应关系。
真正有密码学保证的做法,是使用具有不可追踪特性的算法,比如在UTXO模型下,就有使用环签名,用一堆面值相同的UTXO来做环签名,以隐藏真实花费的是哪个UTXO的做法。但是对于账户模型,目前还没有很好的隐藏转出方地址的方法,原因是账户模型有固定的账户数据结构(而不仅仅是一个公钥地址),一个标准的账户模型数据结构中可能包括:公钥地址、加密后的账户余额、账户余额大于等于0的RangeProof、账户的交易版本号;所以单纯的使用环签名是不够的,攻击者依然可以观察账户余额是否发生了变化,来判断是哪个账户转出了账。
发明内容
本发明的主要目的在于提供一种信息隐匿方法、装置、设备及计算机可读存储介质,旨在解决基于区块链的传统账户模型进行转账交易容易被追踪的技术问题。
为实现上述目的,本发明提供一种信息隐匿方法,所述信息隐匿方法包括以下步骤:
在进行转账交易时,若当前节点为交易转出方PartyX,则生成交易转出方PartyX与交易转入方PartyM之间的真实交易金额a对应的密文数据A、交易签名S,并更新账户余额大于或等于0的RangProof证明,其中,A=a*g+x*h,g、h表示同一个椭圆曲线上的不同两个点,x表示盲因子且为随机数;
使用ECDH算法生成交易转出方PartyX和交易转入方PartyM双方能够解密的密钥Key,并使用密钥Key对交易金额a和盲因子x进行加密,得到 密文数据E;
引入n个虚拟交易转出方PartyN,并生成虚拟交易转出方PartyN与交易转入方PartyM之间的虚拟交易金额b对应的n个密文数据B N、n个交易签名S N,其中,b等于0,B N=b*g+x N*h,x N表示盲因子且为随机数,N取[1,n]中所有正整数;
使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥Key N,并使用密钥Key N对盲因子x N进行加密,得到n个密文数据E N
将真实交易信息和虚拟交易信息发布到区块链上,其中,所述真实交易信息包括:密文数据A、交易签名S、所述RangProof证明、密文数据E;所述虚拟交易信息包括:n个密文数据B N、n个交易签名S N、n个密文数据E N
进一步地,为实现上述目的,本发明还提供一种信息隐匿装置,所述信息隐匿装置包括:
真实交易生成模块,用于在进行转账交易时,若当前节点为交易转出方PartyX,则生成交易转出方PartyX与交易转入方PartyM之间的真实交易金额a对应的密文数据A、交易签名S,并更新账户余额大于或等于0的RangProof证明,其中,A=a*g+x*h,g、h表示同一个椭圆曲线上的不同两个点,x表示盲因子且为随机数;使用ECDH算法生成交易转出方PartyX和交易转入方PartyM双方能够解密的密钥Key,并使用密钥Key对交易金额a和盲因子x进行加密,得到密文数据E;
虚拟交易生成模块,用于引入n个虚拟交易转出方PartyN,并生成虚拟交易转出方PartyN与交易转入方PartyM之间的虚拟交易金额b对应的n个密文数据B N、n个交易签名S N,其中,b等于0,B N=b*g+x N*h,x N表示盲因子且为随机数;使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥Key N,并使用密钥Key N对盲因子x N进行加密,得到n个密文数据E N,其中,N取[1,n]中所有正整数;
交易信息发布模块,用于将真实交易信息和虚拟交易信息发布到区块链上,其中,所述真实交易信息包括:密文数据A、交易签名S、所述RangProof证明、密文数据E;所述虚拟交易信息包括:n个密文数据B N、n个交易签名S N、n个密文数据E N
进一步地,为实现上述目的,本发明还提供一种信息隐匿设备,所述信息隐匿设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的信息隐匿程序,所述信息隐匿程序被所述处理器执行时实现如上述任一项所述的信息隐匿方法的步骤。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有信息隐匿程序,所述信息隐匿程序被处理器执行时实现如上述任一项所述的信息隐匿方法的步骤。
附图说明
图1为本发明信息隐匿设备实施例方案涉及的设备硬件运行环境的结构示意图;
图2为本发明信息隐匿方法第一实施例的流程示意图;
图3为本发明信息隐匿方法第二实施例的流程示意图;
图4为本发明信息隐匿方法第三实施例的流程示意图;
图5为本发明信息隐匿方法第四实施例的流程示意图;
图6为本发明信息隐匿装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种信息隐匿设备。
参照图1,图1为本发明信息隐匿设备实施例方案涉及的设备硬件运行环境的结构示意图。
如图1所示,该信息隐匿设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。
本领域技术人员可以理解,图1中示出的信息隐匿设备的硬件结构并不构成对信息隐匿设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及信息隐匿程序。其中,操作系统是管理和控制信息隐匿设备与软件资源的程序,支持网络通信模块、用户接口模块、信息隐匿程序以及其他程序或软件的运行;网络通信模块用于管理和控制网络接口1004;用户接口模块用于管理和控制用户接口1003。
在图1所示的信息隐匿设备硬件结构中,网络接口1004主要用于连接系统后台,与系统后台进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;信息隐匿设备通过处理器1001调用存储器1005中存储的信息隐匿程序,并执行以下信息隐匿方法的各实施例的操作。
基于上述信息隐匿设备硬件结构,提出本发明信息隐匿方法的各个实施例。
本发明中,区块链上各节点部署有信息隐匿程序,通过该应用程序,各节点既可以是作为交易转出方而向其他节点进行转账交易,也可以是作为交易转入方而接收其他节点发起的转账交易,同时也可以是作为交易验证方(比 如作为矿工节点)对上链数据进行验证和存储。因此,本发明并不限定各区块链节点在转账交易中的角色,具体根据实际应用场景而定。本发明具体基于账户模型实现信息隐匿方法。
参照图2,图2为本发明信息隐匿方法第一实施例的流程示意图。本实施例中,所述信息隐匿方法包括以下步骤:
步骤S110,在进行转账交易时,若当前节点为交易转出方PartyX,则生成交易转出方PartyX与交易转入方PartyM之间的真实交易金额a对应的密文数据A、交易签名S,并更新账户余额大于或等于0的RangProof证明,其中,A=a*g+x*h,g、h表示同一个椭圆曲线上的不同两个点,x表示盲因子且为随机数;
本实施例中,在进行转账交易时,若当前节点为交易转出方PartyX,则生成一笔真实交易。需要说明的是,在PartyX本地账户中的余额会扣除当前转账的真实交易金额,同时本地的账户交易版本号加1,以表示一笔新的转账交易发生。
本实施例中使用Pedersen Commitment加密方式加密真实交易金额a,得到对应的密文数据A,也即A=a*g+x*h,g、h表示同一个椭圆曲线上的不同两个点,x表示盲因子且为随机数。此外,PartyX还生成交易签名S以及更新账户余额大于或等于0的RangProof证明,以便于区块链上的交易验证方对交易数据上链进行验证。其中,本实施例中生成交易签名S以及更新账户余额大于或等于0的RangProof证明的方式与现有技术相同,因此不做过多赘述。
步骤S120,使用ECDH算法生成交易转出方PartyX和交易转入方PartyM双方能够解密的密钥Key,并使用密钥Key对交易金额a和盲因子x进行加密,得到密文数据E;
本实施例中,为保证交易金额a和盲因子x仅能被交易双方解密,因此,交易转出方PartyX进一步使用密钥协商算法ECDH,生成交易转出方PartyX和交易转入方PartyM双方能够解密的密钥Key,然后使用密钥Key对交易金额a和盲因子x进行加密,得到密文数据E。
步骤S130,引入n个虚拟交易转出方PartyN,并生成虚拟交易转出方PartyN与交易转入方PartyM之间的虚拟交易金额b对应的n个密文数据B N、n个交易签名S N,其中,b等于0,B N=b*g+x N*h,x N表示盲因子且为随机数,N取[1,n]中所有正整数;
本实施例中,为防止最终交易转出方,因此交易转出方PartyX在生成真实交易信息的同时,引入n个虚拟交易转出方PartyN并对应生成n笔虚拟交易信息,通过多个虚拟交易信息来混淆真实交易信息,进而利用多个虚拟交易来达到隐藏转出方身份的目的。本实施例中,由于采用的是虚拟交易,因此虚拟交易的金额为0。
交易转出方PartyX使用随机数x N作为虚拟交易的盲因子,由于虚拟交易的交易金额b必须是0,所以虚拟交易金额b对应的密文数据B N对应的Pedersen Commitment格式为B N=0*g+x N*h=x N*h;也即B N实际上是以x N为私钥,h为基点的椭圆曲线上的公钥,因此,本实施例优选使用x N对B N进行自签名,生成虚拟交易的交易签名S N
本步骤中,N具体取[1,n]中所有正整数,也即N等于1,2,3,。。。。n-1,n;也即本实施例中,虚拟交易转出方Party1与交易转入方PartyM对应的虚拟交易金额的密文数据为B 1、交易签名为S 1;虚拟交易转出方Party2与交易转入方PartyM对应的虚拟交易金额的密文数据为B 2、交易签名为S 2;虚拟交易转出方Party3与交易转入方PartyM对应的虚拟交易金额的密文数据为B 3、交易签名为S 3,其他以此类推。
步骤S140,使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥Key N,并使用密钥Key N对盲因子x N进行加密,得到n个密文数据E N
本实施例中,交易转出方PartyX进一步使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM三方都能够解密的密钥Key N,并使用密钥Key N对盲因子x N进行加密,得到密文数据E N。也即PartyX使用Pairing算法生成PartyX、Party1以及PartyM三方都能够解密的密钥Key 1,并使用密钥Key 1对盲因子x 1进行加密,得到密文数据E 1;PartyX使用Pairing算法生成PartyX、Party2以及PartyM三方都能够解密的密钥Key 2,并使用密钥Key 2对盲因子x 2进行加密,得到密文数据E 2,其他以此类推。
本实施例涉及的交易方包括PartyX,Party1,Party2,...,Partyn,PartyM;对于任意交易方都使用满足Pairing特性的G1、G2两个循环群域下的公私钥对(id_p1,ID_P1),(id_p2,ID_P2);例如,PartyX使用的G1、G2两个循环群域下的公私钥对分别为(X_p1,X_P1),(X_p2,X_P2);PartyM使用的G1、G2两个循环群域下的公私钥对分别为(M_p1,M_P1),(M_p2,M_P2),Party1使用的G1、G2两个循环群域下的公私钥对分别为(1_p1,1_P1),(1_p2,1_P2);Partyn使用的G1、G2两个循环群域下的公私钥对分别为(n_p1,n_P1),(n_p2,n_P2),其他以此类推。同时真实交易金额的加密数据所采用的Pedersen Commitment格式的也使用和Pairing一致的循环群域。
步骤S150,将真实交易信息和虚拟交易信息发布到区块链上,其中,所述真实交易信息包括:密文数据A、交易签名S、所述RangProof证明、密文数据E;所述虚拟交易信息包括:n个密文数据B N、n个交易签名S N、n个密文数据E N
本实施例中,交易转出方PartyX将生成的真实交易信息和虚拟交易信息发布到区块链上,从而完成转账交易。其中,真实交易信息包括:密文数据A、交易签名S、账户余额大于或等于0的RangProof证明、密文数据E;虚拟交易信息包括:n个密文数据B N、n个交易签名S N、n个密文数据E N
本实施例中,交易转出方PartyX在生成真实交易信息的同时,引入了多个虚拟交易转出方PartyN并生成多个虚拟交易信息,通过多个虚拟交易信息来混淆真实交易信息,进而利用多个虚拟交易来达到隐藏转出方身份的目的。此外,交易转出方PartyX还使用Pedersen Commitment加密方式加密真实交易金额A,进而实现了隐藏交易转出方的账户余额的目的。本实施例还使用双线性对Pairing算法对虚拟交易信息进行加密,从而使得交易转入方能够解密虚拟交易,进而实现对虚拟交易的辨别,同时交易转入方还能够解密真实交易的密文数据E,而非交易双方不能解密真实交易的密文数据E,从而保证 了交易转出方身份的不可追踪性。
参照图3,图3为本发明信息隐匿方法第二实施例的流程示意图。基于上述方法第一实施例,本实施例中,在上述步骤S150之后,所述信息隐匿方法还包括:
步骤S210,在上链交易信息时,若当前节点为交易验证方,则验证交易签名S、所述RangProof证明以及n个交易签名S N,以对转账交易进行验证;
本实施例中,任意节点的上链数据都需要经过区块链上其他节点的验证(比如矿工节点),交易信息只有通过验证后才能上链存储。本实施例对于验证交易签名S以及RangProof证明的验证方式与现有技术相同,因此不过过多赘述。
本实施例中,验证交易签名S以保证签名者合法以及确认交易数据未被篡改,验证RangProof证明以确保交易金额有效(也即确保本次交易金额小于或等于当前账户余额)。
此外,本实施例中对虚拟交易的交易签名S N进行验证,一方面是验证签名者合法以及确认交易数据未被篡改,另一方面是确保虚拟交易金额为0。下面以Party1对应的虚拟交易为例,验证S 1的方法如下:
使用B 1作为公钥,使用h为基点的椭圆曲线G1,对S 1进行验签,如果验证通过,说明F1的交易金额的确是0。需要说明的是:B 1的Pedersen Commitment形式为:B 1=b*g+x 1*h,而h=c*g,也即B 1=(b/c)*h+x 1*h=(b/c+x 1)*h,由于c是不可知的,所以对于任何一方,如果b不为0,则B 1的私钥为(b/c+x 1),但由于c是不可知的,所以任何一方都不可能拿到一个金额不为0的Pedersen Commitment的私钥。
步骤S220,若验证通过,则更新交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM各自在区块链上的账户信息,所述账户信息包括:账户余额和账户交易版本号;
本实施例中,若待上链的交易信息通过了交易验证方的验证,则更新交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM各自在区块链上的账户信息。
假设PartyX在区块链上的账户为AccountX,PartyN在区块链上的账户为Accountn,PartyM在区块链上的账户为AccountM,Old Balance表示原有账户余额、New Balance表示更新后的账户余额,Old Version表示原有账户交易版本号、New Version表示更新后的账户交易版本号,则更新的账户信息如下:
在交易转出方PartyX的区块链账户AccountX中,New Balance=Old Balance-A;New Version=Old Version+1;
在虚拟交易转出方Party1的区块链账户Account1中,New Balance=Old Balance-B 1;New Version=Old Version+1;
在虚拟交易转出方Party2的区块链账户Account2中,New Balance=Old Balance-B 2;New Version=Old Version+1;
......
在虚拟交易转出方PartyN的区块链账户AccountN中,New Balance=Old  Balance-B n;New Version=Old Version+1;
在交易转入方PartyM的区块链账户AccountM中,New Balance=Old Balance+A+B 1+B 2+...+B n;New Version=Old Version+1+n。
步骤S230,将密文数据A、密文数据E、n个密文数据B N、n个密文数据E N存储在区块链上;以及将密文数据A、E分别与交易转出方PartyX、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定,将n个密文数据B N、E N分别与虚拟交易转出方PartyN、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定。
本实施例中,若待上链的交易信息通过了交易验证方的验证,则允许交易信息上链,也即将真实交易信息:密文数据A、密文数据E以及n笔虚拟交易信息:n个密文数据B N、n个密文数据E N存储在区块链上。同时,进一步将交易信息与区块链上对应的账户交易版本号进行绑定,从而实现交易信息与账户信息的关联,具体为:将密文数据A、E与交易转出方PartyX在区块链上的账户交易版本号进行绑定;将密文数据A、E与交易转入方PartyM在区块链上的账户交易版本号进行绑定;将密文数据B 1、E 1与虚拟交易转出方PartyN在区块链上的账户交易版本号进行绑定;将密文数据B 1、E 1与交易转入方PartyM在区块链上的账户交易版本号进行绑定;其他的以此类推。
参照图4,图4为本发明信息隐匿方法第三实施例的流程示意图。基于上述方法第二实施例,本实施例中,所述信息隐匿方法还包括:
步骤S310,在查询交易信息时,若当前节点为交易转入方PartyM,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
本实施例中,交易转入方PartyM向区块链查询交易信息以确定是否存在转入本账户的交易。每一笔交易的产生都会生成对应的账户交易版本号,因此,通过判断区块链上的账户交易版本号与本地的账户交易版本号是否一致,以供确定是否存在转入本账户的新交易。
步骤S320,若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息A、E、B N、E N;若一致,则不处理;
本实施例中,若PartyM在区块链上的账户交易版本号与本地的账户交易版本号一致,则说明无新交易产生,而若不一致,则说明有新的交易产生,进而通过区块链上的账户交易版本号,获得对应绑定的交易信息A、E、B N、E N;上述与账户交易版本号绑定的交易信息都为加密数据,因此还需进一步进行解密。
步骤S330,使用ECDH算法对加密数据E进行解密,若解密成功,则确定对应交易为真实交易,并得到真实交易金额a和盲因子x,以及使用a更新本地的账户余额、使用x更新交易转出方PartyX对应的RangeProof的计算方式;
本实施例中,鉴于交易转出方PartyX使用ECDH算法对真实交易金额a和盲因子x进行加密,得到密文数据E,因此,交易转入方PartyM同样尝试使用ECDH算法对加密数据E进行解密,若解密成功,则确定对应交易为真实交易。
本实施例中,在获得交易转出方PartyX的交易信息后,更新本地信息,具体为使用真实交易金额a更新本地的账户余额,需要说明的是本地账户是链下数据,由用户自己管理,比如用户的手机应用等,因此本地账户中的余额是用的明文形式存储,需要使用明文的交易金额进行更新,而区块链上的账户中的余额则是使用Pedersen Commitment的加密形式存储,因此需要使用Pedersen Commitment加密形式的交易金额进行更新。
此外,由于每一次交易使用的盲因子x是随机的,因此在发生新交易时,还进一步需要使用解密得到的盲因子x,更新交易转出方PartyX对应的RangeProof的计算方式,其中,RangeProof的计算方式涉及Pedersen Commitment加密形式,因此需要使用与交易信息统一的盲因子x。
步骤S340,使用Pairing算法生成密钥key N,并使用key N解密E N,得到盲因子x N,以及使用x N更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
本实施例中,鉴于交易转出方PartyX使用Pairing算法对盲因子x N进行加密,得到密文数据E N,因此,交易转入方PartyM同样使用Pairing算法生成对加密数据E N进行解密的密钥key N
可选地,PartyX对盲因子x N进行加密的密钥Key N=e(n_P1,M_P2) xn,则PartyM对盲因子x N进行解密的密钥key N=e(B n,n_P2) M_p1;由Pairing算法的特性可知:
Key N=e(n_P1,M_P2) xn=e(n_p1*h,M_p2*g) xn=e(h,g) n_p1*M_p2*xn
key N=e(B n,n_P2) M_p1=e(xn*h,n_p2*g) M_p1=e(h,g) M_p1*n_p2*xn
n_p1*M_p2=M_p1*n_p2;
也即:Key N=key N,因此,PartyM使用key N可以解密E N,得到盲因子x N。同理,交易转入方PartyM使用解密得到的x N,更新虚拟交易转出方PartyN对应的RangeProof的计算方式。
步骤S350,根据区块链上的账户交易版本号,更新本地的账户交易版本号。
本实施例中,交易转入方PartyM在完成了本地账户余额以及本地保存的交易转出方对应的RangeProof的计算方式的更新后,进一步还根据区块链上的账户交易版本号,更新本地的账户交易版本号,从而最终实现区块链上的账户信息与本地的账户信息的同步统一。
本实施例中,由于PartyM属于交易转入方,因此PartyM可以查看交易金额a并确认交易的真实转出方。同时,交易转入方还能够解密虚拟交易,进而实现对虚拟交易的辨别。
参照图5,图5为本发明信息隐匿方法第四实施例的流程示意图。基于上述方法第二或第三实施例,本实施例中,所述信息隐匿方法还包括:
步骤S410,在查询交易信息时,若当前节点为虚拟交易转出方PartyN,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
本实施例中,虚拟交易转出方PartyN向区块链查询交易信息以确定是否存在转入本账户的交易。每一笔交易的产生都会生成对应的账户交易版本号, 因此,通过判断区块链上的账户交易版本号与本地的账户交易版本号是否一致,以供确定是否存在转入本账户的新交易。
步骤S420,若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息B N、E N;若一致,则不处理;
本实施例中,若PartyN在区块链上的账户交易版本号与本地的账户交易版本号一致,则说明无新交易产生,而若不一致,则说明有新的交易产生,进而通过区块链上的账户交易版本号,获得对应绑定的交易信息B N、E N;上述与账户交易版本号绑定的交易信息都为加密数据,因此还需进一步进行解密。
步骤S430,使用ECDH算法对加密数据E N进行解密,若解密失败,则确定对应交易为虚拟交易;
本实施例中,鉴于交易转出方PartyX使用ECDH算法对真实交易金额a和盲因子x进行加密,得到密文数据E,因此,虚拟交易转出方PartyN若想追踪交易转出方的话,则同样需要尝试使用ECDH算法对加密数据E进行解密,由于交易转出方PartyX使用ECDH算法生成的加密密钥只能由交易转出方PartyX和交易转入方PartyM双方解密,因此,虚拟交易转出方PartyN对加密数据E N进行解密必然是解密失败,由此虚拟交易转出方PartyN可确定向PartyM进行转账的交易为虚拟交易。
步骤S440,使用Pairing算法生成密钥key N,并使用key N解密E N,得到盲因子x N,以及使用x N更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
本实施例中,鉴于交易转出方PartyX使用Pairing算法对盲因子x N进行加密,得到密文数据E N,因此,虚拟交易转出方PartyN若想追踪交易转出方的话,则同样需要尝试使用Pairing算法生成对加密数据E N进行解密的密钥key N
可选地,PartyX对盲因子x N进行加密的密钥Key N=e(n_P1,M_P2) xn,则PartyN对盲因子x N进行解密的密钥key N=e(B n,M_P2) n_p1;由Pairing算法的特性可知:
Key N=e(n_P1,M_P2) xn=e(n_p1*h,M_p2*g) xn=e(h,g) n_p1*M_p2*xn
key N=e(B n,M_P2) n_p1=e(xn*h,M_p2*g) n_p1=e(h,g) n_p1*M_p2*xn
也即:Key N=key N,因此,PartyN使用key N可以解密E N,得到盲因子x N。同理,交易转入方PartyN使用解密得到的x N,更新虚拟交易转出方PartyN对应的RangeProof的计算方式。
步骤S450,根据区块链上的账户交易版本号,更新本地的账户交易版本号。
本实施例中,虚拟交易转出方PartyN在完成了本地账户余额以及本地保存的交易转出方对应的RangeProof的计算方式的更新后,进一步还根据区块链上的账户交易版本号,更新本地的账户交易版本号,从而最终实现区块链上的账户信息与本地的账户信息的同步统一。
本实施例中,虚拟交易转出方PartyN不能解密真实交易的密文数据E,PartyN仅能知晓的是自己被作为一个混淆方参与了交易,PartyN仅能解密自 己对应的密文数据,而不能解密其他交易参与方对应的密文数据,因而PartyN只能知晓自己不是交易的发起方,而不知晓真实的发起方是谁,从而保证了交易转出方身份的不可追踪性。
本发明还提供一种信息隐匿装置。
参照图6,图6为本发明信息隐匿装置一实施例的功能模块示意图。本实施例中,所述信息隐匿装置包括:
真实交易生成模块10,用于在进行转账交易时,若当前节点为交易转出方PartyX,则生成交易转出方PartyX与交易转入方PartyM之间的真实交易金额a对应的密文数据A、交易签名S,并更新账户余额大于或等于0的RangProof证明,其中,A=a*g+x*h,g、h表示同一个椭圆曲线上的不同两个点,x表示盲因子且为随机数;使用ECDH算法生成交易转出方PartyX和交易转入方PartyM双方能够解密的密钥Key,并使用密钥Key对交易金额a和盲因子x进行加密,得到密文数据E;
本实施例中,在进行转账交易时,若当前节点为交易转出方PartyX,则生成一笔真实交易。需要说明的是,在PartyX本地账户中的余额会扣除当前转账的真实交易金额,同时本地的账户交易版本号加1,以表示一笔新的转账交易发生。
本实施例中使用Pedersen Commitment加密方式加密真实交易金额a,得到对应的密文数据A,也即A=a*g+x*h,g、h表示同一个椭圆曲线上的不同两个点,x表示盲因子且为随机数。此外,PartyX还生成交易签名S以及更新账户余额大于或等于0的RangProof证明,以便于区块链上的交易验证方对交易数据上链进行验证。其中,本实施例中生成交易签名S以及更新账户余额大于或等于0的RangProof证明的方式与现有技术相同,因此不做过多赘述。
本实施例中,为保证交易金额a和盲因子x仅能被交易双方解密,因此,交易转出方PartyX进一步使用密钥协商算法ECDH,生成交易转出方PartyX和交易转入方PartyM双方能够解密的密钥Key,然后使用密钥Key对交易金额a和盲因子x进行加密,得到密文数据E。
虚拟交易生成模块20,用于引入n个虚拟交易转出方PartyN,并生成虚拟交易转出方PartyN与交易转入方PartyM之间的虚拟交易金额b对应的n个密文数据B N、n个交易签名S N,其中,b等于0,B N=b*g+x N*h,x N表示盲因子且为随机数;使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥Key N,并使用密钥Key N对盲因子x N进行加密,得到n个密文数据E N,其中,N取[1,n]中所有正整数;
本实施例中,为防止最终交易转出方,因此交易转出方PartyX在生成真实交易信息的同时,引入n个虚拟交易转出方PartyN并对应生成n笔虚拟交易信息,通过多个虚拟交易信息来混淆真实交易信息,进而利用多个虚拟交易来达到隐藏转出方身份的目的。本实施例中,由于采用的是虚拟交易,因此虚拟交易的金额为0。
交易转出方PartyX使用随机数x N作为虚拟交易的盲因子,由于虚拟交 易的交易金额b必须是0,所以虚拟交易金额b对应的密文数据B N对应的Pedersen Commitment格式为B N=0*g+x N*h=x N*h;也即B N实际上是以x N为私钥,h为基点的椭圆曲线上的公钥,因此,本实施例优选使用x N对B N进行自签名,生成虚拟交易的交易签名S N
本步骤中,N具体取[1,n]中所有正整数,也即N等于1,2,3,。。。。n-1,n;也即本实施例中,虚拟交易转出方Party1与交易转入方PartyM对应的虚拟交易金额的密文数据为B 1、交易签名为S 1;虚拟交易转出方Party2与交易转入方PartyM对应的虚拟交易金额的密文数据为B 2、交易签名为S 2;虚拟交易转出方Party3与交易转入方PartyM对应的虚拟交易金额的密文数据为B 3、交易签名为S 3,其他以此类推。
本实施例中,交易转出方PartyX进一步使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM三方都能够解密的密钥Key N,并使用密钥Key N对盲因子x N进行加密,得到密文数据E N。也即PartyX使用Pairing算法生成PartyX、Party1以及PartyM三方都能够解密的密钥Key 1,并使用密钥Key 1对盲因子x 1进行加密,得到密文数据E 1;PartyX使用Pairing算法生成PartyX、Party2以及PartyM三方都能够解密的密钥Key 2,并使用密钥Key 2对盲因子x 2进行加密,得到密文数据E 2,其他以此类推。
本实施例涉及的交易方包括PartyX,Party1,Party2,...,Partyn,PartyM;对于任意交易方都使用满足Pairing特性的G1、G2两个循环群域下的公私钥对(id_p1,ID_P1),(id_p2,ID_P2);例如,PartyX使用的G1、G2两个循环群域下的公私钥对分别为(X_p1,X_P1),(X_p2,X_P2);PartyM使用的G1、G2两个循环群域下的公私钥对分别为(M_p1,M_P1),(M_p2,M_P2),Party1使用的G1、G2两个循环群域下的公私钥对分别为(1_p1,1_P1),(1_p2,1_P2);Partyn使用的G1、G2两个循环群域下的公私钥对分别为(n_p1,n_P1),(n_p2,n_P2),其他以此类推。同时真实交易金额的加密数据所采用的Pedersen Commitment格式的也使用和Pairing一致的循环群域。
交易信息发布模块30,用于将真实交易信息和虚拟交易信息发布到区块链上,其中,所述真实交易信息包括:密文数据A、交易签名S、所述RangProof证明、密文数据E;所述虚拟交易信息包括:n个密文数据B N、n个交易签名S N、n个密文数据E N
本实施例中,交易转出方PartyX将生成的真实交易信息和虚拟交易信息发布到区块链上,从而完成转账交易。其中,真实交易信息包括:密文数据A、交易签名S、账户余额大于或等于0的RangProof证明、密文数据E;虚拟交易信息包括:n个密文数据B N、n个交易签名S N、n个密文数据E N
本实施例中,交易转出方PartyX在生成真实交易信息的同时,引入了多个虚拟交易转出方PartyN并生成多个虚拟交易信息,通过多个虚拟交易信息来混淆真实交易信息,进而利用多个虚拟交易来达到隐藏转出方身份的目的。此外,交易转出方PartyX还使用Pedersen Commitment加密方式加密真实交易金额A,进而实现了隐藏交易转出方的账户余额的目的。本实施例还使用双线性对Pairing算法对虚拟交易信息进行加密,从而使得交易转入方能够解密虚拟交易,进而实现对虚拟交易的辨别,同时交易转入方还能够解密真实 交易的密文数据E,而非交易双方不能解密真实交易的密文数据E,从而保证了交易转出方身份的不可追踪性。
本发明还提供一种计算机可读存储介质,该存储介质可以是非易失性存储介质,也可以是易失性存储介质,具体本申请不做限定。
本实施例中,所述计算机可读存储介质上存储有信息隐匿程序,所述信息隐匿程序被处理器执行时实现如上述任一项实施例中所述的信息隐匿方法的步骤。其中,信息隐匿程序被处理器执行时所实现的方法可参照本发明信息隐匿方法的各个实施例,因此不再过多赘述。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。

Claims (20)

  1. 一种信息隐匿方法,所述信息隐匿方法包括以下步骤:
    在进行转账交易时,若当前节点为交易转出方PartyX,则生成交易转出方PartyX与交易转入方PartyM之间的真实交易金额a对应的密文数据A、交易签名S,并更新账户余额大于或等于0的RangProof证明,其中,A=a*g+x*h,g、h表示同一个椭圆曲线上的不同两个点,x表示盲因子且为随机数;
    使用ECDH算法生成交易转出方PartyX和交易转入方PartyM双方能够解密的密钥Key,并使用密钥Key对交易金额a和盲因子x进行加密,得到密文数据E;
    引入n个虚拟交易转出方PartyN,并生成虚拟交易转出方PartyN与交易转入方PartyM之间的虚拟交易金额b对应的n个密文数据B N、n个交易签名S N,其中,b等于0,B N=b*g+x N*h,x N表示盲因子且为随机数,N取[1,n]中所有正整数;
    使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥Key N,并使用密钥Key N对盲因子x N进行加密,得到n个密文数据E N
    将真实交易信息和虚拟交易信息发布到区块链上,其中,所述真实交易信息包括:密文数据A、交易签名S、所述RangProof证明、密文数据E;所述虚拟交易信息包括:n个密文数据B N、n个交易签名S N、n个密文数据E N
  2. 如权利要求1所述的信息隐匿方法,所述信息隐匿方法还包括:
    在上链交易信息时,若当前节点为交易验证方,则验证交易签名S、所述RangProof证明以及n个交易签名S N,以对转账交易进行验证;
    若验证通过,则更新交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM各自在区块链上的账户信息,所述账户信息包括:账户余额和账户交易版本号;
    将密文数据A、密文数据E、n个密文数据B N、n个密文数据E N存储在区块链上;以及将密文数据A、E分别与交易转出方PartyX、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定,将n个密文数据B N、E N分别与虚拟交易转出方PartyN、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定。
  3. 如权利要求2所述的信息隐匿方法,所述信息隐匿方法还包括:
    在查询交易信息时,若当前节点为交易转入方PartyM,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
    若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息A、E、B N、E N
    使用ECDH算法对加密数据E进行解密,若解密成功,则确定对应交易为真实交易,并得到真实交易金额a和盲因子x,以及使用a更新本地的账户余额、使用x更新交易转出方PartyX对应的RangeProof的计算方式;
    使用Pairing算法生成密钥key N,并使用key N解密E N,得到盲因子x N,以及使用x N更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
    根据区块链上的账户交易版本号,更新本地的账户交易版本号。
  4. 如权利要求2所述的信息隐匿方法,所述信息隐匿方法还包括:
    在查询交易信息时,若当前节点为虚拟交易转出方PartyN,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
    若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息B N、E N
    使用ECDH算法对加密数据E N进行解密,若解密失败,则确定对应交易为虚拟交易;
    使用Pairing算法生成密钥key N,并使用key N解密E N,得到盲因子x N,以及使用x N更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
    根据区块链上的账户交易版本号,更新本地的账户交易版本号。
  5. 如权利要求3所述的信息隐匿方法,所述信息隐匿方法还包括:
    在查询交易信息时,若当前节点为虚拟交易转出方PartyN,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
    若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息B N、E N
    使用ECDH算法对加密数据E N进行解密,若解密失败,则确定对应交易为虚拟交易;
    使用Pairing算法生成密钥key N,并使用key N解密E N,得到盲因子x N,以及使用x N更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
    根据区块链上的账户交易版本号,更新本地的账户交易版本号。
  6. 一种信息隐匿装置,所述信息隐匿装置包括:
    真实交易生成模块,用于在进行转账交易时,若当前节点为交易转出方PartyX,则生成交易转出方PartyX与交易转入方PartyM之间的真实交易金额a对应的密文数据A、交易签名S,并更新账户余额大于或等于0的RangProof证明,其中,A=a*g+x*h,g、h表示同一个椭圆曲线上的不同两个点,x表示盲因子且为随机数;使用ECDH算法生成交易转出方PartyX和交易转入方PartyM双方能够解密的密钥Key,并使用密钥Key对交易金额a和盲因子x进行加密,得到密文数据E;
    虚拟交易生成模块,用于引入n个虚拟交易转出方PartyN,并生成虚拟交易转出方PartyN与交易转入方PartyM之间的虚拟交易金额b对应的n个密文数据B N、n个交易签名S N,其中,b等于0,B N=b*g+x N*h,x N表示盲因子且为随机数;使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥Key N,并使用密钥Key N对盲因子x N进行加密,得到n个密文数据E N,其中,N取[1,n]中所有正整数;
    交易信息发布模块,用于将真实交易信息和虚拟交易信息发布到区块链上,其中,所述真实交易信息包括:密文数据A、交易签名S、所述RangProof证明、密文数据E;所述虚拟交易信息包括:n个密文数据B N、n个交易签名S N、n个密文数据E N
  7. 如权利要求6所述的信息隐匿装置,所述信息隐匿装置还包括:
    交易验证模块,用于在上链交易信息时,若当前节点为交易验证方,则 验证交易签名S、所述RangProof证明以及n个交易签名S N,以对转账交易进行验证;
    账户更新模块,用于若转账交易验证通过,则更新交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM各自在区块链上的账户信息,所述账户信息包括:账户余额和账户交易版本号;
    交易存储模块,用于将密文数据A、n个密文数据E、n个密文数据B N、密文数据E N存储在区块链上;以及将密文数据A、E分别与交易转出方PartyX、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定,将n个密文数据B N、E N分别与虚拟交易转出方PartyN、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定。
  8. 如权利要求7所述的信息隐匿装置,所述信息隐匿装置还包括:
    第一交易信息查询模块,用于在查询交易信息时,若当前节点为交易转入方PartyM,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息A、E、B N、E N
    第一交易信息解密模块,用于使用ECDH算法对加密数据E进行解密,若解密成功,则确定对应交易为真实交易,并得到真实交易金额a和盲因子x,以及使用a更新本地的账户余额、使用x更新交易转出方PartyX对应的RangeProof的计算方式;使用Pairing算法生成密钥key N,并使用key N解密E N,得到盲因子x N,以及使用x N更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
    所述账户更新模块还用于:根据区块链上的账户交易版本号,更新本地的账户交易版本号。
  9. 如权利要求7所述的信息隐匿装置,所述信息隐匿装置还包括:
    第二交易信息查询模块,用于在查询交易信息时,若当前节点为虚拟交易转出方PartyN,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息B N、E N
    第二交易信息解密模块,用于使用ECDH算法对加密数据E N进行解密,若解密失败,则确定对应交易为虚拟交易;使用Pairing算法生成密钥key N,并使用key N解密E N,得到盲因子x N,以及使用x N更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
    所述账户更新模块还用于:根据区块链上的账户交易版本号,更新本地的账户交易版本号。
  10. 如权利要求8所述的信息隐匿装置,所述信息隐匿装置还包括:
    第三交易信息查询模块,用于在查询交易信息时,若当前节点为虚拟交易转出方PartyN,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息B N、E N
    第三交易信息解密模块,用于使用ECDH算法对加密数据E N进行解密,若解密失败,则确定对应交易为虚拟交易;使用Pairing算法生成密钥key N, 并使用key N解密E N,得到盲因子x N,以及使用x N更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
    所述账户更新模块还用于:根据区块链上的账户交易版本号,更新本地的账户交易版本号。
  11. 一种信息隐匿设备,所述信息隐匿设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的信息隐匿程序,所述信息隐匿程序被所述处理器执行时实现如下所述的信息隐匿方法的步骤:
    在进行转账交易时,若当前节点为交易转出方PartyX,则生成交易转出方PartyX与交易转入方PartyM之间的真实交易金额a对应的密文数据A、交易签名S,并更新账户余额大于或等于0的RangProof证明,其中,A=a*g+x*h,g、h表示同一个椭圆曲线上的不同两个点,x表示盲因子且为随机数;
    使用ECDH算法生成交易转出方PartyX和交易转入方PartyM双方能够解密的密钥Key,并使用密钥Key对交易金额a和盲因子x进行加密,得到密文数据E;
    引入n个虚拟交易转出方PartyN,并生成虚拟交易转出方PartyN与交易转入方PartyM之间的虚拟交易金额b对应的n个密文数据B N、n个交易签名S N,其中,b等于0,B N=b*g+x N*h,x N表示盲因子且为随机数,N取[1,n]中所有正整数;
    使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥Key N,并使用密钥Key N对盲因子x N进行加密,得到n个密文数据E N
    将真实交易信息和虚拟交易信息发布到区块链上,其中,所述真实交易信息包括:密文数据A、交易签名S、所述RangProof证明、密文数据E;所述虚拟交易信息包括:n个密文数据B N、n个交易签名S N、n个密文数据E N
  12. 如权利要求11所述的信息隐匿设备,所述信息隐匿程序被所述处理器执行时还实现如下所述的信息隐匿方法的步骤:
    在上链交易信息时,若当前节点为交易验证方,则验证交易签名S、所述RangProof证明以及n个交易签名S N,以对转账交易进行验证;
    若验证通过,则更新交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM各自在区块链上的账户信息,所述账户信息包括:账户余额和账户交易版本号;
    将密文数据A、密文数据E、n个密文数据B N、n个密文数据E N存储在区块链上;以及将密文数据A、E分别与交易转出方PartyX、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定,将n个密文数据B N、E N分别与虚拟交易转出方PartyN、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定。
  13. 如权利要求12所述的信息隐匿设备,所述信息隐匿程序被所述处理器执行时还实现如下所述的信息隐匿方法的步骤:
    在查询交易信息时,若当前节点为交易转入方PartyM,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
    若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信 息A、E、B N、E N
    使用ECDH算法对加密数据E进行解密,若解密成功,则确定对应交易为真实交易,并得到真实交易金额a和盲因子x,以及使用a更新本地的账户余额、使用x更新交易转出方PartyX对应的RangeProof的计算方式;
    使用Pairing算法生成密钥key N,并使用key N解密E N,得到盲因子x N,以及使用x N更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
    根据区块链上的账户交易版本号,更新本地的账户交易版本号。
  14. 如权利要求12所述的信息隐匿设备,所述信息隐匿程序被所述处理器执行时还实现如下所述的信息隐匿方法的步骤:
    在查询交易信息时,若当前节点为虚拟交易转出方PartyN,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
    若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息B N、E N
    使用ECDH算法对加密数据E N进行解密,若解密失败,则确定对应交易为虚拟交易;
    使用Pairing算法生成密钥key N,并使用key N解密E N,得到盲因子x N,以及使用x N更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
    根据区块链上的账户交易版本号,更新本地的账户交易版本号。
  15. 如权利要求13所述的信息隐匿设备,所述信息隐匿程序被所述处理器执行时还实现如下所述的信息隐匿方法的步骤:
    在查询交易信息时,若当前节点为虚拟交易转出方PartyN,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
    若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息B N、E N
    使用ECDH算法对加密数据E N进行解密,若解密失败,则确定对应交易为虚拟交易;
    使用Pairing算法生成密钥key N,并使用key N解密E N,得到盲因子x N,以及使用x N更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
    根据区块链上的账户交易版本号,更新本地的账户交易版本号。
  16. 一种计算机可读存储介质,所述计算机可读存储介质上存储有信息隐匿程序,所述信息隐匿程序被处理器执行时实现如下所述的信息隐匿方法的步骤:
    在进行转账交易时,若当前节点为交易转出方PartyX,则生成交易转出方PartyX与交易转入方PartyM之间的真实交易金额a对应的密文数据A、交易签名S,并更新账户余额大于或等于0的RangProof证明,其中,A=a*g+x*h,g、h表示同一个椭圆曲线上的不同两个点,x表示盲因子且为随机数;
    使用ECDH算法生成交易转出方PartyX和交易转入方PartyM双方能够解密的密钥Key,并使用密钥Key对交易金额a和盲因子x进行加密,得到密文数据E;
    引入n个虚拟交易转出方PartyN,并生成虚拟交易转出方PartyN与交易转入方PartyM之间的虚拟交易金额b对应的n个密文数据B N、n个交易签 名S N,其中,b等于0,B N=b*g+x N*h,x N表示盲因子且为随机数,N取[1,n]中所有正整数;
    使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥Key N,并使用密钥Key N对盲因子x N进行加密,得到n个密文数据E N
    将真实交易信息和虚拟交易信息发布到区块链上,其中,所述真实交易信息包括:密文数据A、交易签名S、所述RangProof证明、密文数据E;所述虚拟交易信息包括:n个密文数据B N、n个交易签名S N、n个密文数据E N
  17. 如权利要求16所述的计算机可读存储介质,所述信息隐匿程序被处理器执行时还实现如下所述的信息隐匿方法的步骤:
    在上链交易信息时,若当前节点为交易验证方,则验证交易签名S、所述RangProof证明以及n个交易签名S N,以对转账交易进行验证;
    若验证通过,则更新交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM各自在区块链上的账户信息,所述账户信息包括:账户余额和账户交易版本号;
    将密文数据A、密文数据E、n个密文数据B N、n个密文数据E N存储在区块链上;以及将密文数据A、E分别与交易转出方PartyX、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定,将n个密文数据B N、E N分别与虚拟交易转出方PartyN、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定。
  18. 如权利要求17所述的计算机可读存储介质,所述信息隐匿程序被处理器执行时还实现如下所述的信息隐匿方法的步骤:
    在查询交易信息时,若当前节点为交易转入方PartyM,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
    若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息A、E、B N、E N
    使用ECDH算法对加密数据E进行解密,若解密成功,则确定对应交易为真实交易,并得到真实交易金额a和盲因子x,以及使用a更新本地的账户余额、使用x更新交易转出方PartyX对应的RangeProof的计算方式;
    使用Pairing算法生成密钥key N,并使用key N解密E N,得到盲因子x N,以及使用x N更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
    根据区块链上的账户交易版本号,更新本地的账户交易版本号。
  19. 如权利要求17所述的计算机可读存储介质,所述信息隐匿程序被处理器执行时还实现如下所述的信息隐匿方法的步骤:
    在查询交易信息时,若当前节点为虚拟交易转出方PartyN,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
    若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息B N、E N
    使用ECDH算法对加密数据E N进行解密,若解密失败,则确定对应交易为虚拟交易;
    使用Pairing算法生成密钥key N,并使用key N解密E N,得到盲因子x N, 以及使用x N更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
    根据区块链上的账户交易版本号,更新本地的账户交易版本号。
  20. 如权利要求18所述的计算机可读存储介质,所述信息隐匿程序被处理器执行时还实现如下所述的信息隐匿方法的步骤:
    在查询交易信息时,若当前节点为虚拟交易转出方PartyN,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
    若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息B N、E N
    使用ECDH算法对加密数据E N进行解密,若解密失败,则确定对应交易为虚拟交易;
    使用Pairing算法生成密钥key N,并使用key N解密E N,得到盲因子x N,以及使用x N更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
    根据区块链上的账户交易版本号,更新本地的账户交易版本号。
PCT/CN2019/120877 2019-06-21 2019-11-26 信息隐匿方法、装置、设备及存储介质 WO2020253108A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910541454.2A CN110414961A (zh) 2019-06-21 2019-06-21 防止追踪交易转出方的转账方法、装置、设备及存储介质
CN201910541454.2 2019-06-21

Publications (1)

Publication Number Publication Date
WO2020253108A1 true WO2020253108A1 (zh) 2020-12-24

Family

ID=68359575

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/120877 WO2020253108A1 (zh) 2019-06-21 2019-11-26 信息隐匿方法、装置、设备及存储介质

Country Status (2)

Country Link
CN (1) CN110414961A (zh)
WO (1) WO2020253108A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110673945A (zh) * 2018-07-03 2020-01-10 北京京东尚科信息技术有限公司 分布式任务管理方法和管理系统
CN110414961A (zh) * 2019-06-21 2019-11-05 深圳壹账通智能科技有限公司 防止追踪交易转出方的转账方法、装置、设备及存储介质
CN111105235B (zh) * 2019-12-31 2024-01-16 深圳市迅雷网络技术有限公司 基于区块链的供应链交易隐私保护系统、方法及相关设备
US11379838B2 (en) * 2020-02-05 2022-07-05 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Virtualization of user and data source identification
CN112005265A (zh) * 2020-02-05 2020-11-27 香港应用科技研究院有限公司 用户和数据源身份的虚拟化
CN112488708B (zh) * 2020-11-30 2024-04-05 苏州黑云智能科技有限公司 区块链账户关联性查询方法及虚假交易筛选方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060206709A1 (en) * 2002-08-08 2006-09-14 Fujitsu Limited Authentication services using mobile device
CN106503994A (zh) * 2016-11-02 2017-03-15 西安电子科技大学 基于属性加密的区块链隐私数据访问控制方法
CN107358424A (zh) * 2017-06-26 2017-11-17 中国人民银行数字货币研究所 一种基于数字货币的交易方法和装置
CN109285073A (zh) * 2018-09-29 2019-01-29 数字钱包(北京)科技有限公司 数字货币交易方法及装置
CN109584055A (zh) * 2018-09-20 2019-04-05 阿里巴巴集团控股有限公司 基于区块链的交易方法、装置和汇出方设备
CN110414961A (zh) * 2019-06-21 2019-11-05 深圳壹账通智能科技有限公司 防止追踪交易转出方的转账方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108830587A (zh) * 2018-04-28 2018-11-16 广东工业大学 一种基于无证书签名的nfc移动支付方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060206709A1 (en) * 2002-08-08 2006-09-14 Fujitsu Limited Authentication services using mobile device
CN106503994A (zh) * 2016-11-02 2017-03-15 西安电子科技大学 基于属性加密的区块链隐私数据访问控制方法
CN107358424A (zh) * 2017-06-26 2017-11-17 中国人民银行数字货币研究所 一种基于数字货币的交易方法和装置
CN109584055A (zh) * 2018-09-20 2019-04-05 阿里巴巴集团控股有限公司 基于区块链的交易方法、装置和汇出方设备
CN109285073A (zh) * 2018-09-29 2019-01-29 数字钱包(北京)科技有限公司 数字货币交易方法及装置
CN110414961A (zh) * 2019-06-21 2019-11-05 深圳壹账通智能科技有限公司 防止追踪交易转出方的转账方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN110414961A (zh) 2019-11-05

Similar Documents

Publication Publication Date Title
WO2020253108A1 (zh) 信息隐匿方法、装置、设备及存储介质
US11082224B2 (en) Location aware cryptography
AU2017223133B2 (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
CN111431713B (zh) 一种私钥存储方法、装置和相关设备
WO2021114819A1 (zh) 生成和执行智能合约交易的方法及装置
JP2020528224A (ja) 信頼できる実行環境におけるスマート契約動作のセキュアな実行
WO2019170168A2 (en) Method for restoring public key based on sm2 signature
CN110601816B (zh) 一种区块链系统中轻量级节点控制方法及装置
US11223486B2 (en) Digital signature method, device, and system
CN111989891A (zh) 数据处理方法、相关装置及区块链系统
TWI807125B (zh) 用以分配數位簽署資料之份額的電腦實施系統及方法
CN108199847B (zh) 数字安全处理方法、计算机设备及存储介质
CN109922084A (zh) 密钥管理方法、装置以及电子设备
WO2019214069A1 (zh) 区块链上用户通信加密方法、装置、终端设备及存储介质
CN111769938A (zh) 一种区块链传感器的密钥管理系统、数据验证系统
JPWO2019093478A1 (ja) 鍵交換装置、鍵交換システム、鍵交換方法、及び鍵交換プログラム
CN110049032A (zh) 一种双向认证的数据内容加密方法及装置
US7971234B1 (en) Method and apparatus for offline cryptographic key establishment
WO2021134897A1 (zh) 区块链供应链交易隐藏动态监管系统及方法
CN110865793A (zh) 一种基于区块链智能合约生成随机数的方法
CN110784318A (zh) 群密钥更新方法、装置、电子设备、存储介质及通信系统
CN116318654A (zh) 融合量子密钥分发的sm2算法协同签名系统、方法及设备
NL1043779B1 (en) Method for electronic signing and authenticaton strongly linked to the authenticator factors possession and knowledge
US11146594B2 (en) Security incident blockchain
CN111885056A (zh) 基于区块链的零知识证明方法、装置及电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19933675

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19933675

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 29.03.2022)

122 Ep: pct application non-entry in european phase

Ref document number: 19933675

Country of ref document: EP

Kind code of ref document: A1