CN115549984A - 跨链交易方法、装置、设备和存储介质 - Google Patents
跨链交易方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN115549984A CN115549984A CN202211115217.8A CN202211115217A CN115549984A CN 115549984 A CN115549984 A CN 115549984A CN 202211115217 A CN202211115217 A CN 202211115217A CN 115549984 A CN115549984 A CN 115549984A
- Authority
- CN
- China
- Prior art keywords
- cross
- link
- information
- transaction
- chain
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种跨链交易方法、装置、设备和存储介质,属于计算机技术领域。包括:获取第一应用链系统发送的目标跨链交易;根据目标跨链交易生成第一哈希值、第一加密数据和证明信息;获取多签信息;向中继链系统发送跨链交易请求,跨链交易请求中携带多签信息、第一哈希值、第一加密数据和证明信息,跨链交易请求用于指示中继链系统在多签信息和证明信息均验证通过时,向第二跨链网关发送第一加密数据。本申请中中继链系统可验证第一跨链网关发送的第一加密数据的真实性,以确保第一加密数据对应的跨链交易原文并非为恶意生成的或被篡改的,在第一加密数据具有真实性的情况下才将其发送给第二跨链网关,保证了隐私交易场景下的跨链交易安全性。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种跨链交易方法、装置、设备和存储介质。
背景技术
目前,区块链技术逐渐成熟,其应用也越来越广泛。在区块链技术的跨链交易场景中,一个应用链系统中的交易(即跨链交易)需要在另外一个应用链系统中执行。这种情况下,由于两个应用链系统不能直接进行通信,所以可以通过中继链系统来转发两个应用链系统之间的跨链交易。中继链系统是各个应用链系统进行跨链交易的流转中心,具有记录和路由跨链交易的功能。
但是在隐私交易场景下,往往需要对应用链系统发起的跨链交易进行加密之后才能发送给中继链系统,这样中继链系统接收到的就是加密之后的跨链交易。因而隐私交易场景下的中继链系统无法获知跨链交易的内容,也就无法对跨链交易的内容进行校验,只是做简单的转发操作。如此,会造成跨链交易被恶意伪造或篡改而中继链系统无法验证并拦截的问题,降低了跨链交易安全性。
发明内容
本申请提供了一种跨链交易方法、装置、设备和存储介质,可以使得中继链系统能够验证加密后的跨链交易的真实性,保证了隐私交易场景下的跨链交易安全性。所述技术方案如下:
第一方面,提供了一种跨链交易方法,应用于第一跨链网关,所述第一跨链网关是与第一应用链系统对接的跨链网关,所述方法包括:
获取所述第一应用链系统发送的目标跨链交易;
根据所述目标跨链交易生成第一哈希值、第一加密数据和证明信息,所述第一哈希值是对所述目标跨链交易进行哈希运算得到的,所述第一加密数据是对所述目标跨链交易进行加密得到的,所述证明信息用于证明所述第一哈希值和所述第一加密数据是对同一跨链交易处理得到的;
获取多签信息,所述多签信息包括所述第一应用链系统中的多个节点中每个节点对所述目标跨链交易的哈希值的签名,所述多签信息用于证明所述第一哈希值是对来自所述第一应用链系统的所述目标跨链交易处理得到的;
向中继链系统发送跨链交易请求,所述跨链交易请求中携带所述多签信息、所述第一哈希值、所述第一加密数据和所述证明信息,所述跨链交易请求用于指示所述中继链系统在所述多签信息和所述证明信息均验证通过时,向第二跨链网关发送所述第一加密数据,所述第二跨链网关是与第二应用链系统对接的跨链网关。
在本申请中,根据获取的目标跨链交易生成第一哈希值、第一加密数据和证明信息,证明信息可以证明第一哈希值和第一加密数据是对同一跨链交易处理得到的。并且获取多签信息,该多签信息可以证明第一哈希值是对来自第一应用链系统的跨链交易处理得到的。向中继链系统发送携带有第一哈希值、第一加密数据、证明信息和多签信息的跨链交易请求。中继链系统在接收到第一跨链网关发送的跨链交易请求后,对跨链交易请求中携带的多签信息和证明信息进行验证。在该多签信息和证明信息验证通过情况下,中继链系统可以确定跨链交易请求中携带的第一哈希值是对来自第一应用链的目标跨链交易处理得到的,以及确定跨链交易请求中携带的第一哈希值和第一加密数据是对同一跨链交易处理得到的,从而确定第一加密数据是对来自第一应用链的目标跨链交易处理得到的,也即确定第一加密数据具有真实性,从而可以向第二跨链网关发送第一加密数据。本申请实施例中,中继链系统可以验证第一跨链网关发送的第一加密数据的真实性,以确保第一加密数据对应的跨链交易原文并非为恶意生成的或者被篡改的,在第一加密数据具有真实性的情况下中继链系统才将第一加密数据发送给第二跨链网关,从而保证了隐私交易场景下的跨链交易安全性。
第二方面,提供了一种跨链交易方法,应用于中继链系统,所述方法包括:
接收第一跨链网关发送的跨链交易请求,所述跨链交易请求中携带多签信息、第一哈希值、第一加密数据和证明信息,所述多签信息用于证明所述第一哈希值是对来自所述第一应用链系统的跨链交易处理得到的,所述证明信息用于证明所述第一哈希值和所述第一加密数据是对同一跨链交易处理得到的,所述第一跨链网关是与所述第一应用链系统对接的跨链网关;
对所述多签信息进行验证,以及对所述证明信息进行验证;
在所述多签信息和所述证明信息均验证通过的情况下,向第二跨链网关发送所述第一加密数据,所述第二跨链网关是与第二应用链系统对接的跨链网关。
在本申请中,在接收到第一跨链网关发送的跨链交易请求后,对跨链交易请求中携带的多签信息和证明信息进行验证。在该多签信息和证明信息验证通过情况下,中继链系统可以确定跨链交易请求中携带的第一哈希值是对来自第一应用链的目标跨链交易处理得到的,以及确定跨链交易请求中携带的第一哈希值和第一加密数据是对同一跨链交易处理得到的,从而确定第一加密数据是对来自第一应用链的目标跨链交易处理得到的,也即确定第一加密数据具有真实性,从而可以向第二跨链网关发送第一加密数据。本申请实施例中,中继链系统可以验证第一跨链网关发送的第一加密数据的真实性,以确保第一加密数据对应的跨链交易原文并非为恶意生成的或者被篡改的,在第一加密数据具有真实性的情况下中继链系统才将第一加密数据发送给第二跨链网关,从而保证了隐私交易场景下的跨链交易安全性。
第三方面,提供了一种跨链交易方法,所述方法包括:
第一跨链网关获取所述第一应用链系统发送的目标跨链交易;
所述第一跨链网关根据所述目标跨链交易生成第一哈希值、第一加密数据和证明信息,所述第一哈希值是对所述目标跨链交易进行哈希运算得到的,所述第一加密数据是对所述目标跨链交易进行加密得到的,所述证明信息用于证明所述第一哈希值和所述第一加密数据是对同一跨链交易处理得到的;
所述第一跨链网关获取多签信息,所述多签信息包括所述第一应用链系统中的多个节点中每个节点对所述目标跨链交易的哈希值的签名,所述多签信息用于证明所述第一哈希值是对来自所述第一应用链系统的所述目标跨链交易处理得到的;
所述第一跨链网关向中继链系统发送跨链交易请求,所述跨链交易请求中携带所述多签信息、所述第一哈希值、所述第一加密数据和所述证明信息;
所述中继链系统接收所述第一跨链网关发送的跨链交易请求后,并对所述多签信息进行验证,以及对所述证明信息进行验证;
所述中继链系统在所述多签信息和所述证明信息均验证通过的情况下,向第二跨链网关发送所述第一加密数据,所述第二跨链网关是与第二应用链系统对接的跨链网关。
在本申请中,第一跨链网关根据获取的目标跨链交易生成第一哈希值、第一加密数据和证明信息,证明信息可以证明第一哈希值和第一加密数据是对同一跨链交易处理得到的。并且,第一跨链网关可以获取多签信息,该多签信息可以证明第一哈希值是对来自第一应用链系统的跨链交易处理得到的。第一跨链网关可以向中继链系统发送携带有第一哈希值、第一加密数据、证明信息和多签信息的跨链交易请求。中继链系统在接收到第一跨链网关发送的跨链交易请求后,对跨链交易请求中携带的多签信息和证明信息进行验证。在该多签信息和证明信息验证通过情况下,中继链系统可以确定跨链交易请求中携带的第一哈希值是对来自第一应用链的目标跨链交易处理得到的,以及确定跨链交易请求中携带的第一哈希值和第一加密数据是对同一跨链交易处理得到的,从而确定第一加密数据是对来自第一应用链的目标跨链交易处理得到的,也即确定第一加密数据具有真实性,从而可以向第二跨链网关发送第一加密数据。本申请实施例中,中继链系统可以验证第一跨链网关发送的第一加密数据的真实性,以确保第一加密数据对应的跨链交易原文并非为恶意生成的或者被篡改的,在第一加密数据具有真实性的情况下中继链系统才将第一加密数据发送给第二跨链网关,从而保证了隐私交易场景下的跨链交易安全性。
第四方面,提供了一种跨链交易装置,应用于第一跨链网关,所述第一跨链网关是与第一应用链系统对接的跨链网关,所述装置包括:
第一获取模块,用于获取所述第一应用链系统发送的目标跨链交易;
生成模块,用于根据所述目标跨链交易生成第一哈希值、第一加密数据和证明信息,所述第一哈希值是对所述目标跨链交易进行哈希运算得到的,所述第一加密数据是对所述目标跨链交易进行加密得到的,所述证明信息用于证明所述第一哈希值和所述第一加密数据是对同一跨链交易处理得到的;
第二获取模块,用于获取多签信息,所述多签信息包括所述第一应用链系统中的多个节点中每个节点对所述目标跨链交易的哈希值的签名,所述多签信息用于证明所述第一哈希值是对来自所述第一应用链系统的所述目标跨链交易处理得到的;
第一发送模块,用于向中继链系统发送跨链交易请求,所述跨链交易请求中携带所述多签信息、所述第一哈希值、所述第一加密数据和所述证明信息,所述跨链交易请求用于指示所述中继链系统在所述多签信息和所述证明信息均验证通过时,向第二跨链网关发送所述第一加密数据,所述第二跨链网关是与第二应用链系统对接的跨链网关。
第五方面,提供了一种跨链交易装置,应用于中继链系统,所述装置包括:
第一接收模块,用于接收第一跨链网关发送的跨链交易请求,所述跨链交易请求中携带多签信息、第一哈希值、第一加密数据和证明信息,所述多签信息用于证明所述第一哈希值是对来自所述第一应用链系统的跨链交易处理得到的,所述证明信息用于证明所述第一哈希值和所述第一加密数据是对同一跨链交易处理得到的,所述第一跨链网关是与所述第一应用链系统对接的跨链网关;
验证模块,用于对所述多签信息进行验证,以及对所述证明信息进行验证;
发送模块,用于在所述多签信息和所述证明信息均验证通过的情况下,向第二跨链网关发送所述第一加密数据,所述第二跨链网关是与第二应用链系统对接的跨链网关。
第六方面,提供了一种跨链交易系统,所述系统包括第一跨链网关、中继链系统和第二跨链网关;
所述第一跨链网关,用于获取所述第一应用链系统发送的目标跨链交易;
所述第一跨链网关,用于根据所述目标跨链交易生成第一哈希值、第一加密数据和证明信息,所述第一哈希值是对所述目标跨链交易进行哈希运算得到的,所述第一加密数据是对所述目标跨链交易进行加密得到的,所述证明信息用于证明所述第一哈希值和所述第一加密数据是对同一跨链交易处理得到的;
所述第一跨链网关,用于获取多签信息,所述多签信息包括所述第一应用链系统中的多个节点中每个节点对所述目标跨链交易的哈希值的签名,所述多签信息用于证明所述第一哈希值是对来自所述第一应用链系统的所述目标跨链交易处理得到的;
所述第一跨链网关,用于向中继链系统发送跨链交易请求,所述跨链交易请求中携带所述多签信息、所述第一哈希值、所述第一加密数据和所述证明信息;
所述中继链系统,用于接收所述第一跨链网关发送的跨链交易请求,并对所述多签信息进行验证,以及对所述证明信息进行验证;
所述中继链系统,用于在所述多签信息和所述证明信息均验证通过的情况下,向第二跨链网关发送所述第一加密数据,所述第二跨链网关是与第二应用链系统对接的跨链网关。
第七方面,提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述第一方面提供的跨链交易方法。
第八方面,提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述第二方面提供的跨链交易方法。
第九方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的跨链交易方法。
第十方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面提供的跨链交易方法。
第十一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面提供的跨链交易方法的步骤。
第十二方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面提供的跨链交易方法的步骤。
可以理解的是,上述第四方面、第七方面、第九方面、第十一方面的有益效果可以参见上述第一方面中的相关描述。上述第五方面、第八方面、第十方面、第十二方面的有益效果可以参见上述第二方面中的相关描述,上述第六方面的有益效果可以参见上述第三方面的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链系统的结构示意图;
图2是本申请实施例提供的一种跨链交易系统的结构示意图;
图3是本申请实施例提供的一种跨链交易方法的流程图;
图4是本申请实施例提供的一种证明电路的结构示意图;
图5是本申请实施例提供的一种跨链交易请求的数据结构图;
图6是本申请实施例提供的另一种跨链交易方法的流程图;
图7是本申请实施例提供的又一种跨链交易方法的流程图;
图8是本申请实施例提供的一种跨链交易装置的结构示意图;
图9是本申请实施例提供的另一种跨链交易装置的结构示意图;
图10是本申请实施例提供的一种计算机设备的结构示意图;
图11是本申请实施例提供的另一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在对本申请实施例进行详细地解释说明之前,先对本申请实施例的应用场景予以说明。
本申请实施例提供的跨链交易方法可以应用于跨链交易的场景中,也即是可以应用于一个应用链系统中的交易(即跨链交易)需要在另外一个应用链系统中执行的场景中,具体可以应用于隐私交易场景下的跨链交易场景中。
在本申请实施例中,一个应用链系统接收或者生成一个交易时,与这个应用链系统对接的跨链网关获取到这个跨链交易,对这个跨链交易进行加密并生成中继链系统可以验证的这个跨链交易的相关信息。之后中继链系统接收到加密的跨链交易以及跨链交易相关信息之后,对跨链交易相关信息进行验证,以确定加密的跨链交易的真实性,并在加密的跨链交易具有真实性的情况下,将加密的跨链交易发送至另一个应用链系统,以使另一个应用链系统执行解密后的跨链交易。从而保证了发往另一个应用链系统的加密的跨链交易是具有真实性的,解决了在隐私交易场景下跨链交易被篡改而中继链系统无法验证并拦截的问题。
在对本申请实施例进行解释说明之前,先对区块链的相关内容予以说明。
图1是本申请实施例提供的一种区块链系统的结构示意图。
参见图1,区块链系统100是指用于进行节点与节点之间数据共享的系统,区块链系统100中可以包括多个节点101。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护区块链系统100内的共享数据。为了保证区块链系统100内的信息互通,区块链系统100中的每个节点101之间可以存在信息连接,节点101之间可以通过该信息连接进行信息传输。比如,当区块链系统100中的任意节点101接收到输入信息时,区块链系统100中的其他节点101便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链系统100中全部节点101上存储的数据一致。区块链系统100中的每个节点101均存储一条相同的区块链。
区块链系统100具有分布式数据存储、点对点传输、共识机制、加密算法等计算机技术。区块链系统100是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。这些特点保证了区块链的共享开放、真实完整和安全可靠。
在对本申请实施例提供的跨链交易方法进行详细地解释说明之前,先对本申请实施例涉及的名词予以说明。
应用链系统:应用链系统是接收或生成跨链交易的区块链系统,或者是执行跨链交易的区块链系统。
中继链系统:中继链系统是一种区块链系统。中继链系统可以接入应用链系统,以实现跨链交易的验证。
跨链网关:跨链网关是应用链系统和中继链系统之间的转接器。跨链网关可以捕获应用链系统中产生的跨链事件,提交跨链交易的相关数据到中继链系统;或者,跨链网关可以接收中继链系统验证通过的跨链交易,提交跨链交易到应用链系统。
跨链交易:跨链交易是两个应用链系统之间的交易,可以包含来源应用链标识、目的应用链标识等信息。
下面对本申请实施例涉及的系统架构予以说明。
图2是本申请实施例提供的一种跨链交易系统的示意图。参见图2,该跨链交易系统包括:第一跨链网关201、中继链系统202、第二跨链网关203。
第一跨链网关201是与第一应用链系统204对接的跨链网关,第一跨链网关201用于捕获第一应用链系统204中产生的跨链事件,提交跨链交易的相关数据到中继链系统202。
第二跨链网关203是与第二应用链系统205对接的跨链网关,第二跨链网关203用于接收中继链系统202验证通过的跨链交易,提交跨链交易到第二应用链系统205。
中继链系统202位于第一跨链网关201与第二跨链网关203之间,中继链系统202用于验证第一跨链网关201提交的跨链交易的相关数据。中继链系统202可以通过有线网络或无线网络与第一跨链网关201进行通信,也可以通过有线网络或无线网络与第二跨链网关203进行通信。
第一应用链系统204、第二应用链系统205和中继链系统202均是区块链系统,该区块链系统可以是如上文图1实施例所述的区块链系统100。
在本申请实施例中,第一应用链系统204和第二应用链系统205之间具有跨链交易。对于该跨链交易,第一应用链系统204可以是来源应用链系统,第二应用链系统205可以是目的应用链系统。也即,该跨链交易可以是由第一应用链系统204的用户发起的、需要发送到第二应用链系统205的交易。
第一跨链网关201、中继链系统202和第二跨链网关203可以执行下文图3实施例所述的跨链交易方法,来实现第一应用链系统204与第二应用链系统205之间的跨链交易。
下面对本申请实施例提供的跨链交易方法进行详细地解释说明。
图3是本申请实施例提供的一种跨链交易方法的流程图。参见图3,该方法包括以下步骤。
步骤301:第一跨链网关获取第一应用链系统发送的目标跨链交易。
目标跨链交易是第一应用链系统与第二应用链系统之间的交易。对于目标跨链交易,第一应用链系统是来源应用链系统,第二应用链系统是目的应用链系统。也即,目标跨链交易可以是由第一应用链系统的用户发起的、需要发送到第二应用链系统的交易。
目标跨链交易是来源于第一应用链系统的跨链交易,比如,目标跨链交易可以为第一应用链系统接收到的客户端发送的交易,也可以为第一应用链系统生成的交易。
目标跨链交易中可以包含来源应用链标识和目的应用链标识等信息。
来源应用链标识用于标识目标跨链交易的来源应用链系统,在本申请实施例中,该来源应用链标识即是第一应用链系统的标识。目的应用链标识用于标识目标跨链交易的目的应用链系统,在本申请实施例中,该目的应用链标识即是第二应用链系统的标识。应用链系统的标识可以是该应用链系统的MAC(Media Access Control,介质访问控制)地址、IP(Internet Protocol,互联网协议)地址等,本申请实施例对此不作唯一限定。
具体地,步骤301的操作可以为:第一跨链网关获取第一应用链系统生成的跨链事件,该跨链事件中携带目标跨链交易。
在一些实施例中,用户设备可以调用部署在第一应用链系统上的跨链合约来向第一应用链系统发起目标跨链交易。第一应用链系统接收到用户设备发送的目标跨链交易后,抛出一个跨链事件,该跨链事件中包括目标跨链交易。应用链插件轮询或订阅该跨链事件,然后将该跨链事件发送到第一跨链网关,从而第一跨链网关可以获取到目标跨链交易。
可选地,该跨链事件中还可以包括目标哈希值,目标哈希值为第一应用链系统生成的目标跨链交易的哈希值,也即,目标哈希值为第一应用链系统对目标跨链交易进行哈希运算得到的哈希值。如此第一跨链网关还可以获取到第一应用链生成的目标跨链交易的哈希值(即目标哈希值)。
步骤302:第一跨链网关根据目标跨链交易生成第一哈希值、第一加密数据和证明信息。
第一哈希值是第一跨链网关对目标跨链交易进行哈希运算得到的,第一加密数据是第一跨链网关对目标跨链交易进行加密得到的。
该证明信息是第一跨链网关根据第一哈希值和第一加密数据生成的,该证明信息用于证明第一哈希值和第一加密数据是对同一跨链交易处理得到的。
具体地,步骤302的操作可以通过如下两种可能的方式实现。
第一种可能的方式,第一跨链网关将目标跨链交易输入证明电路,由该证明电路输出第一哈希值、第一加密数据和该证明信息。
该证明电路用于生成第一哈希值、第一加密数据和该证明信息。例如:该证明电路可以为circom电路,circom电路为使用circom电路编程语言编写的零知识证明电路。
该证明电路包括哈希电路、第一加密电路、第二加密电路,该哈希电路和第一加密电路的输入数据为该证明电路的输入数据,第二加密电路的一个输入数据为该哈希电路的输出数据,第二加密电路的另一输入数据为第一加密电路的输出数据,该证明电路的输出数据为该哈希电路的输出数据、第一加密电路的输出数据和第二加密电路的输出数据。
为了保证数据不被泄露,该证明电路的输入数据为隐私输入,也即该哈希电路的输入数据和第一加密电路的输入数据均为隐私输入。在本申请实施例中,该隐私输入即为来自第一应用链系统的跨链交易(即目标跨链交易)。
哈希电路用于对输入数据进行哈希运算,第一加密电路用于对输入数据进行加密,第二加密电路用于根据两个输入数据生成输出数据,第二加密电路的输出数据用于证明该哈希电路的输出数据和第一加密电路的输出数据是对同一输入数据处理得到的。
如此,在该证明电路的输入数据为目标跨链交易的情况下,哈希电路可对输入的目标跨链交易进行哈希运算,得到第一哈希值,第一加密电路可对输入的目标跨链交易进行加密,得到第一加密数据,第二加密电路可根据输入的第一哈希值和第一加密数据生成证明信息,该证明信息即用于证明第一哈希值和第一加密数据是对同一跨链交易处理得到的。
其中,第一加密电路对输入数据进行加密的操作与相关技术中某个加密电路对某个输入数据进行加密的操作类似,本申请实施例对此不进行详细阐述。
其中,第二加密电路根据两个输入数据生成输出数据的操作与相关技术中某个加密电路根据两个输入数据生成一个输出数据的操作类似,本申请实施例对此不进行详细阐述。例如:第二加密电路可以对两个输入数据进行加密得到输出数据。
需注意的是,该证明电路具有验证者信息,第二加密电路可以根据两个输入数据和该证明电路的验证者信息生成输出数据。
该验证者信息用于验证某个数据是否是通过该证明电路生成的。例如:该验证者信息可以为该证明电路的公钥。
第二加密电路根据该证明电路的验证者信息生成一个输出数据后,从这个输出数据中就可以分析得到该证明电路的验证者信息。这种情况下,若从某个数据中分析得到了该证明电路的验证者信息,则说明这个数据是第二加密电路的输出数据,即这个数据是通过该证明电路生成的,否则,说明这个数据不是通过该证明电路生成的。因而可以使用该证明电路的验证者信息来验证某个数据是否是通过该证明电路生成的。
这种情况下,第一跨链网关在获取第一应用链系统发送的目标跨链交易之前,还可以向中继链系统发送该证明电路的验证者信息。如此中继链系统后续可以使用证明电路的验证者信息验证第一跨链网关发送的证明信息是否是通过该证明电路生成的。
可选地,第一跨链网关可以以注册信息的方式在中继链系统中注册该证明电路的验证者信息。
例如:该证明电路的输入数据为目标跨链交易。图4为该证明电路的结构示意图。参见图4,图4包括证明电路401,证明电路401中包括哈希电路402、第一加密电路403和第二加密电路404。将目标跨链交易输入证明电路401中,也即将目标跨链交易同时输入哈希电路402和第一加密电路403,哈希电路402对目标跨链交易进行哈希运算,得到第一哈希值,第一加密电路403对目标跨链交易进行加密,得到第一加密数据。之后,第一哈希值和第一加密数据输入第二加密电路404中,第二加密电路404对第一哈希值、第一加密数据和证明电路401的验证者信息进行加密,得到证明信息。之后证明电路401输出哈希电路402输出的第一哈希值、第一加密电路403输出的第一加密数据以及第二加密电路404输出的证明信息,从而得到证明电路401的输出数据。
本申请实施例中,将目标跨链交易作为该证明电路的隐私输入后,该证明电路输出第一哈希值、第一加密数据和该证明信息。如此,后续可通过该证明电路的验证者信息对该证明信息进行验证,以证明该证明信息是否是通过该证明电路生成的。若该证明信息是通过该证明电路生成的,则可以确定该证明信息是第二加密电路根据哈希电路输出的第一哈希值和第一加密电路输出的第一加密数据生成的,又由于该证明电路中哈希电路和第一加密电路共享同一输入数据,所以该证明信息可以证明第一哈希值和第一加密数据是对同一跨链交易处理得到的,从而可以证明第一加密数据具有一定的真实性。如此可以保证在目标跨链交易不被泄露的情况下,第一跨链网关能够生成可以证明加密后的跨链交易(即第一加密数据)的真实性的相关证明信息。
第二种可能的方式,第一跨链网关在可信计算环境中,对目标跨链交易进行哈希运算,得到第一哈希值,以及对目标跨链交易进行加密,得到第一加密数据;在可信计算环境中,对第一哈希值和第一加密数据进行哈希运算,得到信息摘要;在可信计算环境中,使用可信计算环境的私钥对该信息摘要进行加密,得到数字签名作为该证明信息。
可信计算环境是指系统提供的计算服务是可信赖的,是一种运算与防护并存的信息安全技术,保证了计算的行为与预期一致,同时保证全程可检测可监控。可信计算环境可以通过intel SGX(Software Guard Extensions,软件保护扩展)技术、intel TXT(TrustedExecution Technology,可信执行技术)、arm trustzone技术、TPM(Trusted PlatformModule,可信平台模块)、TCM(Trusted Cryptography Module,可信密码模块)或其他同类技术实现。可信计算环境的安全性可以建立在硬件基础上,如可以存在固化于硬件的密钥,且存在度量机制和远程认证机制等。通过这些机制,可信计算环境可以证明某些程序是运行在安全环境中的,并且能够对结果进行签名。
可信计算环境的私钥可以是固化于硬件的密钥。可信计算环境可以保证运算过程的安全性,因而在可信计算环境中根据可信计算环境的私钥得到的针对第一哈希值和第一加密数据的数字签名,可以证明第一哈希值和第一加密数据是在可信计算环境中经过了事先设定的运算得到的。而由于第一跨链网关是在可信计算环境中对目标跨链交易进行哈希运算得到的第一哈希值,以及对目标跨链交易进行加密得到的第一加密数据,所以该数字签名(即证明信息)可以证明第一哈希值和第一加密数据是对同一跨链交易处理得到的。
步骤303:第一跨链网关获取多签信息。
该多签信息包括第一应用链系统中的多个节点中每个节点对目标跨链交易的哈希值(即目标哈希值)的签名,该多签信息用于证明第一哈希值是对来自第一应用链系统的目标跨链交易处理得到的。
由于该多签信息包括第一应用链系统中的多个节点中每个节点对目标哈希值的签名,而目标哈希值是第一应用链系统生成的目标跨链交易的哈希值,所以根据该多签信息可以验证目标哈希值与第一哈希值是否相同。若相同,则说明第一哈希值是来自第一应用链系统的目标跨链交易的哈希值;若不同,则说明第一哈希值不是来自第一应用链系统的目标跨链交易的哈希值。如此,通过该多签信息可以验证得到第一哈希值是否是对来自第一应用链系统的跨链交易处理得到的。
具体地,步骤303的操作可以通过如下两种可能方式实现。
第一种可能的方式,若第一跨链网关获取到的第一应用链系统生成的跨链事件中不仅包括目标跨链交易,还包括目标哈希值,则第一跨链网关向第一应用链系统的多个节点中的每个节点发送请求消息,该请求消息携带目标哈希值,该请求消息用于请求节点对请求消息携带的目标哈希值进行签名;第一跨链网关接收该多个节点中每个节点发送的对目标哈希值的签名,以得到该多签信息。
第一跨链网关向第一应用链系统的多个节点中的每个节点发送该请求消息,对于第一应用链系统的多个节点中任意的一个节点来说,这个节点接收到第一跨链网关发送的携带目标哈希值的请求消息之后,这个节点将该请求消息中携带的目标哈希值与自身区块链中存储的目标跨链交易的哈希值进行比较,在目标哈希值与自身区块链中存储的目标跨链交易的哈希值相同的情况下,对目标哈希值进行签名,并将该签名返回给第一跨链网关。如此第一跨链网关可以得到该多个节点中每个节点对目标哈希值的签名,也就得到了多签信息。
其中,该多个节点中任意的一个节点对目标哈希值进行签名的操作可以为:这个节点使用自身的私钥对目标哈希值进行加密,得到对目标哈希值的签名。
第二种可能的方式,若第一跨链网关获取到的第一应用链系统生成的跨链事件中不仅包括目标跨链交易,还包括多签信息,则第一跨链网关直接获取该跨链事件中的该多签信息。
这种情况下,是第一应用链系统对目标跨链交易进行哈希运算,得到目标哈希值后,再获取第一应用链系统的多个节点中的每个节点对目标哈希值的签名,以得到该多签信息,然后生成携带有目标跨链交易和该多签信息的跨链事件。这种情况下,第一跨链网关可以直接从跨链事件中获得该多签信息,从而可以节省第一跨链网关的处理资源,减轻第一跨链网关的压力,提升第一跨链网关的处理性能。
值得注意的是,在第一跨链网关获取第一应用链系统发送的目标跨链交易之前,第一跨链网关可以向中继链系统发送第一应用链系统中多个节点中每个节点的公钥。如此后续中继链系统可以使用第一应用链系统中多个节点中每个节点的公钥对第一跨链网关发送的多签信息进行验证。
可选地,第一跨链网关可以以注册信息的方式在中继链系统中注册第一应用链系统中多个节点中每个节点的公钥。
步骤304:第一跨链网关向中继链系统发送跨链交易请求,该跨链交易请求中携带该多签信息、第一哈希值、第一加密数据和该证明信息。
该跨链交易请求用于指示中继链系统在该多签信息和该证明信息均验证通过时,向第二跨链网关发送第一加密数据,第二跨链网关是与第二应用链系统对接的跨链网关。
这种情况下,中继链系统可以接收到携带该多签信息、第一哈希值、第一加密数据和该证明信息的该跨链交易请求,之后还可以对该跨链交易请求中携带的多签信息和证明信息进行验证,其中验证多签信息即是验证该跨链交易请求中携带的第一哈希值是否是对来自第一应用链系统的目标跨链交易处理得到的,其中验证证明信息即是验证第一哈希值和第一加密数据是否为对同一跨链交易处理得到的,继而通过验证多签信息和证明信息可实现验证第一加密数据是否是对来自第一应用链系统的目标跨链交易处理得到,即验证第一加密数据是否具有真实性。从而使得中继链系统在不知道跨链交易原文(即目标跨链交易)的情况下也可确定出加密后的跨链交易(即第一加密数据)是否具有真实性。如此,在交易数据不被泄露的情况下,中继链系统可实现对第一跨链网关发送的第一加密数据的真实性的验证,继而可保证发往第二跨链网关的第一加密数据是具有真实性的,从而解决了在隐私交易场景下跨链交易被篡改而中继链系统无法验证并拦截的问题。
可选地,第一跨链网关可以通过跨链协议向中继链系统发送该跨链交易请求。
例如:图5为跨链交易请求的数据结构图,第一跨链网关可以向中继链系统发送如图5所示的跨链交易请求。图5中所示的跨链交易请求包括头部501、payload(有效数据)部分502和Proof(证明数据)部分503。跨链交易请求的头部501包括跨链协议的版本,payload部分502包括第一加密数据,Poof部分503包括第一哈希值、该多签信息和该证明信息。
步骤305:中继链系统在接收到第一跨链网关发送的跨链交易请求后,对该跨链交易请求中携带的多签信息进行验证,以及对该跨链交易请求中携带的证明信息进行验证。
中继链系统接收到第一跨链网关发送的跨链交易请求,会得到该多签信息、第一哈希值、第一加密数据和该证明信息,进一步地可以对该多签信息和该证明信息进行验证。
这种情况下,中继链系统对该多签信息进行验证,也就是验证第一哈希值是否是对来自第一应用链的目标跨链交易处理得到的,对该证明信息进行验证,也就是验证第一哈希值和第一加密数据是否是对同一跨链交易处理得到的。若该多签信息验证通过,则说明第一哈希值是对来自第一应用链的目标跨链交易处理得到的,在此情况下,若该证明信息验证通过,则说明第一哈希值和第一加密数据是对同一跨链交易处理得到的,也就说明第一加密数据是对来自第一应用链的目标跨链交易处理得到,也即第一加密数据具有真实性。因而本申请实施例中通过验证该多签信息和该证明信息可实现验证第一加密数据是否是对来自第一应用链的目标跨链交易处理得到,也即验证第一加密数据是否具有真实性。
其中,中继链系统对该多签信息进行验证的操作可以为:中继链系统根据第一应用链系统中多个节点中每个节点的公钥,对该多签信息进行解密;若从该多签信息中成功解密出目标哈希值,则在目标哈希值与第一哈希值相同的情况下,确定该多签信息验证通过;若该多签信息解密失败,或者,若从该多签信息中成功解密出目标哈希值且目标哈希值与第一哈希值不同,则确定该多签信息验证失败。
第一跨链网关提前在中继链系统注册了第一应用链系统的多个节点中每个节点的公钥,所以中继链系统可以直接使用提前注册的第一应用链系统的多个节点中每个节点的公钥对该多签信息进行解密。
中继链系统若从该多签信息中成功解密出目标哈希值,说明该多签信息是第一应用链系统的多个节点中的每个节点对目标哈希值签名得到的,即该多签信息是对来自第一应用链系统的目标跨链交易的哈希值签名得到的。这种情况下,若从该多签信息中解密出的目标哈希值与第一哈希值相同,则说明第一哈希值是来自第一应用链系统的目标跨链交易的哈希值,即第一哈希值是对来自第一应用链系统的目标跨链交易处理得到的,从而该多签信息验证成功。而若从该多签信息中解密出的目标哈希值与第一哈希值不同,则说明第一哈希值不是来自第一应用链系统的目标跨链交易的哈希值,即第一哈希值不是对来自第一应用链系统的目标跨链交易处理得到的,从而该多签信息验证失败。
若该多签信息解密失败,说明该多签信息不是第一应用链系统的多个节点中的每个节点对目标哈希值签名得到的,从而该多签信息验证失败,这种情况下,也就无法进一步对第一哈希值进行验证,可以直接确定第一哈希值不是对来自第一应用链系统的目标跨链交易处理得到的。
其中,当该证明信息是通过上述步骤302中第一种可能的方式生成的时,中继链系统对该证明信息进行验证的操作可以通过如下步骤(1)-步骤(3)实现。
(1)中继链系统对该证明信息进行解密,得到第二哈希值、第二加密数据和目标验证者信息。
如此,中继链系统会得到第一哈希值、第一加密数据、第二哈希值、第二加密数据和目标验证者信息,则中继链系统可以进一步对这些信息进行验证。
中继链系统对该证明信息进行解密的操作与相关技术中某个设备对某个信息进行解密的操作类似,本申请实施例对此不进行详细阐述。例如:中继链系统可以使用解密算法对该证明信息进行解密,得到第二哈希值、第二加密数据和目标验证者信息,该解密算法可以为与该证明电路中第二加密电路中的加密算法对应的解密算法。
(2)中继链系统在目标验证者信息与该证明电路的验证者信息相同、第二哈希值与第一哈希值相同、第二加密数据与第一加密数据相同的情况下,确定该证明信息验证通过。
第一跨链网关提前在中继链系统注册了该证明电路的验证者信息,则中继链系统可以直接使用提前注册的该证明电路的验证者信息对目标验证者信息进行验证,以确定该证明信息是否是该证明电路生成的。
这种情况下,若目标验证者信息与该证明电路的验证者信息相同,说明该证明信息是根据该证明电路的验证者信息加密得到的,也即说明该证明信息是通过该证明电路生成的,从而说明从该证明信息中解密得到的第二哈希值和第二加密数据是对同一跨链交易处理得到的。在此情况下,若第二哈希值与第一哈希值相同,且第二加密数据与第一加密数据相同,也就说明第一哈希值和第一加密数据是对同一跨链交易处理得到的,从而可以确定该证明信息验证通过。
(3)中继链系统在目标验证者信息与该证明电路的验证者信息不同,和/或,第二哈希值与第一哈希值不同,和/或,第二加密数据与第一加密数据不同的情况下,确定该证明信息验证失败。
这种情况下,若目标验证者信息与该证明电路的验证者信息不同,说明该证明信息不是根据该证明电路的验证者信息加密得到的,也即说明该证明信息不是通过该证明电路生成的,从而可以直接确定该证明信息验证失败。若目标验证者信息与该证明电路的验证者信息相同,而第二哈希值与第一哈希值不同,和/或第二加密数据与第一加密数据不同,说明第一哈希值和第一加密数据不是对同一跨链交易处理得到的,从而可以确定该证明信息验证失败。
其中,当该证明信息是通过上述步骤302中第二种可能的方式生成的时,中继链系统对该证明信息进行验证的操作可以为:在可信计算环境中,使用该可信计算环境的公钥对该证明信息进行解密,得到第一信息摘要;在该可信计算环境中,对第一哈希值和第一加密数据进行哈希运算,得到第二信息摘要;若第一信息摘要与第二信息摘要相同,则确定该证明信息验证通过;若第一信息摘要与第二信息摘要不同,则确定该证明信息验证失败。
中继链系统可以从第一跨链网关处或从第三方认证机构处获取可信计算环境的公钥。
这种情况下,若第一信息摘要与第二信息摘要相同,说明跨链交易请求中携带的第一哈希值、第一加密数据是在可信计算环境中经过事先设定的运算得到的,则可以确定该证明信息所证明的事实是真实的,也即确定第一哈希值和第一加密数据确实是对同一跨链交易处理得到的,则确定该证明信息验证通过。若第一信息摘要与第二信息摘要不同,说明跨链交易请求中携带的第一哈希值、第一加密数据不是在可信计算环境中经过事先设定的运算得到的,则可以确定该证明信息所证明的事实是虚假的,也即确定第一哈希值和第一加密数据不是对同一跨链交易处理得到的,则确定该证明信息验证失败。
步骤306:中继链系统在该多签信息和该证明信息均验证通过的情况下,向第二跨链网关发送第一加密数据。
若该多签信息和该证明信息均验证通过,说明第一加密数据是对来自第一应用链系统的目标跨链交易处理得到的,也即第一加密数据具有真实性,因而中继链系统可以将第一加密数据发送给第二跨链网关。而若该多签信息和该证明信息中的至少一个验证失败,说明第一加密数据不是对来自第一应用链系统的目标跨链交易处理得到的,也即第一加密数据不具有真实性,这种情况下,中继链系统可以对第一加密数据进行拦截,也即不将第一加密数据发送给第二跨链网关。
本申请实施例中,中继链系统可以对第一跨链网关发送的第一加密数据进行验证,以确保第一加密数据对应的跨链交易原文并非为恶意生成的或者被篡改的,即确保第一加密数据具有真实性。在第一加密数据具有真实性的情况下中继链系统才将第一加密数据发送给第二跨链网关,从而保证了跨链交易安全性。
进一步地,第二跨链网关在接收到中继链系统验证通过的第一加密数据后,可以对第一加密数据进行解密,得到目标跨链交易。之后第二跨链网关可以将解密得到的目标跨链交易发送给第二应用链系统,以使第二应用链系统执行目标跨链交易。
值得注意的是,在整个跨链交易的过程中,中继链系统不会获取到跨链交易原文(即目标跨链交易),中继链系统对于跨链交易原文一直是未知的。本申请实施例中中继链系统在不知道跨链交易原文的情况下依然能够验证加密后的跨链交易(即第一加密数据)的真实性,如此在跨链交易原文不被泄露的情况下,即在保证了交易数据的安全性的情况下,实现了对加密后的跨链交易的验证,从而解决了在隐私交易场景下跨链交易被篡改而中继链系统无法验证并拦截的问题,保证了跨链交易安全性。
在本申请实施例中,第一跨链网关根据获取的目标跨链交易生成第一哈希值、第一加密数据和证明信息,证明信息可以证明第一哈希值和第一加密数据是对同一跨链交易处理得到的。并且,第一跨链网关可以获取多签信息,该多签信息可以证明第一哈希值是对来自第一应用链系统的跨链交易处理得到的。第一跨链网关可以向中继链系统发送携带有第一哈希值、第一加密数据、证明信息和多签信息的跨链交易请求。中继链系统在接收到第一跨链网关发送的跨链交易请求后,对跨链交易请求中携带的多签信息和证明信息进行验证。在该多签信息和证明信息验证通过情况下,中继链系统可以确定跨链交易请求中携带的第一哈希值是对来自第一应用链的目标跨链交易处理得到的,以及确定跨链交易请求中携带的第一哈希值和第一加密数据是对同一跨链交易处理得到的,从而确定第一加密数据是对来自第一应用链的目标跨链交易处理得到的,也即确定第一加密数据具有真实性,从而可以向第二跨链网关发送第一加密数据。本申请实施例中,中继链系统可以验证第一跨链网关发送的第一加密数据的真实性,以确保第一加密数据对应的跨链交易原文并非为恶意生成的或者被篡改的,在第一加密数据具有真实性的情况下中继链系统才将第一加密数据发送给第二跨链网关,从而保证了隐私交易场景下的跨链交易安全性。
图6是本申请实施例提供的一种跨链交易方法的流程图。该方法应用于第一跨链网关,第一跨链网关是与第一应用链系统对接的跨链网关。参见图6,该方法包括以下步骤:
步骤601:获取第一应用链系统发送的目标跨链交易。
步骤601的相关内容已经在上述步骤301进行解释说明,本申请实施例对此不再赘述。
步骤602:根据目标跨链交易生成第一哈希值、第一加密数据和证明信息,该证明信息用于证明第一哈希值和第一加密数据是对同一跨链交易处理得到的。
第一哈希值是对目标跨链交易进行哈希运算得到的,第一加密数据是对目标跨链交易进行加密得到的。
步骤602的相关内容已经在上述步骤302进行解释说明,本申请实施例对此不再赘述。
步骤603:获取多签信息,该多签信息用于证明第一哈希值是对来自第一应用链系统的目标跨链交易处理得到的。
步骤603的相关内容已经在上述步骤303进行解释说明,本申请实施例对此不再赘述。
步骤604:向中继链系统发送跨链交易请求,该跨链交易请求中携带该多签信息、第一哈希值、第一加密数据和该证明信息,该跨链交易请求用于指示中继链系统在该多签信息和该证明信息均验证通过时,向第二跨链网关发送第一加密数据。
第二跨链网关是与第二应用链系统对接的跨链网关。
步骤604的相关内容已经在上述步骤304进行解释说明,本申请实施例对此不再赘述。
在本申请实施例中,第一跨链网关根据获取的目标跨链交易生成第一哈希值、第一加密数据和证明信息,证明信息可以证明第一哈希值和第一加密数据是对同一跨链交易处理得到的。并且,第一跨链网关可以获取多签信息,该多签信息可以证明第一哈希值是对来自第一应用链系统的跨链交易处理得到的。第一跨链网关可以向中继链系统发送携带有第一哈希值、第一加密数据、证明信息和多签信息的跨链交易请求。中继链系统在接收到第一跨链网关发送的跨链交易请求后,对跨链交易请求中携带的多签信息和证明信息进行验证。在该多签信息和证明信息验证通过情况下,中继链系统可以确定跨链交易请求中携带的第一哈希值是对来自第一应用链的目标跨链交易处理得到的,以及确定跨链交易请求中携带的第一哈希值和第一加密数据是对同一跨链交易处理得到的,从而确定第一加密数据是对来自第一应用链的目标跨链交易处理得到的,也即确定第一加密数据具有真实性,从而可以向第二跨链网关发送第一加密数据。本申请实施例中,中继链系统可以验证第一跨链网关发送的第一加密数据的真实性,以确保第一加密数据对应的跨链交易原文并非为恶意生成的或者被篡改的,在第一加密数据具有真实性的情况下中继链系统才将第一加密数据发送给第二跨链网关,从而保证了隐私交易场景下的跨链交易安全性。
图7是本申请实施例提供的一种跨链交易方法的流程图。该方法应用于中继链系统。参见图7,该方法包括以下步骤:
步骤701:接收第一跨链网关发送的跨链交易请求,该跨链交易请求中携带多签信息、第一哈希值、第一加密数据和证明信息,该多签信息用于证明第一哈希值是对来自第一应用链系统的跨链交易处理得到的,证明信息用于证明第一哈希值和第一加密数据是对同一跨链交易处理得到的。
步骤701的相关内容已经在上述步骤305进行解释说明,本申请实施例对此不再赘述。
步骤702:对该多签信息进行验证,以及对该证明信息进行验证。
步骤702的相关内容已经在上述步骤305进行解释说明,本申请实施例对此不再赘述。
步骤703:在该多签信息和该证明信息均验证通过的情况下,向第二跨链网关发送第一加密数据。
第二跨链网关是与第二应用链系统对接的跨链网关。
步骤703的相关内容已经在上述步骤306进行解释说明,本申请实施例对此不再赘述。
在本申请实施例中,中继链系统在接收到第一跨链网关发送的跨链交易请求后,对跨链交易请求中携带的多签信息和证明信息进行验证。在该多签信息和证明信息验证通过情况下,中继链系统可以确定跨链交易请求中携带的第一哈希值是对来自第一应用链的目标跨链交易处理得到的,以及确定跨链交易请求中携带的第一哈希值和第一加密数据是对同一跨链交易处理得到的,从而确定第一加密数据是对来自第一应用链的目标跨链交易处理得到的,也即确定第一加密数据具有真实性,从而可以向第二跨链网关发送第一加密数据。本申请实施例中,中继链系统可以验证第一跨链网关发送的第一加密数据的真实性,以确保第一加密数据对应的跨链交易原文并非为恶意生成的或者被篡改的,在第一加密数据具有真实性的情况下中继链系统才将第一加密数据发送给第二跨链网关,从而保证了隐私交易场景下的跨链交易安全性。
图8是本申请实施例提供的一种跨链交易装置的结构示意图。该跨链交易装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部,该计算机设备可以为下文图10所示的计算机设备。该装置应用于第一跨链网关,第一跨链网关是与第一应用链对接的跨链网关。参见图8,该装置包括:第一获取模块801、生成模块802、第二获取模块803、第一发送模块804。
第一获取模块801,用于获取第一应用链系统发送的目标跨链交易;
生成模块802,用于根据目标跨链交易生成第一哈希值、第一加密数据和证明信息,第一哈希值是对目标跨链交易进行哈希运算得到的,第一加密数据是对目标跨链交易进行加密得到的,证明信息用于证明第一哈希值和第一加密数据是对同一跨链交易处理得到的;
第二获取模块803,用于获取多签信息,多签信息包括第一应用链系统中的多个节点中每个节点对目标跨链交易的哈希值的签名,多签信息用于证明第一哈希值是对来自第一应用链系统的目标跨链交易处理得到的;
第一发送模块804,用于向中继链系统发送跨链交易请求,跨链交易请求中携带多签信息、第一哈希值、第一加密数据和证明信息,跨链交易请求用于指示中继链系统在多签信息和证明信息均验证通过时,向第二跨链网关发送第一加密数据,第二跨链网关是与第二应用链系统对接的跨链网关。
可选地,该装置还包括:
第二发送模块,用于向中继链系统发送多个节点中每个节点的公钥,多个节点中每个节点的公钥用于验证多签信息。
可选地,生成模块802用于:
将目标跨链交易输入证明电路,由证明电路输出第一哈希值、第一加密数据和证明信息;
其中,证明电路包括哈希电路、第一加密电路、第二加密电路,哈希电路和第一加密电路的输入数据为证明电路的输入数据,第二加密电路的一个输入数据为哈希电路的输出数据,第二加密电路的另一输入数据为第一加密电路的输出数据,证明电路的输出数据为哈希电路的输出数据、第一加密电路的输出数据和第二加密电路的输出数据;
哈希电路用于对输入数据进行哈希运算,第一加密电路用于对输入数据进行加密,第二加密电路用于根据两个输入数据生成输出数据,第二加密电路的输出数据用于证明哈希电路的输出数据和第一加密电路的输出数据是对同一输入数据处理得到的。
可选地,该装置还包括:
第三发送模块,用于向中继链系统发送验证者信息,验证者信息用于验证证明信息是否是通过证明电路生成的。
可选地,生成模块802用于:
在可信计算环境中,对目标跨链交易进行哈希运算,得到第一哈希值,以及对目标跨链交易进行加密,得到第一加密数据;
在可信计算环境中,对第一哈希值和第一加密数据进行哈希运算,得到信息摘要;
在可信计算环境中,使用可信计算环境的私钥对信息摘要进行加密,得到数字签名作为证明信息。
可选地,第一获取模块801用于:
获取第一应用链系统生成的跨链事件,跨链事件中携带目标跨链交易和目标哈希值,目标哈希值为第一应用链系统生成的目标跨链交易的哈希值;
可选地,第二获取模块803用于:
向多个节点中的每个节点发送请求消息,请求消息携带目标哈希值,请求消息用于请求节点对请求消息携带的目标哈希值进行签名;
接收多个节点中每个节点发送的对目标哈希值的签名,以得到多签信息。
在本申请实施例中,根据获取的目标跨链交易生成第一哈希值、第一加密数据和证明信息,证明信息可以证明第一哈希值和第一加密数据是对同一跨链交易处理得到的。并且获取多签信息,该多签信息可以证明第一哈希值是对来自第一应用链系统的跨链交易处理得到的。向中继链系统发送携带有第一哈希值、第一加密数据、证明信息和多签信息的跨链交易请求。中继链系统在接收到第一跨链网关发送的跨链交易请求后,对跨链交易请求中携带的多签信息和证明信息进行验证。在该多签信息和证明信息验证通过情况下,中继链系统可以确定跨链交易请求中携带的第一哈希值是对来自第一应用链的目标跨链交易处理得到的,以及确定跨链交易请求中携带的第一哈希值和第一加密数据是对同一跨链交易处理得到的,从而确定第一加密数据是对来自第一应用链的目标跨链交易处理得到的,也即确定第一加密数据具有真实性,从而可以向第二跨链网关发送第一加密数据。本申请实施例中,中继链系统可以验证第一跨链网关发送的第一加密数据的真实性,以确保第一加密数据对应的跨链交易原文并非为恶意生成的或者被篡改的,在第一加密数据具有真实性的情况下中继链系统才将第一加密数据发送给第二跨链网关,从而保证了隐私交易场景下的跨链交易安全性。
图9是本申请实施例提供的一种跨链交易装置的结构示意图。该跨链交易装置可以由软件、硬件或者两者的结合实现成为计算机设备的部分或者全部,该计算机设备可以为下文图11所示的计算机设备。该装置应用于中继链系统。参见图9,该装置包括:第一接收模块901、验证模块902、发送模块903。
第一接收模块901,用于接收第一跨链网关发送的跨链交易请求,跨链交易请求中携带多签信息、第一哈希值、第一加密数据和证明信息,该多签信息用于证明第一哈希值是对来自第一应用链系统的跨链交易处理得到的,该证明信息用于证明第一哈希值和第一加密数据是对同一跨链交易处理得到的,第一跨链网关是与第一应用链系统对接的跨链网关;
验证模块902,用于对该多签信息进行验证,以及对该证明信息进行验证;
发送模块903,用于在该多签信息和该证明信息均验证通过的情况下,向第二跨链网关发送第一加密数据,第二跨链网关是与第二应用链系统对接的跨链网关。
可选地,验证模块902用于:
根据第一应用链系统中多个节点中每个节点的公钥,对该多签信息进行解密;
若从该多签信息中成功解密出目标哈希值,则在目标哈希值与第一哈希值相同的情况下,确定该多签信息验证通过;
若该多签信息解密失败,或者,若从该多签信息中成功解密出目标哈希值且目标哈希值与第一哈希值不同,则确定该多签信息验证失败。
可选地,该装置还包括:
第二接收模块,用于接收第一跨链网关发送的证明电路的验证者信息,证明电路的验证者信息用于验证证明信息是否是通过证明电路生成的;
其中,该证明电路包括哈希电路、第一加密电路、第二加密电路,哈希电路和第一加密电路的输入数据为证明电路的输入数据,第二加密电路的一个输入数据为哈希电路的输出数据,第二加密电路的另一输入数据为第一加密电路的输出数据,证明电路的输出数据为哈希电路的输出数据、第一加密电路的输出数据和第二加密电路的输出数据;
哈希电路用于对输入数据进行哈希运算,第一加密电路用于对输入数据进行加密,第二加密电路用于根据两个输入数据生成输出数据,第二加密电路的输出数据用于证明哈希电路的输出数据和第一加密电路的输出数据是对同一输入数据处理得到的。
可选地,验证模块902还用于:
对该证明信息进行解密,得到第二哈希值、第二加密数据和目标验证者信息;
在目标验证者信息与该证明电路的验证者信息相同、第二哈希值与第一哈希值相同、第二加密数据与第一加密数据相同的情况下,确定该证明信息验证通过;
在目标验证者信息与该证明电路的验证者信息不同,和/或,第二哈希值与第一哈希值不同,和/或,第二加密数据与第一加密数据不同的情况下,确定该证明信息验证失败。
可选地,验证模块还用于:
在可信计算环境中,使用可信计算环境的公钥对证明信息进行解密,得到第一信息摘要;
在可信计算环境中,对第一哈希值和第一加密数据进行哈希运算,得到第二信息摘要;
若第一信息摘要与第二信息摘要相同,则确定该证明信息验证通过;
若第一信息摘要与第二信息摘要不同,则确定该证明信息验证失败。
在本申请实施例中,在接收到第一跨链网关发送的跨链交易请求后,对跨链交易请求中携带的多签信息和证明信息进行验证。在该多签信息和证明信息验证通过情况下,中继链系统可以确定跨链交易请求中携带的第一哈希值是对来自第一应用链的目标跨链交易处理得到的,以及确定跨链交易请求中携带的第一哈希值和第一加密数据是对同一跨链交易处理得到的,从而确定第一加密数据是对来自第一应用链的目标跨链交易处理得到的,也即确定第一加密数据具有真实性,从而可以向第二跨链网关发送第一加密数据。本申请实施例中,中继链系统可以验证第一跨链网关发送的第一加密数据的真实性,以确保第一加密数据对应的跨链交易原文并非为恶意生成的或者被篡改的,在第一加密数据具有真实性的情况下中继链系统才将第一加密数据发送给第二跨链网关,从而保证了隐私交易场景下的跨链交易安全性。
需要说明的是:上述实施例提供的跨链交易装置在进行跨链交易时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
上述实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请实施例的保护范围。
上述实施例提供的跨链交易装置与跨链交易方法实施例属于同一构思,上述实施例中单元、模块的具体工作过程及带来的技术效果,可参见方法实施例部分,此处不再赘述。
图10为本申请实施例提供的一种计算机设备的结构示意图。如图10所示,计算机设备10包括:处理器100、存储器101以及存储在存储器101中并可在处理器100上运行的计算机程序102,处理器100执行计算机程序102时实现上述图6实施例中的跨链交易方法中的步骤。
计算机设备10可以是网关设备。本领域技术人员可以理解,图10仅仅是计算机设备10的举例,并不构成对计算机设备10的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,比如还可以包括输入输出设备、网络接入设备等。
处理器100可以是中央处理单元(Central Processing Unit,CPU),处理器100还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器。
存储器101在一些实施例中可以是计算机设备10的内部存储单元,比如计算机设备10的硬盘或内存。存储器101在另一些实施例中也可以是计算机设备10的外部存储设备,比如计算机设备10上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器101还可以既包括计算机设备10的内部存储单元也包括外部存储设备。存储器101用于存储操作系统、应用程序、引导装载程序(Boot Loader)、数据以及其他程序等。存储器101还可以用于暂时地存储已经输出或者将要输出的数据。
图11为本申请实施例提供的一种计算机设备的结构示意图。如图11所示,计算机设备11包括:处理器110、存储器111以及存储在存储器111中并可在处理器110上运行的计算机程序112,处理器110执行计算机程序112时实现上述图7实施例中的跨链交易方法。
计算机设备11可以是有多个服务器的服务器集群,该服务器集群可以为区块链系统。本领域技术人员可以理解,图11仅仅是计算机设备11的举例,并不构成对计算机设备11的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,比如还可以包括输入输出设备、网络接入设备等。
处理器110可以是中央处理单元,处理器110还可以是其他通用处理器、数字信号处理器、专用集成电路、现成可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器。
存储器111在一些实施例中可以是计算机设备11的内部存储单元,比如计算机设备11的硬盘或内存。存储器111在另一些实施例中也可以是计算机设备11的外部存储设备,比如计算机设备11上配备的插接式硬盘、智能存储卡、安全数字卡、闪存卡等。进一步地,存储器111还可以既包括计算机设备11的内部存储单元也包括外部存储设备。存储器111用于存储操作系统、应用程序、引导装载程序、数据以及其他程序等。存储器111还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机设备,该计算机设备包括:至少一个处理器、存储器以及存储在该存储器中并可在该至少一个处理器上运行的计算机程序,该处理器执行该计算机程序时实现上述任意各个方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例中的步骤。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述方法实施例中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,该计算机程序包括计算机程序代码,该计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。该计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。本申请提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。该计算机指令可以存储在上述计算机可读存储介质中。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (16)
1.一种跨链交易方法,其特征在于,应用于第一跨链网关,所述第一跨链网关是与第一应用链系统对接的跨链网关,所述方法包括:
获取所述第一应用链系统发送的目标跨链交易;
根据所述目标跨链交易生成第一哈希值、第一加密数据和证明信息,所述第一哈希值是对所述目标跨链交易进行哈希运算得到的,所述第一加密数据是对所述目标跨链交易进行加密得到的,所述证明信息用于证明所述第一哈希值和所述第一加密数据是对同一跨链交易处理得到的;
获取多签信息,所述多签信息包括所述第一应用链系统中的多个节点中每个节点对所述目标跨链交易的哈希值的签名,所述多签信息用于证明所述第一哈希值是对来自所述第一应用链系统的所述目标跨链交易处理得到的;
向中继链系统发送跨链交易请求,所述跨链交易请求中携带所述多签信息、所述第一哈希值、所述第一加密数据和所述证明信息,所述跨链交易请求用于指示所述中继链系统在所述多签信息和所述证明信息均验证通过时,向第二跨链网关发送所述第一加密数据,所述第二跨链网关是与第二应用链系统对接的跨链网关。
2.如权利要求1所述的方法,其特征在于,所述获取所述第一应用链系统发送的目标跨链交易之前,还包括:
向所述中继链系统发送所述多个节点中每个节点的公钥,所述多个节点中每个节点的公钥用于验证所述多签信息。
3.如权利要求1或2所述的方法,其特征在于,所述根据所述目标跨链交易生成第一哈希值、第一加密数据和证明信息,包括:
将所述目标跨链交易输入证明电路,由所述证明电路输出所述第一哈希值、所述第一加密数据和所述证明信息;
其中,所述证明电路包括哈希电路、第一加密电路、第二加密电路,所述哈希电路和所述第一加密电路的输入数据为所述证明电路的输入数据,所述第二加密电路的一个输入数据为所述哈希电路的输出数据,所述第二加密电路的另一输入数据为所述第一加密电路的输出数据,所述证明电路的输出数据为所述哈希电路的输出数据、所述第一加密电路的输出数据和所述第二加密电路的输出数据;
所述哈希电路用于对输入数据进行哈希运算,所述第一加密电路用于对输入数据进行加密,所述第二加密电路用于根据两个输入数据生成输出数据,所述第二加密电路的输出数据用于证明所述哈希电路的输出数据和所述第一加密电路的输出数据是对同一输入数据处理得到的。
4.如权利要求3所述的方法,其特征在于,所述第二加密电路用于根据两个输入数据和所述证明电路的验证者信息生成输出数据;
所述获取所述第一应用链系统发送的目标跨链交易之前,还包括:
向所述中继链系统发送所述验证者信息,所述验证者信息用于验证所述证明信息是否是通过所述证明电路生成的。
5.如权利要求1或2所述的方法,其特征在于,所述根据所述目标跨链交易生成第一哈希值、第一加密数据和证明信息,包括:
在可信计算环境中,对所述目标跨链交易进行哈希运算,得到所述第一哈希值,以及对所述目标跨链交易进行加密,得到所述第一加密数据;
在所述可信计算环境中,对所述第一哈希值和所述第一加密数据进行哈希运算,得到信息摘要;
在所述可信计算环境中,使用所述可信计算环境的私钥对所述信息摘要进行加密,得到数字签名作为所述证明信息。
6.如权利要求1或2所述的方法,其特征在于,所述获取所述第一应用链系统发送的目标跨链交易,包括:
获取所述第一应用链系统生成的跨链事件,所述跨链事件中携带所述目标跨链交易和目标哈希值,所述目标哈希值为所述第一应用链系统生成的所述目标跨链交易的哈希值;
所述获取多签信息,包括:
向所述多个节点中的每个节点发送请求消息,所述请求消息携带所述目标哈希值,所述请求消息用于请求节点对所述请求消息携带的所述目标哈希值进行签名;
接收所述多个节点中每个节点发送的对所述目标哈希值的签名,以得到所述多签信息。
7.一种跨链交易方法,其特征在于,应用于中继链系统,所述方法包括:
接收第一跨链网关发送的跨链交易请求,所述跨链交易请求中携带多签信息、第一哈希值、第一加密数据和证明信息,所述多签信息用于证明所述第一哈希值是对来自第一应用链系统的跨链交易处理得到的,所述证明信息用于证明所述第一哈希值和所述第一加密数据是对同一跨链交易处理得到的,所述第一跨链网关是与所述第一应用链系统对接的跨链网关;
对所述多签信息进行验证,以及对所述证明信息进行验证;
在所述多签信息和所述证明信息均验证通过的情况下,向第二跨链网关发送所述第一加密数据,所述第二跨链网关是与第二应用链系统对接的跨链网关。
8.如权利要求7所述的方法,其特征在于,所述对所述多签信息进行验证,包括:
根据所述第一应用链系统中多个节点中每个节点的公钥,对所述多签信息进行解密;
若从所述多签信息中成功解密出目标哈希值,则在所述目标哈希值与所述第一哈希值相同的情况下,确定所述多签信息验证通过;
若所述多签信息解密失败,或者,若从所述多签信息中成功解密出目标哈希值且所述目标哈希值与所述第一哈希值不同,则确定所述多签信息验证失败。
9.如权利要求7或8所述的方法,其特征在于,所述接收第一跨链网关发送的跨链交易请求之前,还包括:
接收所述第一跨链网关发送的证明电路的验证者信息,所述证明电路的验证者信息用于验证所述证明信息是否是通过所述证明电路生成的;
其中,所述证明电路包括哈希电路、第一加密电路、第二加密电路,所述哈希电路和所述第一加密电路的输入数据为所述证明电路的输入数据,所述第二加密电路的一个输入数据为所述哈希电路的输出数据,所述第二加密电路的另一输入数据为所述第一加密电路的输出数据,所述证明电路的输出数据为所述哈希电路的输出数据、所述第一加密电路的输出数据和所述第二加密电路的输出数据;
所述哈希电路用于对输入数据进行哈希运算,所述第一加密电路用于对输入数据进行加密,所述第二加密电路用于根据两个输入数据生成输出数据,所述第二加密电路的输出数据用于证明所述哈希电路的输出数据和所述第一加密电路的输出数据是对同一输入数据处理得到的。
10.如权利要求9所述的方法,其特征在于,所述对所述证明信息进行验证,包括:
对所述证明信息进行解密,得到第二哈希值、第二加密数据和目标验证者信息;
在所述目标验证者信息与所述证明电路的验证者信息相同、所述第二哈希值与所述第一哈希值相同、所述第二加密数据与所述第一加密数据相同的情况下,确定所述证明信息验证通过;
在所述目标验证者信息与所述证明电路的验证者信息不同,和/或,所述第二哈希值与所述第一哈希值不同,和/或,所述第二加密数据与所述第一加密数据不同的情况下,确定所述证明信息验证失败。
11.如权利要求7或8所述的方法,其特征在于,所述对所述证明信息进行验证,包括:
在可信计算环境中,使用所述可信计算环境的公钥对所述证明信息进行解密,得到第一信息摘要;
在所述可信计算环境中,对所述第一哈希值和所述第一加密数据进行哈希运算,得到第二信息摘要;
若所述第一信息摘要与所述第二信息摘要相同,则确定所述证明信息验证通过;
若所述第一信息摘要与所述第二信息摘要不同,则确定所述证明信息验证失败。
12.一种跨链交易方法,其特征在于,所述方法包括:
第一跨链网关获取第一应用链系统发送的目标跨链交易;
所述第一跨链网关根据所述目标跨链交易生成第一哈希值、第一加密数据和证明信息,所述第一哈希值是对所述目标跨链交易进行哈希运算得到的,所述第一加密数据是对所述目标跨链交易进行加密得到的,所述证明信息用于证明所述第一哈希值和所述第一加密数据是对同一跨链交易处理得到的;
所述第一跨链网关获取多签信息,所述多签信息包括所述第一应用链系统中的多个节点中每个节点对所述目标跨链交易的哈希值的签名,所述多签信息用于证明所述第一哈希值是对来自所述第一应用链系统的所述目标跨链交易处理得到的;
所述第一跨链网关向中继链系统发送跨链交易请求,所述跨链交易请求中携带所述多签信息、所述第一哈希值、所述第一加密数据和所述证明信息;
所述中继链系统接收所述第一跨链网关发送的跨链交易请求后,对所述多签信息进行验证,以及对所述证明信息进行验证;
所述中继链系统在所述多签信息和所述证明信息均验证通过的情况下,向第二跨链网关发送所述第一加密数据,所述第二跨链网关是与第二应用链系统对接的跨链网关。
13.一种跨链交易装置,其特征在于,应用于第一跨链网关,所述第一跨链网关是与第一应用链系统对接的跨链网关,所述装置包括:
第一获取模块,用于获取所述第一应用链系统发送的目标跨链交易;
生成模块,用于根据所述目标跨链交易生成第一哈希值、第一加密数据和证明信息,所述第一哈希值是对所述目标跨链交易进行哈希运算得到的,所述第一加密数据是对所述目标跨链交易进行加密得到的,所述证明信息用于证明所述第一哈希值和所述第一加密数据是对同一跨链交易处理得到的;
第二获取模块,用于获取多签信息,所述多签信息包括所述第一应用链系统中的多个节点中每个节点对所述目标跨链交易的哈希值的签名,所述多签信息用于证明所述第一哈希值是对来自所述第一应用链系统的所述目标跨链交易处理得到的;
第一发送模块,用于向中继链系统发送跨链交易请求,所述跨链交易请求中携带所述多签信息、所述第一哈希值、所述第一加密数据和所述证明信息,所述跨链交易请求用于指示所述中继链系统在所述多签信息和所述证明信息均验证通过时,向第二跨链网关发送所述第一加密数据,所述第二跨链网关是与第二应用链系统对接的跨链网关。
14.一种跨链交易装置,其特征在于,应用于中继链系统,所述装置包括:
第一接收模块,用于接收第一跨链网关发送的跨链交易请求,所述跨链交易请求中携带多签信息、第一哈希值、第一加密数据和证明信息,所述多签信息用于证明所述第一哈希值是对来自第一应用链系统的跨链交易处理得到的,所述证明信息用于证明所述第一哈希值和所述第一加密数据是对同一跨链交易处理得到的,所述第一跨链网关是与所述第一应用链系统对接的跨链网关;
验证模块,用于对所述多签信息进行验证,以及对所述证明信息进行验证;
发送模块,用于在所述多签信息和所述证明信息均验证通过的情况下,向第二跨链网关发送所述第一加密数据,所述第二跨链网关是与第二应用链系统对接的跨链网关。
15.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至11任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211115217.8A CN115549984A (zh) | 2022-09-14 | 2022-09-14 | 跨链交易方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211115217.8A CN115549984A (zh) | 2022-09-14 | 2022-09-14 | 跨链交易方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115549984A true CN115549984A (zh) | 2022-12-30 |
Family
ID=84726814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211115217.8A Pending CN115549984A (zh) | 2022-09-14 | 2022-09-14 | 跨链交易方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115549984A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116861390A (zh) * | 2023-08-09 | 2023-10-10 | 之江实验室 | 基于聚合签名的跨区块链批量交易认证方法和装置 |
-
2022
- 2022-09-14 CN CN202211115217.8A patent/CN115549984A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116861390A (zh) * | 2023-08-09 | 2023-10-10 | 之江实验室 | 基于聚合签名的跨区块链批量交易认证方法和装置 |
CN116861390B (zh) * | 2023-08-09 | 2024-03-22 | 之江实验室 | 基于聚合签名的跨区块链批量交易认证方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112446785B (zh) | 跨链交易方法、系统、装置、设备和存储介质 | |
CN112822181B (zh) | 跨链交易的验证方法、终端设备及可读存储介质 | |
US20210367789A1 (en) | Retrieving public data for blockchain networks using highly available trusted execution environments | |
CN112737779B (zh) | 一种密码机服务方法、装置、密码机及存储介质 | |
CN107770159B (zh) | 车辆事故数据记录方法及相关装置、可读存储介质 | |
CN105706048B (zh) | 使用硬件信任根的媒体客户端装置鉴权 | |
EP4216077A1 (en) | Blockchain network-based method and apparatus for data processing, and computer device | |
CN109075976A (zh) | 取决于密钥认证的证书发布 | |
CN114374559A (zh) | 用于服务器的平台证明和注册 | |
CN110096894B (zh) | 一种基于区块链的数据匿名共享系统及方法 | |
CN110597836B (zh) | 基于区块链网络的信息查询请求响应方法及装置 | |
CN112804217B (zh) | 一种基于区块链技术的存证方法和装置 | |
CN111241492A (zh) | 一种产品多租户安全授信方法、系统及电子设备 | |
CN112507369B (zh) | 基于区块链的业务处理方法、装置、可读介质及电子设备 | |
CN112446050B (zh) | 应用于区块链系统的业务数据处理方法及装置 | |
CN114868359B (zh) | 多区块链间轻量通讯协定装置及方法 | |
CN112910660A (zh) | 区块链系统的证书颁发方法、添加方法及交易处理方法 | |
CN114244534A (zh) | 数据存储方法、装置、设备和存储介质 | |
CN113610526A (zh) | 一种数据信任方法、装置、电子设备及存储介质 | |
CN112632573A (zh) | 智能合约执行方法、装置、系统、存储介质及电子设备 | |
CN117155549A (zh) | 密钥分发方法、装置、计算机设备和存储介质 | |
US20220131856A1 (en) | Remote Attestation Method and Apparatus | |
US9692641B2 (en) | Network connecting method and electronic device | |
CN115037480A (zh) | 设备认证和校验的方法、装置、设备和存储介质 | |
CN115549984A (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 |