CN111523892A - 一种区块链的跨链交易方法及装置 - Google Patents
一种区块链的跨链交易方法及装置 Download PDFInfo
- Publication number
- CN111523892A CN111523892A CN202010328330.9A CN202010328330A CN111523892A CN 111523892 A CN111523892 A CN 111523892A CN 202010328330 A CN202010328330 A CN 202010328330A CN 111523892 A CN111523892 A CN 111523892A
- Authority
- CN
- China
- Prior art keywords
- knowledge proof
- account
- transaction object
- sub
- zero
- 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.)
- Granted
Links
Images
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/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- 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/383—Anonymous user system
-
- 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
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种区块链的跨链交易方法及装置,其中方法为:第一区块链的第一节点接收第一交易数据;所述第一交易数据包括第一零知识证明和第二零知识证明;所述第一节点若验证通过所述第一零知识证明和所述第二零知识证明,则执行所述第一交易数据;所述第一零知识证明验证通过指示第一交易对象、第二交易对象和第三交易对象满足预设关系;所述第二零知识证明验证通过指示所述第二交易对象与第四交易对象等价。上述方法应用于金融科技(Fintech)时,通过验证所述第一零知识证明和所述第二零知识证明,间接证明第一交易对象、第四交易对象和第三交易对象满足预设关系,从而保证了交易的正确性。
Description
技术领域
本发明涉及金融科技(Fintech)领域中的区块链(blockchain)领域,尤其涉及一种区块链的跨链交易方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。金融科技领域中对金融交易的安全性要求极高,因此常通过区块链(blockchain)来实现金融交易。
在跨区块链的交易过程中,一个区块链中的交易的发起方的交易对象可能会发生改变(如交易金额的变化),如何确保这种变化的正确性,是保证交易正确性的重点。然而,目前确保这种变化的正确性方式是将改变过程中的交易对象都公开。显然,现有的这种跨区块链的交易过程中,确保交易对象变化的正确性时会泄露改变过程中的交易对象,这是一个亟待解决的问题。
发明内容
本发明提供一种区块链的跨链交易方法及装置,解决了现有技术中确保交易对象变化的正确性时会泄露改变过程中的交易对象的问题。
第一方面,本发明提供一种区块链的跨链交易方法,包括:第一区块链的第一节点接收第一交易数据;所述第一交易数据包括第一零知识证明和第二零知识证明;所述第一节点若验证通过所述第一零知识证明和所述第二零知识证明,则执行所述第一交易数据;所述第一零知识证明验证通过指示第一交易对象、第二交易对象和第三交易对象满足预设关系;所述第二零知识证明验证通过指示所述第二交易对象与第四交易对象等价;所述第一交易对象为第一账户的待交易对象;所述第二交易对象为所述第一账户从所述第一交易对象中拟向第二账户转入的交易对象;所述第三交易对象为所述第一账户从所述第一交易对象中拟向第三账户转入的交易对象;所述第四交易对象为所述第二账户待生成的交易对象;所述第一账户为第一用户在所述第一区块链上的账户;所述第二账户为第二用户在第二区块链上的账户;所述第三账户为所述第一用户在所述第二区块链上的账户。
上述方法中,第一区块链的第一节点接收到的第一交易数据包括:第一零知识证明和第二零知识证明,而所述第一零知识证明可以证明第一交易对象、第二交易对象和第三交易对象满足预设关系,且所述第二零知识证明可以证明所述第二交易对象与第四交易对象等价,从而所述第一节点若验证所述第一交易数据通过,则表明第一交易数据的交易正确性,可以在不泄露第一交易对象、第三交易对象和第四交易对象的情况下,通过验证所述第一零知识证明和所述第二零知识证明,间接证明第一交易对象、第四交易对象和第三交易对象满足预设关系,从而保证了交易的正确性。
可选的,所述第一节点执行所述第一交易数据,包括:所述第一节点向第二区块链的第二节点发送已验证通过的所述第一交易数据;所述第一节点接收来自所述第二节点的第二交易数据;所述第二交易数据指示所述第二节点验证通过所述第一零知识证明和所述第二零知识证明。
上述方法中,所述第一节点向第二区块链的第二节点发送已验证通过的所述第一交易数据,并接收来自所述第二节点的第二交易数据,从而第一节点和第二节点都对第一零知识证明和第二零知识证明进行了验证,进一步增加了交易的可靠性。
可选的,所述第一零知识证明是按照椭圆曲线的方式确定的;所述第一零知识证明包括第一子部分、第二子部分、第三子部分、第四子部分、第五子部分和第六子部分;所述第一零知识证明的第一子部分是根据作为替代第一匿名凭证的第一临时变量、作为替代第二匿名凭证的第二临时变量和作为替代第三匿名的凭证第三临时变量按照预设哈希算法得到的;所述第一匿名凭证用于表征所述第一账户具有所述第一交易对象的权益、所述第二匿名凭证用于表征所述第一账户具有所述第二交易对象的权益和所述第三匿名凭证用于表征所述第一账户具有所述第三交易对象的权益;所述第一零知识证明的第二子部分是根据所述第一交易对象得到的;所述第一零知识证明的第三子部分是根据所述第一交易对象的第一子秘密得到的;所述第一零知识证明的第四子部分是根据所述第三交易对象得到的;所述第一零知识证明的第五子部分是根据所述第三交易对象的第三子秘密得到的;所述第一零知识证明的第六子部分是根据所述第二交易对象的第二子秘密得到的;所述第一零知识证明是基于第一临时替代变量、第二临时替代变量和第三临时替代变量按照所述预设哈希算法的哈希值与所述第一零知识证明的第一子部分验证的;所述第一临时替代变量是根据所述第一零知识证明的第二子部分、所述第一零知识证明的第三子部分和所述第一匿名凭证得到的;所述第二临时替代变量是根据所述第一零知识证明的第四子部分、所述第一零知识证明的第五子部分和所述第三匿名凭证得到的;所述第三临时替代变量是根据所述第一零知识证明的第二子部分、所述第一零知识证明的第四子部分、所述第一零知识证明的第六子部分和所述第二匿名凭证得到的。
上述方法中,所述第一零知识证明的各个子部分都是由匿名凭证或交易对象或子秘密得到的,从而提供了一种与匿名凭证、交易对象以及子秘密关联的零知识证明生成方法。
可选的,所述第一零知识证明具体是按照以下方式确定的:对第一随机数、第二随机数、所述第一公开点和所述第二公开点执行线性运算,确定所述第一临时变量;对第三随机数、第四随机数、所述第一公开点和所述第二公开点执行线性运算,确定所述第二临时变量;对所述第一随机数、所述第三随机数、所述第五随机数、所述第一公开点和所述第二公开点执行线性运算,确定所述第三临时变量;对所述第一临时变量、所述第二临时变量和所述第三临时变量,按照所述预设哈希算法,确定所述第一零知识证明的第一子部分;对所述第一随机数、第六随机数、所述第一交易对象执行线性运算,确定所述第一零知识证明的第二子部分;对所述第二随机数、第六随机数、所述第一子秘密执行线性运算,确定所述第一零知识证明的第三子部分;对所述第三随机数、第六随机数、所述第三交易对象执行线性运算,确定所述第一零知识证明的第四子部分;对所述第四随机数、第六随机数、所述第三子秘密执行线性运算,确定所述第一零知识证明的第五子部分;对所述第五随机数、第六随机数、所述第二子秘密执行线性运算,确定所述第一零知识证明的第六子部分。
上述方式下,引入了随机数,将随机数与匿名凭证或交易对象或子秘密结合得到所述第一零知识证明的各个子部分,从而增加了所述第一零知识证明的随机性,进一步增加了所述第一零知识证明的安全性。
可选的,所述第二零知识证明是按照椭圆曲线的方式确定的;所述第二零知识证明包括第一子部分、第二子部分、第三子部分、第四子部分、第五子部分和第六子部分;所述第二零知识证明的第一子部分为所述第二匿名凭证;所述第二零知识证明的第二子部分为第四匿名凭证;所述第二零知识证明的第三子部分是根据所述第二公开点得到的;所述第二零知识证明的第四子部分是根据所述第二交易对象得到的;所述第二零知识证明的第五部分是根据所述第一账户、所述第二账户、第三账户、第四账户、所述第二交易对象和所述第二公开点按照所述预设哈希算法得到的;所述第三账户为所述第一用户在所述第二区块链上的账户;所述第四账户为所述第二用户在所述第一区块链上的账户;所述第四匿名凭证是基于所述第四交易对象和所述第四交易对象的第四子秘密得到的;所述第二零知识证明是基于所述第一账户、所述第二账户、第三账户、第四账户、所述第二交易对象和所述第二公开点、所述第二匿名凭证和所述第四匿名凭证按照所述预设哈希算法得到的哈希值与所述第二零知识证明的第五部分,以及所述第二匿名凭证、所述第四匿名凭证、所述第二零知识证明的第五部分和所述第二零知识证明的第六部分验证的。
上述方法中,所述第二零知识证明的各个子部分都是由账户或匿名凭证或交易对象或子秘密得到的,从而提供了一种与账户、匿名凭证、交易对象以及子秘密关联的零知识证明生成方法。
可选的,所述第二零知识证明具体是按照以下方式确定的:将所述第四匿名凭证作为所述第二零知识证明的第一部分;将所述第二匿名凭证作为所述第二零知识证明的第二部分;根据第七随机数和所述第一公开点,确定所述第二零知识证明的第三部分;根据第八随机数和所述第二交易对象,确定所述第二零知识证明的第四部分;根据所述第一账户、所述第二账户、所述第三账户、所述第四账户、第九随机数和所述第一公开点的线性计算结果、所述第二零知识证明的第三部分和所述第二零知识证明的第四部分,按照所述预设哈希算法得到的哈希值,确定所述第二零知识证明的第五部分;根据所述第九随机数、所述第二零知识证明的第五部分与所述第七随机数的线性计算结果,确定所述第二零知识证明的第六部分。
上述方法中,引入了随机数,将随机数与账户或匿名凭证或交易对象或子秘密结合得到所述第二零知识证明的各个子部分,从而增加了所述第二零知识证明的随机性,进一步增加了所述第二零知识证明的安全性。
第二方面,本发明提供一种区块链的跨链交易方法,包括:第一用户向第二用户发送第二交易对象、第二子秘密和第一零知识证明;所述第一零知识证明用于所述第二用户验证第一交易对象、第二交易对象和第三交易对象是否满足预设关系,以及用于验证通过后所述第二用户基于所述第二交易对象、所述第二子秘密、第四交易对象和所述第四交易对象的第四子秘密生成第二零知识证明的子部分;所述第一交易对象为第一账户的待交易对象;所述第二交易对象为所述第一账户从所述第一交易对象中拟向第二账户转入的交易对象;所述第三交易对象为所述第一账户从所述第一交易对象中拟向第三账户转入的交易对象;所述第四交易对象为所述第二账户待生成的交易对象;所述第二零知识证明用于证明所述第二交易对象与所述第四交易对象等价;所述第一账户为第一用户在所述第一区块链上的账户;所述第二账户为第二用户在第二区块链上的账户;所述第三账户为所述第一用户在所述第二区块链上的账户;若所述第一用户接收到来自所述第二零知识证明的子部分,则根据所述第二零知识证明的部分生成第四匿名凭证以及完整的所述第二零知识证明;所述第一用户接收到来自所述第二零知识证明的子部分表示所述第二用户验证所述第一零知识证明通过;所述第一用户向所述第一区块链的第一节点发送第一交易数据;所述第一交易数据包括所述第一零知识证明和所述第二零知识证明。
上述方式下,第一用户通过第一零知识证明向第二用户证明了交易对象的预设关系,并没有暴露具体的交易对象,且可以在所述第二用户验证所述第一零知识证明通过后,接收到来自所述第二零知识证明的子部分,则根据所述第二零知识证明的部分生成第四匿名凭证以及完整的所述第二零知识证明,从而在此过程中互相没有暴露交易对象,但完成了交易正确性的验证。
第三方面,本发明提供一种区块链的跨链交易装置,包括:接收模块,用于接收第一交易数据;所述第一交易数据包括第一零知识证明和第二零知识证明;执行模块,用于若验证通过所述第一零知识证明和所述第二零知识证明,则执行所述第一交易数据;所述第一零知识证明验证通过指示第一交易对象、第二交易对象和第三交易对象满足预设关系;所述第二零知识证明验证通过指示所述第二交易对象与第四交易对象等价;所述第一交易对象为第一账户的待交易对象;所述第二交易对象为所述第一账户从所述第一交易对象中拟向第二账户转入的交易对象;所述第三交易对象为所述第一账户从所述第一交易对象中拟向第三账户转入的交易对象;所述第四交易对象为所述第二账户待生成的交易对象;所述第一账户为第一用户在所述第一区块链上的账户;所述第二账户为第二用户在第二区块链上的账户;所述第三账户为所述第一用户在所述第二区块链上的账户。
可选的,所述执行模块具体用于:向第二区块链的第二节点发送已验证通过的所述第一交易数据;接收来自所述第二节点的第二交易数据;所述第二交易数据指示所述第二节点验证通过所述第一零知识证明和所述第二零知识证明。
可选的,所述第一零知识证明是按照椭圆曲线的方式确定的;所述第一零知识证明包括第一子部分、第二子部分、第三子部分、第四子部分、第五子部分和第六子部分;所述第一零知识证明的第一子部分是根据作为替代第一匿名凭证的第一临时变量、作为替代第二匿名凭证的第二临时变量和作为替代第三匿名的凭证第三临时变量按照预设哈希算法得到的;所述第一匿名凭证用于表征所述第一账户具有所述第一交易对象的权益、所述第二匿名凭证用于表征所述第一账户具有所述第二交易对象的权益和所述第三匿名凭证用于表征所述第一账户具有所述第三交易对象的权益;所述第一零知识证明的第二子部分是根据所述第一交易对象得到的;所述第一零知识证明的第三子部分是根据所述第一交易对象的第一子秘密得到的;所述第一零知识证明的第四子部分是根据所述第三交易对象得到的;所述第一零知识证明的第五子部分是根据所述第三交易对象的第三子秘密得到的;所述第一零知识证明的第六子部分是根据所述第二交易对象的第二子秘密得到的;所述第一零知识证明是基于第一临时替代变量、第二临时替代变量和第三临时替代变量按照所述预设哈希算法的哈希值与所述第一零知识证明的第一子部分验证的;所述第一临时替代变量是根据所述第一零知识证明的第二子部分、所述第一零知识证明的第三子部分和所述第一匿名凭证得到的;所述第二临时替代变量是根据所述第一零知识证明的第四子部分、所述第一零知识证明的第五子部分和所述第三匿名凭证得到的;所述第三临时替代变量是根据所述第一零知识证明的第二子部分、所述第一零知识证明的第四子部分、所述第一零知识证明的第六子部分和所述第二匿名凭证得到的。
可选的,所述第一零知识证明具体是按照以下方式确定的:对第一随机数、第二随机数、所述第一公开点和所述第二公开点执行线性运算,确定所述第一临时变量;对第三随机数、第四随机数、所述第一公开点和所述第二公开点执行线性运算,确定所述第二临时变量;对所述第一随机数、所述第三随机数、所述第五随机数、所述第一公开点和所述第二公开点执行线性运算,确定所述第三临时变量;对所述第一临时变量、所述第二临时变量和所述第三临时变量,按照所述预设哈希算法,确定所述第一零知识证明的第一子部分;对所述第一随机数、第六随机数、所述第一交易对象执行线性运算,确定所述第一零知识证明的第二子部分;对所述第二随机数、第六随机数、所述第一子秘密执行线性运算,确定所述第一零知识证明的第三子部分;对所述第三随机数、第六随机数、所述第三交易对象执行线性运算,确定所述第一零知识证明的第四子部分;对所述第四随机数、第六随机数、所述第三子秘密执行线性运算,确定所述第一零知识证明的第五子部分;对所述第五随机数、第六随机数、所述第二子秘密执行线性运算,确定所述第一零知识证明的第六子部分。
可选的,所述第二零知识证明是按照椭圆曲线的方式确定的;所述第二零知识证明包括第一子部分、第二子部分、第三子部分、第四子部分、第五子部分和第六子部分;所述第二零知识证明的第一子部分为所述第二匿名凭证;所述第二零知识证明的第二子部分为第四匿名凭证;所述第二零知识证明的第三子部分是根据所述第二公开点得到的;所述第二零知识证明的第四子部分是根据所述第二交易对象得到的;所述第二零知识证明的第五部分是根据所述第一账户、所述第二账户、第三账户、第四账户、所述第二交易对象和所述第二公开点按照所述预设哈希算法得到的;所述第三账户为所述第一用户在所述第二区块链上的账户;所述第四账户为所述第二用户在所述第一区块链上的账户;所述第四匿名凭证是基于所述第四交易对象和所述第四交易对象的第四子秘密得到的;所述第二零知识证明是基于所述第一账户、所述第二账户、第三账户、第四账户、所述第二交易对象和所述第二公开点、所述第二匿名凭证和所述第四匿名凭证按照所述预设哈希算法得到的哈希值与所述第二零知识证明的第五部分,以及所述第二匿名凭证、所述第四匿名凭证、所述第二零知识证明的第五部分和所述第二零知识证明的第六部分验证的。
可选的,所述第二零知识证明具体是按照以下方式确定的:将所述第四匿名凭证作为所述第二零知识证明的第一部分;将所述第二匿名凭证作为所述第二零知识证明的第二部分;根据第七随机数和所述第一公开点,确定所述第二零知识证明的第三部分;根据第八随机数和所述第二交易对象,确定所述第二零知识证明的第四部分;根据所述第一账户、所述第二账户、所述第三账户、所述第四账户、第九随机数和所述第一公开点的线性计算结果、所述第二零知识证明的第三部分和所述第二零知识证明的第四部分,按照所述预设哈希算法得到的哈希值,确定所述第二零知识证明的第五部分;根据所述第九随机数、所述第二零知识证明的第五部分与所述第七随机数的线性计算结果,确定所述第二零知识证明的第六部分。
上述第三方面及第三方面各个可选装置的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第四方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
第五方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
附图说明
图1为本申请实施例提供的一种区块链的跨链交易方法可应用的架构示意图;
图2为本申请实施例提供的一种区块链的跨链交易装置的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。
下面首先列出本申请中出现的执行实体。
甲链共识节点(第一区块链的第一节点):甲链为隐匿交易行为发起的区块链,可简称为发起链(在本申请的描述中,若无特殊说明,链的含义等同于“区块链”)。甲链共识节点即为发起链中参与隐匿交易共识的区块链节点。
乙链共识节点(第二区块链的第二节点):乙链为隐匿交易行为接收的区块链,可简称为接收链。乙链共识节点即为发起链中参与隐匿交易共识的区块链节点。
支付方(第一用户,如用户A):支付方为隐匿交易行为的发起者,支付方在发起链(如甲链)上拥有匿名权益凭证V1。在甲链拥有地址A1(第一账户),对应私钥A1k。在乙链拥有地址A2(第三账户),对应私钥A2k。
举例来说,用户A拥有甲链匿名凭证V1(第一匿名凭证)、第一交易对象(如凭证金额)v1和用户A的第一子秘密r1,第二交易对象v2’和第二子秘密r2’,第三交易对象v3和第三子秘密r3,可以用于后续生成零知识证明。
本申请的描述中,X_kp表示X的零知识证明(knowledge_proof),可以在不暴露X的实际信息的情况下,证明拥有X,举例来说,X为A1k。
收款方(如用户B):收款方为隐匿交易行为的接收者,在乙链拥有地址B2(第二账户),对应私钥B2k,收款方在接收链(如乙链)上会生成匿名权益凭证V2,在甲链拥有地址B1(第四账户),对应私钥B1k,。A1k、A2k、B1k和B2k的生成方式可以相同,以A1k举例来说,地址与私钥的对应关系一般有如下映射A1=Hash(A1k*G),G为椭圆曲线上一个点。
区块链:区块链是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的Hash值,通过这种方式组成一条链。区块链的核心理念有两个,一个是密码学技术,另一个是去中心化思想,基于这两个理念做到区块链上的历史信息无法被篡改。一个区块由块头和块体组成,其中块头定义包括该区块高度h,上一个区块的hash指prevHash等重要字段,而块体主要存储交易数据。
节点:对等网络中的每一个参与者就是一个节点,节点参与网络组建和数据交换。在区块链对等网络中,一个节点是指一个具有唯一身份的参与者,该节点具有一份完整的账本拷贝,具有参与区块链对等网络共识和账本维护的能力。
共识算法:区块链对等网络中的各个节点通过一种算法对一批交易进行确认,并确保所有节点对这批数据具有一致的确认结果,这种算法就是区块链的共识算法。
数字证书:数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。它是由权威机构——CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。
联盟链:在区块链技术中,根据区块链网络访问控制权限的不同,区块链可以分为公有链,私有链和联盟链。其中,公有链的节点是任何人都可以参与的,任何人都可以访问的一种区块链结构;私有链是仅仅对单独的个体开放(如公司,学校内部)的区块链结构;联盟链则是目前应用非常广泛的,非常普遍的一种区块链结构。在这种结构中,区块链由特定的某些组织维护,对某些个体开放,并且可以引入监管节点,让区块链在不可篡改的同时满足相应的监管需求。
数字信封技术:数字信封技术同时利用了非对称加密技术的安全性和对称加密技术的高性能特征,其中非对称加密技术用于密钥交换,对称加密技术用于保障数据的机密性,以发送方Alice发送数据Data给Bob为例,主要包括以下流程:(1)Alice端产生一串随机对称密钥DEK,并采用对称加密算法对Data进行加密,产生密文Cryp_Data;(2)Alice端用Bob的公钥Puk_b加密对称密钥DEK,生成Cryp_Key;(3)Alice端用Alice的私钥Prk_a产生Cryp_Data和Cryp_Key的签名Sig(Cryp_Data&&Cryp_Key);(4)Alice将[Cryp_Data,Cryp_Key,Sig(Cryp_Data&&Cryp_Key)]发送给Bob;(5)Bob接收到数据后,首先用Alice公钥Pub_a验证签名Sig(Cryp_Data&&Cryp_Key)的有效性,若签名验证有效,则用Bob私钥Prk_b解密Cryp_Key,获取对称密钥DEK;(6)Bob获取对称密钥DEK后,解密Cryp_Data获取明文数据Data。通过密码信封技术,Alice和Bob(通信双方)可在不安全的信道上进行机密数据交换。
机密交易:机密交易是一种在区块链中账户之间进行转账操作时,完全隐匿交易金额,同时允许区块链节点对交易数据的正确性进行验证的交易。如一笔转账a拆分为b+c,允许节点在验证a=b+c,且b>0,c>0。我们使用perdenser commitent和bulletproofs来实现机密交易。
隐匿支付:隐匿支付是一种特殊的支付方式,特点如下:1.身份隐匿:权益和权益拥有者在进行转账时可以不披露自己的身份,但是可以证实自己针对权益的所有权,并且可以给出权益与自己身份关联的证明。2.抗双花:同一份权益凭证不能被花费两次。3.权益隐匿:除了权益拥有者,以及交易发起者,其他认不能知道权益凭证的内容,如交易金额。4.交易隐匿:除了交易参与者,第三方无法获知交易的具体细节,如交易参与方的信息,交易发起时间,签名等。注意,交易上链时间公开。5.监管友好:监管方可以在交易发生后的时刻获取必要的仲裁信息。
隐匿支付的基本功能简介如下:开具:经过金融机构进行必要的线上线下审核后,作为可兑现的固定金额的凭证,进行权益凭证开具。兑现:每份流通的权益凭证凭会绑定一个权益兑现服务方公钥,权益拥有者凭借权益凭证至权益兑现服务方进行兑现,同时该权益凭证作废。金额支付:拆分:每份权益凭证可以被拆分成多份,拆分后的多张权益凭证总面值等同于原面值。合并:可以通过业务侧支付前实现。多份权益凭证可以被合并称为一份。合并后的权益凭证总面值等于原面值。权益支付:字符串类型的权益凭证可以全部转让给他人。
跨链:一种支持数据或资产在多种区块链之间进行转移的技术,是区块链向外拓展和连接的桥梁。跨链:跨链是一种支持数据或资产在多种区块链之间进行转移的技术,是区块链向外拓展和连接的桥梁。
在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)跨区块链(blockchain)的交易过程中,一个区块链中的交易的发起方的交易对象可能会发生改变(如交易金额的变化),如何确保这种变化的正确性,是保证交易正确性的重点。然而,目前确保这种变化的正确性方式是将改变过程中的交易对象都公开。显然,现有的这种跨区块链的交易过程中,确保交易对象变化的正确性时会泄露改变过程中的交易对象。这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的高效运转。为此,如图1所示,本申请提供一种区块链的跨链交易方法。
步骤101:第一区块链的第一节点接收第一交易数据。
步骤102:所述第一节点若验证通过所述第一零知识证明和所述第二零知识证明,则执行所述第一交易数据。
步骤101~步骤102中,所述第一交易数据包括第一零知识证明和第二零知识证明;所述第一零知识证明验证通过指示第一交易对象、第二交易对象和第三交易对象满足预设关系;所述第二零知识证明验证通过指示所述第二交易对象与第四交易对象等价;所述第一交易对象为第一账户的待交易对象;所述第二交易对象为所述第一账户从所述第一交易对象中拟向第二账户转入的交易对象;所述第三交易对象为所述第一账户从所述第一交易对象中拟向第三账户转入的交易对象;所述第四交易对象为所述第二账户待生成的交易对象;所述第一账户为第一用户在所述第一区块链上的账户;所述第二账户为第二用户在第二区块链上的账户;所述第三账户为所述第一用户在所述第二区块链上的账户。步骤101~步骤102中的交易对象可以为交易金额。
步骤101之前,第一用户和第二用户需要认同第一交易数据,第一用户可采用如下方式与第二用户交互:
步骤(2-1):第一用户向第二用户发送第二交易对象、第二子秘密和第一零知识证明。
步骤(2-2):若所述第一用户接收到来自所述第二零知识证明的子部分,则根据所述第二零知识证明的部分生成第四匿名凭证以及完整的所述第二零知识证明。
步骤(2-3):所述第一用户向所述第一区块链的第一节点发送第一交易数据。
所述第一零知识证明用于所述第二用户验证第一交易对象、第二交易对象和第三交易对象是否满足预设关系,以及用于验证通过后所述第二用户基于所述第二交易对象、所述第二子秘密、第四交易对象和所述第四交易对象的第四子秘密生成第二零知识证明的子部分;所述第一交易对象为第一账户的待交易对象;所述第二交易对象为所述第一账户从所述第一交易对象中拟向第二账户转入的交易对象;所述第三交易对象为所述第一账户从所述第一交易对象中拟向第三账户转入的交易对象;所述第四交易对象为所述第二账户待生成的交易对象;所述第二零知识证明用于证明所述第二交易对象与所述第四交易对象等价;所述第一账户为第一用户在所述第一区块链上的账户;所述第二账户为第二用户在第二区块链上的账户;所述第三账户为所述第一用户在所述第二区块链上的账户;所述第一用户接收到来自所述第二零知识证明的子部分表示所述第二用户验证所述第一零知识证明通过;所述第一交易数据包括所述第一零知识证明和所述第二零知识证明。
需要说明的是,所述第一零知识证明可以按照椭圆曲线的方式确定(以下称为所述第一零知识证明的椭圆曲线确定方式),具体来说:
所述第一零知识证明包括第一子部分、第二子部分、第三子部分、第四子部分、第五子部分和第六子部分;所述第一零知识证明的第一子部分是根据作为替代第一匿名凭证的第一临时变量、作为替代第二匿名凭证的第二临时变量和作为替代第三匿名的凭证第三临时变量按照预设哈希算法得到的;所述第一匿名凭证用于表征所述第一账户具有所述第一交易对象的权益、所述第二匿名凭证用于表征所述第一账户具有所述第二交易对象的权益和所述第三匿名凭证用于表征所述第一账户具有所述第三交易对象的权益;所述第一零知识证明的第二子部分是根据所述第一交易对象得到的;所述第一零知识证明的第三子部分是根据所述第一交易对象的第一子秘密得到的;所述第一零知识证明的第四子部分是根据所述第三交易对象得到的;所述第一零知识证明的第五子部分是根据所述第三交易对象的第三子秘密得到的;所述第一零知识证明的第六子部分是根据所述第二交易对象的第二子秘密得到的;所述第一零知识证明是基于第一临时替代变量、第二临时替代变量和第三临时替代变量按照所述预设哈希算法的哈希值与所述第一零知识证明的第一子部分验证的;所述第一临时替代变量是根据所述第一零知识证明的第二子部分、所述第一零知识证明的第三子部分和所述第一匿名凭证得到的;所述第二临时替代变量是根据所述第一零知识证明的第四子部分、所述第一零知识证明的第五子部分和所述第三匿名凭证得到的;所述第三临时替代变量是根据所述第一零知识证明的第二子部分、所述第一零知识证明的第四子部分、所述第一零知识证明的第六子部分和所述第二匿名凭证得到的。
更具体地,所述第一零知识证明具体是按照以下方式确定的:
对第一随机数、第二随机数、所述第一公开点和所述第二公开点执行线性运算,确定所述第一临时变量;对第三随机数、第四随机数、所述第一公开点和所述第二公开点执行线性运算,确定所述第二临时变量;对所述第一随机数、所述第三随机数、所述第五随机数、所述第一公开点和所述第二公开点执行线性运算,确定所述第三临时变量;对所述第一临时变量、所述第二临时变量和所述第三临时变量,按照所述预设哈希算法,确定所述第一零知识证明的第一子部分;对所述第一随机数、第六随机数、所述第一交易对象执行线性运算,确定所述第一零知识证明的第二子部分;对所述第二随机数、第六随机数、所述第一子秘密执行线性运算,确定所述第一零知识证明的第三子部分;对所述第三随机数、第六随机数、所述第三交易对象执行线性运算,确定所述第一零知识证明的第四子部分;对所述第四随机数、第六随机数、所述第三子秘密执行线性运算,确定所述第一零知识证明的第五子部分;对所述第五随机数、第六随机数、所述第二子秘密执行线性运算,确定所述第一零知识证明的第六子部分。
基于上述所述第一零知识证明的椭圆曲线确定方式,所述第二零知识证明可以按照椭圆曲线的方式确定,具体来说:
所述第二零知识证明包括第一子部分、第二子部分、第三子部分、第四子部分、第五子部分和第六子部分;所述第二零知识证明的第一子部分为所述第二匿名凭证;所述第二零知识证明的第二子部分为第四匿名凭证;所述第二零知识证明的第三子部分是根据所述第二公开点得到的;所述第二零知识证明的第四子部分是根据所述第二交易对象得到的;所述第二零知识证明的第五部分是根据所述第一账户、所述第二账户、第三账户、第四账户、所述第二交易对象和所述第二公开点按照所述预设哈希算法得到的;所述第三账户为所述第一用户在所述第二区块链上的账户;所述第四账户为所述第二用户在所述第一区块链上的账户;所述第四匿名凭证是基于所述第四交易对象和所述第四交易对象的第四子秘密得到的;所述第二零知识证明是基于所述第一账户、所述第二账户、第三账户、第四账户、所述第二交易对象和所述第二公开点、所述第二匿名凭证和所述第四匿名凭证按照所述预设哈希算法得到的哈希值与所述第二零知识证明的第五部分,以及所述第二匿名凭证、所述第四匿名凭证、所述第二零知识证明的第五部分和所述第二零知识证明的第六部分验证的。
更具体地,所述第二零知识证明具体是按照以下方式确定的:将所述第四匿名凭证作为所述第二零知识证明的第一部分;将所述第二匿名凭证作为所述第二零知识证明的第二部分;根据第七随机数和所述第一公开点,确定所述第二零知识证明的第三部分;根据第八随机数和所述第二交易对象,确定所述第二零知识证明的第四部分;根据所述第一账户、所述第二账户、所述第三账户、所述第四账户、第九随机数和所述第一公开点的线性计算结果、所述第二零知识证明的第三部分和所述第二零知识证明的第四部分,按照所述预设哈希算法得到的哈希值,确定所述第二零知识证明的第五部分;根据所述第九随机数、所述第二零知识证明的第五部分与所述第七随机数的线性计算结果,确定所述第二零知识证明的第六部分。
以交易对象为交易金额为例,第一零知识证明和第二零知识证明具体过程可以为:
支付初始化中,用户A拥有甲链A1账户的第一匿名凭证M1及其对应第一交易对象(交易金额)v1对应第一子秘密r1。将M1拆分为第二匿名凭证M2’和第三匿名凭证M3。同时生成第一零知识证明balance_proof1,其中M1=v1G+r1H,M2’=v2’G+r2’H,M3=v3G+r3H,G和H为椭圆曲线上两个公开点,v2为第二交易对象,r2为第二子秘密,v3为第三交易对象,r3为第三子秘密。
用户A生成证明如下:
a)为匿名凭证M1选择第一随机数a,第二随机数b;为匿名凭证M2’选择第三随机数d,第四随机数e;为第三匿名凭证M3选择第五随机数f。
b)计算第一临时变量t1=a*G+b*H,计算第二临时变量t2=d*G+e*H,计算第三临时变量t3=(a+d)*G+f*H。
c)计算第一零知识证明的第一子部分z1=Hash(t1,t2,t3),Hash表示预设哈希算法。
d)计算第一零知识证明的第二子部分z2=a-c*v1,第一零知识证明的第三子部分z3=b-c*r1;c为第六随机数。
e)计算第一零知识证明的第四子部分z4=d-c*v3,第一零知识证明的第五子部分z5=e-c*r3,第一零知识证明的第六子部分z6=f-c*r2’。
f)生成第一零知识证明balance_proof 1=(z1,z2,z3,z4,z5,z6)。
用户A和用户B进行交互,根据M2’=v2’G+r2’H生成第四匿名凭证M2=v2G+r2’H,生成第二零知识证明balance_proof2。
用户A发给用户B:v2’,r2’,balance_proof1。
用户B验证balance_proof1通过后,用户B计算n1=Hash(A1|A2|B1|B2|k*G|s*G|v2+d),A1是第一账户,A2是第三账户,B1是第四账户,B2是第三账户,k为第七随机数,s为第八随机数,d为第九随机数。
用户B计算n2=k+n1*s。
用户B发给用户A所述第二零知识证明的第二部分M2,所述第二零知识证明的第三部分kG,所述第二零知识证明的第四部分v2+d,所述第二零知识证明的第五部分n1,所述第二零知识证明的第六部分n2。
用户A计算M2=M2’v2’G+r2’H+s*G
用户A生成balance_proof2=(M2’,M2,kG,v2+d,n1,n2)
上述过程中,用户A和用户B通过交互的方式,在不泄露各自身份的凭证秘密的情况下根据权益凭证M1生成了新权益凭证M2、M2’和M3。
一种可选实施方式中,步骤102可以按照如下方式执行:所述第一节点向第二区块链的第二节点发送已验证通过的所述第一交易数据;所述第一节点接收来自所述第二节点的第二交易数据;所述第二交易数据指示所述第二节点验证通过所述第一零知识证明和所述第二零知识证明。
具体来说,跨链支付过程中,用户A和用户B根据上述初始化过程生成了平衡证明balance_proof1和balance_proof2,以及各自在甲链和乙链上的账户A1、A2、B1、B2,上述过程中的匿名凭证M1、M2、M2‘、M3生成相应签名和密码学证明,上传至区块链,完成整个过程的交互。
具体细节如下:
用户B:对转账请求生成签名δ_B=(A1|A2|B1|B2|M1|M2|M2‘|M3|)
用户A:使用A1账户的密钥A1k,针对初始化中生成的匿名凭证,以及平衡证明,生成签名δA_1=(δ_B|A1|A2|B1|B2|M1|M2M2‘|M3|balance_proof1|balance_proof2),向甲链发起支付。
甲链共识节点:甲链共识节点对balance_proof1的验证设计如下:计算
t1’=z2+z3*H+c*M1,
t2’=z4*G+z5*H+c*M3,
t3’=(z2+z4)*G+z6*H+c*M2’。
甲链共识节点对balance_proof2的验证设计如下:
共识节点验证:
n1是否等于hash(A1|A2|B1|B2|k*G|(M2‘M2)|v2+d)
n2是否等于kG+n1*(M2‘-M2)
共识节点验证失败,则终止交易。
共识节点验证成功,则将A1、B1账号锁定,记录当前交易区块block_number甲,交易最长等待时间戳t1。将匿名凭证M1锁定,写入凭证M2’和M3。
生成签名δ甲_1=(t1|block_number甲|δA_1|δ_B|A1|A2|B1|B2|M1|M2M2‘|M3|balance_proof1|balance_proof2)
共识节点进行共识,共识完成后将签名δ甲_1与t1|block_number甲|δA_1|δ_B|A1|A2|B1|B2|M1|M2M2‘|M3|balance_proof1|balance_proof2发送给乙链。
乙链共识节点:
共识节点判断时间戳t1是否超时,如果超时则生成δ乙_asset,返回给甲链。
共识节点判断账户A2、B2是否未被锁定,否则生成δ乙_asset,返回给甲链。
共识节点验证balance_proof1和balance_proof2,验证失败则生成δ乙_asset,返回给甲链。
当上述过程都验证成功后,共识节点写入M2至B2账户,M3写入A2账户,记录当前区块生成block_number乙,生成签名δ乙_1=(t1|block_number甲block_number乙||δA_1|δ_B|A1|A2|B1|B2|M1|M2M2‘|M3|balance_proof1|balance_proof2),发送给甲链。
甲链共识节点:
当接收到δ乙_asset时,验证签名,将M2’和M3写入A1账户,终止交易。
当接收到δ乙_1,验证签名,将M1、M2’标记为无效。完成交易。
使用这种方式,可以在不同链之间完成隐匿支付权益凭证的正确性验证,从而保护用户身份匿名性和支付隐私性的情况下完成跨链操作。
如图2所示,本发明提供一种区块链的跨链交易装置,包括:接收模块201,用于接收第一交易数据;所述第一交易数据包括第一零知识证明和第二零知识证明;执行模块202,用于若验证通过所述第一零知识证明和所述第二零知识证明,则执行所述第一交易数据;所述第一零知识证明验证通过指示第一交易对象、第二交易对象和第三交易对象满足预设关系;所述第二零知识证明验证通过指示所述第二交易对象与第四交易对象等价;所述第一交易对象为第一账户的待交易对象;所述第二交易对象为所述第一账户从所述第一交易对象中拟向第二账户转入的交易对象;所述第三交易对象为所述第一账户从所述第一交易对象中拟向第三账户转入的交易对象;所述第四交易对象为所述第二账户待生成的交易对象;所述第一账户为第一用户在所述第一区块链上的账户;所述第二账户为第二用户在第二区块链上的账户;所述第三账户为所述第一用户在所述第二区块链上的账户。
可选的,所述执行模块202具体用于:向第二区块链的第二节点发送已验证通过的所述第一交易数据;接收来自所述第二节点的第二交易数据;所述第二交易数据指示所述第二节点验证通过所述第一零知识证明和所述第二零知识证明。
可选的,所述第一零知识证明是按照椭圆曲线的方式确定的;所述第一零知识证明包括第一子部分、第二子部分、第三子部分、第四子部分、第五子部分和第六子部分;所述第一零知识证明的第一子部分是根据作为替代第一匿名凭证的第一临时变量、作为替代第二匿名凭证的第二临时变量和作为替代第三匿名的凭证第三临时变量按照预设哈希算法得到的;所述第一匿名凭证用于表征所述第一账户具有所述第一交易对象的权益、所述第二匿名凭证用于表征所述第一账户具有所述第二交易对象的权益和所述第三匿名凭证用于表征所述第一账户具有所述第三交易对象的权益;所述第一零知识证明的第二子部分是根据所述第一交易对象得到的;所述第一零知识证明的第三子部分是根据所述第一交易对象的第一子秘密得到的;所述第一零知识证明的第四子部分是根据所述第三交易对象得到的;所述第一零知识证明的第五子部分是根据所述第三交易对象的第三子秘密得到的;所述第一零知识证明的第六子部分是根据所述第二交易对象的第二子秘密得到的;所述第一零知识证明是基于第一临时替代变量、第二临时替代变量和第三临时替代变量按照所述预设哈希算法的哈希值与所述第一零知识证明的第一子部分验证的;所述第一临时替代变量是根据所述第一零知识证明的第二子部分、所述第一零知识证明的第三子部分和所述第一匿名凭证得到的;所述第二临时替代变量是根据所述第一零知识证明的第四子部分、所述第一零知识证明的第五子部分和所述第三匿名凭证得到的;所述第三临时替代变量是根据所述第一零知识证明的第二子部分、所述第一零知识证明的第四子部分、所述第一零知识证明的第六子部分和所述第二匿名凭证得到的。
可选的,所述第一零知识证明具体是按照以下方式确定的:对第一随机数、第二随机数、所述第一公开点和所述第二公开点执行线性运算,确定所述第一临时变量;对第三随机数、第四随机数、所述第一公开点和所述第二公开点执行线性运算,确定所述第二临时变量;对所述第一随机数、所述第三随机数、所述第五随机数、所述第一公开点和所述第二公开点执行线性运算,确定所述第三临时变量;对所述第一临时变量、所述第二临时变量和所述第三临时变量,按照所述预设哈希算法,确定所述第一零知识证明的第一子部分;对所述第一随机数、第六随机数、所述第一交易对象执行线性运算,确定所述第一零知识证明的第二子部分;对所述第二随机数、第六随机数、所述第一子秘密执行线性运算,确定所述第一零知识证明的第三子部分;对所述第三随机数、第六随机数、所述第三交易对象执行线性运算,确定所述第一零知识证明的第四子部分;对所述第四随机数、第六随机数、所述第三子秘密执行线性运算,确定所述第一零知识证明的第五子部分;对所述第五随机数、第六随机数、所述第二子秘密执行线性运算,确定所述第一零知识证明的第六子部分。
可选的,所述第二零知识证明是按照椭圆曲线的方式确定的;所述第二零知识证明包括第一子部分、第二子部分、第三子部分、第四子部分、第五子部分和第六子部分;所述第二零知识证明的第一子部分为所述第二匿名凭证;所述第二零知识证明的第二子部分为第四匿名凭证;所述第二零知识证明的第三子部分是根据所述第二公开点得到的;所述第二零知识证明的第四子部分是根据所述第二交易对象得到的;所述第二零知识证明的第五部分是根据所述第一账户、所述第二账户、第三账户、第四账户、所述第二交易对象和所述第二公开点按照所述预设哈希算法得到的;所述第三账户为所述第一用户在所述第二区块链上的账户;所述第四账户为所述第二用户在所述第一区块链上的账户;所述第四匿名凭证是基于所述第四交易对象和所述第四交易对象的第四子秘密得到的;所述第二零知识证明是基于所述第一账户、所述第二账户、第三账户、第四账户、所述第二交易对象和所述第二公开点、所述第二匿名凭证和所述第四匿名凭证按照所述预设哈希算法得到的哈希值与所述第二零知识证明的第五部分,以及所述第二匿名凭证、所述第四匿名凭证、所述第二零知识证明的第五部分和所述第二零知识证明的第六部分验证的。
可选的,所述第二零知识证明具体是按照以下方式确定的:将所述第四匿名凭证作为所述第二零知识证明的第一部分;将所述第二匿名凭证作为所述第二零知识证明的第二部分;根据第七随机数和所述第一公开点,确定所述第二零知识证明的第三部分;根据第八随机数和所述第二交易对象,确定所述第二零知识证明的第四部分;根据所述第一账户、所述第二账户、所述第三账户、所述第四账户、第九随机数和所述第一公开点的线性计算结果、所述第二零知识证明的第三部分和所述第二零知识证明的第四部分,按照所述预设哈希算法得到的哈希值,确定所述第二零知识证明的第五部分;根据所述第九随机数、所述第二零知识证明的第五部分与所述第七随机数的线性计算结果,确定所述第二零知识证明的第六部分。
本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种区块链的跨链交易方法及任一可选方法。
本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种区块链的跨链交易方法及任一可选方法。
最后应说明的是:本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种区块链的跨链交易方法,其特征在于,包括:
第一区块链的第一节点接收第一交易数据;所述第一交易数据包括第一零知识证明和第二零知识证明;
所述第一节点若验证通过所述第一零知识证明和所述第二零知识证明,则执行所述第一交易数据;所述第一零知识证明验证通过指示第一交易对象、第二交易对象和第三交易对象满足预设关系;所述第二零知识证明验证通过指示所述第二交易对象与第四交易对象等价;所述第一交易对象为第一账户的待交易对象;所述第二交易对象为所述第一账户从所述第一交易对象中拟向第二账户转入的交易对象;所述第三交易对象为所述第一账户从所述第一交易对象中拟向第三账户转入的交易对象;所述第四交易对象为所述第二账户待生成的交易对象;所述第一账户为第一用户在所述第一区块链上的账户;所述第二账户为第二用户在第二区块链上的账户;所述第三账户为所述第一用户在所述第二区块链上的账户。
2.如权利要求1所述的方法,其特征在于,所述第一节点执行所述第一交易数据,包括:
所述第一节点向第二区块链的第二节点发送已验证通过的所述第一交易数据;
所述第一节点接收来自所述第二节点的第二交易数据;所述第二交易数据指示所述第二节点验证通过所述第一零知识证明和所述第二零知识证明。
3.如权利要求1或2所述的方法,其特征在于,所述第一零知识证明是按照椭圆曲线的方式确定的;
所述第一零知识证明包括第一子部分、第二子部分、第三子部分、第四子部分、第五子部分和第六子部分;
所述第一零知识证明的第一子部分是根据作为替代第一匿名凭证的第一临时变量、作为替代第二匿名凭证的第二临时变量和作为替代第三匿名的凭证第三临时变量按照预设哈希算法得到的;所述第一匿名凭证用于表征所述第一账户具有所述第一交易对象的权益、所述第二匿名凭证用于表征所述第一账户具有所述第二交易对象的权益和所述第三匿名凭证用于表征所述第一账户具有所述第三交易对象的权益;
所述第一零知识证明的第二子部分是根据所述第一交易对象得到的;所述第一零知识证明的第三子部分是根据所述第一交易对象的第一子秘密得到的;
所述第一零知识证明的第四子部分是根据所述第三交易对象得到的;所述第一零知识证明的第五子部分是根据所述第三交易对象的第三子秘密得到的;
所述第一零知识证明的第六子部分是根据所述第二交易对象的第二子秘密得到的;
所述第一零知识证明是基于第一临时替代变量、第二临时替代变量和第三临时替代变量按照所述预设哈希算法的哈希值与所述第一零知识证明的第一子部分验证的;
所述第一临时替代变量是根据所述第一零知识证明的第二子部分、所述第一零知识证明的第三子部分和所述第一匿名凭证得到的;
所述第二临时替代变量是根据所述第一零知识证明的第四子部分、所述第一零知识证明的第五子部分和所述第三匿名凭证得到的;
所述第三临时替代变量是根据所述第一零知识证明的第二子部分、所述第一零知识证明的第四子部分、所述第一零知识证明的第六子部分和所述第二匿名凭证得到的。
4.如权利要求3所述的方法,其特征在于,所述第一零知识证明具体是按照以下方式确定的:
对第一随机数、第二随机数、所述第一公开点和所述第二公开点执行线性运算,确定所述第一临时变量;
对第三随机数、第四随机数、所述第一公开点和所述第二公开点执行线性运算,确定所述第二临时变量;
对所述第一随机数、所述第三随机数、所述第五随机数、所述第一公开点和所述第二公开点执行线性运算,确定所述第三临时变量;
对所述第一临时变量、所述第二临时变量和所述第三临时变量,按照所述预设哈希算法,确定所述第一零知识证明的第一子部分;
对所述第一随机数、第六随机数、所述第一交易对象执行线性运算,确定所述第一零知识证明的第二子部分;
对所述第二随机数、第六随机数、所述第一子秘密执行线性运算,确定所述第一零知识证明的第三子部分;
对所述第三随机数、第六随机数、所述第三交易对象执行线性运算,确定所述第一零知识证明的第四子部分;
对所述第四随机数、第六随机数、所述第三子秘密执行线性运算,确定所述第一零知识证明的第五子部分;
对所述第五随机数、第六随机数、所述第二子秘密执行线性运算,确定所述第一零知识证明的第六子部分。
5.如权利要求3所述的方法,其特征在于,所述第二零知识证明是按照椭圆曲线的方式确定的;所述第二零知识证明包括第一子部分、第二子部分、第三子部分、第四子部分、第五子部分和第六子部分;
所述第二零知识证明的第一子部分为所述第二匿名凭证;所述第二零知识证明的第二子部分为第四匿名凭证;所述第二零知识证明的第三子部分是根据所述第二公开点得到的;所述第二零知识证明的第四子部分是根据所述第二交易对象得到的;所述第二零知识证明的第五部分是根据所述第一账户、所述第二账户、第三账户、第四账户、所述第二交易对象和所述第二公开点按照所述预设哈希算法得到的;所述第三账户为所述第一用户在所述第二区块链上的账户;所述第四账户为所述第二用户在所述第一区块链上的账户;所述第四匿名凭证是基于所述第四交易对象和所述第四交易对象的第四子秘密得到的;
所述第二零知识证明是基于所述第一账户、所述第二账户、第三账户、第四账户、所述第二交易对象和所述第二公开点、所述第二匿名凭证和所述第四匿名凭证按照所述预设哈希算法得到的哈希值与所述第二零知识证明的第五部分,以及所述第二匿名凭证、所述第四匿名凭证、所述第二零知识证明的第五部分和所述第二零知识证明的第六部分验证的。
6.如权利要求5所述的方法,其特征在于,所述第二零知识证明具体是按照以下方式确定的:
将所述第四匿名凭证作为所述第二零知识证明的第一部分;
将所述第二匿名凭证作为所述第二零知识证明的第二部分;
根据第七随机数和所述第一公开点,确定所述第二零知识证明的第三部分;
根据第八随机数和所述第二交易对象,确定所述第二零知识证明的第四部分;
根据所述第一账户、所述第二账户、所述第三账户、所述第四账户、第九随机数和所述第一公开点的线性计算结果、所述第二零知识证明的第三部分和所述第二零知识证明的第四部分,按照所述预设哈希算法得到的哈希值,确定所述第二零知识证明的第五部分;
根据所述第九随机数、所述第二零知识证明的第五部分与所述第七随机数的线性计算结果,确定所述第二零知识证明的第六部分。
7.一种区块链的跨链交易方法,其特征在于,包括
第一用户向第二用户发送第二交易对象、第二子秘密和第一零知识证明;
所述第一零知识证明用于所述第二用户验证第一交易对象、第二交易对象和第三交易对象是否满足预设关系,以及用于验证通过后所述第二用户基于所述第二交易对象、所述第二子秘密、第四交易对象和所述第四交易对象的第四子秘密生成第二零知识证明的子部分;所述第一交易对象为第一账户的待交易对象;所述第二交易对象为所述第一账户从所述第一交易对象中拟向第二账户转入的交易对象;所述第三交易对象为所述第一账户从所述第一交易对象中拟向第三账户转入的交易对象;所述第四交易对象为所述第二账户待生成的交易对象;所述第二零知识证明用于证明所述第二交易对象与所述第四交易对象等价;所述第一账户为第一用户在所述第一区块链上的账户;所述第二账户为第二用户在第二区块链上的账户;所述第三账户为所述第一用户在所述第二区块链上的账户;
若所述第一用户接收到来自所述第二零知识证明的子部分,则根据所述第二零知识证明的部分生成第四匿名凭证以及完整的所述第二零知识证明;所述第一用户接收到来自所述第二零知识证明的子部分表示所述第二用户验证所述第一零知识证明通过;
所述第一用户向所述第一区块链的第一节点发送第一交易数据;所述第一交易数据包括所述第一零知识证明和所述第二零知识证明。
8.一种区块链的跨链交易装置,其特征在于,包括:
接收模块,用于接收第一交易数据;所述第一交易数据包括第一零知识证明和第二零知识证明;
执行模块,用于若验证通过所述第一零知识证明和所述第二零知识证明,则执行所述第一交易数据;所述第一零知识证明验证通过指示第一交易对象、第二交易对象和第三交易对象满足预设关系;所述第二零知识证明验证通过指示所述第二交易对象与第四交易对象等价;所述第一交易对象为第一账户的待交易对象;所述第二交易对象为所述第一账户从所述第一交易对象中拟向第二账户转入的交易对象;所述第三交易对象为所述第一账户从所述第一交易对象中拟向第三账户转入的交易对象;所述第四交易对象为所述第二账户待生成的交易对象;所述第一账户为第一用户在所述第一区块链上的账户;所述第二账户为第二用户在第二区块链上的账户;所述第三账户为所述第一用户在所述第二区块链上的账户。
9.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至7中任意一项所述的方法被执行。
10.一种存储介质,其特征在于,包括程序或指令,当所述程序或指令被执行时,如权利要求1至7中任意一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010328330.9A CN111523892B (zh) | 2020-04-23 | 2020-04-23 | 一种区块链的跨链交易方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010328330.9A CN111523892B (zh) | 2020-04-23 | 2020-04-23 | 一种区块链的跨链交易方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111523892A true CN111523892A (zh) | 2020-08-11 |
CN111523892B CN111523892B (zh) | 2021-07-27 |
Family
ID=71904513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010328330.9A Active CN111523892B (zh) | 2020-04-23 | 2020-04-23 | 一种区块链的跨链交易方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111523892B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112529550A (zh) * | 2020-12-08 | 2021-03-19 | 深圳前海微众银行股份有限公司 | 一种基于区块链的匿名转账方法及装置、电子设备 |
CN114154993A (zh) * | 2022-02-09 | 2022-03-08 | 国网天津市电力公司营销服务中心 | 一种基于区块链的v2g网络跨域交易安全方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107862216A (zh) * | 2017-10-13 | 2018-03-30 | 布比(北京)网络技术有限公司 | 用于匿名跨链交易的隐私保护方法、装置和存储介质 |
CN108288159A (zh) * | 2018-03-07 | 2018-07-17 | 物数(上海)信息科技有限公司 | 基于多区块链的跨链交易方法、系统、设备及存储介质 |
CN108492108A (zh) * | 2018-03-29 | 2018-09-04 | 深圳前海微众银行股份有限公司 | 区块链跨链通信方法、系统和计算机可读存储介质 |
US20190251553A1 (en) * | 2018-11-07 | 2019-08-15 | Alibaba Group Holding Limited | Blockchain data protection based on account note model with zero-knowledge proof |
CN110288345A (zh) * | 2019-06-26 | 2019-09-27 | 深圳市网心科技有限公司 | 跨链通信方法、装置、主链节点及存储介质 |
-
2020
- 2020-04-23 CN CN202010328330.9A patent/CN111523892B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107862216A (zh) * | 2017-10-13 | 2018-03-30 | 布比(北京)网络技术有限公司 | 用于匿名跨链交易的隐私保护方法、装置和存储介质 |
CN108288159A (zh) * | 2018-03-07 | 2018-07-17 | 物数(上海)信息科技有限公司 | 基于多区块链的跨链交易方法、系统、设备及存储介质 |
CN108492108A (zh) * | 2018-03-29 | 2018-09-04 | 深圳前海微众银行股份有限公司 | 区块链跨链通信方法、系统和计算机可读存储介质 |
US20190251553A1 (en) * | 2018-11-07 | 2019-08-15 | Alibaba Group Holding Limited | Blockchain data protection based on account note model with zero-knowledge proof |
CN110288345A (zh) * | 2019-06-26 | 2019-09-27 | 深圳市网心科技有限公司 | 跨链通信方法、装置、主链节点及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112529550A (zh) * | 2020-12-08 | 2021-03-19 | 深圳前海微众银行股份有限公司 | 一种基于区块链的匿名转账方法及装置、电子设备 |
CN114154993A (zh) * | 2022-02-09 | 2022-03-08 | 国网天津市电力公司营销服务中心 | 一种基于区块链的v2g网络跨域交易安全方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111523892B (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI706275B (zh) | 用於資訊保護的系統和方法 | |
CN111008836B (zh) | 一种隐私安全转账支付方法、装置、系统及存储介质 | |
CN108389047B (zh) | 区块链中母链与子链交易的方法及区块链网络 | |
WO2019105407A1 (zh) | 一种适合区块链隐私保护的零知识证明方法和介质 | |
CN110337665B (zh) | 用于信息保护的系统和方法 | |
US11341487B2 (en) | System and method for information protection | |
CN108418680B (zh) | 一种基于安全多方计算技术的区块链密钥恢复方法、介质 | |
CN110288480B (zh) | 一种区块链的私密交易方法及装置 | |
US20200127813A1 (en) | Method and system for creating a user identity | |
CN110572262A (zh) | 区块链联盟链构建方法、装置及系统 | |
TW201944757A (zh) | 適於提升即時離線區塊鏈交易安全性的電腦實施系統與方法 | |
TW200820108A (en) | Method for automatically validating a transaction, electronic payment system and computer program | |
CN113568946A (zh) | 用于管理多个区块链网络中的交易的方法、系统和装置 | |
US9165297B2 (en) | Virtual account and token-based digital cash protocols | |
CN111738857B (zh) | 应用于区块链的隐匿支付证明的生成与验证方法及装置 | |
CN113595734A (zh) | 用于管理多个区块链网络中的交易的方法、系统和装置 | |
US9171324B2 (en) | Hybrid virtual account and token-based digital cash protocols | |
CN113595733A (zh) | 用于管理多个区块链网络中的交易的方法、系统和装置 | |
CN111523892B (zh) | 一种区块链的跨链交易方法及装置 | |
KR102324155B1 (ko) | 블록체인 기반의 p2p 대출 서비스 자율보증증명 방법 및 장치 | |
Islam | A privacy-preserving transparent central bank digital currency system based on consortium blockchain and unspent transaction outputs | |
Wu et al. | The survey on the development of secure multi-party computing in the blockchain | |
CN112287040B (zh) | 一种基于区块链的权益合并方法、装置、设备及介质 | |
Blanton | Improved conditional e-payments | |
CN114866289B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |