Method and system for processing asset swaps across two blockchains
The system addresses the insecurity and complexity of existing asset swap methods by using a swap check oracle and central processing server to verify users and assets, transferring them to custodial addresses, thus simplifying and securing the process.
Patent Information
- Application Number
- JP2024569444
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-05-24
- Filing Date
- 2023-04-24
- Publication Date
- 2025-06-24
- Estimated Expiration
- 2043-04-24
AI Technical Summary
Existing methods for asset swaps across multiple blockchains are insecure and complex, requiring users to create and deploy smart contracts, which can be difficult for less sophisticated users and poses a security risk, with assets being vulnerable to attacks during the process.
A system and method that utilizes a swap check oracle and a central processing server to verify the authenticity of users and digital assets, transferring them to custodial wallet addresses on both blockchains, thereby simplifying the asset swap process and enhancing security.
The proposed solution simplifies asset swaps across blockchains, providing better usability for users and significantly improving security by eliminating dependence on smart contracts and using secure custodial addresses.
Smart Images

Figure 2025519133000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the processing of asset swaps across two blockchains, and more particularly to ensuring a secure and verifiable cross-chain asset swap using a swap check oracle, a central processing server, and a custodial wallet address.
[0002] This application claims the benefit of U.S. Patent Application No. 17 / 752,318, filed May 24, 2022, the entire contents of which are incorporated by reference for all purposes.
Background Art
[0003] Blockchains have been developed and implemented to perform a wide range of functions. To name the most prominent example, blockchains can be used to store and transfer digital assets such as cryptocurrencies. Due to the simplicity of creating and operating blockchains, countless different blockchains have emerged, each targeting different digital assets such as cryptocurrencies, identity tokens, security tokens, etc. However, due to the nature of making the creation and operation of blockchains easy, difficulties are brought about with respect to coordinating the transfer of assets across multiple blockchains.
[0004] Traditionally, with respect to asset swaps between multiple blockchains, each party has had to utilize smart contracts or other mechanisms, entrusting the holding of their respective digital assets to each blockchain, and any smart contract can be executed once the success of the transfer of each asset to each smart contract has been confirmed. As a result of contract execution, the digital assets are transferred to the other party on each blockchain. However, these methods require the parties themselves to create and deploy smart contracts, which can be difficult for less sophisticated users and can often result in the use of smart contracts drafted by third parties, which can itself pose a security risk. Also, during the process, the assets are held by the smart contract itself, leaving the assets vulnerable to attack.
[0005] Therefore, a more secure method for making asset swaps across two separate blockchains is needed.
Summary of the Invention
[0006] The present disclosure provides an explanation of a system and method for processing asset swaps across two blockchains. A swap check oracle receives a transfer request from a user or a smart contract on a first blockchain, and the request indicates a first digital asset to be transferred. The swap check oracle verifies the authenticity of the user and / or the digital asset and instructs the smart contract to transfer the first digital asset to a custody address on the first blockchain. Another swap check oracle performs similar processing for a second digital asset from a second user on a second blockchain. The central processing server is notified by the swap check oracle of the success of the transfer of the digital assets to the custody addresses on both blockchains. The central processing server verifies the holding of the digital assets by the custody addresses and initiates the release of the digital assets to the new parties on both blockchains. As a result, the oracle ensures the authenticity of the parties and assets involved, and the central processing server verifies the assets ready for transfer using the custody addresses, resulting in an asset swap in a manner that controls the transfer of the assets. In this way, asset swaps can be performed more simply compared to traditional methods, providing better usability for the users involved, and can bring about significantly improved security by eliminating dependence on smart contracts and using secure and regulated custody addresses.
[0007] A method for processing an asset swap across two blockchains includes the following steps: 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; approving, by the first processing system, the transfer of the first digital asset; submitting, by the first processing system, one or more instructions to a first smart contract stored on a first blockchain, wherein the execution of the first smart contract is caused by the submission of the one or more instructions, and the execution of the first smart contract transfers the first digital asset to a first custody address on the first blockchain; sending, by the first processing system, a first notification message indicating the transfer of the first digital asset to a central processing server; receiving, by the central processing server, the first notification message from the first processing system; receiving, by the central processing server, a second notification message from a second processing system, wherein the second notification message indicates the transfer of a second digital asset to a second custody address on a second blockchain; verifying, by the central processing server, the success of the transfer of the first digital asset on the first blockchain and the success of the transfer of the second digital asset on the second blockchain; transferring, by the central processing server, the first digital asset to the first recipient address on the first blockchain; and transferring, by the central processing server, the second digital asset to a second recipient address on the second blockchain.
[0008] A system for processing asset swaps across two blockchains includes: 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. The first processing system includes: receiving 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; approving the transfer of the first digital asset; submitting 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 the execution of the first smart contract transfers the first digital asset to a first custody address on the first blockchain; and sending a first notification message indicating the transfer of the first digital asset to the central processing server. The central processing server includes: receiving the first notification message from the first processing system; receiving a second notification message from the second processing system, wherein the second notification message indicates the transfer of a second digital asset to a second custody address on the second blockchain; verifying the success of the transfer of the first digital asset on the first blockchain and the success of the transfer of the second digital asset on the second blockchain; transferring the first digital asset to the first recipient address on the first blockchain; and transferring the second digital asset to the second recipient address on the second blockchain.
Brief Description of the Drawings
[0009] The scope of the present disclosure is best understood from the following detailed description of exemplary embodiments when interpreted in conjunction with the accompanying drawings. The drawings include the following figures.
[0010]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
[0011] Further application areas of the present disclosure will be apparent from the following detailed description. The detailed description of the exemplary embodiments is intended for illustrative purposes only and is not necessarily intended to limit the scope of the present disclosure.
DETAILED DESCRIPTION OF THE INVENTION
[0012] A system for processing asset swaps across blockchains FIG. 1 shows a system 100 that facilitates the swap of digital assets across two blockchains. This is done through the use of a swap check oracle and a custodial blockchain address, and is for user convenience and additional security.
[0013] System 100 may include a processing server 102. The processing server 102, which will be described later, can be configured to operate as a central processing system to assist in swapping digital assets across two blockchains. The blockchains can be managed by a blockchain network (e.g., the first blockchain network 108, the second blockchain network 110, etc.) included in system 100. The blockchain network can be configured to include a plurality of blockchain nodes. Each blockchain node can be a computing system as shown in FIG. 2 or FIG. 5 and configured to execute functions related to the processing and management of the blockchain, and may include, for example: generation of blockchain data values, verification of proposed blockchain transactions, verification of digital signatures, generation of new blocks, confirmation (validation) of new blocks, and maintenance of a copy of the blockchain.
[0014] A blockchain can be a distributed ledger comprising 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 can be the time when the block header was generated and can be represented using any suitable method (e.g., UNIX timestamp, DateTime notation, etc.). The block reference value can be a value that references a previous block in the blockchain (e.g., based on the timestamp). In some embodiments, the block reference value in the block header can be a reference to the block header of the most recently added block that precedes each block. In an exemplary embodiment, the block reference value can be a hash value generated by hashing the block header of the most recently added block. Similarly, the data reference value can be a reference to one or more data values stored in the block that includes the block header. In an exemplary embodiment, the data reference value can be a hash value generated by hashing one or more data values. For example, the block reference value can be the root of a Merkle tree generated using one or more data values.
[0015] As a result of using block reference values and data reference values within each block header, immutability can be imparted to the blockchain. To attempt to change a data value, it is necessary to generate a new data reference value for that block, for which it is necessary to newly generate the block reference values of subsequent blocks, and furthermore, it is necessary to generate new block reference values for each subsequent block. In order for the change to be permanent, before generating a new block and adding it to the blockchain, it is necessary to execute and update the above matters for each block chain node in the blockchain network one by one. Due to the limitations of computing power and communication capabilities, such a change can become extremely difficult or impossible, and thus the blockchain acquires immutability.
[0016] In some embodiments, the blockchain can be used to store information regarding blockchain transactions conducted between two different blockchain wallets. Since a blockchain wallet can include the private key of a cryptographic key pair, and the private key is used to generate a digital signature, the digital signature can serve as the payer's approval regarding the blockchain transaction, and 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" can specifically refer to the private key. In other cases, the term "blockchain wallet" can refer to a computing device (e.g., the first device 104, the second device 106, etc.) that stores it for use of the private key in a blockchain transaction. For example, each of the computing devices can have its own private key for each cryptographic key pair, and each can be regarded as a blockchain wallet for use in transactions with a blockchain associated with the blockchain network. The computing device can be any type of device suitable for storing and utilizing the blockchain wallet, such as, for example, a desktop computer, a laptop computer, a notebook computer, a tablet computer, a mobile phone, a smartphone, a smartwatch, a smart TV, a wearable computing device, an implantable computing device, etc.
[0017] Each blockchain data value stored within the blockchain can be appropriately adapted to the storage of blockchain transactions or other data. A blockchain transaction can comprise at least the following: a digital signature of the currency sender (e.g., the first device 104) generated using the sender's private key, the blockchain address of the currency recipient (e.g., the second device 106) generated using the recipient's public key, and the amount of blockchain currency transferred or other data stored. In some blockchain transactions, the transaction can also include the following: one or more sender blockchain addresses where the blockchain currency is currently held (e.g., if access to such currency is authenticated by the digital signature); and an address generated using the sender's public key for any changes held by the sender. The address to which cryptocurrency that can be used in future transactions is sent is referred to as the "output" address, as each address is such because it was previously used to capture the output of a preceding blockchain transaction, and it is also referred to as an "unspent transaction" because there is currency sent to the address in a preceding transaction where the currency is still unspent. In some cases, a blockchain transaction can also include the sender's public key for an entity to use for transaction verification (validation). For traditional processing of blockchain transactions, such data can be provided by either the sender or the recipient to blockchain nodes within the blockchain network. The node can verify the digital signature using the public key within the sender's wallet's cryptographic key pair and can also verify access to the sender's funds (e.g., if the unspent transaction has not yet been spent and was sent to an address associated with the sender's wallet), which is known as the "confirmation" process of the transaction, and the blockchain transaction is then included in a new block.In traditional blockchain implementation examples, for a new block, before addition to the blockchain and distribution to all blockchain nodes in the blockchain network, it can be validated by other nodes in the blockchain network. If the blockchain data value relates not to blockchain transactions but instead to the storage of other types of data, the blockchain data value can still include or be accompanied by digital signature validation.
[0018] In system 100, the first device 104 can control a first digital asset stored within the first blockchain network 108, and the control of the first digital asset can be represented by the first digital asset stored within a blockchain address on a blockchain associated with the first blockchain network 108 (hereinafter referred to as the "first blockchain"), which is generated by the blockchain wallet of the first device 104. The second device 106 can control a second digital asset stored within the second blockchain network 110, and similarly, the control of the second digital asset can be represented by the second digital asset stored within a blockchain address on a blockchain associated with the second blockchain network 110 (hereinafter referred to as the "second blockchain"), which is generated by the blockchain wallet of the second device 106. The first device 104 and the second device 106 can be any type of device suitable for executing the functions mentioned in this application, such as the computing devices in FIGS. 2 and 5, and can be, for example, a desktop computer, a laptop computer, a notebook computer, a tablet computer, a mobile phone, a smartphone, a smart TV, a wearable computing device, an embeddable computing device, etc. The digital asset can be any asset stored on the blockchain, and in some cases, can represent physical assets such as non-fungible currencies, land title deeds, physical contracts, etc.
[0019] The first device 104 and the second device 106 (or for example their users) can agree to swap a first digital asset and a second digital asset, such that ownership of the first digital asset on the first blockchain is transferred to the second device 106, and ownership of the second digital asset on the second blockchain is transferred to the first device 104. The first device 104 can initiate the processing of the asset swap by electronically sending a transfer request to the first swap oracle 112 using an appropriate communication network and method. In some embodiments, the first device 104 can send the transfer request directly to the first swap oracle 112. In other embodiments, the transfer request can be submitted to the first swap oracle 112 by a smart contract stored on the first blockchain, which can be executed by the first device 104 as a result of an instruction. In some cases, the first swap oracle 112 and / or the processing server 102 can provide a template for the smart contract used by the first device 104. The first swap oracle 112 can be any suitable type of computing device as shown in and described below with reference to FIGS. 2 and 5, and can also be a blockchain node within the first blockchain network 108. In some cases, the first swap oracle 112 can be an application program executed by the processing server 102.
[0020] The transfer request can be received by the first swap oracle 112. The transfer request can at least include an identifier associated with the first digital asset, which can be referred to as an asset identifier hereinafter, and can be a value unique to the first digital asset used for identification, such as an identification number or a blockchain address. The transfer request can also include data for use when verifying the ownership of the first digital asset by the first device 104. For example, a digital signature generated using the private key of the blockchain wallet of the first device 104 that has the ownership of the first digital asset on the first blockchain corresponds to this. In some cases, the transfer request can also include one or more identification data values associated with the first device 104 and / or its user. In such cases, the processes described can include verification and / or authentication for the first device 104 and / or its user. The identification value can include any data suitable for use when verifying the authenticity of the computing device or its user, and this data can be, for example, a media access control (MAC) address, a serial number, a registration number, a phone number, an email address, a name, a payment account number, a security code, an address, a zip code or a postal code, etc.
[0021] The first swap oracle 112 can receive a transfer request and verify the authenticity of the first digital asset and its ownership in the first device. If authentication of the first device 104 and / or its user is desired, the first swap oracle 112 can also initiate processing for such authentication. In some embodiments, the first swap oracle 112 can perform such authentication itself. In other embodiments, the first swap oracle 112 can transfer the transfer request or the data included therein to the processing server 102 using an appropriate communication network and method, and the processing server 102 can execute the authentication and return the result of the authentication to the first swap oracle 112. Authentication of the first digital asset and its ownership in the first device can be performed by confirming (validating) 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 within the blockchain address in the first blockchain controlled by the blockchain wallet of the first device. Authentication of the first device 104 and / or its user can include verification of one or more identification values included in the transfer request. For example, the user of the first device 104 can provide a name, address, and account number and security code for a payment card, and the processing server 102 (or, if applicable, for example, the first swap oracle 112) can perform a KYC (know your customer) process to verify the identity of the user of the first device 104 using the information provided.
[0022] If the authentication performed by the first swap oracle 112 is successful, the first swap oracle 112 can start transferring the first digital asset to a storage address on the first blockchain (hereinafter referred to as the "first storage address"). The storage address can be a blockchain address generated by the public key of the blockchain wallet associated with the first blockchain, and its private key is stored or controlled by the processing server 102. The storage address can be directly generated by the first swap oracle 112, or can be generated by the processing server 102 in such a way that a positive authentication result can be provided to the first swap oracle 112 by the processing server 102. Transferring the first digital asset to the first storage address can be executed by the first device 104. For example, in order to transfer the first digital asset to the first storage address, the first swap oracle 112 provides the storage address to the first device 104, and the first device 104 submits a new blockchain transaction to the blockchain nodes in the first blockchain network 108. If a smart contract is used to submit the transfer request, the transfer of the first digital asset can be executed by the smart contract. The first swap oracle 112 submits the first storage address as an input to the smart contract, and the smart contract can transfer the first digital asset to the first storage address after execution.
[0023] When the first digital asset is transferred to the first storage address, the first swap oracle 112 can electronically send a notification message indicating the success of the transfer of ownership of the first digital asset to the processing server 102. The notification message can include an asset identifier, a transaction identifier (e.g., one generated by the first swap oracle 112 and / or the processing server 102 for inclusion in all messages related to the asset swap), an identification value (e.g., one provided by a blockchain node within the first blockchain network 108 and corresponding to the blockchain data value used to transfer the first digital asset to the first storage address), and the like.
[0024] Before, after, or in parallel with transferring ownership of the first digital asset to the first storage address, ownership of a second digital asset can be transferred to a second storage address on a second blockchain. The second device 106 and the second swap oracle 114 can perform the same steps as described above for transferring ownership of the second digital asset to the second storage address, where the address can be generated by the public key of a blockchain wallet associated with the second blockchain and whose private key is stored or controlled by the processing server 102. In some cases, the transfer of ownership of the second digital asset can include exactly the same steps as the transfer of ownership of the first digital asset. In other cases, the steps for transferring ownership of the first and second digital assets can be different. For example, while the first digital asset is transferred via the use of a smart contract, the second digital asset can be transferred directly by the second device 106 without using a smart contract. In some cases, the blockchain itself can define the steps and processes used for the transfer of ownership of each digital asset. In some cases, the digital assets can be of different types. For example, the first digital asset can be a token representing a fiat currency, while the second digital asset can be a cryptocurrency.
[0025] In some embodiments, after receiving the notification message, the processing server 102 can verify the success of the transfer of the digital asset to each storage address. The processing server 102 can identify the storage address in the blockchain, either directly or with the assistance of a blockchain node within each blockchain network, and determine whether the digital asset associated with the asset identifier has successfully transferred to the address. If the processing server 102 receives a notification message from the first swap oracle 112 indicating the transfer of the ownership of the first digital asset on the first blockchain to the first storage address, and receives a notification message from the second swap oracle 112 indicating the transfer of the ownership of the second digital asset on the second blockchain to the second storage address, and verifies the transfer, then, if applicable, the processing server 102 can initiate the transfer of both digital assets.
[0026] The processing server 102 can submit a first blockchain transaction to blockchain nodes within the first blockchain network 108 to transfer a first digital asset from a first storage address to a blockchain wallet associated with the first blockchain of the second device 106 (e.g., a blockchain address generated by the second device 106 and provided to the processing server 102 in, for example, a transfer request). The processing server 102 can also submit a second blockchain transaction to blockchain nodes within the second blockchain network 110 to transfer a second digital asset from a second storage address to a blockchain wallet associated with the second blockchain of the first device 104 (e.g., a blockchain address generated by the second device 106 and provided to the processing server 102 in, for example, a transfer request). As a result, the first device 104 will acquire the second digital asset on the second blockchain, and the second device 106 will acquire the first digital asset on the first blockchain, thereby facilitating an asset swap across the two blockchains.
[0027] In some embodiments, the first blockchain network 108 and the second blockchain network 110 can perform settlement processing such as transfer of ownership of assets resulting from an asset swap using the above-described processing. For example, each of the first blockchain and the second blockchain can be operated by a financial institution or on behalf of a financial institution. As a result of the asset swap, one financial institution can be obligated to pay fiat currency to the other financial institution. In another example, when the asset swap relates to a digital asset corresponding to a physical object (e.g., an article, a land title deed, etc.), the entity associated with the blockchain network in which the digital asset is stored can be obligated to perform one or more acts involving or engaging the physical object, which can include, for example, recording a transfer of ownership, a physical handover of the physical object to the new owner, etc.
[0028] In some embodiments, the authentication performed by the first device 104 and / or the second device 106 and / or their users can be based on various criteria. For example, the users of the first device 104 and / or the second device 106 can require the level of authentication performed by other users as part of an asset swap. The level of authentication can refer to the amount and / or type of data used in authenticating the device and / or its user. In another example, each blockchain network can require a level of authentication to be performed on the users associated with the blockchain on which the asset swap is being executed, and the level can be further based on other blockchains involved in the asset swap. In yet another example, the level of authentication can be based on a geographical location, and the data used for authentication can be determined by the geographical location of the device, its user, the blockchain network, and / or the swap oracle.
[0029] As a result of the methods and systems described, asset swaps across two blockchains can be made easier for the users involved and can have a higher level of security than using traditional methods. By using swap oracles 112 and 114, it is ensured that users, devices, and / or digital assets can be authenticated at an appropriate level, providing sufficient security for the desired security by all parties involved. The use of custody addresses and processing server 102 provides a significantly higher level of security compared to traditional methods, preventing attacks on smart contracts aimed at stealing digital assets and ensuring the prevention of any wrongdoing by any party involved in the swap.
[0030] Computing device Figure 2 shows an embodiment of a computing device 200. It will be apparent to those skilled in the art that the embodiment of the computing device 200 shown in FIG. 2 is provided for illustrative purposes only and does not exhaustively show all possible configurations of the computing device 200 suitable for performing the functions of the present disclosure. For example, the computer system 500 shown in FIG. 5 and described in more detail below may be a suitable configuration of 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 swap oracle 112, the second swap oracle 114, or the blockchain nodes of the first blockchain network 108 and / or the second blockchain network 110, can include the components shown in FIG. 2 and described below.
[0031] The computing device 200 can 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 examples, the receiving device 202 may receive data from the processing server 102, the first device 104, the second device 106, the first swap oracle 112, the second swap 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 include a plurality of devices (for example, different receiving devices that receive data on different networks (for example, a first receiving device that receives data on a local area network and a second receiving device that receives data on the Internet)). The receiving device 202 may receive an electronic data signal being transmitted. At this time, upon receiving the data signal by the receiving device 202, the data may be superimposed, decoded, parsed, read, or retrieved on the data signal. In some embodiments, the receiving device 202 may include a parsing module that parses the received data signal to obtain the data superimposed thereon. For example, the receiving device 202 may receive the received data signal and include a parsing program configured to convert it into available input for functions executed by a processing device to implement the methods and systems of the present disclosure.
[0032] The receiving device 202 can be configured to receive a data signal electronically transmitted by the processing server 102, and this data signal is superimposed or encoded with a blockchain transaction, a notification regarding the success of an asset transfer, an authentication result, a storage address, etc. The receiving device 202 can be configured to receive a data signal electronically transmitted by the first device 104 and / or the second device 106, and this data signal can be superimposed or encoded with a transfer request, a blockchain address, an asset identifier, an identification value, a blockchain transaction, etc. The receiving device 202 can be configured to receive a data signal electronically transmitted by the first swap oracle 112 and / or the second swap oracle 114, and this data signal can be superimposed or encoded with a transfer request, an authentication result, a storage address, a smart contract instruction, a notification message, etc. The receiving device 202 can 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, and this data signal can be superimposed or encoded with a blockchain data value, an identifier, a digital signature, etc.
[0033] The computing device 200 may also include a communication module 204. The communication module 204 may be configured to transfer data between modules, engines, databases, memories, and other components of the computing device 200 for use in performing the functions of the present disclosure. The communication module 204 may include one or more communication types and may use various communication methods for communication within the computing device. For example, the communication module 204 may include a bus, a connection pin connector, a wire, 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 (e.g., an externally connected database, a display device, an input device, etc.). The computing device 200 may also include a processing device. The processing device may be configured to execute the functions of the computing device 200 of the present disclosure. This will be apparent to those skilled in the art. In some embodiments, the processing device may include a plurality of engines and / or modules (e.g., query module 216, generation module 218, verification module 220, etc.) that are specially configured to execute one or more functions of the processing device. As used in the present disclosure, the term "module" may be software or hardware that is specially programmed to receive an input, perform one or more processes using the input, and provide an output. The inputs, outputs, and processes performed by the various modules will be apparent to those skilled in the art based on the present disclosure.
[0034] Computing device 200 can also include blockchain data 206, which can be stored within memory 214 of computing device 200 or in a separate area within computing device 200 or be made accessible thereby. Blockchain data 206 can include a blockchain, which can comprise a plurality of blocks and can be associated with a first blockchain network 108 or a second blockchain network 110. In some cases, blockchain data 206 can further include the blockchain and any other data associated with its management and its performance, for example, block generation algorithms, digital signature generation and confirmation algorithms, communication data about blockchain nodes, smart contracts, cryptographic key pairs, public keys, and the like.
[0035] The computing device 200 may also include a memory 214. The memory 214 may be configured to store data (such as public keys, private keys, symmetric keys, etc.) for use by the computing device 200 when executing the functions of the present disclosure. The memory 214 may be configured to store data using an appropriate data formatting method and schema, and may be any appropriate type of memory (such as read-only memory, random access memory, etc.). The memory 214 may include, for example, cryptographic keys and algorithms, communication protocols and specifications, data format specifications and protocols, program code for modules and application programs of the processing device, and other appropriate data used by the computing device 102 when executing the functions of the present disclosure. This is obvious to those skilled in the art who read the present disclosure. In some embodiments, the memory 214 may include a relational database that uses Structured Query Language (SQL), and may store, identify, modify, update, access, etc. the stored structured data set. 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 commands, rules associated with different types of digital assets, etc.
[0036] The computing device 200 may also include a query module 216. The query module 216 may be configured to execute a query on a database to identify information. The query module 216 may receive one or more data values or query columns, and based thereon, execute a query column on the indicated database (e.g., the memory 214 of the computing device 200) to identify the information stored therein. Then, the query module 216 may output the identified information to an appropriate engine or module of the computing device 200 as needed. For example, the query module 216 can execute a query on the memory 214 to identify the public key of the blockchain wallet associated with the first blockchain used in the generation of the first storage address.
[0037] The computing device 200 may also include a generation module 218. The generation module 218 may be configured to generate data used by the computing device 200 when executing the functions of the present disclosure. The generation module 218 may receive an instruction as an input value, may generate data based on the instruction, and may also 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.
[0038] The computing device 200 can also include a verification module 220. The verification module 220 can be configured to perform verifications and authentications on the computing device 200 as part of the functionality of the present disclosure. The verification module 220 can receive instructions as input, which can also include data used to perform the verification or authentication, can perform the verification or authentication as required, and can output the result of the verification or authentication to another module or engine of the computing device 200. For example, the verification module 220 can be configured to verify the ownership of a digital asset whose transfer is requested as part of an asset swap, authenticate the device or its user, verify the success of the transfer of the digital asset to a storage address, and so on.
[0039] The computing device 200 can also include a transmission device 222. The transmission device 222 can be configured to transmit data on one or more networks via one or more network protocols. In some examples, the transmission device 222 can be configured to transmit data to the processing server 102, the first device 104, the second device 106, the first swap oracle 112, the second swap oracle 114, the blockchain node, and other entities via one or more communication methods such as a local area network, a wireless area network, cellular communication, Bluetooth, radio frequency, the Internet, etc. In some embodiments, the transmission device 222 can include multiple devices (for example, different transmission devices for transmitting data on different networks (for example, a first transmission device for transmitting data on a local area network and a second transmission device for transmitting data on the Internet)). The transmission device 222 can electronically transmit a data signal having superimposed data that is parsed by the receiving computing device. In some embodiments, the transmission device 222 can include one or more modules that superimpose, encode, or format the data into a data signal suitable for transmission.
[0040] The transmitting device 222 can be configured to electronically transmit a data signal to the processing server 102, and this data signal is superimposed or encoded with a blockchain transaction, a notification message, an authentication result, a blockchain data value, a transfer request, a blockchain address, etc. The transmitting device 222 can be configured to electronically transmit a data signal to the first device 104 and / or the second device 106, and this data signal can be superimposed or encoded with a blockchain address, an identification value request, an asset transfer instruction, a notification message, etc. The transmitting device 222 can be configured to electronically transmit a data signal to the first swap oracle 112 and / or the second swap oracle 114, and this data signal can be superimposed or encoded with a transfer request, an authentication result, a storage address, a notification message, an identification value, an asset identifier, a blockchain data value, etc. The transmitting device 222 can be configured to electronically transmit a data signal to the blockchain nodes of the first blockchain network 108 and / or the second blockchain network 110, and this data signal can be superimposed or encoded with a blockchain data value, a digital signature, a blockchain transaction, a request for blockchain data, a cryptographic key, etc.
[0041] Process of performing an asset swap on two blockchains FIG. 3 shows a process for performing an asset swap of digital assets stored in two different blockchains with respect to the system 100. In S302, the first device 104 can electronically send a transfer request to the first swap oracle 112 using an appropriate communication network and method (e.g., via the sending device 222). The transfer request can 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 S304, the first swap oracle 112 can electronically send a verification request to the processing server 102 using an appropriate communication network and method (e.g., via the sending device 222). The verification request can at least include one or more identification values. The processing server 102 can perform one or more authentications using the received one or more identification values (e.g., via the verification module 220). If the authentication is successful, the processing server 102 can generate a first storage address using the blockchain wallet associated with the first blockchain (e.g., via the generation module 218), and in S306, can electronically send a notification indicating the success of the authentication and the first storage address back to the first swap oracle 112 (e.g., via the sending device 222).
[0042] In S308, the first swap oracle 112 can electronically send an instruction message (e.g., via the sending device 222) to the first device 104. The instruction message includes a first storage address and instructs the first device 104 to transfer a first digital asset to the first storage address on the first blockchain. The first device 104 can receive the message (e.g., via the receiving device 202) and can submit a new blockchain transaction to the blockchain nodes within the first blockchain network 108 to transfer the first digital asset to the first storage address using traditional methods. The blockchain nodes can return to the first device 104 a transaction identifier or other unique value related to the blockchain data value for the new blockchain transaction (e.g., received via the receiving device 202). In S310, the first device 104 can electronically send (e.g., via the sending device 222) a notification regarding the transfer of the first digital asset including a transaction identifier or other unique value to the first swap oracle 112. In S312, the first swap oracle 112 can transfer the transfer notification to the processing server 102 (e.g., via the sending device 222) using an appropriate communication network and method.
[0043] In S314, the second device 106 can electronically send the transfer request to the second swap oracle 114 (e.g., via the sending device 222) using an appropriate communication network and method. The transfer request can include an asset identifier associated with a 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 S316, the second swap oracle 114 can electronically send the verification request to the processing server 102 (e.g., via the sending device 222) using an appropriate communication network and method. The verification request can at least include one or more identification values. The processing server 102 can perform one or more authentications (e.g., via the verification module 220) using the received one or more identification values. If the authentication is successful, the processing server 102 can generate a second storage address using a blockchain wallet associated with the second blockchain (e.g., via the generation module 218), and in S318, can electronically send a notification indicating the success of the authentication and the second storage address back to the second swap oracle 114 (e.g., via the sending device 222).
[0044] In S320, the second swap oracle 114 can electronically send an instruction message to the second device 106 (e.g., via the sending device 222). The instruction message includes a second storage address and instructs the second device 106 to transfer a second digital asset to the second storage address on the second blockchain. The second device 106 can receive the message (e.g., via the receiving device 202), and can submit a new blockchain transaction to blockchain nodes within the second blockchain network 110 to transfer the second digital asset to the second storage address using traditional methods. The blockchain nodes can return to the second device 106 a transaction identifier or other unique value regarding the blockchain data value for the new blockchain transaction (e.g., received via the receiving device 202). In S322, the second device 106 can electronically send a notification regarding the transfer of the second digital asset, including a transaction identifier or other unique value, to the second swap oracle 114 (e.g., via the sending device 222). In S324, the second swap oracle 114 can transfer the transfer notification to the processing server 102 (e.g., via the sending device 222) using an appropriate communication network and method. S314 to S324 can be performed before, after, or simultaneously with the execution of S302 to S312.
[0045] In S326, the processing server 102 can submit a new blockchain transaction to the blockchain nodes within the second blockchain network 110 to transfer the second digital asset to the recipient blockchain address for the first device 104 on the second blockchain. As a result, the first device 104 acquires ownership of the second digital asset on the second blockchain. In S328, the processing server 102 can submit a new blockchain transaction to the blockchain nodes within the first blockchain network 108 to transfer the first digital asset to the recipient blockchain address for the second device 106 on the first blockchain. As a result, the second device 106 acquires ownership of the first digital asset on the first blockchain.
[0046] Exemplary method for processing an asset swap across two blockchains FIG. 4 shows a method 400 for processing an asset swap across two blockchains through the use of multiple processing systems, a central processing server, and custodial blockchain addresses.
[0047] In S402, a first transfer request can be received by a first processing system (e.g., the first swap oracle 112) (e.g., via the receiving device 202). The transfer request includes at least a first asset identifier associated with a first digital asset, one or more first identification values, and a first recipient address. In S404, the first processing system can approve the transfer of the first digital asset (e.g., via the verification module 220). In S406, one or more instructions can be submitted by the first processing system (e.g., the first swap oracle 112) to a first smart contract stored on a first blockchain (e.g., via the sending device 222). The submission of the one or more instructions results in the execution of the first smart contract, and the execution of the first smart contract transfers the first digital asset to a first storage address on the first blockchain.
[0048] In S408, a first notification message indicating the transfer of the first digital asset can be sent by the first processing system to a central processing server (e.g., the processing server 102) (e.g., via the sending device 222). In S410, the first notification message can be received by the central processing server from the first processing system (e.g., via the receiving device 202). In S412, the central processing server can receive a second notification message (e.g., via the receiving device 202) from a second processing system (e.g., the second swap oracle 114), and the second notification message indicates the transfer of a second digital asset to a second storage address on a second blockchain.
[0049] In S414, the central processing server can verify the success of the transfer of the first digital asset on the first blockchain and the success of the transfer of the second digital asset on the second blockchain (e.g., via the verification module 220). In S416, the first digital asset can be transferred by the central processing server to the first recipient address on the first blockchain. In S418, the second digital asset can be transferred by the central processing server to the second recipient address on the second blockchain.
[0050] In one embodiment, the first processing system and the second processing system can be a single computing device (e.g., the computing device 200). In some embodiments, the first processing system and the second processing system can be application programs executed by the central processing server. In one embodiment, the first processing system can be a first blockchain node within a first blockchain network associated with the first blockchain (e.g., the first blockchain network 108). Also, the second processing system can be a second blockchain node within a second blockchain network associated with the second blockchain (e.g., the second blockchain network 110). In some embodiments, the approval of the transfer of the first digital asset can include generating a first storage address.
[0051] In one embodiment, the approval of the transfer of a first digital asset may include the following steps: a step of transmitting, by a first processing system, at least one or more identification values to a central processing server (e.g., via a transmitting device 222); a step of verifying, by the central processing server, the one or more identification values (e.g., via a verification module 220); a step of generating, by the central processing server, a first storage address (e.g., via a generation module 218); and a step of receiving, by the first processing system, from the central processing server (e.g., via a receiving device 202), a message indicating the success of the verification for the one or more identification values, the message further including the first storage address. In some embodiments, the first transfer request can be received from a first smart contract. In one embodiment, the step of approving the transfer of the first digital asset may include a step of verifying the authenticity of the first digital asset (e.g., via a verification module 220).
[0052] Computer System Architecture FIG. 5 shows a computer system 500. In which, an embodiment of the present disclosure or a part thereof may be implemented as computer-readable code. For example, the processing server 102, the first device 104, the second device 106, the first swap oracle 112, and the second swap oracle 114 of FIG. 1 and the computing device 200 of FIG. 2 may be implemented within the computer system 500 using hardware, a non-transitory computer-readable medium having stored instructions, or a combination thereof, and may also be implemented in one or more computer systems or other processing systems. The hardware can embody the modules and components used to implement the methods of FIGS. 3 and 4.
[0053] When programmable logic is used, such logic is executed on a commercially available processing platform composed of executable software code and may be a special-purpose device or a special-purpose device (for example, a programmable logic array, an application-specific integrated circuit (ASIC), etc.). Those skilled in the art will understand that the embodiments of the disclosed matters are executable in various computer system configurations. The system configurations include a multi-core multi-processor system, a minicomputer, a mainframe computer, a computer linked or clustered with distributed functions, and a general-purpose or miniature computer that can be implemented on substantially any device. For example, at least one processor device and memory may be used to implement the above embodiments.
[0054] The processor unit or device of the present disclosure may be a single processor, a plurality of processors, or a combination thereof. The processor device may have one or more processor "cores". The terms "computer program medium", "non-transitory computer-readable medium" and "computer-usable medium" of the present disclosure are generally used to refer to tangible media (for example, a removable storage unit 518, a removable storage unit 522, and a hard disk installed in a hard disk drive 512, etc.).
[0055] Various embodiments of the present disclosure are described with respect to this exemplary computer system 500. After reading the present disclosure, it will be apparent to those skilled in the art how to implement the present disclosure using other computer systems and / or computer architectures. Although the operations are disclosed as sequential processing, some operations may actually be executed in parallel, simultaneously, and / or in a distributed environment. At this time, the program code is stored locally or remotely for access by a single-processor or multi-processor machine. Further, in some embodiments, the order of operations can be rearranged without departing from the spirit of the disclosed matters.
[0056] The processor device 504 may be a special-purpose or general-purpose processor device specially configured to execute the functions of the present disclosure. The processor device 504 may be connected to a communication infrastructure 506 (such as a bus, message queue, network, multi-core message passing scheme, etc.). The network may be any network suitable for executing the functions of the present disclosure and may include a local area network (LAN), wide area network (WAN), wireless network (such as 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 apparent to those skilled in the art. The computer system 500 may also include a main memory 508 (such as random access memory, read-only memory, etc.), and may also include an auxiliary memory 510. The auxiliary memory 510 may include a hard disk drive 512 and a removable storage drive 514 (such as a floppy disk drive, magnetic tape drive, optical disk drive, flash memory, etc.).
[0057] The removable storage drive 514 may read from and / or write to a removable storage unit 518 in a well-known manner. The removable storage unit 518 may include a removable storage medium that can be read and written by the removable storage drive 514. For example, if the removable storage drive 514 is a floppy disk drive or a USB port, the removable storage unit 518 may be a floppy disk or a portable flash drive, respectively. In one embodiment, the removable storage unit 518 may be a non-transitory computer-readable recording medium.
[0058] In some embodiments, the auxiliary memory 510 may include alternative means to enable a computer program or other instructions to be loaded into the computer system 500 (e.g., removable storage unit 522 and interface 520). Examples of such means may include program cartridges and cartridge interfaces (such as those found in video game systems), removable memory chips (such as EEPROM, PROM, etc.) and associated sockets, and other removable storage units 522 and interfaces 520. This will be apparent to those skilled in the art.
[0059] Data stored in the computer system 500 (e.g., in main memory 508 and / or auxiliary memory 510) may be stored on any type of suitable computer-readable medium (such as optical storage (compact disc, digital versatile disc, Blu-ray disc, etc.) or magnetic tape storage (such as hard disk drive)). The data may be structured in any type of suitable database configuration (such as relational database, structured query language (SQL) database, distributed database, object database, etc.). Appropriate configurations and storage types will be apparent to those skilled in the art.
[0060] The computer system 500 may also include a communication interface 524. The communication interface 524 may enable software and data to be transmitted and received between the computer system 500 and external devices. Exemplary communication interfaces 524 may include a modem, a network interface (such as 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 signal form. The signal form may be electronic, electromagnetic, optical, or other signals that are apparent to those skilled in the art. The signal propagates via a communication path 526. The path may be configured to carry the signal and may be implemented using wires, cables, optical fibers, telephone lines, cellular phone links, radio frequency links, etc.
[0061] The computer system 500 may further include a display interface 502. The display interface 502 may be configured to enable 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 Visual Interface (DVI), a Video Graphics Array (VGA), etc. The display 530 may be any suitable type of display and is configured to display data transferred via the display interface 502 of the computer system 500, and may include 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.
[0062] The computer program medium and the computer-usable medium may refer to a memory (e.g., main memory 508 and auxiliary memory 510), and may be a semiconductor memory (such as DRAM). These computer program products may be means for providing software to the computer system 500. The computer program (e.g., computer control logic) may be stored in the main memory 508 and / or the auxiliary memory 510. The computer program may also be received via the communication interface 524. When such a computer program is executed, it may enable the computer system 500 to execute the method of the present disclosure. In particular, when the computer program is executed, it can enable the processor device 504 to implement the methods shown in FIGS. 3 and 4 as described herein. Therefore, such a computer program represents the controller of the computer system 500. The present disclosure is implemented using software. The software may be stored in a computer program product and loaded into the computer system 500 using a removable storage drive 514, an interface 520, and a hard disk drive 512 or a communication interface 524.
[0063] The processor device 504 may include one or more modules or engines configured to execute the functions of the computer system 500. Each module or engine may be implemented using hardware and, in some embodiments, may use software (e.g., this may correspond to program code or a program stored in the main memory 508 or the auxiliary memory 510). In such embodiments, the program code may be compiled by the processor device 504 (e.g., by a compilation module or engine) before execution by the hardware of the computer system 500. For example, the program code may be source code (e.g., assembly language or machine code) written in a programming language that is translated into a low-level language. This is for execution by the processor device 504 and / or any additional hardware components of the computer system 500. The compilation process may include lexical analysis, preprocessing, syntax analysis, semantic analysis, syntax-directed translation, code generation, code optimization, and the use of any other techniques suitable for translating the program code into a low-level language suitable for controlling the computer system 500 to execute the functions of the present disclosure. It will be apparent to those skilled in the art that such processing results in a specially configured computer system 500 that is uniquely programmed to execute the above functions.
[0064] The technology consistent with the present disclosure has other features, but provides a system and method for processing asset swaps across two blockchains. Although various exemplary embodiments of the system and method of the present disclosure are described above, it should be understood that they are shown for illustrative purposes only and not for limiting purposes. It is not exhaustive and does not limit the present disclosure to the disclosed form itself. Modifications and variations are possible in light of the above teachings. Modifications and variations may be obtained from implementations of the present disclosure without departing from the scope or range.
Claims
1. A method for processing an asset swap 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; approving, by the first processing system, the transfer of the first digital asset; submitting, by the first processing system, one or more instructions to a first smart contract stored on a first blockchain, wherein the submission of the one or more instructions results in the execution of the first smart contract, and the execution of the first smart contract transfers the first digital asset to a first custody address on the first blockchain; sending, by the first processing system, a first notification message indicating the transfer of the first digital asset to a central processing server; receiving, by the central processing server, the first notification message from the first processing system; receiving, by the central processing server, a second notification message from a second processing system, the second notification message indicating the transfer of a second digital asset to a second custody address on a second blockchain; verifying, by the central processing server, the success of the transfer of the first digital asset on the first blockchain and the success of the transfer of the second digital asset on the second blockchain; transferring, by the central processing server, the first digital asset to the first recipient address on the first blockchain; transferring, by the central processing server, the second digital asset to a second recipient address on the second blockchain.
2. The method according to claim 1, wherein the first processing system and the second processing system are a single computing device.
3. The method according to claim 1, wherein the first processing system and the second processing system are application programs executed by the central processing server.
4. In the method according to claim 1, the first processing system is a first blockchain node in a first blockchain network associated with the first blockchain, the second processing system is a second blockchain node in a second blockchain network associated with the second blockchain, the method.
5. In the method according to claim 1, the step of approving the transfer of the first digital asset includes the step of generating the first storage address, the method.
6. In the method according to claim 1, the step of approving the transfer of the first digital asset is: transmitting, by the first processing system, at least the one or more identification values to the central processing server; verifying, by the central processing server, the one or more identification values; generating, by the central processing server, the first storage address; receiving, by the first processing system, from the central processing server a message indicating successful verification of the one or more identification values, the message further including the first storage address, the step, the method.
7. In the method according to claim 1, the first transfer request is received from the first smart contract, the method.
8. In the method according to claim 1, the step of approving the transfer of the first digital asset includes the step of verifying the authenticity of the first digital asset, the method.
9. A system for processing an asset swap across two blockchains, the system 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; a second processing system, wherein the first processing system receives 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; approves the transfer of the first digital asset; Submitting one or more instructions to a first smart contract stored on the first blockchain, wherein the execution of the first smart contract is caused as a result of the submission of the one or more instructions, and the execution of the first smart contract transfers the first digital asset to a first storage address on the first blockchain; Sending a first notification message indicating the transfer of the first digital asset to the central processing server; The central processing server: Receiving the first notification message from the first processing system; Receiving a second notification message from the second processing system, the second notification message indicating the transfer of a second digital asset to a second storage address on the second blockchain; Verifying the success of the transfer of the first digital asset on the first blockchain and the success of the transfer of the second digital asset on the second blockchain; Transferring the first digital asset to the first recipient address on the first blockchain; Transferring the second digital asset to the second recipient address on the second blockchain;
10. The system according to claim 9, wherein the first processing system and the second processing system are a single computing device.
11. The system according to claim 9, wherein the first processing system and the second processing system are application programs executed by the central processing server.
12. In the system according to claim 9, the first processing system is a first blockchain node within the first blockchain network, the second processing system is a second blockchain node within the second blockchain network.
13. The system according to claim 9, wherein the step of approving the transfer of the first digital asset includes the step of generating the first storage address.
14. In the system according to claim 9, the step of approving the transfer of the first digital asset is: a step of transmitting at least the one or more identification values to the central processing server by the first processing system; a step of verifying the one or more identification values by the central processing server; a step of generating the first storage address by the central processing server; a step of receiving, by the first processing system, a message indicating success of verification of the one or more identification values from the central processing server, the message further including the first storage address; a system including the steps.
15. The system according to claim 9, wherein the first transfer request is received from the first smart contract.
16. The system according to claim 9, wherein the step of approving the transfer of the first digital asset includes a step of verifying the authenticity of the first digital asset.
Citation Information
Patent Citations
A platform for atomic transfer of smart assets within blockchain networks
JP2020507827A
Intermediate blockchain system for managing transactions
US20190026821A1
Systems and methods for operating a bridge server to support multiple shards of a blockchain
US20220118365A1