Method and system for handling asset exchange across two block chains

By exchanging oracles and hosting blockchain addresses, and verifying asset transfers with the central processing server, the security and complexity issues in cross-blockchain asset exchange are solved, achieving higher security and user-friendliness.

CN119256317APending Publication Date: 2025-01-03MASTERCARD INT INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380041869.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-05-24
Filing Date
2023-04-24
Publication Date
2025-01-03

AI Technical Summary

Technical Problem

The prior art poses security risks and user operation complexity in asset exchanges across multiple blockchains, especially the problems of asset vulnerability and high user proficiency requirements caused by relying on smart contracts.

Method used

Use the exchange oracle and custodial blockchain address to verify asset transfer through the central processing server, ensure the authenticity and security of assets, reduce dependence on smart contracts, and use custodial addresses to transfer assets.

Benefits of technology

Improve the security and user experience of cross-blockchain asset exchange, make asset exchange easier to execute, reduce the risk of smart contract attacks, and enhance the protection of assets.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119256317A_ABST
    Figure CN119256317A_ABST
Patent Text Reader

Abstract

An exchange check oracle receives a transfer request from a user or smart contract on a first blockchain, the transfer request indicating a first digital asset to be transferred. The exchange check oracle verifies the authenticity of the user and / or the digital assets, and instructs the smart contract to transfer the first digital assets to a hosting blockchain address on the first blockchain. Another exchange check oracle performs the same processing on a second digital asset from a second user on a second blockchain. The central processing server receives a notification of successful transfer of the digital assets to the hosting addresses on the two block chains, verifies the holding of the digital assets by the hosting addresses, and then initiates issuing of the digital assets to new parties on the two block chains.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims the benefit of U.S. Patent Application No. 17 / 752,318, filed on May 24, 2022, the entire contents of which are hereby incorporated by reference herein for all purposes. Technical Field

[0003] The present disclosure relates to processing asset swaps across two blockchains, and more specifically, using a swap check oracle, a central processing server, and a hosted wallet address to ensure secure and verifiable cross-chain asset swaps. Background Art

[0004] Blockchains have been developed and implemented to perform a wide variety of functions. Most notably, blockchains can be used to store and transfer digital assets, such as cryptocurrencies. The simplicity of blockchain creation and operation has led to the emergence of countless different blockchains, each tracking a different digital asset, such as cryptocurrencies, identity tokens, security tokens, etc. However, the same characteristics that make blockchains easy to create and operate also make it difficult to coordinate the transfer of assets across multiple blockchains.

[0005] Traditionally, asset exchanges across multiple blockchains rely on each party holding its digital assets on the corresponding blockchain using smart contracts or other mechanisms, where both smart contracts execute once each asset has been confirmed to have been successfully transferred to the corresponding smart contract. The execution of the contract results in the digital asset being transferred to the other party on the corresponding blockchain. However, these methods rely on the participants to create and deploy smart contracts themselves, which can be difficult for less skilled users and often also results in the use of smart contracts written by third parties, which can pose security risks. In addition, the assets are held by the smart contract itself during the process, which can make the assets vulnerable to attack.

[0006] Therefore, a more secure method is needed to exchange assets on two separate blockchains. Summary of the invention

[0007] The present disclosure provides a description of a system and method for processing an asset exchange across two blockchains. An exchange check oracle receives a transfer request from a user or smart contract on a first blockchain, the request indicating a first digital asset to be transferred. The exchange check oracle verifies the authenticity of the user and / or digital asset, and instructs the smart contract to transfer the first digital asset to a custodial blockchain address on the first blockchain. Another exchange check oracle performs the same process on a second digital asset from a second user on a second blockchain. The successful transfer of the digital asset to the custodial address on both blockchains is notified to a central processing server by the exchange check oracle. The central processing server verifies the holding of the digital asset by the custodial address, and then initiates the release of the digital asset to the new party on the two blockchains. The result is an asset exchange, in which the oracle ensures the authenticity of the parties and assets involved, and the central processing server verifies that the asset is ready to transfer and controls the transfer of the asset using the custodial address. Therefore, asset exchange can be performed more easily than traditional methods to facilitate the use of the users involved, and security is greatly improved by removing the reliance on smart contracts and using secure, controlled custodial addresses.

[0008] A method for processing an asset exchange across two blockchains, comprising: receiving a first transfer request by a first processing system, the first transfer request including at least a first asset identifier associated with a first digital asset, one or more first identification values, and a first recipient address; authorizing the transfer of the first digital asset by the first processing system; submitting one or more instructions by the first processing system to a first smart contract stored on the first blockchain, wherein the submission of the one or more instructions results in the execution of the first smart contract, and wherein the execution of the first smart contract transfers the first digital asset to a first escrow address on the first blockchain; transmitting a first notification message indicating the transfer of the first digital asset to a central processing server by the first processing system; receiving the first notification message from the first processing system by the central processing server; receiving a second notification message from the second processing system by the central processing server, the second notification message indicating the transfer of the second digital asset to a second escrow address on the second blockchain; verifying by the central processing server the successful transfer of the first digital asset on the first blockchain and the successful transfer of the second digital asset on the second blockchain; transferring the first digital asset by the central processing server to the first recipient address on the first blockchain; and transferring the second digital asset by the central processing server to the second recipient address on the second blockchain.

[0009] A system for processing asset exchanges across two blockchains, comprising: a first blockchain network associated with a first blockchain; a second blockchain network associated with a second blockchain; a central processing system; a first processing system; and a second processing system, wherein the first processing system receives a first transfer request, the first transfer request including at least a first asset identifier associated with a first digital asset, one or more first identification values, and a first recipient address, authorizes a transfer of the first digital asset, submits one or more instructions to a first smart contract stored on the first blockchain, wherein the submission of the one or more instructions results in the execution of the first smart contract, and wherein the execution of the first smart contract transfers the first digital asset to a first escrow address on the first blockchain, and transmits a first notification message indicating the transfer of the first digital asset to a central processing server; the central processing server receives the first notification message from the first processing system, receives a second notification message from the second processing system, the second notification message indicating the transfer of the second digital asset to a second escrow address on the second blockchain, verifies the successful transfer of the first digital asset on the first blockchain and the successful transfer of the second digital asset on the second blockchain, transfers the first digital asset to the first recipient address on the first blockchain, and transfers the second digital asset to the second recipient address on the second blockchain. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The scope of the present disclosure can be best understood from the following detailed description of exemplary embodiments when read in conjunction with the accompanying drawings, which include the following figures:

