CN110414961A - 防止追踪交易转出方的转账方法、装置、设备及存储介质 - Google Patents
防止追踪交易转出方的转账方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110414961A CN110414961A CN201910541454.2A CN201910541454A CN110414961A CN 110414961 A CN110414961 A CN 110414961A CN 201910541454 A CN201910541454 A CN 201910541454A CN 110414961 A CN110414961 A CN 110414961A
- Authority
- CN
- China
- Prior art keywords
- transaction
- producing
- trading
- account
- ciphertext data
- 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
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 106
- 238000000034 method Methods 0.000 title claims abstract description 55
- GGMMWVHTLAENAS-UHFFFAOYSA-M (1,1-diethylpyrrolidin-1-ium-3-yl) 2-hydroxy-2,2-diphenylacetate;bromide Chemical compound [Br-].C1[N+](CC)(CC)CCC1OC(=O)C(O)(C=1C=CC=CC=1)C1=CC=CC=C1 GGMMWVHTLAENAS-UHFFFAOYSA-M 0.000 claims abstract description 101
- 238000004364 calculation method Methods 0.000 claims description 26
- 238000012795 verification Methods 0.000 claims description 20
- 125000004122 cyclic group Chemical group 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000012790 confirmation Methods 0.000 description 4
- 239000003999 initiator Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 2
- 239000010931 gold Substances 0.000 description 2
- 229910052737 gold Inorganic materials 0.000 description 2
- 238000001629 sign test Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, 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/401—Transaction verification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, 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/401—Transaction verification
- G06Q20/4014—Identity check for transactions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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/3073—Public 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
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Mathematical Optimization (AREA)
- Development Economics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Economics (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明涉及区块链技术领域,公开了一种防止追踪交易转出方的转账方法,包括:在进行转账交易时,交易转出方PartyX生成交易转出方PartyX与交易转入方PartyM之间的真实交易信息;引入n个虚拟交易转出方PartyN,并生成虚拟交易转出方PartyN与交易转入方PartyM之间的虚拟交易金额b对应的虚拟交易信息;使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥KeyN;将真实交易信息和虚拟交易信息发布到区块链上。本发明还公开了一种防止追踪交易转出方的转账装置、设备及计算机可读存储介质。本发明利用多个虚拟交易来达到隐藏转出方身份的目的,实现了只有交易转入方才能够识别出真实交易的转出方,从而保证了交易转出方身份的不可追踪性。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种防止追踪交易转出方的转账方法、装置、设备及计算机可读存储介质。
背景技术
目前业内普遍使用的方法是使用公钥地址(公钥的散列值)作为交易双方的身份标识,并以为这样的方式就是安全的,这其实是对密码学的一个错误理解。使用公钥作为身份标识,这只是一个化名,而在当今计算机的大数据分析下,很容易统计出这个化名下的用户行为特征,并对这些特征进行分析(比如用户画像),就很可能将该公钥地址的身份进行定位,如果用户在线下也有一些信息泄露,两者一结合就可能推测出用户的真实身份和其在链上使用的公钥地址的对应关系。
真正有密码学保证的做法,是使用具有不可追踪特性的算法,比如在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个密文数据BN、n个交易签名SN,其中,b等于0,BN=b*g+xN*h,xN表示盲因子且为随机数,N取[1,n]中所有正整数;
使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥KeyN,并使用密钥KeyN对盲因子xN进行加密,得到n个密文数据EN;
将真实交易信息和虚拟交易信息发布到区块链上,其中,所述真实交易信息包括:密文数据A、交易签名S、所述RangProof证明、密文数据E;所述虚拟交易信息包括:n个密文数据BN、n个交易签名SN、n个密文数据EN。
可选地,所述防止交易追踪的转账方法还包括:
在上链交易信息时,若当前节点为交易验证方,则验证交易签名S、所述RangProof证明以及n个交易签名SN,以对转账交易进行验证;
若验证通过,则更新交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM各自在区块链上的账户信息,所述账户信息包括:账户余额和账户交易版本号;
将密文数据A、密文数据E、n个密文数据BN、n个密文数据EN存储在区块链上;以及将密文数据A、E分别与交易转出方PartyX、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定,将n个密文数据BN、EN分别与虚拟交易转出方PartyN、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定。
可选地,所述防止交易追踪的转账方法还包括:
在查询交易信息时,若当前节点为交易转入方PartyM,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息A、E、BN、EN;
使用ECDH算法对加密数据E进行解密,若解密成功,则确定对应交易为真实交易,并得到真实交易金额a和盲因子x,以及使用a更新本地的账户余额、使用x更新交易转出方PartyX对应的RangeProof的计算方式;
使用Pairing算法生成密钥keyN,并使用keyN解密EN,得到盲因子xN,以及使用xN更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
根据区块链上的账户交易版本号,更新本地的账户交易版本号。
可选地,所述防止交易追踪的转账方法还包括:
在查询交易信息时,若当前节点为虚拟交易转出方PartyN,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息BN、EN;
使用ECDH算法对加密数据EN进行解密,若解密失败,则确定对应交易为虚拟交易;
使用Pairing算法生成密钥keyN,并使用keyN解密EN,得到盲因子xN,以及使用xN更新虚拟交易转出方PartyN对应的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个密文数据BN、n个交易签名SN,其中,b等于0,BN=b*g+xN*h,xN表示盲因子且为随机数;使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥KeyN,并使用密钥KeyN对盲因子xN进行加密,得到n个密文数据EN,其中,N取[1,n]中所有正整数;
交易信息发布模块,用于将真实交易信息和虚拟交易信息发布到区块链上,其中,所述真实交易信息包括:密文数据A、交易签名S、所述RangProof证明、密文数据E;所述虚拟交易信息包括:n个密文数据BN、n个交易签名SN、n个密文数据EN。
可选地,所述防止交易追踪的转账装置还包括:
交易验证模块,用于在上链交易信息时,若当前节点为交易验证方,则验证交易签名S、所述RangProof证明以及n个交易签名SN,以对转账交易进行验证;
账户更新模块,用于若转账交易验证通过,则更新交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM各自在区块链上的账户信息,所述账户信息包括:账户余额和账户交易版本号;
交易存储模块,用于将密文数据A、n个密文数据E、n个密文数据BN、密文数据EN存储在区块链上;以及将密文数据A、E分别与交易转出方PartyX、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定,将n个密文数据BN、EN分别与虚拟交易转出方PartyN、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定。
可选地,所述防止交易追踪的转账装置还包括:
第一交易信息查询模块,用于在查询交易信息时,若当前节点为交易转入方PartyM,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息A、E、BN、EN;
第一交易信息解密模块,用于使用ECDH算法对加密数据E进行解密,若解密成功,则确定对应交易为真实交易,并得到真实交易金额a和盲因子x,以及使用a更新本地的账户余额、使用x更新交易转出方PartyX对应的RangeProof的计算方式;使用Pairing算法生成密钥keyN,并使用keyN解密EN,得到盲因子xN,以及使用xN更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
所述账户更新模块还用于:根据区块链上的账户交易版本号,更新本地的账户交易版本号。
可选地,所述防止交易追踪的转账装置还包括:
第二交易信息查询模块,用于在查询交易信息时,若当前节点为虚拟交易转出方PartyN,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息BN、EN;
第二交易信息解密模块,用于使用ECDH算法对加密数据EN进行解密,若解密失败,则确定对应交易为虚拟交易;使用Pairing算法生成密钥keyN,并使用keyN解密EN,得到盲因子xN,以及使用xN更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
所述账户更新模块还用于:根据区块链上的账户交易版本号,更新本地的账户交易版本号。
进一步地,为实现上述目的,本发明还提供一种防止追踪交易转出方的转账设备,所述防止追踪交易转出方的转账设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的防止追踪交易转出方的转账程序,所述防止追踪交易转出方的转账程序被所述处理器执行时实现如上述任一项所述的防止追踪交易转出方的转账方法的步骤。
进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有防止追踪交易转出方的转账程序,所述防止追踪交易转出方的转账程序被处理器执行时实现如上述任一项所述的防止追踪交易转出方的转账方法的步骤。
本发明中,交易转出方在生成真实交易信息的同时,引入多个虚拟交易转出方并生成多个虚拟交易信息,通过多个虚拟交易信息来混淆真实交易信息,进而利用多个虚拟交易来达到隐藏转出方身份的目的。此外,交易转出方还使用Pedersen Commitment加密方式加密真实交易金额,进而实现了隐藏交易转出方的账户余额的目的。本发明还使用双线性对算法对虚拟交易信息进行加密,从而使得交易转入方能够解密虚拟交易,进而实现对虚拟交易的辨别,同时交易转入方还能够解密真实交易的密文数据E,而非交易双方不能解密真实交易的密文数据E,从而保证了交易转出方身份的不可追踪性。
附图说明
图1为本发明防止追踪交易转出方的转账设备实施例方案涉及的设备硬件运行环境的结构示意图;
图2为本发明防止追踪交易转出方的转账方法第一实施例的流程示意图;
图3为本发明防止追踪交易转出方的转账方法第二实施例的流程示意图;
图4为本发明防止追踪交易转出方的转账方法第三实施例的流程示意图;
图5为本发明防止追踪交易转出方的转账方法第四实施例的流程示意图;
图6为本发明防止追踪交易转出方的转账装置第一实施例的功能模块示意图;
图7为本发明防止追踪交易转出方的转账装置第二实施例的功能模块示意图;
图8为本发明防止追踪交易转出方的转账装置第三实施例的功能模块示意图;
图9为本发明防止追踪交易转出方的转账装置第四实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种防止追踪交易转出方的转账设备。
参照图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个密文数据BN、n个交易签名SN,其中,b等于0,BN=b*g+xN*h,xN表示盲因子且为随机数,N取[1,n]中所有正整数;
本实施例中,为防止最终交易转出方,因此交易转出方PartyX在生成真实交易信息的同时,引入n个虚拟交易转出方PartyN并对应生成n笔虚拟交易信息,通过多个虚拟交易信息来混淆真实交易信息,进而利用多个虚拟交易来达到隐藏转出方身份的目的。本实施例中,由于采用的是虚拟交易,因此虚拟交易的金额为0。
交易转出方PartyX使用随机数xN作为虚拟交易的盲因子,由于虚拟交易的交易金额b必须是0,所以虚拟交易金额b对应的密文数据BN对应的Pedersen Commitment格式为BN=0*g+xN*h=xN*h;也即BN实际上是以xN为私钥,h为基点的椭圆曲线上的公钥,因此,本实施例优选使用xN对BN进行自签名,生成虚拟交易的交易签名SN。
本步骤中,N具体取[1,n]中所有正整数,也即N等于1,2,3,。。。。n-1,n;也即本实施例中,虚拟交易转出方Party1与交易转入方PartyM对应的虚拟交易金额的密文数据为B1、交易签名为S1;虚拟交易转出方Party2与交易转入方PartyM对应的虚拟交易金额的密文数据为B2、交易签名为S2;虚拟交易转出方Party3与交易转入方PartyM对应的虚拟交易金额的密文数据为B3、交易签名为S3,其他以此类推。
步骤S140,使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥KeyN,并使用密钥KeyN对盲因子xN进行加密,得到n个密文数据EN;
本实施例中,交易转出方PartyX进一步使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM三方都能够解密的密钥KeyN,并使用密钥KeyN对盲因子xN进行加密,得到密文数据EN。也即PartyX使用Pairing算法生成PartyX、Party1以及PartyM三方都能够解密的密钥Key1,并使用密钥Key1对盲因子x1进行加密,得到密文数据E1;PartyX使用Pairing算法生成PartyX、Party2以及PartyM三方都能够解密的密钥Key2,并使用密钥Key2对盲因子x2进行加密,得到密文数据E2,其他以此类推。
本实施例涉及的交易方包括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个密文数据BN、n个交易签名SN、n个密文数据EN。
本实施例中,交易转出方PartyX将生成的真实交易信息和虚拟交易信息发布到区块链上,从而完成转账交易。其中,真实交易信息包括:密文数据A、交易签名S、账户余额大于或等于0的RangProof证明、密文数据E;虚拟交易信息包括:n个密文数据BN、n个交易签名SN、n个密文数据EN。
本实施例中,交易转出方PartyX在生成真实交易信息的同时,引入了多个虚拟交易转出方PartyN并生成多个虚拟交易信息,通过多个虚拟交易信息来混淆真实交易信息,进而利用多个虚拟交易来达到隐藏转出方身份的目的。此外,交易转出方PartyX还使用Pedersen Commitment加密方式加密真实交易金额A,进而实现了隐藏交易转出方的账户余额的目的。本实施例还使用双线性对Pairing算法对虚拟交易信息进行加密,从而使得交易转入方能够解密虚拟交易,进而实现对虚拟交易的辨别,同时交易转入方还能够解密真实交易的密文数据E,而非交易双方不能解密真实交易的密文数据E,从而保证了交易转出方身份的不可追踪性。
参照图3,图3为本发明防止追踪交易转出方的转账方法第二实施例的流程示意图。基于上述方法第一实施例,本实施例中,在上述步骤S150之后,所述防止交易追踪的转账方法还包括:
步骤S210,在上链交易信息时,若当前节点为交易验证方,则验证交易签名S、所述RangProof证明以及n个交易签名SN,以对转账交易进行验证;
本实施例中,任意节点的上链数据都需要经过区块链上其他节点的验证(比如矿工节点),交易信息只有通过验证后才能上链存储。本实施例对于验证交易签名S以及RangProof证明的验证方式与现有技术相同,因此不过过多赘述。
本实施例中,验证交易签名S以保证签名者合法以及确认交易数据未被篡改,验证RangProof证明以确保交易金额有效(也即确保本次交易金额小于或等于当前账户余额)。
此外,本实施例中对虚拟交易的交易签名SN进行验证,一方面是验证签名者合法以及确认交易数据未被篡改,另一方面是确保虚拟交易金额为0。下面以Party1对应的虚拟交易为例,验证S1的方法如下:
使用B1作为公钥,使用h为基点的椭圆曲线G1,对S1进行验签,如果验证通过,说明F1的交易金额的确是0。需要说明的是:B1的Pedersen Commitment形式为:B1=b*g+x1*h,而h=c*g,也即B1=(b/c)*h+x1*h=(b/c+x1)*h,由于c是不可知的,所以对于任何一方,如果b不为0,则B1的私钥为(b/c+x1),但由于c是不可知的,所以任何一方都不可能拿到一个金额不为0的Pedersen Commitment的私钥。
步骤S220,若验证通过,则更新交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM各自在区块链上的账户信息,所述账户信息包括:账户余额和账户交易版本号;
本实施例中,若待上链的交易信息通过了交易验证方的验证,则更新交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM各自在区块链上的账户信息。
假设PartyX在区块链上的账户为AccountX,PartyN在区块链上的账户为Accountn,PartyM在区块链上的账户为AccountM,Old Balance表示原有账户余额、NewBalance表示更新后的账户余额,Old Version表示原有账户交易版本号、New Version表示更新后的账户交易版本号,则更新的账户信息如下:
在交易转出方PartyX的区块链账户AccountX中,New Balance=Old Balance-A;New Version=Old Version+1;
在虚拟交易转出方Party1的区块链账户Account1中,New Balance=OldBalance-B1;New Version=Old Version+1;
在虚拟交易转出方Party2的区块链账户Account2中,New Balance=OldBalance-B2;New Version=Old Version+1;
......
在虚拟交易转出方PartyN的区块链账户AccountN中,New Balance=OldBalance-Bn;New Version=Old Version+1;
在交易转入方PartyM的区块链账户AccountM中,New Balance=Old Balance+A+B1+B2+...+Bn;New Version=Old Version+1+n。
步骤S230,将密文数据A、密文数据E、n个密文数据BN、n个密文数据EN存储在区块链上;以及将密文数据A、E分别与交易转出方PartyX、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定,将n个密文数据BN、EN分别与虚拟交易转出方PartyN、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定。
本实施例中,若待上链的交易信息通过了交易验证方的验证,则允许交易信息上链,也即将真实交易信息:密文数据A、密文数据E以及n笔虚拟交易信息:n个密文数据BN、n个密文数据EN存储在区块链上。同时,进一步将交易信息与区块链上对应的账户交易版本号进行绑定,从而实现交易信息与账户信息的关联,具体为:将密文数据A、E与交易转出方PartyX在区块链上的账户交易版本号进行绑定;将密文数据A、E与交易转入方PartyM在区块链上的账户交易版本号进行绑定;将密文数据B1、E1与虚拟交易转出方PartyN在区块链上的账户交易版本号进行绑定;将密文数据B1、E1与交易转入方PartyM在区块链上的账户交易版本号进行绑定;其他的以此类推。
参照图4,图4为本发明防止追踪交易转出方的转账方法第三实施例的流程示意图。基于上述方法第二实施例,本实施例中,所述防止交易追踪的转账方法还包括:
步骤S310,在查询交易信息时,若当前节点为交易转入方PartyM,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
本实施例中,交易转入方PartyM向区块链查询交易信息以确定是否存在转入本账户的交易。每一笔交易的产生都会生成对应的账户交易版本号,因此,通过判断区块链上的账户交易版本号与本地的账户交易版本号是否一致,以供确定是否存在转入本账户的新交易。
步骤S320,若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息A、E、BN、EN;若一致,则不处理;
本实施例中,若PartyM在区块链上的账户交易版本号与本地的账户交易版本号一致,则说明无新交易产生,而若不一致,则说明有新的交易产生,进而通过区块链上的账户交易版本号,获得对应绑定的交易信息A、E、BN、EN;上述与账户交易版本号绑定的交易信息都为加密数据,因此还需进一步进行解密。
步骤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算法生成密钥keyN,并使用keyN解密EN,得到盲因子xN,以及使用xN更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
本实施例中,鉴于交易转出方PartyX使用Pairing算法对盲因子xN进行加密,得到密文数据EN,因此,交易转入方PartyM同样使用Pairing算法生成对加密数据EN进行解密的密钥keyN。
可选地,PartyX对盲因子xN进行加密的密钥KeyN=e(n_P1,M_P2)xn,则PartyM对盲因子xN进行解密的密钥keyN=e(Bn,n_P2)M_p1;由Pairing算法的特性可知:
KeyN=e(n_P1,M_P2)xn=e(n_p1*h,M_p2*g)xn=e(h,g)n_p1*M_p2*xn;
keyN=e(Bn,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;
也即:KeyN=keyN,因此,PartyM使用keyN可以解密EN,得到盲因子xN。同理,交易转入方PartyM使用解密得到的xN,更新虚拟交易转出方PartyN对应的RangeProof的计算方式。
步骤S350,根据区块链上的账户交易版本号,更新本地的账户交易版本号。
本实施例中,交易转入方PartyM在完成了本地账户余额以及本地保存的交易转出方对应的RangeProof的计算方式的更新后,进一步还根据区块链上的账户交易版本号,更新本地的账户交易版本号,从而最终实现区块链上的账户信息与本地的账户信息的同步统一。
本实施例中,由于PartyM属于交易转入方,因此PartyM可以查看交易金额a并确认交易的真实转出方。同时,交易转入方还能够解密虚拟交易,进而实现对虚拟交易的辨别。
参照图5,图5为本发明防止追踪交易转出方的转账方法第四实施例的流程示意图。基于上述方法第二或第三实施例,本实施例中,所述防止交易追踪的转账方法还包括:
步骤S410,在查询交易信息时,若当前节点为虚拟交易转出方PartyN,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
本实施例中,虚拟交易转出方PartyN向区块链查询交易信息以确定是否存在转入本账户的交易。每一笔交易的产生都会生成对应的账户交易版本号,因此,通过判断区块链上的账户交易版本号与本地的账户交易版本号是否一致,以供确定是否存在转入本账户的新交易。
步骤S420,若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息BN、EN;若一致,则不处理;
本实施例中,若PartyN在区块链上的账户交易版本号与本地的账户交易版本号一致,则说明无新交易产生,而若不一致,则说明有新的交易产生,进而通过区块链上的账户交易版本号,获得对应绑定的交易信息BN、EN;上述与账户交易版本号绑定的交易信息都为加密数据,因此还需进一步进行解密。
步骤S430,使用ECDH算法对加密数据EN进行解密,若解密失败,则确定对应交易为虚拟交易;
本实施例中,鉴于交易转出方PartyX使用ECDH算法对真实交易金额a和盲因子x进行加密,得到密文数据E,因此,虚拟交易转出方PartyN若想追踪交易转出方的话,则同样需要尝试使用ECDH算法对加密数据E进行解密,由于交易转出方PartyX使用ECDH算法生成的加密密钥只能由交易转出方PartyX和交易转入方PartyM双方解密,因此,虚拟交易转出方PartyN对加密数据EN进行解密必然是解密失败,由此虚拟交易转出方PartyN可确定向PartyM进行转账的交易为虚拟交易。
步骤S440,使用Pairing算法生成密钥keyN,并使用keyN解密EN,得到盲因子xN,以及使用xN更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
本实施例中,鉴于交易转出方PartyX使用Pairing算法对盲因子xN进行加密,得到密文数据EN,因此,虚拟交易转出方PartyN若想追踪交易转出方的话,则同样需要尝试使用Pairing算法生成对加密数据EN进行解密的密钥keyN。
可选地,PartyX对盲因子xN进行加密的密钥KeyN=e(n_P1,M_P2)xn,则PartyN对盲因子xN进行解密的密钥keyN=e(Bn,M_P2)n_p1;由Pairing算法的特性可知:
KeyN=e(n_P1,M_P2)xn=e(n_p1*h,M_p2*g)xn=e(h,g)n_p1*M_p2*xn;
keyN=e(Bn,M_P2)n_p1=e(xn*h,M_p2*g)n_p1=e(h,g)n_p1*M_p2*xn;
也即:KeyN=keyN,因此,PartyN使用keyN可以解密EN,得到盲因子xN。同理,交易转入方PartyN使用解密得到的xN,更新虚拟交易转出方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个密文数据BN、n个交易签名SN,其中,b等于0,BN=b*g+xN*h,xN表示盲因子且为随机数;使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥KeyN,并使用密钥KeyN对盲因子xN进行加密,得到n个密文数据EN,其中,N取[1,n]中所有正整数;
本实施例中,为防止最终交易转出方,因此交易转出方PartyX在生成真实交易信息的同时,引入n个虚拟交易转出方PartyN并对应生成n笔虚拟交易信息,通过多个虚拟交易信息来混淆真实交易信息,进而利用多个虚拟交易来达到隐藏转出方身份的目的。本实施例中,由于采用的是虚拟交易,因此虚拟交易的金额为0。
交易转出方PartyX使用随机数xN作为虚拟交易的盲因子,由于虚拟交易的交易金额b必须是0,所以虚拟交易金额b对应的密文数据BN对应的Pedersen Commitment格式为BN=0*g+xN*h=xN*h;也即BN实际上是以xN为私钥,h为基点的椭圆曲线上的公钥,因此,本实施例优选使用xN对BN进行自签名,生成虚拟交易的交易签名SN。
本步骤中,N具体取[1,n]中所有正整数,也即N等于1,2,3,。。。。n-1,n;也即本实施例中,虚拟交易转出方Party1与交易转入方PartyM对应的虚拟交易金额的密文数据为B1、交易签名为S1;虚拟交易转出方Party2与交易转入方PartyM对应的虚拟交易金额的密文数据为B2、交易签名为S2;虚拟交易转出方Party3与交易转入方PartyM对应的虚拟交易金额的密文数据为B3、交易签名为S3,其他以此类推。
本实施例中,交易转出方PartyX进一步使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM三方都能够解密的密钥KeyN,并使用密钥KeyN对盲因子xN进行加密,得到密文数据EN。也即PartyX使用Pairing算法生成PartyX、Party1以及PartyM三方都能够解密的密钥Key1,并使用密钥Key1对盲因子x1进行加密,得到密文数据E1;PartyX使用Pairing算法生成PartyX、Party2以及PartyM三方都能够解密的密钥Key2,并使用密钥Key2对盲因子x2进行加密,得到密文数据E2,其他以此类推。
本实施例涉及的交易方包括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个密文数据BN、n个交易签名SN、n个密文数据EN。
本实施例中,交易转出方PartyX将生成的真实交易信息和虚拟交易信息发布到区块链上,从而完成转账交易。其中,真实交易信息包括:密文数据A、交易签名S、账户余额大于或等于0的RangProof证明、密文数据E;虚拟交易信息包括:n个密文数据BN、n个交易签名SN、n个密文数据EN。
本实施例中,交易转出方PartyX在生成真实交易信息的同时,引入了多个虚拟交易转出方PartyN并生成多个虚拟交易信息,通过多个虚拟交易信息来混淆真实交易信息,进而利用多个虚拟交易来达到隐藏转出方身份的目的。此外,交易转出方PartyX还使用Pedersen Commitment加密方式加密真实交易金额A,进而实现了隐藏交易转出方的账户余额的目的。本实施例还使用双线性对Pairing算法对虚拟交易信息进行加密,从而使得交易转入方能够解密虚拟交易,进而实现对虚拟交易的辨别,同时交易转入方还能够解密真实交易的密文数据E,而非交易双方不能解密真实交易的密文数据E,从而保证了交易转出方身份的不可追踪性。
参照图7,图7为本发明防止追踪交易转出方的转账装置第二实施例的功能模块示意图。基于上述装置第一实施例,本实施例中,所述防止交易追踪的转账装置还包括:
交易验证模块40,用于在上链交易信息时,若当前节点为交易验证方,则验证交易签名S、所述RangProof证明以及n个交易签名SN,以对转账交易进行验证;
本实施例中,任意节点的上链数据都需要经过区块链上其他节点的验证(比如矿工节点),交易信息只有通过验证后才能上链存储。本实施例对于验证交易签名S以及RangProof证明的验证方式与现有技术相同,因此不过过多赘述。
本实施例中,验证交易签名S以保证签名者合法以及确认交易数据未被篡改,验证RangProof证明以确保交易金额有效(也即确保本次交易金额小于或等于当前账户余额)。
此外,本实施例中对虚拟交易的交易签名SN进行验证,一方面是验证签名者合法以及确认交易数据未被篡改,另一方面是确保虚拟交易金额为0。下面以Party1对应的虚拟交易为例,验证S1的方法如下:
使用B1作为公钥,使用h为基点的椭圆曲线G1,对S1进行验签,如果验证通过,说明F1的交易金额的确是0。需要说明的是:B1的Pedersen Commitment形式为:B1=b*g+x1*h,而h=c*g,也即B1=(b/c)*h+x1*h=(b/c+x1)*h,由于c是不可知的,所以对于任何一方,如果b不为0,则B1的私钥为(b/c+x1),但由于c是不可知的,所以任何一方都不可能拿到一个金额不为0的Pedersen Commitment的私钥。
账户更新模块50,用于若转账交易验证通过,则更新交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM各自在区块链上的账户信息,所述账户信息包括:账户余额和账户交易版本号;
本实施例中,若待上链的交易信息通过了交易验证方的验证,则更新交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM各自在区块链上的账户信息。
假设PartyX在区块链上的账户为AccountX,PartyN在区块链上的账户为Accountn,PartyM在区块链上的账户为AccountM,Old Balance表示原有账户余额、NewBalance表示更新后的账户余额,Old Version表示原有账户交易版本号、New Version表示更新后的账户交易版本号,则更新的账户信息如下:
在交易转出方PartyX的区块链账户AccountX中,New Balance=Old Balance-A;New Version=Old Version+1;
在虚拟交易转出方Party1的区块链账户Account1中,New Balance=OldBalance-B1;New Version=Old Version+1;
在虚拟交易转出方Party2的区块链账户Account2中,New Balance=OldBalance-B2;New Version=Old Version+1;
......
在虚拟交易转出方PartyN的区块链账户AccountN中,New Balance=OldBalance-Bn;New Version=Old Version+1;
在交易转入方PartyM的区块链账户AccountM中,New Balance=Old Balance+A+B1+B2+...+Bn;New Version=Old Version+1+n。
交易存储模块60,用于将密文数据A、n个密文数据E、n个密文数据BN、密文数据EN存储在区块链上;以及将密文数据A、E分别与交易转出方PartyX、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定,将n个密文数据BN、EN分别与虚拟交易转出方PartyN、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定。
本实施例中,若待上链的交易信息通过了交易验证方的验证,则允许交易信息上链,也即将真实交易信息:密文数据A、密文数据E以及n笔虚拟交易信息:n个密文数据BN、n个密文数据EN存储在区块链上。同时,进一步将交易信息与区块链上对应的账户交易版本号进行绑定,从而实现交易信息与账户信息的关联,具体为:将密文数据A、E与交易转出方PartyX在区块链上的账户交易版本号进行绑定;将密文数据A、E与交易转入方PartyM在区块链上的账户交易版本号进行绑定;将密文数据B1、E1与虚拟交易转出方PartyN在区块链上的账户交易版本号进行绑定;将密文数据B1、E1与交易转入方PartyM在区块链上的账户交易版本号进行绑定;其他的以此类推。
参照图8,图8为本发明防止追踪交易转出方的转账装置第三实施例的功能模块示意图。基于上述装置第二实施例,本实施例中,所述防止交易追踪的转账装置还包括:
第一交易信息查询模块70,用于在查询交易信息时,若当前节点为交易转入方PartyM,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息A、E、BN、EN;
本实施例中,交易转入方PartyM向区块链查询交易信息以确定是否存在转入本账户的交易。每一笔交易的产生都会生成对应的账户交易版本号,因此,通过判断区块链上的账户交易版本号与本地的账户交易版本号是否一致,以供确定是否存在转入本账户的新交易。
本实施例中,若PartyM在区块链上的账户交易版本号与本地的账户交易版本号一致,则说明无新交易产生,而若不一致,则说明有新的交易产生,进而通过区块链上的账户交易版本号,获得对应绑定的交易信息A、E、BN、EN;上述与账户交易版本号绑定的交易信息都为加密数据,因此还需进一步进行解密。
第一交易信息解密模块80,用于使用ECDH算法对加密数据E进行解密,若解密成功,则确定对应交易为真实交易,并得到真实交易金额a和盲因子x,以及使用a更新本地的账户余额、使用x更新交易转出方PartyX对应的RangeProof的计算方式;使用Pairing算法生成密钥keyN,并使用keyN解密EN,得到盲因子xN,以及使用xN更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
本实施例中,鉴于交易转出方PartyX使用ECDH算法对真实交易金额a和盲因子x进行加密,得到密文数据E,因此,交易转入方PartyM同样尝试使用ECDH算法对加密数据E进行解密,若解密成功,则确定对应交易为真实交易。
本实施例中,在获得交易转出方PartyX的交易信息后,更新本地信息,具体为使用真实交易金额a更新本地的账户余额,需要说明的是本地账户是链下数据,由用户自己管理,比如用户的手机应用等,因此本地账户中的余额是用的明文形式存储,需要使用明文的交易金额进行更新,而区块链上的账户中的余额则是使用Pedersen Commitment的加密形式存储,因此需要使用Pedersen Commitment加密形式的交易金额进行更新。
此外,由于每一次交易使用的盲因子x是随机的,因此在发生新交易时,还进一步需要使用解密得到的盲因子x,更新交易转出方PartyX对应的RangeProof的计算方式,其中,RangeProof的计算方式涉及Pedersen Commitment加密形式,因此需要使用与交易信息统一的盲因子x。
本实施例中,鉴于交易转出方PartyX使用Pairing算法对盲因子xN进行加密,得到密文数据EN,因此,交易转入方PartyM同样使用Pairing算法生成对加密数据EN进行解密的密钥keyN。
可选地,PartyX对盲因子xN进行加密的密钥KeyN=e(n_P1,M_P2)xn,则PartyM对盲因子xN进行解密的密钥keyN=e(Bn,n_P2)M_p1;由Pairing算法的特性可知:
KeyN=e(n_P1,M_P2)xn=e(n_p1*h,M_p2*g)xn=e(h,g)n_p1*M_p2*xn;
keyN=e(Bn,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;
也即:KeyN=keyN,因此,PartyM使用keyN可以解密EN,得到盲因子xN。同理,交易转入方PartyM使用解密得到的xN,更新虚拟交易转出方PartyN对应的RangeProof的计算方式。
所述账户更新模块50还用于:根据区块链上的账户交易版本号,更新本地的账户交易版本号。
本实施例中,交易转入方PartyM在完成了本地账户余额以及本地保存的交易转出方对应的RangeProof的计算方式的更新后,进一步还根据区块链上的账户交易版本号,更新本地的账户交易版本号,从而最终实现区块链上的账户信息与本地的账户信息的同步统一。
本实施例中,由于PartyM属于交易转入方,因此PartyM可以查看交易金额a并确认交易的真实转出方。同时,交易转入方还能够解密虚拟交易,进而实现对虚拟交易的辨别。
参照图9,图9为本发明防止追踪交易转出方的转账装置第四实施例的功能模块示意图。基于上述装置第二或第三实施例,本实施例中,所述防止交易追踪的转账装置还包括:
第二交易信息查询模块90,用于在查询交易信息时,若当前节点为虚拟交易转出方PartyN,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息BN、EN;
本实施例中,虚拟交易转出方PartyN向区块链查询交易信息以确定是否存在转入本账户的交易。每一笔交易的产生都会生成对应的账户交易版本号,因此,通过判断区块链上的账户交易版本号与本地的账户交易版本号是否一致,以供确定是否存在转入本账户的新交易。
本实施例中,若PartyN在区块链上的账户交易版本号与本地的账户交易版本号一致,则说明无新交易产生,而若不一致,则说明有新的交易产生,进而通过区块链上的账户交易版本号,获得对应绑定的交易信息BN、EN;上述与账户交易版本号绑定的交易信息都为加密数据,因此还需进一步进行解密。
第二交易信息解密模块100,用于使用ECDH算法对加密数据EN进行解密,若解密失败,则确定对应交易为虚拟交易;使用Pairing算法生成密钥keyN,并使用keyN解密EN,得到盲因子xN,以及使用xN更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
本实施例中,鉴于交易转出方PartyX使用ECDH算法对真实交易金额a和盲因子x进行加密,得到密文数据E,因此,虚拟交易转出方PartyN若想追踪交易转出方的话,则同样需要尝试使用ECDH算法对加密数据E进行解密,由于交易转出方PartyX使用ECDH算法生成的加密密钥只能由交易转出方PartyX和交易转入方PartyM双方解密,因此,虚拟交易转出方PartyN对加密数据EN进行解密必然是解密失败,由此虚拟交易转出方PartyN可确定向PartyM进行转账的交易为虚拟交易。
本实施例中,鉴于交易转出方PartyX使用Pairing算法对盲因子xN进行加密,得到密文数据EN,因此,虚拟交易转出方PartyN若想追踪交易转出方的话,则同样需要尝试使用Pairing算法生成对加密数据EN进行解密的密钥keyN。
可选地,PartyX对盲因子xN进行加密的密钥KeyN=e(n_P1,M_P2)xn,则PartyN对盲因子xN进行解密的密钥keyN=e(Bn,M_P2)n_p1;由Pairing算法的特性可知:
KeyN=e(n_P1,M_P2)xn=e(n_p1*h,M_p2*g)xn=e(h,g)n_p1*M_p2*xn;
keyN=e(Bn,M_P2)n_p1=e(xn*h,M_p2*g)n_p1=e(h,g)n_p1*M_p2*xn;
也即:KeyN=keyN,因此,PartyN使用keyN可以解密EN,得到盲因子xN。同理,交易转入方PartyN使用解密得到的xN,更新虚拟交易转出方PartyN对应的RangeProof的计算方式。
所述账户更新模块50还用于:根据区块链上的账户交易版本号,更新本地的账户交易版本号。
本实施例中,虚拟交易转出方PartyN在完成了本地账户余额以及本地保存的交易转出方对应的RangeProof的计算方式的更新后,进一步还根据区块链上的账户交易版本号,更新本地的账户交易版本号,从而最终实现区块链上的账户信息与本地的账户信息的同步统一。
本实施例中,虚拟交易转出方PartyN不能解密真实交易的密文数据E,PartyN仅能知晓的是自己被作为一个混淆方参与了交易,PartyN仅能解密自己对应的密文数据,而不能解密其他交易参与方对应的密文数据,因而PartyN只能知晓自己不是交易的发起方,而不知晓真实的发起方是谁,从而保证了交易转出方身份的不可追踪性。
本发明还提供一种计算机可读存储介质。
本实施例中,所述计算机可读存储介质上存储有防止追踪交易转出方的转账程序,所述防止追踪交易转出方的转账程序被处理器执行时实现如上述任一项实施例中所述的防止追踪交易转出方的转账方法的步骤。其中,防止追踪交易转出方的转账程序被处理器执行时所实现的方法可参照本发明防止追踪交易转出方的转账方法的各个实施例,因此不再过多赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,这些均属于本发明的保护之内。
Claims (10)
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个密文数据BN、n个交易签名SN,其中,b等于0,BN=b*g+xN*h,xN表示盲因子且为随机数,N取[1,n]中所有正整数;
使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥KeyN,并使用密钥KeyN对盲因子xN进行加密,得到n个密文数据EN;
将真实交易信息和虚拟交易信息发布到区块链上,其中,所述真实交易信息包括:密文数据A、交易签名S、所述RangProof证明、密文数据E;所述虚拟交易信息包括:n个密文数据BN、n个交易签名SN、n个密文数据EN。
2.如权利要求1所述的防止追踪交易转出方的转账方法,其特征在于,所述防止交易追踪的转账方法还包括:
在上链交易信息时,若当前节点为交易验证方,则验证交易签名S、所述RangProof证明以及n个交易签名SN,以对转账交易进行验证;
若验证通过,则更新交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM各自在区块链上的账户信息,所述账户信息包括:账户余额和账户交易版本号;
将密文数据A、密文数据E、n个密文数据BN、n个密文数据EN存储在区块链上;以及将密文数据A、E分别与交易转出方PartyX、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定,将n个密文数据BN、EN分别与虚拟交易转出方PartyN、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定。
3.如权利要求2所述的防止追踪交易转出方的转账方法,其特征在于,所述防止交易追踪的转账方法还包括:
在查询交易信息时,若当前节点为交易转入方PartyM,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息A、E、BN、EN;
使用ECDH算法对加密数据E进行解密,若解密成功,则确定对应交易为真实交易,并得到真实交易金额a和盲因子x,以及使用a更新本地的账户余额、使用x更新交易转出方PartyX对应的RangeProof的计算方式;
使用Pairing算法生成密钥keyN,并使用keyN解密EN,得到盲因子xN,以及使用xN更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
根据区块链上的账户交易版本号,更新本地的账户交易版本号。
4.如权利要求2或3所述的防止追踪交易转出方的转账方法,其特征在于,所述防止交易追踪的转账方法还包括:
在查询交易信息时,若当前节点为虚拟交易转出方PartyN,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;
若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息BN、EN;
使用ECDH算法对加密数据EN进行解密,若解密失败,则确定对应交易为虚拟交易;
使用Pairing算法生成密钥keyN,并使用keyN解密EN,得到盲因子xN,以及使用xN更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
根据区块链上的账户交易版本号,更新本地的账户交易版本号。
5.一种防止追踪交易转出方的转账装置,其特征在于,所述防止交易追踪的转账装置包括:
真实交易生成模块,用于在进行转账交易时,若当前节点为交易转出方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个密文数据BN、n个交易签名SN,其中,b等于0,BN=b*g+xN*h,xN表示盲因子且为随机数;使用Pairing算法生成交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM能够解密的密钥KeyN,并使用密钥KeyN对盲因子xN进行加密,得到n个密文数据EN,其中,N取[1,n]中所有正整数;
交易信息发布模块,用于将真实交易信息和虚拟交易信息发布到区块链上,其中,所述真实交易信息包括:密文数据A、交易签名S、所述RangProof证明、密文数据E;所述虚拟交易信息包括:n个密文数据BN、n个交易签名SN、n个密文数据EN。
6.如权利要求5所述的防止追踪交易转出方的转账装置,其特征在于,所述防止交易追踪的转账装置还包括:
交易验证模块,用于在上链交易信息时,若当前节点为交易验证方,则验证交易签名S、所述RangProof证明以及n个交易签名SN,以对转账交易进行验证;
账户更新模块,用于若转账交易验证通过,则更新交易转出方PartyX、虚拟交易转出方PartyN以及交易转入方PartyM各自在区块链上的账户信息,所述账户信息包括:账户余额和账户交易版本号;
交易存储模块,用于将密文数据A、n个密文数据E、n个密文数据BN、密文数据EN存储在区块链上;以及将密文数据A、E分别与交易转出方PartyX、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定,将n个密文数据BN、EN分别与虚拟交易转出方PartyN、交易转入方PartyM各自在区块链上的账户交易版本号进行绑定。
7.如权利要求6所述的防止追踪交易转出方的转账装置,其特征在于,所述防止交易追踪的转账装置还包括:
第一交易信息查询模块,用于在查询交易信息时,若当前节点为交易转入方PartyM,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息A、E、BN、EN;
第一交易信息解密模块,用于使用ECDH算法对加密数据E进行解密,若解密成功,则确定对应交易为真实交易,并得到真实交易金额a和盲因子x,以及使用a更新本地的账户余额、使用x更新交易转出方PartyX对应的RangeProof的计算方式;使用Pairing算法生成密钥keyN,并使用keyN解密EN,得到盲因子xN,以及使用xN更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
所述账户更新模块还用于:根据区块链上的账户交易版本号,更新本地的账户交易版本号。
8.如权利要求6或7所述的防止追踪交易转出方的转账装置,其特征在于,所述防止交易追踪的转账装置还包括:
第二交易信息查询模块,用于在查询交易信息时,若当前节点为虚拟交易转出方PartyN,则判断区块链上的账户交易版本号是否与本地的账户交易版本号一致;若不一致,则通过区块链上的账户交易版本号,获得对应绑定的交易信息BN、EN;
第二交易信息解密模块,用于使用ECDH算法对加密数据EN进行解密,若解密失败,则确定对应交易为虚拟交易;使用Pairing算法生成密钥keyN,并使用keyN解密EN,得到盲因子xN,以及使用xN更新虚拟交易转出方PartyN对应的RangeProof的计算方式;
所述账户更新模块还用于:根据区块链上的账户交易版本号,更新本地的账户交易版本号。
9.一种防止追踪交易转出方的转账设备,其特征在于,所述防止追踪交易转出方的转账设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的防止追踪交易转出方的转账程序,所述防止追踪交易转出方的转账程序被所述处理器执行时实现如权利要求1-4中任一项所述的防止追踪交易转出方的转账方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有防止追踪交易转出方的转账程序,所述防止追踪交易转出方的转账程序被处理器执行时实现如权利要求1-4中任一项所述的防止追踪交易转出方的转账方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910541454.2A CN110414961A (zh) | 2019-06-21 | 2019-06-21 | 防止追踪交易转出方的转账方法、装置、设备及存储介质 |
PCT/CN2019/120877 WO2020253108A1 (zh) | 2019-06-21 | 2019-11-26 | 信息隐匿方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910541454.2A CN110414961A (zh) | 2019-06-21 | 2019-06-21 | 防止追踪交易转出方的转账方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110414961A true CN110414961A (zh) | 2019-11-05 |
Family
ID=68359575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910541454.2A Pending CN110414961A (zh) | 2019-06-21 | 2019-06-21 | 防止追踪交易转出方的转账方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110414961A (zh) |
WO (1) | WO2020253108A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110673945A (zh) * | 2018-07-03 | 2020-01-10 | 北京京东尚科信息技术有限公司 | 分布式任务管理方法和管理*** |
CN111105235A (zh) * | 2019-12-31 | 2020-05-05 | 深圳市网心科技有限公司 | 基于区块链的供应链交易隐私保护***、方法及相关设备 |
CN112005265A (zh) * | 2020-02-05 | 2020-11-27 | 香港应用科技研究院有限公司 | 用户和数据源身份的虚拟化 |
WO2020253108A1 (zh) * | 2019-06-21 | 2020-12-24 | 深圳壹账通智能科技有限公司 | 信息隐匿方法、装置、设备及存储介质 |
CN112488708A (zh) * | 2020-11-30 | 2021-03-12 | 苏州黑云智能科技有限公司 | 区块链账户关联性查询方法及虚假交易筛选方法 |
WO2021155614A1 (en) * | 2020-02-05 | 2021-08-12 | Hong Kong Applied Science and Technology Research Institute Company Limited | Virtualization of user and data source identification |
Citations (6)
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 | 中国人民银行数字货币研究所 | 一种基于数字货币的交易方法和装置 |
CN108830587A (zh) * | 2018-04-28 | 2018-11-16 | 广东工业大学 | 一种基于无证书签名的nfc移动支付方法 |
CN109285073A (zh) * | 2018-09-29 | 2019-01-29 | 数字钱包(北京)科技有限公司 | 数字货币交易方法及装置 |
CN109584055A (zh) * | 2018-09-20 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 基于区块链的交易方法、装置和汇出方设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110414961A (zh) * | 2019-06-21 | 2019-11-05 | 深圳壹账通智能科技有限公司 | 防止追踪交易转出方的转账方法、装置、设备及存储介质 |
-
2019
- 2019-06-21 CN CN201910541454.2A patent/CN110414961A/zh active Pending
- 2019-11-26 WO PCT/CN2019/120877 patent/WO2020253108A1/zh active Application Filing
Patent Citations (6)
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 | 中国人民银行数字货币研究所 | 一种基于数字货币的交易方法和装置 |
CN108830587A (zh) * | 2018-04-28 | 2018-11-16 | 广东工业大学 | 一种基于无证书签名的nfc移动支付方法 |
CN109584055A (zh) * | 2018-09-20 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 基于区块链的交易方法、装置和汇出方设备 |
CN109285073A (zh) * | 2018-09-29 | 2019-01-29 | 数字钱包(北京)科技有限公司 | 数字货币交易方法及装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110673945A (zh) * | 2018-07-03 | 2020-01-10 | 北京京东尚科信息技术有限公司 | 分布式任务管理方法和管理*** |
WO2020253108A1 (zh) * | 2019-06-21 | 2020-12-24 | 深圳壹账通智能科技有限公司 | 信息隐匿方法、装置、设备及存储介质 |
CN111105235A (zh) * | 2019-12-31 | 2020-05-05 | 深圳市网心科技有限公司 | 基于区块链的供应链交易隐私保护***、方法及相关设备 |
CN111105235B (zh) * | 2019-12-31 | 2024-01-16 | 深圳市迅雷网络技术有限公司 | 基于区块链的供应链交易隐私保护***、方法及相关设备 |
CN112005265A (zh) * | 2020-02-05 | 2020-11-27 | 香港应用科技研究院有限公司 | 用户和数据源身份的虚拟化 |
WO2021155614A1 (en) * | 2020-02-05 | 2021-08-12 | Hong Kong Applied Science and Technology Research Institute Company Limited | Virtualization of user and data source identification |
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 |
CN112488708A (zh) * | 2020-11-30 | 2021-03-12 | 苏州黑云智能科技有限公司 | 区块链账户关联性查询方法及虚假交易筛选方法 |
CN112488708B (zh) * | 2020-11-30 | 2024-04-05 | 苏州黑云智能科技有限公司 | 区块链账户关联性查询方法及虚假交易筛选方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2020253108A1 (zh) | 2020-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106961336B (zh) | 一种基于sm2算法的密钥分量托管方法和*** | |
CN110414961A (zh) | 防止追踪交易转出方的转账方法、装置、设备及存储介质 | |
Sonnino et al. | Coconut: Threshold issuance selective disclosure credentials with applications to distributed ledgers | |
CN109257182B (zh) | 基于同态密码学承诺与零知识范围证明的隐私保护方法 | |
CN106357396B (zh) | 数字签名方法和***以及量子密钥卡 | |
CN106101068B (zh) | 终端通信方法及*** | |
Li et al. | An efficient and secure mobile payment protocol for restricted connectivity scenarios in vehicular ad hoc network | |
CN104917807B (zh) | 资源转移方法、装置和*** | |
CN110311883A (zh) | 身份管理方法、设备、通信网络及存储介质 | |
CN110061845A (zh) | 区块链数据加密方法、装置、计算机设备及存储介质 | |
Schindler et al. | Ethdkg: Distributed key generation with ethereum smart contracts | |
CN108768988A (zh) | 区块链访问控制方法、设备及计算机可读存储介质 | |
CN107483212A (zh) | 一种双方协作生成数字签名的方法 | |
CN109714167A (zh) | 适用于移动应用签名的身份认证与密钥协商方法及设备 | |
CN106713336B (zh) | 基于双重非对称加密技术的电子数据保管***及方法 | |
CN104184588B (zh) | 基于身份的不可拆分数字签名方法 | |
CN110399735A (zh) | 加密数据大小关系证明方法、装置、设备及存储介质 | |
CN108199847B (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN109818741A (zh) | 一种基于椭圆曲线的解密计算方法及装置 | |
CN109741068A (zh) | 网银跨行签约方法、装置及*** | |
CN109660345A (zh) | 基于非对称密钥池服务器的抗量子计算区块链交易方法和*** | |
CN109272316A (zh) | 一种基于区块链网络下的区块实现方法及*** | |
CN109634615A (zh) | 应用安装包的发布方法、验证方法和装置 | |
CN112436938B (zh) | 数字签名的生成方法、装置和服务器 | |
CN110113334A (zh) | 基于区块链的合同处理方法、设备及存储介质 |
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 | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20240419 |
|
AD01 | Patent right deemed abandoned |