Atomic Bridge for Transactions between Different Blockchains
By using atomic transactions to synchronize operations across multiple blockchains, the inefficiencies and risks associated with bridging transactions are mitigated, resulting in improved processing efficiency and reliability.
Patent Information
- Application Number
- JP2024566261
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-05-13
- Filing Date
- 2023-04-06
- Publication Date
- 2025-06-10
- Estimated Expiration
- 2043-04-06
AI Technical Summary
The existing process of bridging transactions between multiple blockchains is inefficient, leading to increased processing costs and risks of transaction failure due to the use of multiple independent transactions, which can result in inconsistent states between blockchains.
Implementing atomic transactions that ensure all operations on a first blockchain are completed only when corresponding operations on a second blockchain are finished, thereby maintaining consistency and reducing the risk of partial transaction completion.
This approach reduces the time, processing resources, memory, and energy used in processing transactions between blockchains, minimizes the risk of inconsistent states, and improves the reliability of the blockchain system by ensuring all-or-nothing transaction completion.
Smart Images

Figure 2025517659000001_ABST
Abstract
Description
Technical Field
[0001] Aspects of the present disclosure relate to transaction processing in a blockchain system for improving processing and resource utilization efficiency.
Background Art
[0002] A blockchain is used within various distributed systems and can provide a ledger of transactions occurring within these distributed systems. Generally, a blockchain may include a chain of blocks where the most recent block includes some information regarding the transactions that occurred and a reference value to the immediately preceding block, which may be the hash value of the previous block. Since the reference value to the immediately preceding block can be a value derived from the immediately preceding block, verification of a transaction within the blockchain can be performed by ensuring that the hash of the block reaches the same value as that stored as the reference value to the immediately preceding block in a subsequent block within the blockchain. If there is a discrepancy between the calculated hash of the block and the hash value of the block in a subsequent block within the blockchain, verification of the blockchain may fail.
[0003] In some cases, a transaction may be recorded on multiple blockchains. For example, a transaction may first be recorded on a first blockchain and then transferred or "bridged" to a second blockchain. Generally, the process of recording a transaction on a first blockchain and bridging this transaction to a second blockchain may be executed as a series of asynchronous independent transactions involving multiple parties. Bridging a transaction from a first blockchain to a second blockchain generally involves multiple independent transactions, so the overall processing cost of the transaction bridge and the risk of transaction failure may increase. For example, a transaction may be partially completed, leaving the system in an inconsistent state (e.g., when the first blockchain contains a record of the transaction, but the second blockchain does not contain the corresponding record or only contains a partial record where the bridging process is not completed). Additionally, the use of multiple independent transactions may require coordination between different parties to complete the transaction, imposing significant processing overhead when generating and processing overhead messages within the blockchain system.
[0004] Therefore, techniques are needed to enable efficient processing of transactions bridged between multiple blockchains. SUMMARY OF THE INVENTION
[0005] Some embodiments provide a computer-implemented method for bridging transactions between blockchains. The method generally includes receiving a request to invoke an atomic transaction that includes operations to be performed on a first blockchain and operations to be performed on a second blockchain. Generally, an atomic transaction completes when the set of enumerated operations has completed. A first operation regarding the atomic transaction within the set of enumerated operations is initiated on the first blockchain. Initiating the first operation on the first blockchain triggers the initiation of one or more second operations regarding the atomic transaction on the second blockchain. The completion of one or more second operations regarding the atomic transaction on the second blockchain is detected, indicating that the operations for the atomic transaction associated with the second blockchain have been completed on the second blockchain. Based on detecting the completion of the one or more second operations on the second blockchain, the atomic transaction on the first blockchain is finalized.
[0006] Other embodiments provide a processing system configured to execute the methods described above and herein, a non-transitory computer-readable medium including instructions that, when executed by one or more processors of the processing system, cause the processing system to execute the methods described above and herein, a computer program product embodied on a computer-readable storage medium including code for executing the methods described above and further herein, and a processing system including means for executing the methods described above and further herein.
[0007] The following description and associated drawings detail some illustrative features of one or more embodiments.
[0008] The accompanying drawings illustrate some aspects of one or more embodiments and, thus, should not be considered as limiting the scope of the disclosure.
Brief Description of the Drawings
[0009]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Best Mode for Carrying Out the Invention
[0010] For ease of understanding, the same reference numerals are used to denote the same elements common to the drawings, where possible. It is contemplated that the elements and features of one embodiment may be beneficially incorporated into other embodiments without further recitation.
[0011] Transactions in a cryptocurrency system can be represented as blocks within a blockchain that tracks the entirety of the transactions executed using the cryptocurrency system. In these cryptocurrency systems, processed transactions are not modified at a later date and thus may provide an immutable ledger of the transactions executed using the cryptocurrency system.
[0012] In some cases, multiple blockchains can be used to record transactions. The underlying blockchain, also referred to as the "Layer 1" blockchain, may be a blockchain such as ETHEREUM (registered trademark), and a blockchain "layered" on top of the Layer 1 blockchain or otherwise configured to operate with the Layer 1 blockchain may be referred to as a "Layer 2" blockchain. An example of a Layer 2 blockchain may include the POLYGON (registered trademark) chain. The Layer 1 blockchain generally provides a trusted source for the network and may be responsible for processing transactions on the Layer 1 blockchain and on Layer 2 blockchains layered on top of the Layer 1 blockchain. The Layer 2 blockchain generally enables various applications to be built on top of the Layer 1 blockchain, extending the functionality of the Layer 1 blockchain and the overall blockchain-based system. However, to maintain consistency between the Layer 1 blockchain and the Layer 2 blockchain, various transactions may be committed to both the Layer 1 blockchain and the Layer 2 blockchain.
[0013] For example, a Layer 1 blockchain can be used to issue tokens, such as cryptocurrency tokens, that can be used and maintained on a Layer 2 blockchain. To maintain consistency between the Layer 1 blockchain and the Layer 2 blockchain, the issued tokens can be recorded on both the Layer 1 blockchain and the Layer 2 blockchain. Subsequent transactions that use but do not destroy these tokens may be executed on the Layer 2 blockchain, which generally enables offloading transaction processing from the Layer 1 blockchain to the Layer 2 blockchain, thus reducing the amount of computing resources required to process transactions on the Layer 1 blockchain. When a token is destroyed (or "burned"), the token can be destroyed on both the Layer 1 blockchain and the Layer 2 blockchain to maintain consistency between the records on each blockchain.
[0014] To maintain consistency between the Layer 1 blockchain and the Layer 2 blockchain, transactions may be bridged between these blockchains such that, for example, the number of existing tokens recorded within the Layer 1 blockchain matches the number of existing tokens on the Layer 2 blockchain. As discussed, this bridge generally includes a plurality of independent transactions. However, these transactions are generally considered independent transactions lacking atomicity, i.e., these transactions are not part of an atomic transaction that completes only when all of the operations within the set of operations succeed and fails if any single operation within the set of operations cannot be completed, but rather are independent ones that succeed or fail independently. Thus, the failure of a transaction on one blockchain may not cause the entire series of transactions included in the bridging operation to fail. Thus, the transaction bridge may end in a partially completed state, leading to an inconsistency between the records stored on the Layer 1 blockchain and the Layer 2 blockchain.
[0015] Aspects of the present disclosure provide techniques for atomically bridging transactions between different blockchains. Generally, an atomic transaction may be defined as a set of operations executed on a first blockchain and a series of operations executed on a second blockchain, and the completion of an atomic transaction is an all-or-nothing proposition. An atomic transaction may be executed by initiating a first operation for an atomic operation on a first blockchain, thereby triggering the execution of an operation on a second blockchain. When the operation on the second blockchain is completed, the atomic transaction is finalized on the first blockchain, and thus, the first blockchain and the second blockchain may be put in a consistent state. By doing so, transactions on the first blockchain and the second blockchain may be automatically triggered according to the definition of an atomic transaction, so that transactions between different blockchains may be processed more efficiently. This may reduce the time, processing resources, memory, and amount of energy used in processing the blocks within these blockchains and finalizing the transactions recorded between these blockchains. Processing the blocks within a blockchain is generally a resource-intensive process with a high energy consumption, so aspects of the present disclosure may reduce the amount of energy used in executing transactions between different blockchains, which may reduce the impact on the environment of executing transactions between these different blockchains. Further, the set of operations involved in bridging a transaction between different blockchains is defined as an atomic transaction, and each of the operations must be executed to complete the atomic transaction, so consistency may be maintained between the blockchains. The failure of an operation on one blockchain generally fails the entire atomic transaction, and thus, may minimize the risk of leaving the first blockchain and the second blockchain in an inconsistent state.
[0016] Exemplary Atomic Transaction Bridge between a First Blockchain and a Second Blockchain FIG. 1 shows an exemplary computing environment 100 in which transactions are bridged from a first blockchain to a second blockchain using atomic transactions. As shown, computing environment 100 includes a transaction processing system 110 and a network 120.
[0017] The transaction processing system 110 generally receives a request to execute a transaction bridged between a first blockchain and a second blockchain, and atomically invokes transactions on the first blockchain and the second blockchain to commit the transaction to both the first blockchain and the second blockchain. Generally, the transaction processing system 110 can be any computing device capable of processing blocks within a blockchain, such as a server, a computing cluster, a desktop computer, a laptop computer, etc. It should be understood that the transaction processing system 110 may be distributed among multiple computing devices and may be executed as one or more cloud-based services, such as virtual machines or containers hosted on one or more physical computing systems. The transaction processing system 110 is generally configured to process transactions for a cryptocurrency network such as the network 120. By way of example, the network 120 may be a network such as ALGORAND (trademark), BITCOIN (trademark), ETHEREUM (registered trademark), SOLANA (trademark), STELLAR (trademark), TRON (trademark), and other cryptocurrency networks capable of bridging transactions to level 2 blockchains overlaid on these cryptocurrency networks.
[0018] As shown, the transaction processing system 110 includes a transaction processor 112 and a tracking database 114. Generally, the transaction processor 112 monitors the layer 1 blockchain 122 and the layer 2 blockchain 124 for the processing of operations defined for atomic transactions in order to bridge transactions between the layer 1 blockchain 122 and the layer 2 blockchain 124 based on the records contained in the tracking database 114. FIG. 1 shows the interaction between the transaction processing system 110, a single layer 1 blockchain, and a single layer 2 blockchain, but it should be noted that the transaction processing system 110 may interact with multiple layer 1 blockchains and / or multiple layer 2 blockchains.
[0019] Generally, the transaction processor 112 receives a request to invoke an atomic transaction, and the atomic transaction, in this example, may be a transaction that includes a set of enumerated operations that are bridged between the layer 1 blockchain 122 and the layer 2 blockchain 124 (e.g., as defined in a smart contract). As an example, the atomic transaction may include a transaction to issue tokens on the layer 1 blockchain 122 and the layer 2 blockchain 124, or a transaction to burn (or destroy) tokens on the layer 1 blockchain 122 and the layer 2 blockchain 124. The atomic transaction may include a transaction that is recorded on multiple blockchains and includes multiple operations that need to be executed to complete the atomic transaction. Generally, a token represents an asset whose transaction history is maintained on one or more blockchains. In some aspects, the tokens discussed herein may include cryptocurrency tokens, stablecoin tokens (e.g., cryptocurrency tokens linked to a fiat currency), or other digital assets.
[0020] Upon receiving a request to invoke an atomic transaction, the transaction processor 112 invokes the first transaction within the set of enumerated operations on the first blockchain, which in turn triggers the execution of the operations on the first blockchain and the corresponding operations on the second blockchain. If the first operation is executed on the layer 1 blockchain 122, the second blockchain on which the corresponding operation is executed is the layer 2 blockchain 124, and similarly, if the first operation is executed on the layer 2 blockchain 124, the second blockchain on which the corresponding operation is executed is the layer 1 blockchain 122. When the operations defined for the atomic operation on the second blockchain are completed, the transaction processor 112 finalizes the atomic transaction on the first blockchain. Since an atomic transaction is generally not considered complete until each operation for the atomic transaction has completed successfully, finalizing the atomic transaction on the first blockchain upon detecting that the operations on the second blockchain have completed can ensure that consistency is maintained between the first blockchain and the second blockchain.
[0021] In some embodiments, the transaction processor 112 maintains a record in a tracking database 114 that tracks the operations between the layer 1 blockchain 122 and the layer 2 blockchain 124 to monitor the progress of atomic transactions between the layer 1 blockchain 122 and the layer 2 blockchain 124. When the transaction processor 112 initiates a first operation for an atomic transaction on the first blockchain, which may be the first operation defined in an enumerated set of operations for the atomic transaction, the transaction processor 112 can generate a record in the tracking database 114 that includes the parameters of the first operation, the identifier of the first operation, and an indication that the first operation is waiting for the completion of one or more second operations. Examples of records maintained in the tracking database 114 are shown in Tables 1 through 8 below. Subsequent entries in the tracking database 114 may reference another transaction in the tracking database 114 for subsequent operations executed in either the layer 1 blockchain 122 or the layer 2 blockchain 124 (e.g., based at least on the identifier assigned to any given operation). When each operation within the enumerated set of transactions is marked as complete, the atomic transaction may be considered complete.
[0022] Generally, to maintain records in the tracking database 114 that track the operations for atomic transactions between the layer 1 blockchain 122 and the layer 2 blockchain 124, the transaction processor 112 monitors information related to specific operations on the layer 1 blockchain 122 and the layer 2 blockchain 124. For example, the transaction processor 112 can actively monitor the records maintained on the layer 1 blockchain 122 and the layer 2 blockchain 124, or can listen for the messaging issued by the layer 1 blockchain 122 and the layer 2 blockchain 124 that references specific operations called on these blockchains. When the transaction processor 112 receives messaging from the layer 1 blockchain 122 and / or the layer 2 blockchain 124 confirming that an operation has been processed, the transaction processor 112 updates the appropriate records in the tracking database 114 to reflect that an operation that was pending completion is now complete, and can operate in reverse to finalize, confirm, and complete the related transactions. For example, if a record regarding a first operation references a second operation as a related operation and the transaction processor 112 receives messaging from the layer 1 blockchain 122 and / or the layer 2 blockchain 124 confirming the completion of the second operation, the transaction processor 112 generally uses the information regarding the second operation to determine whether the first operation is within the conditions for finalization. If the first operation is within the conditions for finalization (e.g., not waiting for other operations to complete), the transaction processor 112 starts the finalization and confirmation process regarding the first operation on the appropriate blockchain, and after receiving confirmation that a record proving the completion of the first operation has been registered on the appropriate blockchain, marks the first operation as complete in the tracking database 114.
[0023] For example, an atomic transaction that issues tokens on Layer 1 blockchain 122 and Layer 2 blockchain 124 may include a set of four operations, namely, a first operation to issue tokens on Layer 1 blockchain 122, a second transaction to bridge the issued tokens onto Layer 2 blockchain 124, a third transaction to deposit the tokens onto Layer 2 blockchain 124, and a fourth transaction to "sweep" the issued tokens to a specific account managed on Layer 2 blockchain 124. In this example, the "issuance" operation may be considered complete only when the bridge, sweep, and deposit transactions are also complete. Thus, when the issuance transaction is initiated, an entry in the tracking database 114 reflects that the issuance transaction has been initiated using the parameters specific to the issuance transaction and an indication that the issuance transaction is waiting for the completion of one or more other related transactions (e.g., defined by a smart contract or other enumerated operations for an atomic transaction). An exemplary entry in the tracking database 114 regarding the issuance transaction is shown in Table 1 below. TIFF2025517659000002.tif51170
[0024] As shown in Table 1, the issuance transaction has an ID of "1" and has a specified amount and address parameter, an indication that the issuance transaction is in a waiting state, and an indication that the completion of the issuance transaction requires the completion of related transactions. Based on this indication, the transaction processing system 110 places the transaction in a waiting state and listens for one or more messages referencing the issuance transaction (e.g., including the ID of "1") from Layer 1 blockchain 122 and / or Layer 2 blockchain 124 to determine when the atomic transaction has been completed.
[0025] At a subsequent point in time, the transaction processing system 110 receives a message referencing an issuance transaction indicating that the actions associated with the issuance transaction should be processed on the layer 1 blockchain 122 and / or the layer 2 blockchain 124. In this example, according to the set of enumerated actions, the next action to be processed is a bridging action to bridge the issued tokens from the layer 1 blockchain 122 to the layer 2 blockchain 124. To bridge the issuance transaction from the layer 1 blockchain 122 to the layer 2 blockchain 124, the transaction processor 112 can retrieve a deposit contract for the owner of the address to which the token is to be issued (e.g., the owner of address 0x123) and call the bridging action on the layer 1 blockchain 122 using the address of the deposit contract. Subsequently, the tracking database 114 includes two entries, namely, an entry for the issuance transaction on the layer 1 blockchain 122 and an entry for the bridging transaction between the layer 1 blockchain 122 and the layer 2 blockchain 124, as shown in Table 2 below. TIFF2025517659000003.tif64170
[0026] After a second transaction (e.g., the transaction with reference ID "2") is broadcast to the Layer 1 blockchain 122 and confirmed on the Layer 1 blockchain, the transaction processing system 110 places the second transaction in a waiting state and listens for a message containing ID "03df0904-24" to determine when related transactions for the second transaction are completed on one or both of the Layer 1 blockchain 122 and the Layer 2 blockchain 124. On the other hand, an event listener associated with the Layer 1 blockchain 122 and the Layer 2 blockchain determines that the bridging operation has been pushed to the Layer 1 blockchain 122 and can call the corresponding deposit operation on the Layer 2 blockchain 124 to generate a corresponding record for adding the token issued to the Layer 2 blockchain. In this example, the deposit operation issues a corresponding token on the Layer 2 blockchain and deposits the issued token on the Layer 2 blockchain (e.g., within a global account). After confirmation, the Layer 2 blockchain 124 can broadcast that the deposit transaction has been completed, and the transaction processor 112 generates a corresponding record in the tracking database 114. Thus, the tracking database 114 contains the following entries, as shown in Table 3. TIFF2025517659000004.tif78170
[0027] Based on the deposit transaction demonstrated in Table 3 above, the transaction processor 112 can then call a fourth transaction (e.g., a sweep operation) to move the tokens deposited on the layer 2 blockchain 124 to the appropriate wallet within the layer 2 blockchain. In this example, the sweep transaction can thus move the tokens deposited at address 0x789 to the wallet associated with address 0x123 (e.g., the first recipient address shown in the record for the first (issuance) transaction). After starting and completing the sweep transaction, the tracking database 114 contains four entries corresponding to the four operations defined for the atomic issuance transaction, as shown in Table 4 below. TIFF2025517659000005.tif91170
[0028] To complete an atomic transaction, the transaction processor 112 receives from the layer 2 blockchain 124 a message indicating that a sweep operation (e.g., the operation with reference ID "12b91791" as shown above) has been completed. Based on the relevant reference IDs within the sweep transaction record, the transaction processor 112 examines the records within the tracking database 114 to identify a transaction record having the same destination address and amount. Thus, in this example, the transaction processor 112 searches the records within the tracking database 114 for a transaction record having the same destination address (e.g., the same value within the "To_addr" field) and amount (e.g., the same value within the "Amt" field) as that included in the transaction record for the transaction with reference ID "4" (the deposit transaction shown in Table 4 above). Since the bridge transaction includes the same destination address and amount as the deposit transaction, the transaction processor 112 determines that the bridge transaction is waiting for the completion of the deposit transaction and can update the tracking database 114 to reflect the updated association and move the bridge transaction to a completed state. Table 5 shows the records within the tracking database 114 after the bridge transaction has been updated and marked as completed. TIFF2025517659000006.tif91170
[0029] After the bridge transaction is confirmed in the Layer 1 blockchain 122 and marked as complete, the transaction processor 112 then examines the tracking database 114 to identify transactions in a waiting state that reference the bridge transaction. The identified transactions are then finalized in the appropriate blockchain (e.g., in the Layer 1 blockchain in the case of an issuance transaction), and the atomic operation is considered complete. In this example, the transaction processor 112 completes the issuance transaction and sets the status of the issuance transaction in the tracking database 114 to complete.
[0030] In another example, an atomic transaction may be defined to burn or dispose of previously issued tokens on the Layer 1 blockchain 122 and the Layer 2 blockchain 124. The set of enumerated operations for the atomic burn transaction includes a first operation to burn the tokens on the Layer 2 blockchain 124 and a second operation to unbridge the burned tokens from the Layer 1 blockchain 122. Thus, the burn operation on the Layer 2 blockchain 124 can be treated as an operation that can only complete after the unbridge operation on the Layer 1 blockchain 122 is complete. Thus, when the burn transaction is executed and confirmed on the Layer 2 blockchain 124, the entry in the tracking database 114 may reflect that the burn transaction has been started, along with the parameters specific to the burn transaction and an indication that the burn transaction is waiting for the completion of one or more other related transactions (e.g., defined by a smart contract or other enumerated operations for the atomic transaction). An exemplary entry in the tracking database 114 for the issuance transaction is shown in Table 6 below. TIFF2025517659000007.tif51170
[0031] Since the incineration operation includes information indicating that the completion of the incineration operation requires the completion of the transaction associated therewith, the transaction processor 112 then waits for the completion of the operation of referring to the incineration operation before completing the incineration operation. Subsequently, in accordance with the listed operations for the atomic incineration transaction, the unbridging operation is called on the layer 1 blockchain 122 (e.g., by the operation of the smart contract executed between the layer 1 blockchain 122 and the layer 2 blockchain 124). To unbridge the token from the layer 1 blockchain, the transaction processor 112 can generate a checkpoint in the layer 1 blockchain 122 and obtain from the layer 2 blockchain 124 evidence that the token has been incinerated on the layer 2 blockchain 124. After the transaction processor 112 receives the evidence and confirms that the token has been incinerated on the layer 2 blockchain 124, the transaction processor 112 calls the unbridging operation on the layer 1 blockchain 122, inserts the corresponding record into the tracking database 114, and sets the reference ID associated with the incineration operation to the reference ID of the unbridging operation. After the unbridging operation is confirmed and completed, the tracking database 114 includes the entry shown in Table 7 below. TIFF2025517659000008.tif75170
[0032] Subsequently, the transaction processor 112 receives a message from the layer 1 blockchain 122 indicating that the unbridging operation has been completed. Based on receiving this message, the transaction processor 112 searches the tracking database 114 for an operation having a related reference ID that matches the reference ID of the unbridging operation (in this case, the incineration operation having the reference ID "5"). The transaction processor 112 then starts the completion process of the incineration operation, commits and confirms the incineration operation on the layer 2 blockchain 124, and updates the tracking database 114 when it receives confirmation from the layer 2 blockchain 124 that the incineration operation has been completed. The final state of the tracking database 114 after the completion of the atomic incineration transaction is shown in Table 8 below. TIFF2025517659000009.tif75170
[0033] Using the techniques discussed above, the first operation for an atomic transaction is not confirmed and completed until each of the other operations defined in the enumerated set of operations for the atomic transaction is also completed. The enumerated set of operations is defined a priori and can be stored as a smart contract defined on one or both of the Layer 1 blockchain 122 and the Layer 2 blockchain 124 that automatically executes a series of operations, for example, when called or when programmatically defined in the transaction processor 112. The first operation for the atomic transaction is placed in a waiting state and is only confirmed and completed on the appropriate blockchain after the other operations defined in the enumerated set of operations for the atomic transaction are completed. Thus, aspects of the present disclosure guarantee the atomicity of operations including actions executed on both the Layer 1 blockchain 122 and the Layer 2 blockchain 124. Accordingly, operations on both the Layer 1 blockchain 122 and the Layer 2 blockchain 124 are automatically executed and can be considered part of an atomic transaction, reducing the transaction overhead, time, and other resource utilization (e.g., the "gas" fees charged to execute a transaction on the Layer 1 blockchain 122 or other transaction fees within the network 120) involved in bridging a transaction from the first blockchain to the second blockchain. First, since the enumerated set of operations is automatically executed by the transaction processor 112 rather than by different independent systems, the messaging overhead involved in coordinating operations between these independent systems can be reduced or minimized (e.g., through minimizing or eliminating messaging between different systems to trigger the execution of related operations).Second, automatically executing the listed set of operations can improve the reliability of the computing system on which these operations are performed, as it can reduce the likelihood that messages for triggering the execution of related operations are lost during transfer between different systems involved in bridging transactions between different blockchains. Third, since the blockchains between which transactions are bridged are guaranteed to be consistent with each other after the completion of atomic transactions executed between these blockchains, there is no need to use processing cycles and other computing resources to verify whether the records for the transactions bridged between blockchains are consistent.
[0034] It should be appreciated that the techniques discussed herein can be used to define a series of operations as atomic transactions between any number of blockchains. Further, the token burning operation and the token issuance operation discussed above are examples of atomic transactions that can be executed between different blockchains, but it should be appreciated that the techniques discussed herein can be used to define any type of transaction between different blockchains where atomicity is desired (e.g., here, a transaction should be defined as an all-or-nothing operation where the transaction is only complete when all of the operations defined for the transaction have been completed and the transaction fails when any one of the operations cannot be performed).
[0035] Exemplary Transaction Bridge Using Atomic Transactions FIG. 2 is a message flow diagram 200 showing messages exchanged between a transaction processor 202, a layer 1 blockchain 204, and a layer 2 blockchain 206 to execute an atomic token issuance transaction that bridges tokens issued from the layer 1 blockchain to the layer 2 blockchain. The transaction processor 202 may correspond to, for example, the transaction processor 112 shown in FIG. 1, the layer 1 blockchain 204 may correspond to, for example, the layer 1 blockchain 122 shown in FIG. 1, and the layer 2 blockchain 206 may correspond to, for example, the layer 2 blockchain 124 shown in FIG. 1.
[0036] In this example, the atomic token issuance transaction includes multiple operations. These operations include, for example, issuing a token on the layer 1 blockchain 204, bridging the token to the layer 2 blockchain 206, and depositing the issued token at an appropriate address on the layer 2 blockchain 206. Generally, the atomic token issuance transaction does not complete until multiple operations are completed, and the multiple operations are considered part of a single all-or-nothing operation that incurs a single transaction fee by the layer 1 blockchain 204 (e.g., the blockchain on which the transaction is initiated). Since the multiple operations are considered part of a larger all-or-nothing transaction or are treated as such, the failure of any one operation causes the entire transaction to fail.
[0037] As shown, to initiate an atomic token issuance transaction that bridges tokens issued from Layer 1 blockchain 204 to Layer 2 blockchain 206, transaction processor 202 receives an issuance request 210 coming in (e.g., from an external service requesting creation of tokens on Layer 1 blockchain 204 and Layer 2 blockchain 206). Issuance request 210 may generally correspond to a transaction having a reference ID “1” from Tables 1 to 5 above. Generally, issuance request 210 includes information identifying some tokens to be issued and the address where the tokens are to be deposited on Layer 2 blockchain 206. Issuance request 210 may also include other information that annotates the atomic token issuance operation and can be used to perform various authorization and authentication processes, etc.
[0038] Based on receiving incoming issuance request 210, transaction processor 202 sends an L1 issuance request 212 to Layer 1 blockchain 204 to issue a specified number of tokens on Layer 1 blockchain 204. L1 issuance request 212, as discussed above, is the first operation of the atomic token issuance transaction and may not be completed until the operations defined (e.g., by a smart contract or other enumerated operations that define the atomic token issuance transaction) are completed. To ensure that the atomic token issuance transaction is not accidentally marked as complete when there are still pending operations that could put Layer 1 blockchain 204 and Layer 2 blockchain 206 in an inconsistent state, transaction processor 202 places L1 issuance request 212 in a waiting state in the tracking database until other operations defined for the atomic token issuance operation are completed.
[0039] In layer 1 blockchain 204, when L1 issuance request 212 is received, block 214 is executed on layer 1 blockchain 204, and the number of tokens specified in L1 issuance request 212 is issued. Generally, issuing tokens in block 214 creates several tokens to be bridged to layer 2 blockchain 206 and triggers the execution of corresponding operations on layer 2 blockchain 206 (e.g., according to the smart contract called on layer 1 blockchain 204). As shown, to trigger the execution of corresponding operations on layer 2 blockchain 206, layer 1 - layer 2 bridge request 216 is transferred from layer 1 blockchain 204 to layer 2 blockchain 206. Layer 1 - layer 2 bridge request 216 generally indicates the number of tokens to be issued on layer 2 blockchain 206 and the address where the tokens should be deposited on layer 2 blockchain 206. To track the completion of an atomic token issuance transaction, in some aspects, transaction processor 202 generates a record in the tracking database for layer 1 - layer 2 bridge request 216 (corresponding to the transaction having reference ID "2" from Table 2 to Table 5 above) and marks L1 issuance request 212 as depending on the completion of layer 1 - layer 2 bridge request 216.
[0040] Subsequently, in block 218, corresponding tokens are issued in order to create corresponding tokens on layer 2 blockchain 206. In block 220, these tokens are deposited at the address on layer 2 blockchain 206 specified in the layer 1 - layer 2 bridge request 216. To track the completion of the atomic token issuance transaction, transaction processor 202 generates records in the tracking database for the token issuance operation in block 218 (corresponding to the transaction with reference ID "3" from Table 4 to Table 5 above) and the token deposit operation in block 220 (corresponding to the transaction with reference ID "4" from Table 3 to Table 5 above).
[0041] In block 222, transaction processor 202 detects the completion of the operations defined to issue tokens atomically on the L2 blockchain. To detect the completion of these operations, transaction processor 202 generally reads layer 1 blockchain 204 and / or layer 2 blockchain 206, and / or listens for messages referencing specific operations issued by layer 1 blockchain 204 and / or layer 2 blockchain 206 (e.g., broadcast to participating devices) to confirm that these operations have been completed. Generally, the completion of the atomic token issuance operation may work in the reverse direction, with the latest operation completing before the previous operation is considered complete. When the operation is completed, transaction processor 202 examines the transaction data such as the identifier of the related operation and / or the amount and destination address information (e.g., within tracking database 114) to link the transactions and initiate a process to confirm and complete the previous operation upon completion of the subsequent operation.
[0042] Based on detecting the completion of operations for atomically issuing tokens on the Layer 2 blockchain 206, in block 224, the transaction processor 202 marks the issuance transaction as complete. The issuance transaction is defined as an atomic transaction, and the completion of the issuance transaction can be defined as conditional upon the completion of the set of enumerated operations on the Layer 1 blockchain 204 and the Layer 2 blockchain 206. Thus, marking the transaction as complete generally ensures consistency between the Layer 1 blockchain 204 and the Layer 2 blockchain 206. That is, since the token issuance operation is defined as an atomic transaction that completes only when the set of enumerated operations is complete, when the atomic issuance transaction is marked as complete, the appropriate number of tokens is issued on both the Layer 1 blockchain 204 and the Layer 2 blockchain 206 and deposited at the appropriate address on the Layer 2 blockchain 206. As discussed, since the atomic issuance transaction is marked as complete only after the set of enumerated operations is complete, consistency between the records in the Layer 1 blockchain 204 and the Layer 2 blockchain 206 may be ensured, which can improve the reliability of the system operating on these blockchains, reconcile records between blockchains, and minimize the processing overhead involved in verifying that the blockchains across which the token issuance transaction is bridged are consistent with each other. Further, by executing the token issuance transaction between blockchains as an atomic transaction, aspects of the present disclosure reduce the amount of computational resources involved in bridging the token issuance transaction between different blockchains because no messaging needs to be exchanged between the transaction processor 202 and other independent systems to coordinate the execution of operations involved in bridging the token issuance transaction from the Layer 1 blockchain 204 to the Layer 2 blockchain 206.
[0043] Figure 3 is a message flow diagram showing messages exchanged between a transaction processor 302, a layer 1 blockchain 304, and a layer 2 blockchain 306 to execute an atomic token burning transaction that burns previously issued tokens from the layer 1 blockchain and the layer 2 blockchain. The transaction processor 302 may correspond to, for example, the transaction processor 112 shown in FIG. 1, the layer 1 blockchain 304 may correspond to, for example, the layer 1 blockchain 122 shown in FIG. 1, and the layer 2 blockchain 306 may correspond to, for example, the layer 2 blockchain 124 shown in FIG. 1.
[0044] In this example, the atomic token burning transaction includes a plurality of operations. These operations include, for example, burning tokens on the layer 2 blockchain 306 and bridging the burning of these tokens to the layer 1 blockchain 304. Generally, the atomic token burning transaction does not complete until each of these operations is completed, and these operations are not considered separate operations that incur separate transaction fees, but rather a single all-or-nothing operation that incurs a single transaction fee.
[0045] As shown, to initiate an atomic token burning transaction that bridges burned tokens from the layer 2 blockchain 306 to the layer 1 blockchain 304, the transaction processor 302 receives an incoming burn request 310 (e.g., from an external service that requests the destruction of tokens on the layer 1 blockchain 304 and the layer 2 blockchain 306). Generally, the burn request 310 includes information identifying some tokens to be burned and the address from which the tokens are to be burned on the layer 2 blockchain 306. The burn request 310 annotates the atomic token burning operation and may also include other information that can be used to perform various authorization and authentication processes and the like.
[0046] Based on receiving the incoming incineration request 310, the transaction processor 302 sends an L2 incineration request 312 to the layer 2 blockchain 306 to incinerate a specified number of tokens on the layer 2 blockchain 306. The L2 incineration request 312 is, as discussed above, the first action of the atomic token incineration transaction and may not be completed until the actions defined (e.g., by a smart contract or other enumerated actions that define the atomic token incineration transaction) are completed. To ensure that the atomic token incineration transaction is not erroneously marked as complete while the actions are pending, the transaction processor 302 places the record corresponding to the L2 incineration request 312 (e.g., the transaction having the reference ID "5" from Table 6 to Table 8 above) in a waiting state within the tracking database until the other actions defined for the atomic token incineration action are completed.
[0047] In layer 2 blockchain 306, when L2 incineration request 312 is received, block 314 is executed on layer 2 blockchain 204, and the specified number of tokens in L2 incineration request 312 are incinerated. Generally, incinerating tokens in block 314 creates a discrepancy between the number of existing tokens in layer 2 blockchain 306 and layer 1 blockchain 304, triggering the execution of corresponding operations on layer 1 blockchain 304. As shown, to trigger the execution of corresponding operations on layer 1 blockchain 304, a layer 1 - layer 2 bridge request 316 is transferred from layer 2 blockchain 306 to layer 1 blockchain 304. The layer 1 - layer 2 bridge request 316 generally indicates the number of tokens to be incinerated on layer 1 blockchain 306 and the address from which tokens are to be incinerated on layer 1 blockchain 304. To track the completion of the atomic token incineration transaction, in some embodiments, transaction processor 302 generates a record in the tracking database for layer 1 - layer 2 bridge request 316 (e.g., a transaction having reference ID "6" from table 7 to table 8 above), and marks L2 incineration request 312 as dependent on the completion of layer 1 - layer 2 bridge request 316.
[0048] Subsequently, to incinerate the corresponding number of tokens on layer 1 blockchain 304 and equalize the number of existing tokens in layer 1 blockchain 304 and layer 2 blockchain 306, in block 318, the corresponding tokens are incinerated.
[0049] In block 320, the transaction processor 302 detects the completion of operations defined to atomically burn tokens on the layer 1 blockchain and the layer 2 blockchain. To detect the completion of these operations, the transaction processor 302 generally reads the layer 1 blockchain 304 and / or the layer 2 blockchain 306, and / or listens for messages referencing specific operations issued (e.g., broadcast to participating devices) by the layer 1 blockchain 304 and / or the layer 2 blockchain 306, and confirms that these operations have been completed. Generally, determining that an atomic token burning operation has been completed can work in the reverse direction, and the token unbridging operation is marked as completed in the tracking database (e.g., tracking database 114) before the token burning operation on the layer 2 blockchain 306 is considered completed. When the operation is completed, the transaction processor 302 examines the transaction data such as the identifier of the associated operation and / or the quantity and destination address information to link the transactions and initiate a process to confirm and complete the previous operation upon completion of a subsequent operation.
[0050] Based on detecting the completion of an operation to atomically burn tokens on layer 1 blockchain 304 and layer 2 blockchain 306, in block 322, transaction processor 302 marks the burn transaction as complete. The burn transaction is defined as an atomic transaction, and the completion of the burn transaction can be defined as conditional upon the completion of the set of enumerated operations on layer 1 blockchain 304 and layer 2 blockchain 306. Thus, marking the transaction as complete generally ensures consistency between layer 1 blockchain 204 and layer 2 blockchain 206. That is, since the token burn operation is defined as an atomic transaction that completes only when the set of enumerated operations is complete, when an atomic burn transaction is marked as complete, an appropriate number of tokens are burned on both layer 1 blockchain 304 and layer 2 blockchain 306, and the number of remaining tokens after burning in each of layer 1 blockchain 304 and layer 2 blockchain 306 is less than the number of tokens that existed before receiving the burn request 310 and before the completion of the atomic token burn transaction. As discussed, since an atomic burn transaction is marked as complete only after the set of enumerated operations is complete, consistency between records in layer 1 blockchain 304 and layer 2 blockchain 306 may be ensured, which can improve the reliability of the system operating on these blockchains, reconcile records between blockchains, and minimize the processing overhead involved in verifying that the blockchains across which transactions are bridged are consistent with each other.Furthermore, by executing token burning transactions between blockchains as atomic transactions, aspects of the present disclosure reduce the amount of computing resources involved in bridging transactions between different blockchains because there is no need to exchange messaging between the transaction processor 302 and other independent systems to coordinate the execution of actions involved in bridging a token burning transaction from the layer 1 blockchain 304 to the layer 2 blockchain 306.
[0051] Exemplary Operations for an Atomic Transaction Bridge between a First Blockchain and a Second Blockchain FIG. 4 shows an exemplary operation 400 for an atomic transaction bridge between a first blockchain and a second blockchain, such as the layer 1 blockchain 122 and the layer 2 blockchain 124 shown in FIG. 1, the layer 1 blockchain 204 and the layer 2 blockchain 206 shown in FIG. 2, and / or the layer 1 blockchain 304 and the layer 2 blockchain 306 shown in FIG. 3. The operation 400 can be performed, for example, by the transaction processing system 110 shown in FIG. 1 or by other processing systems capable of coordinating transactions between a first blockchain and a second blockchain (e.g., between a layer 1 blockchain and a layer 2 blockchain, or vice versa).
[0052] As shown, operation 400 begins at block 410 by receiving a request to invoke an atomic transaction. Generally, an atomic transaction includes actions executed on a first blockchain and actions executed on a second blockchain, and the atomic transaction is considered complete when the set of enumerated actions (on the first and second blockchains) is complete.
[0053] In some embodiments, a set of enumerated operations may be enumerated in a smart contract that defines an atomic transaction. The smart contract can be, for example, a smart contract defined on a layer 1 blockchain (e.g., the ETHEREUM® network, or other cryptocurrency networks that support smart contracts).
[0054] In some embodiments, a request to invoke an atomic transaction can be a request to generate a token on a first blockchain according to a defined format. For example, when the Ethereum® network functions as a layer 1 blockchain overlaid with a layer 2 blockchain, the request to invoke an atomic transaction can be a request to generate a token that complies with the Ethereum® Request for Comment (ERC)-20 preconditions. The ERC-20 preconditions generally define a set of functions that a token needs to implement to enable the token to be integrated with other contracts, markets, wallets, or other computing resources that can execute transactions using these tokens.
[0055] In block 420, operation 400 proceeds to initiate a first operation for an atomic transaction within a set of enumerated operations on the first blockchain. Generally, initiating the first operation on the first blockchain triggers the initiation of one or more second operations on the second blockchain.
[0056] In block 430, operation 400 proceeds to detect completion of one or more second operations of an atomic transaction on the second blockchain. Generally, completion of one or more second operations indicates that operations for an atomic transaction related to the second blockchain have been completed on the second blockchain, and the remaining operations for the atomic transaction on the first blockchain can be executed and / or confirmed and completed on the first blockchain.
[0057] In some aspects, starting a first operation for an atomic transaction includes writing an entry including the parameters of the first operation, an identifier of the first operation, and an indication that the first operation is waiting for completion of one or more second operations, to a tracking database. As discussed, entries in the tracking database generally enable the transaction processor to link operations that may not be explicitly marked as related operations, and to mark operations that should not be completed until the related operations are completed. To detect completion of one or more second operations, the transaction processor matches one or more parameters in an entry in the tracking database for one operation of one or more second operations for the atomic transaction, with one or more corresponding parameters of the first operation. For example, the matching parameters can be reference identifiers associated with the first operation and one or more second operations. For example, the matching parameters can include a destination address and an amount associated with the transaction, as indicated by the bridge and deposit transactions of Table 5 shown above. In some aspects, if the first operation is not explicitly associated with one of the second operations, the first operation and one of the second operations can be matched based on other information, such as an amount parameter, a destination address parameter, or other parameters associated with the first operation and one or more second operations.
[0058] In block 440, operation 400 proceeds to finalize an atomic transaction on the first blockchain based on detecting the completion of one or more second operations on the second blockchain.
[0059] In some aspects, the first blockchain may be a layer 1 blockchain (e.g., the ETHEREUM blockchain), and the second blockchain may be a layer 2 blockchain (e.g., the POLYGON blockchain) overlaid on the layer 1 blockchain. The atomic transaction may include a transaction for issuing tokens on the layer 2 blockchain. In such a case, starting the first operation for the atomic transaction may include starting a token issuance operation on the layer 1 blockchain. This may then trigger the execution of one or more operations to bridge the token issuance operation on the layer 1 blockchain to the layer 2 blockchain. The one or more operations for bridging the token issuance operation on the layer 1 blockchain to the layer 2 blockchain generally include a transaction for depositing tokens from an address on the layer 1 blockchain to an address on the layer 2 blockchain and a sweep operation on the layer 2 blockchain to confirm that the tokens have been deposited to the address on the layer 2 blockchain.
[0060] In some embodiments, the first blockchain may be a layer 2 blockchain and the second blockchain may be a layer 1 blockchain. An atomic transaction may include a transaction for burning tokens on the layer 2 blockchain. In such a case, initiating a second action for the atomic transaction may include initiating a token burning action on the layer 1 blockchain. This may then trigger the execution of one or more actions to bridge the token burning action on the layer 1 blockchain to the layer 2 blockchain. The one or more actions for bridging the token burning action generally include a transaction for canceling the corresponding tokens on the layer 1 blockchain.
[0061] Exemplary system for an atomic transaction bridge between a first blockchain and a second blockchain FIG. 5 shows an exemplary system 500 configured to perform a method described herein, including, for example, operation 200 of FIG. 2, operation 300 of FIG. 3, and / or operation 400 of FIG. 4. In some embodiments, system 500 may function as a transaction processing system in which transactions are bridged between a layer 1 blockchain and a layer 2 blockchain, such as transaction processing system 110 shown in FIG. 1.
[0062] As shown, system 500 includes a central processing unit (CPU) 502, a network interface 506 through which system 500 is connected to a network 590 (which may be a local network, intranet, Internet, or any other group of computing devices communicatively connected to each other), a memory 508, and an interconnecting line 512. The network interface 506 can be used to receive requests to bridge transactions between different blockchains, such as layer 1 blockchain and layer 2 blockchain (as illustrated and described with respect to FIGS. 1 through 3, for example).
[0063] The CPU 502 may retrieve and execute programming instructions stored in the memory 508. Similarly, the CPU 502 may retrieve and store application data present in the memory 508. The interconnecting line 512 transmits programming instructions and application data between the CPU 502, the network interface 506, and the memory 508.
[0064] The CPU 502 is included to represent a single CPU, multiple CPUs, a single CPU having multiple processing cores, and so on.
[0065] The memory 508 represents volatile memory such as random access memory, or non-volatile memory such as non-volatile random access memory, phase change random access memory. As shown, the memory 508 includes a transaction processor 520 and a tracking database 530.
[0066] The transaction processor 520 generally corresponds to the transaction processor 112 shown in FIG. 1. Generally, the transaction processor 520 receives requests to invoke atomic transactions on a first blockchain (which may correspond to the layer 1 blockchain 122 shown in FIG. 1) and a second blockchain (which may correspond to the layer 2 blockchain 124 shown in FIG. 1). These requests may specify a set of operations to be completed to perform an atomic transaction between the first blockchain and the second blockchain, such as, for example, a token issuance transaction, a token burning transaction, or other transactions for which consistency between the first blockchain and the second blockchain should be maintained. To execute an atomic transaction, the transaction processor 520 invokes a first operation of the enumerated set of operations for the atomic transaction on the first blockchain (by sending one or more messages to the first blockchain via, for example, the network interface 506), which triggers the execution of corresponding operations on one or both of the first blockchain and the second blockchain. When the transaction processor 520 detects that the other operations within the enumerated set of operations have been completed (e.g., receives messaging indicating that these operations have been completed from the first blockchain and / or the second blockchain via the network interface 506), the transaction processor 520 completes the first operation and finalizes the atomic transaction.
[0067] The tracking database 530 generally corresponds to the tracking database 114 shown in FIG. 1. Generally, the tracking database 530 maintains records of transactions executed on the first blockchain and the second blockchain. These records are generated, maintained, and updated by the transaction processor 520 based on records read from the first blockchain and / or the second blockchain and / or messaging issued by the first blockchain and / or the second blockchain to track the completion of operations defined for atomic transactions. When an operation is marked as completed within the tracking database 530, previous operations that depend on the completed operation can be processed by the transaction processor 520 and the appropriate blockchain (e.g., the first blockchain and / or the second blockchain).
[0068] Exemplary clauses Details of implementations for various aspects of the present disclosure are described in the following numbered clauses.
[0069] Clause 1: Receiving a request to invoke an atomic transaction that includes operations executed on a first blockchain and operations executed on a second blockchain, where the atomic transaction completes when the set of enumerated operations is complete; receiving the request to invoke; starting a first operation for the atomic transaction within the set of enumerated operations on the first blockchain, where starting the first operation on the first blockchain triggers the start of one or more second operations for the atomic transaction on the second blockchain; detecting the completion of one or more second operations for the atomic transaction on the second blockchain, indicating that the operations for the atomic transaction related to the second blockchain have been completed on the second blockchain; and based on detecting the completion of the one or more second operations on the second blockchain, finalizing the atomic transaction on the first blockchain. A method comprising the above steps.
[0070] Clause 2: The method according to Clause 1, wherein the set of enumerated operations is enumerated in a smart contract that defines the atomic transaction.
[0071] Clause 3: The method according to either Clause 1 or Clause 2, wherein the request to invoke the atomic transaction includes a request to generate a token on the first blockchain.
[0072] Clause 4: The method according to any one of Clauses 1 to 3, wherein starting a first operation for the atomic transaction on the first blockchain includes writing an entry to a tracking database that includes the parameters of the first operation, an identifier of the first operation, and an indication that the first operation is waiting for the completion of one or more second operations for the atomic transaction.
[0073] Clause 5: Detecting the completion of one or more second operations for an atomic transaction includes matching one or more parameters in an entry in a tracking database for one operation of the one or more second operations for the atomic transaction with one or more corresponding parameters of the first operation, the method according to clause 4.
[0074] Clause 6: The first blockchain includes a layer 1 blockchain, and the second blockchain includes a layer 2 blockchain, the method according to any one of clauses 1 to 5.
[0075] Clause 7: The atomic transaction includes a transaction for issuing tokens on the layer 2 blockchain, the method according to clause 6.
[0076] Clause 8: Initiating a first operation for an atomic transaction includes initiating a token issuance operation on the layer 1 blockchain, the method according to clause 7.
[0077] Clause 9: Initiating a token issuance operation on the layer 1 blockchain triggers the execution of one or more operations for bridging the token issuance operation on the layer 1 blockchain to the layer 2 blockchain, and the one or more operations for bridging the token issuance operation on the layer 1 blockchain to the layer 2 blockchain include a transaction for depositing tokens from an address on the layer 1 blockchain to an address on the layer 2 blockchain and a sweep operation on the layer 2 blockchain to confirm that the tokens have been deposited to the address on the layer 2 blockchain, the method according to clause 8.
[0078] Clause 10: The first blockchain includes a layer 2 blockchain, and the second blockchain includes a layer 1 blockchain, the method according to any one of clauses 1 to 5.
[0079] Clause 11: The method described in Clause 10, including a transaction for burning tokens on a Layer 2 blockchain.
[0080] Clause 12: The method described in Clause 11, where starting the first operation for an atomic transaction includes starting a token burning operation on a Layer 2 blockchain.
[0081] Clause 13: Starting a token burning operation on a Layer 2 blockchain triggers the execution of one or more operations for bridging an atomic transaction to a Layer 1 blockchain, and the one or more operations include a transaction for canceling the corresponding token on the Layer 1 blockchain. This is the method described in Clause 12.
[0082] Clause 14: A system comprising a memory storing executable instructions and a processor configured to execute the executable instructions to perform the operations described in any one of Clauses 1 to 13.
[0083] Clause 15: A system comprising means for performing the operations described in any one of Clauses 1 to 13.
[0084] Clause 16: A computer-readable medium storing instructions that, when executed by a processor, perform the operations described in any one of Clauses 1 to 13.
[0085] Additional Considerations The foregoing description is provided to enable a person of ordinary skill in the art to practice the various embodiments described herein. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments. For example, without departing from the scope of the present disclosure, changes may be made to the functions and configurations of the elements described. Various examples may omit, substitute, or add various procedures or components as necessary. Also, the features described in some examples may be combined in some other examples. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects described herein. Further, the scope of the present disclosure is intended to include such apparatus or methods implemented using other structures, functions, or a combination of structures and functions in addition to, or other than, the various aspects of the present disclosure described herein. It should be understood that any aspect of the present disclosure disclosed herein may be embodied by one or more elements of a claim.
[0086] As used herein, the phrase referring to a list of items "at least one of" refers to any combination of those items, including a single member. By way of example, "at least one of a, b, or c" includes a, b, c, a - b, a - c, b - c, and a - b - c, as well as any combination with multiple of the same elements (e.g., a - a, a - a - a, a - a - b, a - a - c, a - b - b, a - c - c, b - b, b - b - b, b - b - c, c - c, and c - c - c, or any other order of a, b, and c).
[0087] As used herein, the term "determining" encompasses a wide variety of actions. For example, "determining" can include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, database, or another data structure), ascertaining, etc. Also, "determining" can include receiving (e.g., receiving information), accessing (e.g., accessing data in memory), etc. Further, "determining" can include resolving, selecting, choosing, establishing, etc.
[0088] The methods disclosed herein include one or more steps or actions for achieving the methods. Method steps and / or actions can be interchanged with one another without departing from the scope of the claims. In other words, the order and / or use of particular steps and / or actions can be modified without departing from the scope of the claims, unless a specific order of steps or actions is specified. Further, the various operations of the methods described above can be performed by any suitable means capable of performing the corresponding functions. The means can include, without limitation, various hardware and / or software components and / or modules including circuits, application specific integrated circuits (ASICs), or processors. Generally, where there are operations shown in the figures, those operations can have corresponding components having similar means and functions with similar numbers.
[0089] The various illustrative logical blocks, modules, and circuits described in connection with the present disclosure may be implemented or executed using a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device (PLD), discrete gates or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any commercially available processor, controller, microcontroller, or state machine. The processor may be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
[0090] The processing system may be implemented using a bus architecture. The bus may include any number of interconnected buses and bridges depending on the specific application of the processing system and the overall design constraints. The bus may link together various circuits including, among other things, a processor, a machine-readable medium, and an input / output device. A user interface (such as a keypad, display, mouse, joystick, etc.) may also be connected to the bus. The bus may also link together various other circuits such as a timing source, peripherals, voltage regulators, power management circuits, etc., which are well known in the art and, thus, will not be described any further herein. The processor may be implemented using one or more general purpose and / or dedicated processors. Examples include a microprocessor, a microcontroller, a DSP processor, and other circuits capable of executing software. Those of ordinary skill in the art will recognize how best to implement the described functions for a particular application and the overall design constraints imposed on the overall system.
[0091] When implemented in software, the functions can be stored or transmitted on a computer-readable medium as one or more instructions or code. Software should be interpreted broadly to mean instructions, data, or any combination thereof, whether called software, firmware, middleware, microcode, hardware description language, or by any other name. A computer-readable medium includes both computer storage media and communication media such as any medium that facilitates transfer of a computer program from one place to another. A processor may be responsible for managing a bus and general processing including the execution of software modules stored on a computer-readable storage medium. The computer-readable storage medium may be coupled to the processor such that the processor can read information from, and write information to, the storage medium. Alternatively, the storage medium may be integrated with the processor. By way of example, the computer-readable medium may include a computer-readable storage medium storing instructions separate from a wireless node, such as a transmission line, a carrier wave modulated by data, and / or, all of which can be accessed by the processor through a bus interface. Alternatively or additionally, the computer-readable medium or any part thereof may be integrated with the processor, as in the case of a cache and / or a general-purpose register file. Examples of machine-readable storage media can include, by way of example, RAM (Random Access Memory), flash memory, ROM (Read Only Memory), PROM (Programmable Read Only Memory), EPROM (Erasable Programmable Read Only Memory), EEPROM (Electrically Erasable Programmable Read Only Memory), registers, magnetic disks, optical disks, hard drives, or any other suitable storage medium, or any combination thereof. The machine-readable medium may be embodied in a computer program product.
[0092] A software module may contain a single instruction or many instructions and may be distributed across several different code segments, between different programs, and across multiple storage media. A computer-readable medium may contain several software modules. A software module contains instructions that, when executed by a device such as a processor, cause a processing system to perform various functions. A software module may include a sending module and a receiving module. Each software module may exist within a single storage device or may be distributed across multiple storage devices. By way of example, a software module may be loaded from a hard drive into RAM when a trigger event occurs. During execution of a software module, the processor may load some of the instructions into a cache to increase access speed. One or more cache lines may then be loaded into a general-purpose register file for execution by the processor. When referring to the functionality of a software module, it will be understood that such functionality is implemented by the processor when executing instructions from that software module.
[0093] The following claims are not limited to the embodiments shown in this specification, but should be given the full scope consistent with the language of the claims. In the claims, a reference to an element in the singular is not meant to mean "one and only one" unless specifically stated otherwise, but rather "one or more." Unless otherwise specified, the term "some" refers to one or more. No element of any claim should be construed under the provisions of 35 U.S.C. § 112(f) unless the element is expressly recited using the phrase "means for" or, in the case of a method claim, the element is recited using the phrase "step for." All structural and functional equivalents to the various elements of the aspects described throughout this disclosure that are known or later become known to those of ordinary skill in the art are hereby expressly incorporated herein by reference and are intended to be encompassed by the claims. Further, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is expressly recited in the claims.
Claims
**Claim 1** Receiving a request to invoke an atomic transaction that includes operations executed on a first blockchain and operations executed on a second blockchain, wherein the atomic transaction completes when a set of enumerated operations is completed; receiving the request to invoke; Starting a first operation for the atomic transaction within the set of enumerated operations on the first blockchain, wherein starting the first operation on the first blockchain triggers the start of one or more second operations for the atomic transaction on the second blockchain; starting the first operation; Detecting completion of the one or more second operations for the atomic transaction on the second blockchain, indicating that the operations for the atomic transaction related to the second blockchain have been completed on the second blockchain; And finalizing the atomic transaction on the first blockchain based on detecting completion of the one or more second operations on the second blockchain. A method. **Claim 2** The method according to claim 1, wherein the set of enumerated operations is enumerated in a smart contract that defines the atomic transaction. **Claim 3** The method according to claim 1, wherein the request to invoke the atomic transaction includes a request to generate a token on the first blockchain. **Claim 4** Starting the first operation for the atomic transaction on the first blockchain includes writing an entry to a tracking database that includes parameters of the first operation, an identifier of the first operation, and an indication that the first operation is waiting for completion of the one or more second operations for the atomic transaction. The method according to claim 1. **Claim 5** Detecting completion of the one or more second operations for the atomic transaction includes matching one or more parameters in an entry in the tracking database for one operation of the one or more second operations for the atomic transaction with the one or more corresponding parameters of the first operation, the method of claim 4.
6. The method of claim 1, wherein the first blockchain includes a layer 1 blockchain and the second blockchain includes a layer 2 blockchain.
7. The method of claim 6, wherein the atomic transaction includes a transaction for issuing tokens on the layer 2 blockchain.
8. The method of claim 7, wherein starting the first operation for the atomic transaction includes starting a token issuance operation on the layer 1 blockchain.
9. Starting the token issuance operation on the layer 1 blockchain triggers execution of one or more operations for bridging the token issuance operation on the layer 1 blockchain to the layer 2 blockchain. The one or more operations for bridging the token issuance operation on the layer 1 blockchain to the layer 2 blockchain include a transaction for depositing tokens from an address on the layer 1 blockchain to an address on the layer 2 blockchain and a sweep operation on the layer 2 blockchain to confirm that the tokens have been deposited at the address on the layer 2 blockchain, the method of claim 8.
10. The method of claim 1, wherein the first blockchain includes a layer 2 blockchain and the second blockchain includes a layer 1 blockchain.
11. The method of claim 10, wherein the atomic transaction includes a transaction for burning tokens on the layer 2 blockchain.
12. The method of claim 11, wherein starting the first operation for the atomic transaction includes starting a token burning operation on the layer 2 blockchain.
13. Initiating the token incineration operation on the layer 2 blockchain triggers the execution of one or more operations for bridging the atomic transaction to the layer 1 blockchain, wherein the one or more operations include a transaction for canceling a corresponding token on the layer 1 blockchain, the method according to claim 12.
14. A system, a memory storing executable instructions, and a processor configured to execute the executable instructions, wherein the executable instructions cause the system to receive a request to invoke an atomic transaction including operations executed on a first blockchain and operations executed on a second blockchain, the atomic transaction completing when a set of enumerated operations is completed; receive a request to invoke; initiate a first operation for the atomic transaction within the set of enumerated operations on the first blockchain, wherein initiating the first operation on the first blockchain triggers the initiation of one or more second operations for the atomic transaction on the second blockchain; initiate a first operation; detect the completion of the one or more second operations for the atomic transaction on the second blockchain, indicating that the operations for the atomic transaction associated with the second blockchain are completed on the second blockchain; confirm the atomic transaction on the first blockchain based on detecting the completion of the one or more second operations on the second blockchain and perform, a system.
15. To initiate the first operation for the atomic transaction on the first blockchain, the processor is configured to cause the system to write an entry including parameters of the first operation, an identifier of the first operation, and an indication that the first operation is waiting for the completion of the one or more second operations for the atomic transaction to a tracking database, the system according to claim 14.
16. To detect completion of the one or more second operations for the atomic transaction, the processor configures the system to match one or more parameters in an entry in the tracking database for one operation of the one or more second operations for the atomic transaction with the one or more corresponding parameters of the first operation. The system according to claim 15.
17. The first blockchain includes a layer 1 blockchain, The second blockchain includes a layer 2 blockchain, The atomic transaction includes a transaction for issuing tokens on the layer 2 blockchain, To initiate the first operation for the atomic transaction, the processor is configured to initiate the token issuance operation on the layer 1 blockchain, which triggers the execution of one or more operations for bridging the token issuance operation on the layer 1 blockchain to the layer 2 blockchain. The one or more operations for bridging the token issuance operation on the layer 1 blockchain to the layer 2 blockchain include a transaction for depositing tokens from an address on the layer 1 blockchain to an address on the layer 2 blockchain and a sweep operation on the layer 2 blockchain to confirm that the tokens have been deposited to the address on the layer 2 blockchain. The system according to claim 14.
18. The first blockchain includes a layer 2 blockchain, The second blockchain includes a layer 1 blockchain, The atomic transaction includes a transaction for burning tokens on the layer 2 blockchain, To initiate the first operation for the atomic transaction, the processor is configured to initiate the token burning operation on the layer 2 blockchain, which triggers the execution of one or more operations for bridging the atomic transaction to the layer 1 blockchain. The system of claim 14, wherein the one or more operations include a transaction to cancel a corresponding token on the Layer 1 blockchain. **Claim 19** The system of claim 14, wherein the set of recited operations is enumerated in a smart contract that defines the atomic transaction. **Claim 20** A computer-readable medium storing instructions that, when executed by a processor, receive a request to invoke an atomic transaction that includes operations to be executed on a first blockchain and operations to be executed on a second blockchain, the atomic transaction completing when the set of recited operations is complete; initiate a first operation for the atomic transaction within the set of recited operations on the first blockchain, the initiation of the first operation on the first blockchain triggering the initiation of one or more second operations for the atomic transaction on the second blockchain; detect completion of the one or more second operations for the atomic transaction on the second blockchain, indicating that the operations for the atomic transaction associated with the second blockchain are complete on the second blockchain; and based on detecting completion of the one or more second operations on the second blockchain, finalize the atomic transaction on the first blockchain. A computer-readable medium that performs operations including these.
Citation Information
Patent Citations
Transaction system
WO2022075046A1