[0011] Figure 1 is a block diagram illustrating a high-level system architecture for handling asset exchanges across two blockchains according to an exemplary embodiment.

[0012] Figure 2 is a diagram illustrating a Figure 1 A block diagram of a computing device in a system for processing asset exchanges across two blockchains.

[0013] Figure 3 is a diagram illustrating a method of Figure 1 Flowchart of a process for performing an asset exchange across two blockchains in a system.

[0014] Figure 4 is a flow chart illustrating an exemplary method for processing an asset exchange across two blockchains according to an exemplary embodiment.

[0015] Figure 5 is a block diagram illustrating a computer system architecture according to an exemplary embodiment.

[0016] Further areas of applicability of the present disclosure will become apparent from the detailed description provided hereinafter.It should be understood that the detailed description of the exemplary embodiments is for illustrative purposes only and is therefore not intended to necessarily limit the scope of the present disclosure. DETAILED DESCRIPTION

[0017] A system for handling asset exchanges across blockchains

[0018] Figure 1 A system 100 is illustrated that facilitates the exchange of digital assets across two blockchains by using an exchange check oracle and escrow blockchain addresses to facilitate users and provide additional security.

[0019] The system 100 may include a processing server 102. The processing server 102 (discussed in more detail below) may be configured to operate as a central processing system to facilitate the exchange of digital assets across two blockchains. The blockchains may be managed by a blockchain network (e.g., a first blockchain network 108, a second blockchain network 110, etc.) included in the system 100. The blockchain network may be composed of a plurality of blockchain nodes. Each blockchain node may be a computing system configured to perform functions related to the processing and management of a blockchain (such as a blockchain discussed in more detail below). Figure 2 or Figure 5 These functions include generation of blockchain data values, verification of proposed blockchain transactions, verification of digital signatures, generation of new blocks, validation of new blocks, and maintenance of copies of the blockchain.

[0020] A blockchain may be a distributed ledger consisting of at least a plurality of blocks. Each block may include at least a block header and one or more data values. Each block header may include at least a timestamp, a block reference value, and a data reference value. The timestamp may be the time when the block header is generated, and may be represented using any suitable method (e.g., UNIX timestamp, DateTime, etc.). The block reference value may be a value that refers to an earlier block in the blockchain (e.g., based on a timestamp). In some embodiments, the block reference value in the block header may be a reference to the block header of the most recently added block before the corresponding block. In an exemplary embodiment, the block reference value may be a hash value generated by hashing the block header of the most recently added block. Similarly, the data reference value may be a reference to one or more data values ​​stored in a block including a block header. In an exemplary embodiment, the data reference value may be a hash value generated by hashing one or more data values. For example, the block reference value may be the root of a Merkle tree generated using one or more data values.

[0021] The use of block reference values ​​and data reference values ​​in each block header renders the blockchain immutable. Any attempted modification of the data value will require the generation of a new data reference value for that block, which in turn will require the generation of new block reference values ​​for subsequent blocks, further requiring the generation of new block reference values ​​in each subsequent block. This must be performed and updated in every single blockchain node in the blockchain network before a new block is generated and added to the blockchain in order to make the change permanent. Computational and communication constraints would make such modifications extremely difficult (if not impossible), rendering the blockchain immutable.

[0022] In some embodiments, blockchain can be used to store information about blockchain transactions conducted between two different blockchain wallets. A blockchain wallet may include a private key of a cryptographic key pair, which is used to generate a digital signature used as a payer's authorization for blockchain transactions, wherein the digital signature can be verified by the blockchain network using the public key of the cryptographic key pair. In some cases, the term "blockchain wallet" may specifically refer to a private key. In other cases, the term "blockchain wallet" may refer to a computing device (e.g., first device 104, second device 106, etc.) that stores a private key for use in a blockchain transaction. For example, each computing device may each have its own private key for a corresponding cryptographic key pair, and each computing device may each be a blockchain wallet for transactions with a blockchain associated with a blockchain network. The computing device may be any type of device suitable for storing and utilizing a blockchain wallet, such as a desktop computer, a laptop computer, a notebook computer, a tablet computer, a cellular phone, a smart phone, a smart watch, a smart TV, a wearable computing device, an implantable computing device, etc.

[0023] If applicable, each blockchain data value stored in the blockchain may correspond to a blockchain transaction or other data storage. A blockchain transaction may include at least: a digital signature of a sender (e.g., first device 104) of the currency generated using the sender's private key, a blockchain address of a recipient (e.g., second device 106) of the currency generated using the recipient's public key, and the amount of blockchain currency transferred or other data stored. In some blockchain transactions, the transaction may also include one or more blockchain addresses of the sender that currently store blockchain currency (e.g., digital signatures proving their access to such currency), and addresses generated using the sender's public key for any changes that the sender wants to keep. The addresses to which cryptocurrency that can be used in future transactions has been sent are called "output" addresses because each address has been previously used to capture the output of a previous blockchain transaction, also known as "unspent transactions" because there is currency sent to the address in a previous transaction, but the currency has not yet been spent. In some cases, a blockchain transaction may also include the sender's public key for use by an entity when verifying the transaction. For traditional processing of blockchain transactions, such data may be provided by the sender or recipient to a blockchain node in a blockchain network. The node may verify the digital signature using the public key in the cryptographic key pair of the sender's wallet, and also verify the sender's access to the funds (e.g., an unspent transaction has not been spent and sent to an address associated with the sender's wallet), a process known as "confirmation" of the transaction, and then include the blockchain transaction in a new block. In traditional blockchain implementations, new blocks may be separately verified by other nodes in the blockchain network before being added to the blockchain and separately distributed to all blockchain nodes in the blockchain network. In cases where a blockchain data value may not be related to a blockchain transaction, but rather to the storage of other types of data, the blockchain data value may still include or otherwise involve verification of a digital signature.

[0024] In the system 100, the first device 104 may control a first digital asset stored in a first blockchain network 108, wherein control of the first digital asset may be represented by storing the first digital asset in a blockchain address on a blockchain associated with the first blockchain network 108 (referred to herein as the "first blockchain"), the blockchain address being generated by a blockchain wallet of the first device 104. The second device 106 may control a second digital asset stored in a second blockchain network 110, wherein, similarly, control of the second digital asset may be represented by storing the second digital asset in a blockchain address on a blockchain associated with the second blockchain network 110 (referred to herein as the "second blockchain"), the blockchain address being generated by a blockchain wallet of the second device 106. The first device 104 and the second device 106 may be any type of computing device suitable for performing the functions discussed herein, such as Figure 2and Figure 5 A computing device, which may be, for example, a desktop computer, a laptop computer, a notebook computer, a tablet computer, a cellular phone, a smart phone, a smart TV, a wearable computing device, an implantable computing device, etc. A digital asset may be any asset stored on a blockchain, and in some cases, an asset may represent a physical asset, such as a legal tender, a land deed, a physical contract, etc.

[0025] The first device 104 and the second device 106 (e.g., or users thereof) may agree to an exchange of a first digital asset for a second digital asset, wherein ownership of the first digital asset on the first blockchain will be transferred to the second device 106 and ownership of the second digital asset on the second blockchain will be transferred to the first device 104. The first device 104 may electronically transmit a transfer request to the first exchange oracle 112 to initiate the process of exchanging assets using a suitable communication network and method. In some embodiments, the first device 104 may transmit the transfer request directly to the first exchange oracle 112. In other embodiments, the transfer request may be submitted to the first exchange oracle 112 via a smart contract stored in the first blockchain, which may be executed according to instructions of the first device 104. In some cases, the first exchange oracle 112 and / or the processing server 102 may provide a template for a smart contract to be used by the first device 104. The first exchange oracle 112 may be any suitable type of computing device, such as Figure 2 and Figure 5 The computing devices shown in and discussed in more detail below may also be blockchain nodes in the first blockchain network 108. In some cases, the first exchange oracle 112 may be an application executed by the processing server 102.

[0026] The transfer request may be received by the first exchange oracle 112. The transfer request may include at least an identifier associated with the first digital asset, referred to herein as an asset identifier, which may be a value unique to the first digital asset for identifying the first digital asset, such as an identification number, a blockchain address, etc. The transfer request may also include data for verifying the ownership of the first digital asset by the first device 104, such as a digital signature generated using a private key of a blockchain wallet of the first device 104, which owns the ownership of the first digital asset on the first blockchain. In some cases, the transfer request may also include one or more identification data values ​​associated with the first device 104 and / or its user. In such cases, the processing discussed herein may include verification and / or authentication of the first device 104 and / or its user. The identification value may include any data suitable for verifying the authenticity of a computing device or its user, such as a media access control address, a serial number, a registration number, a telephone number, an email address, a name, a payment account number, a security code, a street address, a zip code, etc.

[0027] The first exchange oracle 112 may receive the transfer request and may verify the authenticity of the first digital asset and the first device's ownership thereof. In the event that it is desired to authenticate the first device 104 and / or its user, the first exchange oracle 112 may also initiate a process to authenticate it. In some embodiments, the first exchange oracle 112 may perform such authentication itself. In other embodiments, the first exchange oracle 112 may forward the transfer request or the data included therein to the processing server 102 using a suitable communication network and method, wherein the processing server 102 may perform the authentication and return the result of the authentication to the first exchange oracle 112. The authentication of the first digital asset and the first device's ownership thereof may be performed by verifying the digital signature included in the transfer request using the public key of the blockchain wallet of the first device and ensuring that the first digital asset associated with the asset identifier is stored in a blockchain address in the first blockchain controlled by the blockchain wallet of the first device. The authentication of the first device 104 and / or its user may include verification of one or more identification values ​​included in the transfer request. For example, a user of the first device 104 may provide a name, street address, and an account number and security code for a payment card, where the processing server 102 (e.g., or the first exchange oracle 112, if applicable) may perform “Know Your Customer” (or “KYC”) processing to verify the identity of the user of the first device 104 using the provided information.

[0028] If the authentication(s) performed by the first exchange oracle 112 are successful, the first exchange oracle 112 may initiate a transfer of the first digital asset to an escrow address on the first blockchain (referred to herein as the "first escrow address"). The escrow address may be a blockchain address generated by a public key of a blockchain wallet associated with the first blockchain, the private key of which is stored or otherwise controlled by the processing server 102. The escrow address may be generated directly by the first exchange oracle 112, or by the processing server 102, such as by providing a positive authentication result to the first exchange oracle 112. The transfer of the first digital asset to the first escrow address may be performed by the first device 104, such as by the first exchange oracle 112 providing the escrow address to the first device 104 and the first device 104 submitting a new blockchain transaction to a blockchain node in the first blockchain network 108 for transferring the first digital asset to the first escrow address. In the case of submitting a transfer request using a smart contract, the transfer of the first digital asset can be executed by the smart contract, wherein the first exchange oracle 112 can submit the first escrow address as input to the smart contract, and the smart contract can execute and transfer the first digital asset to the first escrow address.

[0029] Once the first digital asset has been transferred to the first escrow address, the first exchange oracle 112 may electronically transmit a notification message indicating the successful transfer of ownership of the first digital asset to the processing server 102. The notification message may include an asset identifier, a transaction identifier (e.g., generated by the first exchange oracle 112 and / or processing server 102 to be included in all messages related to the asset exchange), an identification value provided by a blockchain node in the first blockchain network 108 that corresponds to a blockchain data value used to transfer the first digital asset to the first escrow address, and the like.

[0030] Before, after, or concurrently with the transfer of ownership of the first digital asset to the first escrow address, ownership of the second digital asset may be transferred to a second escrow address on the second blockchain. The second device 106 and the second exchange oracle 114 may perform the same steps discussed above for transferring ownership of the second digital asset to a second escrow address generated by a public key of a blockchain wallet associated with the second blockchain, the private key of which is stored in the processing server 102 or otherwise controlled by the processing server 102. In some cases, the transfer of ownership of the second digital asset may include exactly the same steps as the transfer of ownership of the first digital asset. In other cases, the steps for the transfer of ownership of the first and second digital assets may be different. For example, the first digital asset may be transferred via the use of a smart contract, while the second digital asset may be transferred directly by the second device 106 without the use of a smart contract. In some cases, the blockchain itself may specify the steps and processes used when transferring ownership of the corresponding digital assets. In some instances, the digital assets may be different types of assets. For example, the first digital asset may be a token representing a fiat currency, while the second digital asset may be a cryptocurrency.

[0031] In some embodiments, the processing server 102 may verify the successful transfer of the digital asset to the corresponding escrow address after receiving the notification message. The processing server 102 may identify the escrow address in the blockchain directly or with the help of a blockchain node in the corresponding blockchain network to determine whether the digital asset associated with the asset identifier has been successfully transferred to the address. Once the processing server 102 has received a notification message from the first exchange oracle 112 indicating that the ownership of the first digital asset on the first blockchain is transferred to the first escrow address and a notification message from the second exchange oracle 114 indicating that the ownership of the second digital asset on the second blockchain is transferred to the second escrow address and verified the transfer (if applicable), the processing server 102 may initiate the transfer of the two digital assets.

[0032] Processing server 102 may submit a first blockchain transaction to a blockchain node in first blockchain network 108 to transfer the first digital asset from the first escrow address to a blockchain wallet associated with the first blockchain of second device 106 (e.g., to a blockchain address generated by second device 106 and provided to processing server 102, such as in a transfer request). Processing server 102 may also submit a second blockchain transaction to a blockchain node in second blockchain network 110 to transfer the second digital asset from the second escrow address to a blockchain wallet associated with the second blockchain of first device 104 (e.g., to a blockchain address generated by second device 106 and provided to processing server 102, such as in a transfer request). As a result, first device 104 obtains the second digital asset on the second blockchain and second device 106 obtains the first digital asset on the first blockchain, thereby facilitating asset exchange across two blockchains.

[0033] In some embodiments, the first blockchain network 108 and the second blockchain network 110 may perform settlement processing, such as a transfer of ownership of an asset as a result of an exchange of assets using the processes discussed above. For example, the first blockchain and the second blockchain may each be operated by or on behalf of a financial institution, and one of the financial institutions may be required to pay legal tender to the other financial institution as a result of the exchange of assets. In another example, if the exchange of assets is for a digital asset corresponding to a physical object (e.g., a deed to a commodity, land, etc.), then an entity associated with the blockchain network in which the digital asset is stored may be required to perform one or more actions on or involving the physical object, such as recording a transfer of ownership, physically delivering the physical object to the new owner, and the like.

[0034] In some embodiments, the authentication performed on the first device 104 and / or the second device 106 and / or its user can be based on various criteria. For example, a user of the first device 104 and / or the second device 106 can require that a certain level of authentication be performed on another user as part of an asset exchange. The level of authentication can refer to the amount and / or type of data used to authenticate the device and / or its user. In another example, each blockchain network can require a certain level of authentication to be performed on the user of the associated blockchain performing the asset exchange, where the level can also be based on other blockchains involved in the asset exchange. In yet another example, the level of authentication can be based on geographic location, where the data used in the authentication can be specified by the geographic location of the device, its user, the blockchain network, and / or the exchange oracle.

[0035] The result of the methods and systems discussed herein is an exchange of assets across two blockchains that is easier for the users involved while having greater security than using traditional methods. The use of exchange oracles 112 and 114 ensures that users, devices, and / or digital assets can be authenticated at an appropriate level to provide adequate security desired by all parties involved, while the use of escrow addresses and processing servers 102 provides much greater security than traditional methods to ensure that smart contracts cannot be hacked to steal digital assets and prevent malicious behavior by either party involved in the exchange.

[0036] Computing equipment

[0037] Figure 2 An embodiment of a computing device 200 is illustrated. It will be appreciated by those skilled in the relevant art that Figure 2 The embodiments of computing device 200 shown in the figures are provided for illustration only and are not intended to be exhaustive of all possible configurations of computing device 200 suitable for performing the functions discussed herein. Figure 5 The computer system 500 shown in and discussed in more detail below may be a suitable configuration for the processing server 102. In some cases, components of the system 100 (such as the processing server 102, the first device 104, the second device 106, the first exchange oracle 112, the second exchange oracle 114, or the blockchain nodes of the first blockchain network 108 and / or the second blockchain network 110) may include Figure 2 Components shown in and discussed below.

[0038] The computing device 200 may include a receiving device 202. The receiving device 202 may be configured to receive data on one or more networks via one or more network protocols. In some instances, the receiving device 202 may be configured to receive data from the processing server 102, the first device 104, the second device 106, the first exchange oracle 112, the second exchange oracle 114, the blockchain node, and other systems and entities via one or more communication methods (such as radio frequency, local area network, wireless area network, cellular communication network, Bluetooth, Internet, etc.). In some embodiments, the receiving device 202 may be composed of multiple devices, such as different receiving devices for receiving data through different networks, such as a first receiving device for receiving data through a local area network and a second receiving device for receiving data via the Internet. The receiving device 202 may receive an electronically transmitted data signal, wherein the data may be superimposed or otherwise encoded on the data signal, and decoded, parsed, read, or otherwise obtained via the reception of the data signal by the receiving device 202. In some instances, the receiving device 202 may include a parsing module for parsing the received data signal to obtain the data superimposed thereon. For example, receiving device 202 may include a parser program configured to receive data signals and transform the received data signals into usable inputs for functions executed by a processing device to perform the methods and systems described herein.

[0039] The receiving device 202 may be configured to receive a data signal electronically transmitted by the processing server 102, the data signal being superimposed or otherwise encoded with a blockchain transaction, a notification of successful asset transfer, an authentication result, an escrow address, etc. The receiving device 202 may also be configured to receive a data signal electronically transmitted by the first device 104 and / or the second device 106, the data signal being superimposed or otherwise encoded with a transfer request, a blockchain address, an asset identifier, an identification value, a blockchain transaction, etc. The receiving device 202 may also be configured to receive a data signal electronically transmitted by the first exchange oracle 112 and / or the second exchange oracle 114, the data signal being superimposed or otherwise encoded with a transfer request, an authentication result, an escrow address, a smart contract instruction, a notification message, etc. The receiving device 202 may also be configured to receive a data signal electronically transmitted by a blockchain node of the first blockchain network 108 and / or the second blockchain network 110, the data signal being superimposed or otherwise encoded with a blockchain data value, an identifier, a digital signature, etc.

[0040] The computing device 200 may also include a communication module 204. The communication module 204 may be configured to transmit data between modules, engines, databases, memories, and other components of the computing device 200 for performing the functions discussed herein. The communication module 204 may be composed of one or more communication types and communicate within the computing device using various communication methods. For example, the communication module 204 may be composed of a bus, a contact pin connector, wires, etc. In some embodiments, the communication module 204 may also be configured to communicate between internal components of the computing device 200 and external components of the computing device 200 (such as externally connected databases, display devices, input devices, etc.). The computing device 200 may also include a processing device. The processing device may be configured to perform the functions of the computing device 200 discussed herein, which are obvious to those skilled in the relevant art. In some embodiments, the processing device may include and / or be composed of multiple engines and / or modules, which are specifically configured to perform one or more functions of the processing device, such as a query module 216, a generation module 218, a verification module 220, etc. As used herein, the term "module" may be software or hardware that is specifically programmed to receive input, perform one or more processes using the input, and provide output. Based on this disclosure, the input, output, and processes performed by the various modules will be apparent to those skilled in the art.

[0041] The computing device 200 may also include blockchain data 206, which may be stored in the memory 214 of the computing device 200 or stored in or accessible by a separate area within the computing device 200. The blockchain data 206 may include a blockchain, which may be composed of a plurality of blocks and associated with the first blockchain network 108 or the second blockchain network 110. In some cases, the blockchain data 206 may also include any other data associated with the blockchain and its management and execution, such as a block generation algorithm, a digital signature generation and confirmation algorithm, communication data for blockchain nodes, smart contracts, cryptographic key pairs, public keys, etc.

[0042] The computing device 200 may also include a memory 214. The memory 214 may be configured to store data for use by the computing device 200 in performing the functions discussed herein, such as public and private keys, symmetric keys, and the like. The memory 214 may be configured to store data using suitable data formatting methods and patterns, and may be any suitable type of memory, such as read-only memory, random access memory, and the like. The memory 214 may include, for example, encryption keys and algorithms, communication protocols and standards, data formatting standards and protocols, program code for modules and applications for processing devices, and other data that may be suitable for use by the computing device 200 in performing the functions disclosed herein, which will be apparent to those skilled in the relevant art. In some embodiments, the memory 214 may consist of or otherwise include a relational database that utilizes a structured query language to store, identify, modify, update, access, and the like structured data sets stored therein. The memory 214 may be configured to store, for example, cryptographic keys, cryptographic key pairs, cryptographic algorithms, encryption algorithms, communication information, data formatting rules, authentication level data, authentication rules, message formatting rules, smart contract instructions, rules associated with different types of digital assets, and the like.

[0043] The computing device 200 may include a query module 216. The query module 216 may be configured to perform a query on a database to identify information. The query module 216 may receive one or more data values ​​or query strings and may execute the query string on an indicated database (such as the memory 214 of the computing device 200) based on the data values ​​or query strings to identify information stored therein. The query module 216 may then output the identified information to an appropriate engine or module of the computing device 200 as needed. For example, the query module 216 may perform a query on the memory 214 to identify a public key of a blockchain wallet associated with a first blockchain to be used in generating a first escrow address.

[0044] The computing device 200 may also include a generation module 218. The generation module 218 may be configured to generate data for use by the computing device 200 in performing the functions discussed herein. The generation module 218 may receive instructions as input, may generate data based on the instructions, and may output the generated data to one or more modules of the computing device 200. For example, the generation module 218 may be configured to generate data messages, notification messages, blockchain addresses, blockchain transactions, asset transfer instructions, transfer requests, identification values, authentication result messages, etc.

[0045] The computing device 200 may also include a verification module 220. The verification module 220 may be configured to perform verification and authentication on the computing device 200 as part of the functionality discussed herein. The verification module 220 may receive as input an instruction, which may also include data for performing the verification or authentication, may perform the verification or authentication upon request, and may output the results of the verification or authentication to another module or engine of the computing device 200. For example, the verification module 220 may be configured to verify ownership of a digital asset requested to be transferred as part of an asset exchange, authenticate a device or its user, verify a successful transfer of a digital asset to an escrow address, and the like.

[0046] The computing device 200 may also include a transmission device 222. The transmission device 222 may be configured to transmit data on one or more networks via one or more network protocols. In some instances, the transmission device 222 may be configured to transmit data to the processing server 102, the first device 104, the second device 106, the first exchange oracle 112, the second exchange oracle 114, the blockchain node, and other entities via one or more communication methods, local area network, wireless area network, cellular communication, Bluetooth, radio frequency, the Internet, etc. In some embodiments, the transmission device 222 may be composed of multiple devices, such as different transmission devices for transmitting data through different networks, such as a first transmission device for transmitting data through a local area network and a second transmission device for transmitting data through the Internet. The transmission device 222 may electronically transmit a data signal with superimposed data, which may be parsed by a receiving computing device. In some instances, the transmission device 222 may include one or more modules for superimposing, encoding, or otherwise formatting data into a data signal suitable for transmission.

[0047] The transmission device 222 may be configured to electronically transmit a data signal to the processing server 102, which data signal may be superimposed or otherwise encoded with a blockchain transaction, a notification message, an authentication result, a blockchain data value, a transfer request, a blockchain address, etc. The transmission device 222 may be configured to electronically transmit a data signal to the first device 104 and / or the second device 106, which data signal may be superimposed or otherwise encoded with a blockchain address, an identification value request, an asset transfer instruction, a notification message, etc. The transmission device 222 may be configured to electronically transmit a data signal to the first exchange oracle 112 and / or the second exchange oracle 114, which data signal may be superimposed or otherwise encoded with a transfer request, an authentication result, a escrow address, a notification message, an identification value, an asset identifier, a blockchain data value, etc. The transmission device 222 can be configured to electronically transmit a data signal to a blockchain node of the first blockchain network 108 and / or the second blockchain network 110, which data signal can be superimposed or otherwise encoded with a blockchain data value, a digital signature, a blockchain transaction, a request for blockchain data, a cryptographic key, etc.

[0048] Processing for performing asset swaps on two blockchains

[0049] Figure 3 A process for performing an asset exchange of digital assets stored in two different blockchains in system 100 is illustrated.

[0050] In step 302, the first device 104 may electronically transmit (e.g., via the transmission device 222) a transfer request to the first exchange oracle 112 using a suitable communication network and method. The transfer request may include an asset identifier associated with the first digital asset on the first blockchain, a recipient blockchain address for the first device 104 on the second blockchain, and one or more identification values. In step 304, the first exchange oracle 112 may electronically transmit (e.g., via the transmission device 222) a verification request to the processing server 102 using a suitable communication network and method. The verification request may include at least one or more identification values. The processing server 102 may (e.g., via the verification module 220) perform one or more authentications using the received one or more identification values. If the authentication(s) are successful, then the processing server 102 may (e.g., via the generation module 218) generate a first escrow address using a blockchain wallet associated with the first blockchain, and in step 306, electronically transmit (e.g., via the transmission device 222) a notification indicating the authentication(s) are successful and the first escrow address back to the first exchange oracle 112.

[0051] In step 308, the first exchange oracle 112 may electronically transmit (e.g., via the transmission device 222) an instruction message to the first device 104, the instruction message including the first escrow address and instructing the first device 104 to transfer the first digital asset to the first escrow address on the first blockchain. The first device 104 may receive (e.g., via the receiving device 202) the message and may submit a new blockchain transaction to a blockchain node in the first blockchain network 108 to transfer the first digital asset to the first escrow address using conventional methods. The blockchain node may return a transaction identifier or other unique value regarding the blockchain data value of the new blockchain transaction to the first device 104 (e.g., received via the receiving device 202). In step 310, the first device 104 may electronically transmit (e.g., via the transmission device 222) a notification of the transfer of the first digital asset including the transaction identifier or other unique value to the first exchange oracle 112. In step 312, the first exchange oracle 112 may forward the transfer notification (e.g., via the transmission device 222) to the processing server 102 using a suitable communication network and method.

[0052] In step 314, the second device 106 may electronically transmit (e.g., via the transmission device 222) a transfer request to the second exchange oracle 114 using a suitable communication network and method. The transfer request may include an asset identifier associated with the second digital asset on the second blockchain, a recipient blockchain address for the second device 106 on the first blockchain, and one or more identification values. In step 316, the second exchange oracle 114 may electronically transmit (e.g., via the transmission device 222) a verification request to the processing server 102 using a suitable communication network and method. The verification request may include at least one or more identification values. The processing server 102 may (e.g., via the verification module 220) perform one or more authentications using the received one or more identification values. If the authentication(s) are successful, then the processing server 102 may (e.g., via the generation module 218) generate a second escrow address using a blockchain wallet associated with the second blockchain, and in step 318, electronically transmit (e.g., via the transmission device 222) a notification indicating the authentication(s) are successful and the second escrow address back to the second exchange oracle 114.

[0053] In step 320, the second exchange oracle 114 may electronically transmit (e.g., via the transmission device 222) an instruction message to the second device 106, the instruction message including the second escrow address and instructing the second device 106 to transfer the second digital asset to the second escrow address on the second blockchain. The second device 106 may receive (e.g., via the receiving device 202) the message and may submit a new blockchain transaction to a blockchain node in the second blockchain network 110 to transfer the second digital asset to the second escrow address using conventional methods. The blockchain node may return a transaction identifier or other unique value about the blockchain data value for the new blockchain transaction to the second device 106 (e.g., received via the receiving device 202). In step 322, the second device 106 may electronically transmit (e.g., via the transmission device 222) a notification of the transfer of the second digital asset including the transaction identifier or other unique value to the second exchange oracle 114. In step 324, the second exchange oracle 114 may forward the transfer notification (e.g., via the transmission device 222) to the processing server 102 using a suitable communication network and method. Steps 314 to 324 may be performed before steps 302 to 312 , after steps 302 to 312 , or concurrently while steps 302 to 312 are being performed.

[0054] In step 326, the processing server 102 may submit a new blockchain transaction to a blockchain node in the second blockchain network 110 to transfer the second digital asset to a recipient blockchain address on the second blockchain for the first device 104. As a result, the first device 104 obtains ownership of the second digital asset on the second blockchain. In step 328, the processing server 102 may submit a new blockchain transaction to a blockchain node in the first blockchain network 108 to transfer the first digital asset to a recipient blockchain address on the first blockchain for the second device 106. As a result, the second device 106 obtains ownership of the first digital asset on the first blockchain.

[0055] Exemplary Method for Processing Asset Exchanges Across Two Blockchains

[0056] Figure 4 Illustrated is a method 400 for processing an asset exchange across two blockchains using multiple processing systems, a central processing server, and a managed blockchain address.

[0057] In step 402, a first transfer request may be received (e.g., via receiving device 202) by a first processing system (e.g., first exchange oracle 112), the transfer request including at least a first asset identifier associated with a first digital asset, one or more first identification values, and a first recipient address. In step 404, the first processing system may authorize (e.g., via verification module 220) the transfer of the first digital asset. In step 406, one or more instructions may be submitted (e.g., via transmission device 222) by the first processing system (e.g., first exchange oracle 112) to a first smart contract stored on a first blockchain, wherein submission of the one or more instructions results in execution of the first smart contract, and wherein execution of the first smart contract transfers the first digital asset to a first escrow address on the first blockchain.

[0058] In step 408, a first notification message indicating a transfer of the first digital asset may be transmitted by the first processing system (e.g., via transmission device 222) to a central processing server (e.g., processing server 102). In step 410, the first notification message may be received by the central processing server from the first processing system (e.g., via receiving device 202). In step 412, the central processing server may receive (e.g., via receiving device 202) a second notification message from a second processing system (e.g., second exchange oracle 114) indicating a transfer of the second digital asset to a second escrow address on a second blockchain.

[0059] In step 414, the central processing server may verify (e.g., via verification module 220) the successful transfer of the first digital asset on the first blockchain and the successful transfer of the second digital asset on the second blockchain. In step 416, the first digital asset may be transferred by the central processing server to the first recipient address on the first blockchain. In step 418, the second digital asset may be transferred by the central processing server to the second recipient address on the second blockchain.

[0060] In one embodiment, the first processing system and the second processing system may be a single computing device (e.g., computing device 200). In some embodiments, the first processing system and the second processing system may be applications executed by a central processing server. In one embodiment, the first processing system may be a first blockchain node in a first blockchain network associated with a first blockchain (e.g., first blockchain network 108), and the second processing system may be a second blockchain node in a second blockchain network associated with a second blockchain (e.g., second blockchain network 110). In some embodiments, authorizing the transfer of the first digital asset may include generating a first escrow address.

[0061] In one embodiment, authorizing the transfer of the first digital asset may include: transmitting at least one or more identification values ​​to a central processing server by the first processing system (e.g., via transmission device 222); verifying the one or more identification values ​​by the central processing server (e.g., via verification module 220); generating a first escrow address by the central processing server (e.g., via generation module 218); and receiving a message from the central processing server by the first processing system (e.g., via receiving device 202) indicating successful verification of the one or more identification values, the message also including the first escrow address. In some embodiments, the first transfer request may be received from a first smart contract. In one embodiment, authorizing the transfer of the first digital asset may include verifying (e.g., via verification module 220) the authenticity of the first digital asset.

[0062] Computer system architecture

[0063] Figure 5 A computer system 500 is illustrated in which embodiments of the present disclosure or portions thereof may be implemented as computer readable code. For example, Figure 1 The processing server 102, the first device 104, the second device 106, the first exchange oracle 112 and the second exchange oracle 114 and Figure 2 The computing device 200 may be implemented in the computer system 500 using hardware, a non-transitory computer-readable medium having instructions stored thereon, or a combination thereof, and may be implemented in one or more computer systems or other processing systems. The hardware may embody the instructions for implementing Figure 3 and Figure 4 Modules and components of the method.

[0064] If programmable logic is used, such logic can be executed on a commercially available processing platform configured by executable software code to become a special-purpose computer or special-purpose device (e.g., a programmable logic array, an application-specific integrated circuit, etc.). It can be appreciated by those of ordinary skill in the art that embodiments of the disclosed subject matter can be practiced with a variety of computer system configurations, including multi-core multi-processor systems, minicomputers, mainframe computers, computers linked or clustered with distributed functions, and pervasive or microcomputers that can be embedded in almost any device. For example, the above embodiments can be implemented using at least one processor device and a memory.

[0065] A processor unit or device as discussed herein may be a single processor, a plurality of processors, or a combination thereof. A processor device may have one or more processor "cores". As discussed herein, the terms "computer program medium", "non-transitory computer readable medium", and "computer usable medium" are generally used to refer to tangible media, such as removable storage unit 518, removable storage unit 522, and a hard disk installed in hard disk drive 512.

[0066] Various embodiments of the present disclosure are described in terms of this example computer system 500. After reading this description, those skilled in the relevant art will recognize how to implement the present disclosure using other computer systems and / or computer architectures. Although operations may be described as being processed sequentially, some operations may actually be performed in parallel, concurrently, and / or in a distributed environment, and program code may be stored locally or remotely for access by a single processor or multiple processor machines. In addition, in some embodiments, the order of operations may be rearranged without departing from the spirit of the disclosed subject matter.

[0067] Processor device 504 can be a dedicated or general processor device specially configured to perform the functions discussed herein. Processor device 504 can be connected to communication infrastructure 506, such as bus, message queue, network, multi-core message delivery scheme, etc. The network can be any network suitable for performing the functions disclosed herein, and can include local area network (LAN), wide area network (WAN), wireless network (e.g., WiFi), mobile communication network, satellite network, Internet, optical fiber, coaxial cable, infrared, radio frequency (RF) or any combination thereof. Other suitable network types and configurations will be obvious to those skilled in the art. Computer system 500 can also include main memory 508 (e.g., random access memory, read-only memory, etc.) and can also include auxiliary memory 510. Auxiliary memory 510 can include hard disk drive 512 and removable storage drive 514, such as floppy disk drive, tape drive, optical disk drive, flash memory, etc.

[0068] Removable storage drive 514 can read from and / or write to removable storage unit 518 in a well-known manner. Removable storage unit 518 may include a removable storage medium that can be read and written by removable storage drive 514. For example, if removable storage drive 514 is a floppy disk drive or a universal serial bus port, then removable storage unit 518 may be a floppy disk or a portable flash drive, respectively. In one embodiment, removable storage unit 518 may be a non-transitory computer-readable recording medium.

[0069] In some embodiments, secondary memory 510 may include replaceable components for allowing computer programs or other instructions to be loaded into computer system 500, such as removable storage units 522 and interfaces 520. Examples of such components may include program cartridges and cartridge interfaces (e.g., as found in video game systems), removable memory chips (e.g., EEPROM, PROM, etc.) and associated sockets, as well as other removable storage units 522 and interfaces 520, as will be apparent to persons skilled in the relevant art(s).

[0070] Data stored in computer system 500 (e.g., in primary memory 508 and / or secondary memory 510) may be stored on any type of suitable computer-readable medium, such as an optical storage device (e.g., a compact disk, a digital versatile disk, a Blu-ray disk, etc.) or a tape storage device (e.g., a hard drive). The data may be configured in any type of suitable database configuration, such as a relational database, a structured query language (SQL) database, a distributed database, an object database, etc. Suitable configurations and storage types will be apparent to those skilled in the relevant art.

[0071] The computer system 500 may also include a communication interface 524. The communication interface 524 may be configured to allow software and data to be transferred between the computer system 500 and external devices. Exemplary communication interfaces 524 may include a modem, a network interface (e.g., an Ethernet card), a communication port, a PCMCIA slot and card, etc. The software and data transferred via the communication interface 524 may be in the form of signals, which may be electronic, electromagnetic, optical, or other signals, as will be apparent to those skilled in the relevant art. The signals may travel via a communication path 526, which may be configured to carry the signals and may be implemented using wires, cables, optical fibers, telephone lines, cellular phone links, radio frequency links, etc.

[0072] The computer system 500 may also include a display interface 502. The display interface 502 may be configured to allow data to be transferred between the computer system 500 and an external display 530. Exemplary display interfaces 502 may include a high-definition multimedia interface (HDMI), a digital video interface (DVI), a video graphics array (VGA), etc. The display 530 may be any suitable type of display for displaying data transmitted via the display interface 502 of the computer system 500, including a cathode ray tube (CRT) display, a liquid crystal display (LCD), a light emitting diode (LED) display, a capacitive touch display, a thin film transistor (TFT) display, etc.

[0073] Computer program media and computer usable media may refer to memory, such as main memory 508 and secondary memory 510, which may be memory semiconductors (e.g., DRAM, etc.). These computer program products may be components for providing software to computer system 500. Computer programs (e.g., computer control logic) may be stored in main memory 508 and / or secondary memory 510. Computer programs may also be received via communication interface 524. Such computer programs, when executed, may enable computer system 500 to implement the present methods discussed herein. In particular, the computer programs, when executed, may enable processor device 504 to implement the methods described herein. Figure 3 and Figure 4 The method shown, as discussed herein. Thus, such a computer program may represent a controller of the computer system 500. Where software is used to implement the present disclosure, the software may be stored in a computer program product and loaded into the computer system 500 using the removable storage drive 514, the interface 520, and the hard disk drive 512 or the communication interface 524.

[0074] The processor device 504 may include one or more modules or engines configured to perform the functions of the computer system 500. Each module or engine may be implemented using hardware, and in some instances, software such as corresponding to program code and / or programs stored in the main memory 508 or the auxiliary memory 510 may also be utilized. In such instances, the program code may be compiled by the processor device 504 (e.g., by a compilation module or engine) before being executed by the hardware of the computer system 500. For example, the program code may be a source code written in a programming language that is translated into a lower-level language (such as assembly language or machine code) for execution by the processor device 504 and / or any additional hardware components of the computer system 500. The process of compilation may include the use of lexical analysis, preprocessing, parsing, semantic analysis, syntax-oriented conversion, code generation, code optimization, and any other technology that may be suitable for converting program code into a lower-level language suitable for controlling the computer system 500 to perform the functions disclosed herein. It will be apparent to those skilled in the relevant art that such processing results in the computer system 500 being a specially configured computer system 500 that is specially programmed to perform the functions discussed above.

[0075] Technology consistent with the present disclosure provides, among other features, systems and methods for processing asset exchanges across two blockchains. Although various exemplary embodiments of the disclosed systems and methods have been described above, it should be understood that they are presented for purposes of illustration only, not limitation. It is not exhaustive and does not limit the present disclosure to the precise form disclosed. Modifications and variations are possible in light of the above teachings, or may be obtained from the practice of the present disclosure without departing from the breadth or scope.

Claims

1. A method for processing asset exchange across two blockchains, comprising: receiving, by a first processing system, a first transfer request including at least a first asset identifier associated with a first digital asset, one or more first identification values, and a first recipient address; authorizing, by the first processing system, a transfer of the first digital asset; submitting, by the first processing system, one or more instructions to a first smart contract stored on the first blockchain, wherein submission of the one or more instructions results in execution of the first smart contract, and wherein execution of the first smart contract transfers a first digital asset to a first escrow address on the first blockchain; transmitting, by the first processing system to the central processing server, a first notification message indicating a transfer of the first digital asset; Receiving, by the central processing server, a first notification message from the first processing system; Receiving, by the central processing server from the second processing system, a second notification message indicating a transfer of a second digital asset to a second escrow address on a second blockchain; Verifying, by a central processing server, a successful transfer of the first digital asset on the first blockchain and a successful transfer of the second digital asset on the second blockchain; The central processing server transfers the first digital asset to a first recipient address on the first blockchain; as well as The central processing server transfers the second digital asset to a second recipient address on the second blockchain.

2. The method of claim 1, wherein the first processing system and the second processing system are a single computing device.

3. The method of claim 1, wherein the first processing system and the second processing system are application programs executed by a central processing server.

4. The method of claim 1, wherein The first processing system is a first blockchain node in a first blockchain network associated with a first blockchain, and The second processing system is a second blockchain node in a second blockchain network associated with a second blockchain.

5. The method of claim 1, wherein authorizing the transfer of the first digital asset comprises generating a first escrow address.

6. The method of claim 1 , wherein authorizing the transfer of the first digital asset comprises: transmitting, by the first processing system, at least the one or more identification values ​​to a central processing server; verifying, by a central processing server, the one or more identification values; The central processing server generates a first hosting address; as well as A message is received by the first processing system from the central processing server indicating successful verification of the one or more identification values, the message also including the first escrow address.

7. The method of claim 1, wherein the first transfer request is received from a first smart contract.

8. The method of claim 1, wherein authorizing the transfer of the first digital asset includes verifying the authenticity of the first digital asset.

9. A system for processing asset exchanges across two blockchains, comprising: a first blockchain network associated with the first blockchain; a second blockchain network associated with the second blockchain; Central processing system; First treatment system; as well as A second processing system, wherein First processing system receiving a first transfer request, the first transfer request including at least a first asset identifier associated with a first digital asset, one or more first identification values, and a first recipient address, authorize the transfer of the first digital asset, submitting one or more instructions to a first smart contract stored on a first blockchain, wherein submission of the one or more instructions results in execution of the first smart contract, and wherein the execution of the first smart contract transfers the first digital asset to the first escrow address on the first blockchain, and transmitting a first notification message indicating a transfer of a first digital asset to a central processing server; Central Processing Server receiving a first notification message from a first processing system, receiving a second notification message from a second processing system, the second notification message indicating a transfer of a second digital asset to a second escrow address on a second blockchain, Verify the successful transfer of the first digital asset on the first blockchain and the successful transfer of the second digital asset on the second blockchain, transferring the first digital asset to a first recipient address on the first blockchain, and Transferring the second digital asset to a second recipient address on the second blockchain.

10. The system of claim 9, wherein the first processing system and the second processing system are a single computing device.

11. The system of claim 9, wherein the first processing system and the second processing system are application programs executed by a central processing server.

12. The system of claim 9, wherein The first processing system is a first blockchain node in a first blockchain network, and The second processing system is a second blockchain node in the second blockchain network.

13. The system of claim 9, wherein authorizing the transfer of the first digital asset comprises generating a first escrow address.

14. The system of claim 9, wherein authorizing the transfer of the first digital asset comprises: transmitting, by the first processing system, at least the one or more identification values ​​to a central processing server; verifying, by a central processing server, the one or more identification values; The central processing server generates a first hosting address; as well as A message is received by the first processing system from the central processing server indicating successful verification of the one or more identification values, the message also including the first escrow address.

15. The system of claim 9, wherein the first transfer request is received from a first smart contract.

16. The system of claim 9, wherein authorizing the transfer of the first digital asset includes verifying the authenticity of the first digital asset.