Atomic bridge for transactions between different blockchains
Atomic transactions across blockchains ensure consistent and efficient bridging by completing all operations before confirming, addressing inefficiencies and inconsistencies in existing blockchain transaction methods.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- CIRCLE INTERNET FINANCIAL INC
- Filing Date
- 2023-04-06
- Publication Date
- 2026-05-07
AI Technical Summary
Existing blockchain transaction bridging processes across multiple blockchains are inefficient and prone to inconsistencies due to asynchronous, independent transactions, leading to increased processing costs and risks of transaction failures, particularly in maintaining consistency between Layer 1 and Layer 2 blockchains.
Implementing atomic transactions that ensure all actions in a set of operations are completed before confirming the transaction on both the first and second blockchains, using a transaction processor to monitor and coordinate actions across Layer 1 and Layer 2 blockchains, ensuring consistency and reducing resource utilization.
This approach reduces processing time, computational resources, and energy consumption while minimizing the risk of inconsistent states between blockchains, enhancing transaction reliability and efficiency by guaranteeing all-or-nothing completion of bridged transactions.
Smart Images

Figure 0007855090000009 
Figure 0007855090000010 
Figure 0007855090000011
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] Blockchains are used within various distributed systems and can provide a ledger of transactions that occur within these distributed systems. Generally, a blockchain may include a chain of blocks where the latest block includes some information regarding the transactions that occurred and a reference value to the immediately preceding block which can 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 a 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 subsequent blocks within the blockchain. If there is a mismatch between the calculated hash of a block and the hash value of the block in subsequent blocks 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 be first 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 performed 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, which can increase the overall processing cost of bridging the transaction and the risk of transaction failure. For example, a transaction may be partially completed, leaving the system in an inconsistent state (e.g., 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 that does not complete the bridging process). Furthermore, the use of multiple independent transactions may require coordination between different parties to complete the transaction, which can impose significant processing overhead when generating and processing overhead messages within the blockchain system.
[0004] Therefore, techniques are needed to enable the efficient processing of transactions bridged across multiple blockchains. [Overview of the Initiative]
[0005] Some embodiments provide a computer implementation method for bridging transactions between blockchains. The method generally includes receiving a request to invoke an atomic transaction, which includes an action performed on a first blockchain and an action performed on a second blockchain. Generally, an atomic transaction is completed when the enumerated set of actions is completed. A first action relating to the atomic transaction in the enumerated set of actions is initiated on the first blockchain. Initiating the first action on the first blockchain triggers the initiation of one or more second actions relating to the atomic transaction on the second blockchain. Completion of one or more second actions relating to the atomic transaction on the second blockchain is detected, indicating that the action for the atomic transaction relating to the second blockchain has been completed on the second blockchain. Based on the detection of the completion of one or more second actions on the second blockchain, the atomic transaction on the first blockchain is confirmed.
[0006] Other embodiments provide a processing system configured to perform the methods described above and the methods described herein; a non-temporary computer-readable medium containing instructions that, when executed by one or more processors of the processing system, cause the processing system to perform the methods described above and the methods described herein; a computer program product embodied on a computer-readable storage medium containing code for performing the methods described above and the methods described herein; and a processing system comprising means for performing the methods described above and the methods described herein.
[0007] The following description and related drawings detail some exemplary features of one or more embodiments.
[0008] The attached figures illustrate some aspects of one or more embodiments and should therefore not be considered to limit the scope of this disclosure. [Brief explanation of the drawing]
[0009] [Figure 1] This diagram illustrates an exemplary computing system for bridging transactions between a first blockchain and a second blockchain using atomic transactions. [Figure 2] This is a message flow diagram showing a transaction processor and the messages exchanged between the first blockchain and the second blockchain in order to perform an atomic token issuance operation that bridges tokens issued on the first blockchain to the second blockchain. [Figure 3] This is a message flow diagram showing the transaction processor and the messages exchanged between the first blockchain and the second blockchain in order to perform an atomic token burning operation that bridges the burning operation from the first blockchain to the second blockchain. [Figure 4] This diagram illustrates an exemplary operation for bridging a transaction between a first blockchain and a second blockchain using atomic transactions. [Figure 5] This figure shows an exemplary system that can carry out the embodiments of this disclosure. [Modes for carrying out the invention]
[0010] For ease of understanding, the same reference numerals are used to indicate identical elements common to the drawings, where possible. Elements and features of one embodiment are intended to be usefully incorporated into other embodiments without being further enumerated.
[0011] In a cryptocurrency system, a transaction can be represented as a block within a blockchain that tracks the entirety of transactions performed using the cryptocurrency system. In these cryptocurrency systems, processed transactions are not modified at a later date and thus provide an immutable ledger of transactions performed using the cryptocurrency system.
[0012] In some cases, multiple blockchains can be used to record transactions. The underlying blockchain, also called the "Layer 1" blockchain, may be a blockchain such as ETHEREUM®, and a blockchain "superimposed" on top of the Layer 1 blockchain, or otherwise configured to work with the Layer 1 blockchain, may be called a "Layer 2" blockchain. An example of a Layer 2 blockchain may include the POLYGON® chain. The Layer 1 blockchain generally provides a trusted source for the network and is generally responsible for processing transactions on the Layer 1 blockchain and on Layer 2 blockchains superimposed on the Layer 1 blockchain. Layer 2 blockchains generally allow various applications to be built on top of the Layer 1 blockchain, extending the functionality of the Layer 1 blockchain and the overall functionality of the blockchain-based system. However, in order to maintain consistency between the Layer 1 and Layer 2 blockchains, various transactions may be committed to both Layer 1 and Layer 2 blockchains.
[0013] For example, a Layer 1 blockchain can be used to issue tokens, such as cryptocurrency tokens, which can be used and maintained on a Layer 2 blockchain. To maintain consistency between the Layer 1 and Layer 2 blockchains, issued tokens can be recorded on both the Layer 1 and Layer 2 blockchains. Subsequent transactions that use but do not destroy these tokens can be executed on the Layer 2 blockchain, which generally allows for the offloading of transaction processing from the Layer 1 blockchain to the Layer 2 blockchain, thus reducing the amount of computational resources required to process transactions on the Layer 1 blockchain. When a token is destroyed (or "burned"), it can be destroyed on both the Layer 1 and Layer 2 blockchains to maintain consistency between records on each blockchain.
[0014] To maintain consistency between the Layer 1 and Layer 2 blockchains, transactions may be bridged between these blockchains, for example, so that the number of existing tokens recorded in the Layer 1 blockchain matches the number of existing tokens on the Layer 2 blockchain. As discussed, this bridge generally involves multiple independent transactions. However, these transactions are generally considered to be independent transactions lacking atomicity; that is, they are independent transactions that succeed or fail independently, rather than being part of an atomic transaction that completes only when all operations in the tactic are successful and fails if any single operation in the tactic fails to complete. Therefore, the failure of a transaction on one blockchain may not cause the entire set of transactions involved in the bridge operation to fail. Thus, the bridge of transactions may terminate in a partially completed state, leading to a discrepancy between the records stored on the Layer 1 and Layer 2 blockchains.
[0015] Aspects of this disclosure provide techniques for atomically bridging transactions between different blockchains. Generally, an atomic transaction may be defined as a set of actions performed on a first blockchain and a series of actions performed on a second blockchain, where the completion of an atomic transaction is an all-or-nothing proposition. An atomic transaction may be executed by initiating a first action for the atomic action on the first blockchain, which in turn triggers the execution of the action on the second blockchain. When the action on the second blockchain is completed, the atomic transaction may be confirmed on the first blockchain, thus bringing the first and second blockchains into a consistent state. By doing so, transactions on the first and second blockchains may be automatically triggered according to the definition of an atomic transaction, thus allowing transactions between different blockchains to be processed more efficiently. This may reduce the amount of time, processing resources, memory, and energy used in processing blocks within these blockchains and confirming transactions recorded between these blockchains. Processing blocks within a blockchain is generally a resource-intensive process with high energy consumption. Therefore, aspects of this disclosure may reduce the amount of energy used when executing transactions between different blockchains, thereby reducing the environmental impact of executing transactions between these different blockchains. Furthermore, a set of actions involved in bridging a transaction between different blockchains is defined as an atomic transaction, and each of the actions must be performed to complete the atomic transaction, thus maintaining consistency across blockchains. A failure of an action on one blockchain generally causes the entire atomic transaction to fail, thus minimizing the risk of the first and second blockchains being left in an inconsistent state.
[0016] Exemplary atomic transaction bridge between the first blockchain and the second blockchain Figure 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, the computing environment 100 includes a transaction processing system 110 and a network 120.
[0017] The transaction processing system 110 generally receives requests to execute bridged transactions between a first blockchain and a second blockchain, and commits the transactions to both the first and second blockchains by atomically calling the transactions on the first and second blockchains. Generally, the transaction processing system 110 may be any computing device capable of processing blocks in a blockchain, such as a server, compute cluster, desktop computer, or laptop computer. It should be understood that the transaction processing system 110 may be distributed across multiple computing devices and may run 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 network 120. For example, network 120 may be a network such as ALGORAND®, BITCOIN®, ETHEREUM®, SOLANA®, STELLAR®, TRON®, and other cryptocurrency networks that can bridge transactions to Level 2 blockchains overlaid on these cryptocurrency networks.
[0018] As illustrated, 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 Layer 2 blockchain 124 for processing operations defined for atomic transactions in order to bridge transactions between the Layer 1 blockchain 122 and Layer 2 blockchain 124 based on the records contained in the tracking database 114. Figure 1 shows the interaction between the transaction processing system 110 and 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, which in this example may be a transaction containing a set of enumerated actions (defined, for example, in a smart contract) that are bridged between the Layer 1 blockchain 122 and the Layer 2 blockchain 124. For example, an 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. An atomic transaction may also include a transaction containing multiple actions that are recorded on multiple blockchains and need to be performed to complete the atomic transaction. Generally, a token represents an asset whose transaction history is maintained on one or more blockchains. In some embodiments, the tokens discussed herein may include cryptocurrency tokens, stablecoin tokens (e.g., cryptocurrency tokens linked to fiat currency), or other digital assets.
[0020] Upon receiving a request to invoke an atomic transaction, the transaction processor 112 invokes the first transaction in the enumerated set of actions on the first blockchain, which then triggers the execution of the action on the first blockchain and the corresponding action on the second blockchain. If the first action is executed on the Layer 1 blockchain 122, the second blockchain on which the corresponding action is executed is the Layer 2 blockchain 124, and similarly, if the first action is executed on the Layer 2 blockchain 124, the second blockchain on which the corresponding action is executed is the Layer 1 blockchain 122. When the actions defined for the atomic action on the second blockchain are completed, the transaction processor 112 confirms the atomic transaction on the first blockchain. Since an atomic transaction is generally not considered complete until each action for the atomic transaction is successfully completed, confirming the atomic transaction on the first blockchain when the completion of the actions on the second blockchain is detected can ensure consistency between the first and second blockchains.
[0021] In some embodiments, the transaction processor 112 maintains records in a tracking database 114 that tracks operations between the Layer 1 blockchain 122 and the Layer 2 blockchain 124 in order 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 a first blockchain, which may be the first operation defined in an enumerated set of operations for atomic transactions, the transaction processor 112 may generate a record in the tracking database 114 that includes the parameters of the first operation, an identifier for the first operation, and an indication that the first operation is awaiting the completion of one or more second operations. Examples of records maintained in the tracking database 114 are shown below in Tables 1 to 8. Subsequent entries in the tracking database 114 may refer to other transactions in the tracking database 114 for subsequent operations performed on either the Layer 1 blockchain 122 or the Layer 2 blockchain 124 (for example, based at least on an identifier assigned to any given operation). An atomic transaction can be considered complete when each action within the enumerated set of transactions is marked as complete.
[0022] Generally, to maintain records in a tracking database 114 that track actions for atomic transactions between Layer 1 blockchain 122 and Layer 2 blockchain 124, the transaction processor 112 monitors information related to specific actions on Layer 1 blockchain 122 and Layer 2 blockchain 124. For example, the transaction processor 112 can actively monitor records maintained on Layer 1 blockchain 122 and Layer 2 blockchain 124, or it can listen to messages sent by Layer 1 blockchain 122 and Layer 2 blockchain 124 that refer to specific actions invoked on these blockchains. When the transaction processor 112 receives a message from Layer 1 blockchain 122 and / or Layer 2 blockchain 124 confirming that an action has been processed, the transaction processor 112 can update the appropriate record in the tracking database 114 to reflect that the action that was pending completion is now complete, and then work backward to confirm, acknowledge, and complete the associated transaction. For example, if a record relating to a first action references a second action as a related action, and the transaction processor 112 receives messaging from the Layer 1 blockchain 122 and / or Layer 2 blockchain 124 confirming the completion of the second action, the transaction processor 112 will generally use the information regarding the second action to determine whether the first action is within the conditions for confirmation. If the first action is within the conditions for confirmation (e.g., not waiting for other actions to complete), the transaction processor 112 will initiate confirmation and verification processing for the first action on the appropriate blockchain, and after receiving confirmation that a record proving the completion of the first action has been registered on the appropriate blockchain, will mark the first action as completed 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 "issue" operation may be considered complete only when the bridge, sweep, and deposit transactions are also complete. Thus, when the issue transaction is initiated, an entry in the tracking database 114 reflects that the issue transaction has been initiated, using parameters specific to the issue transaction and an indication that the issue 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 for the issue transaction is shown in Table 1 below. TIFF0007855090000001.tif51170
[0024] As shown in Table 1, the issue transaction has an ID of "1" and has specified amount and address parameters, an indication that the issue transaction is in a waiting state, and an indication that the completion of the issue 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 (e.g., including the ID of "1") referencing the issue transaction from Layer 1 blockchain 122 and / or Layer 2 blockchain 124 to determine when the atomic transaction has 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 use the address of the deposit contract to call the bridging action on the layer 1 blockchain 122. Subsequently, the tracking database 114 includes two entries, as shown in Table 2 below, 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. TIFF0007855090000002.tif64170
[0026] Once the second transaction (for example, a 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 messages containing ID "03df0904-24" to determine when the related transactions for the second transaction have been completed on either or both of the Layer 1 blockchain 122 and the Layer 2 blockchain 124. Meanwhile, event listeners associated with the Layer 1 blockchain 122 and the Layer 2 blockchain determine that a bridge operation has been pushed to the Layer 1 blockchain 122 and can invoke the corresponding deposit operation on the Layer 2 blockchain 124 to generate a corresponding record that adds the issued token to the Layer 2 blockchain. In this example, the deposit operation issues the corresponding token on the Layer 2 blockchain and deposits the issued token on the Layer 2 blockchain (for example, into 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. Therefore, the tracking database 114 contains the following entries, as shown in Table 3. TIFF0007855090000003.tif78170
[0027] Based on the deposit transactions 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 could therefore 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 initiating and completing the sweep transaction, the tracking database 114 contains four entries corresponding to the four operations defined for atomic issuance transactions, as shown in Table 4 below. TIFF0007855090000004.tif91170
[0028] To complete an atomic transaction, the transaction processor 112 receives a message from the Layer 2 blockchain 124 indicating that the sweep operation (for example, the operation with reference ID "12b91791" as shown above) has been completed. Based on the associated reference ID in the sweep transaction record, the transaction processor 112 examines the records in the tracking database 114 to identify a transaction record with a matching destination address and amount. Thus, in this example, the transaction processor 112 searches the records in the tracking database 114 to identify a transaction record with the same destination address (e.g., the same value in the "To_addr" field) and amount (e.g., the same value in the "Amt" field) as those contained in the transaction record for the transaction with reference ID "4" (the deposit transaction shown in Table 4 above). Since the bridge transaction contains the same destination address and amount as the deposit transaction, the transaction processor 112 determines that the bridge transaction is waiting for the deposit transaction to complete 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 in the tracking database 114 after the bridge transaction has been updated and marked as complete. TIFF0007855090000005.tif91170
[0029] After the bridge transaction is confirmed and marked as complete in the Layer 1 blockchain 122, the transaction processor 112 then checks the tracking database 114 to identify any pending transactions that reference the bridge transaction. The identified transactions are then committed in the appropriate blockchain (for example, in the Layer 1 blockchain for 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 might be defined as burning or destroying previously issued tokens on Layer 1 blockchain 122 and Layer 2 blockchain 124. An enumerated set of actions for an atomic burn transaction includes a first action to burn the tokens on Layer 2 blockchain 124 and a second action to unbridge the burned tokens from Layer 1 blockchain 122. Thus, the burn operation on Layer 2 blockchain 124 can be treated as an operation that can only be completed after the unbridge operation on Layer 1 blockchain 122 is complete. Therefore, when a burn transaction is executed and confirmed on Layer 2 blockchain 124, an entry in the tracking database 114 may reflect that the burn transaction has been initiated, along with parameters specific to the burn transaction and an indication that the burn transaction is awaiting completion of one or more other related transactions (e.g., smart contracts, or other enumerated actions for atomic transactions). An exemplary entry in the tracking database 114 for an issuance transaction is shown below in Table 6. TIFF0007855090000006.tif51170
[0031] Since the burn operation contains information indicating that the completion of the burn operation requires the completion of the associated transaction, the transaction processor 112 then waits for the completion of the operation referencing the burn operation before completing the burn operation. Subsequently, according to the enumerated operations for atomic burn transactions, the unbridge operation is invoked on the Layer 1 blockchain 122 (for example, by an operation of a smart contract executed between the Layer 1 blockchain 122 and the Layer 2 blockchain 124). In order to unbridge the token from the Layer 1 blockchain, the transaction processor 112 can generate a checkpoint on the Layer 1 blockchain 122 and obtain evidence from the Layer 2 blockchain 124 that the token has been burned on the Layer 2 blockchain 124. After the transaction processor 112 receives the evidence and confirms that the token has been burned on the Layer 2 blockchain 124, the transaction processor 112 invokes the unbridge operation on the Layer 1 blockchain 122, inserts the corresponding record into the tracking database 114, and sets the associated reference ID of the burn operation to the reference ID of the unbridge operation. Once the bridge unbridge operation is confirmed and completed, the tracking database 114 will contain the entries shown in Table 7 below. TIFF0007855090000007.tif75170
[0032] Next, the transaction processor 112 receives a message from the Layer 1 blockchain 122 indicating that the bridge unbridge operation is complete. Based on receiving this message, the transaction processor 112 searches the tracking database 114 for an operation (in this case, a burn operation with reference ID "5") that has a related reference ID that matches the reference ID of the bridge unbridge operation. The transaction processor 112 then starts the burn operation completion process, committing and confirming the burn operation on the Layer 2 blockchain 124, and updates the tracking database 114 upon receiving confirmation from the Layer 2 blockchain 124 that the burn operation is complete. The final state of the tracking database 114 after the completion of an atomic burn transaction is shown in Table 8 below. TIFF0007855090000008.tif75170
[0033] Using the techniques discussed above, the initial action for an atomic transaction is not confirmed and completed until each of the other actions defined in the enumerated set of actions for an atomic transaction has also been completed. The enumerated set of actions may be stored as a smart contract defined on either or both of the Layer 1 blockchain 122 and the Layer 2 blockchain 124, which is defined a priori and automatically executes a series of actions when invoked, for example, when defined by a program in the transaction processor 112. Since the initial action for an atomic transaction is placed in a waiting state and is confirmed and completed on the appropriate blockchain only after the other actions defined in the enumerated set of actions for an atomic transaction have been completed, aspects of this disclosure guarantee the atomicity of actions involving actions performed on both the Layer 1 blockchain 122 and the Layer 2 blockchain 124. Therefore, operations on both the Layer 1 blockchain 122 and the Layer 2 blockchain 124 can be performed automatically and considered part of an atomic transaction, potentially reducing the transaction overhead, time, and other resource utilization involved in bridging the transaction from the first blockchain to the second blockchain (e.g., "gas" fees charged for executing the transaction on the Layer 1 blockchain 122, or other transaction fees within the network 120). Firstly, since the enumerated set of operations is performed automatically 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., by minimizing or eliminating messaging between different systems to trigger the execution of the relevant operations).Secondly, automatically executing the enumerated set of actions can improve the reliability of the computing system on which these actions are performed, as it reduces the possibility that messages to trigger the execution of related actions may be lost during transit between different systems involved in bridging transactions between different blockchains. Thirdly, since the blockchains on which transactions are bridged are guaranteed to be consistent with one another 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 of bridged transactions between blockchains are consistent.
[0034] It should be noted that the techniques discussed herein can be used to define a series of operations as an atomic transaction between any number of blockchains. Furthermore, while the token burning and token issuance operations discussed above are examples of atomic transactions that can be performed between different blockchains, it should be noted that the techniques discussed herein can be used to define any type of transaction between different blockchains where atomicity is desired (for example, here a transaction should be defined as an all-or-nothing operation, where the transaction is completed only when all the operations defined for the transaction are completed, and the transaction fails if any one of the operations cannot be performed).
[0035] An example transaction bridge using atomic transactions Figure 2 is a message flow diagram 200 showing messages exchanged between transaction processor 202, Layer 1 blockchain 204, and Layer 2 blockchain 206 in order to execute an atomic token issuance transaction that bridges tokens issued from Layer 1 blockchain to Layer 2 blockchain. Transaction processor 202 may correspond to, for example, transaction processor 112 shown in Figure 1, Layer 1 blockchain 204 may correspond to, for example, Layer 1 blockchain 122 shown in Figure 1, and Layer 2 blockchain 206 may correspond to, for example, Layer 2 blockchain 124 shown in Figure 1.
[0036] In this example, an atomic token issuance transaction involves multiple actions. These actions include, for example, issuing tokens on Layer 1 blockchain 204, bridging the tokens to Layer 2 blockchain 206, and depositing the issued tokens into the appropriate address on Layer 2 blockchain 206. Generally, an atomic token issuance transaction is not complete until multiple actions are completed, and these multiple actions are considered by Layer 1 blockchain 204 (e.g., the blockchain from which the transaction originates) as part of a single all-or-nothing action that incurs a single transaction fee. Because the multiple actions are considered, or treated as, part of a larger all-or-nothing transaction, the failure of any one action causes the entire transaction to fail.
[0037] As illustrated, in order to initiate an atomic token issuance transaction that bridges tokens issued from Layer 1 blockchain 204 to Layer 2 blockchain 206, the transaction processor 202 receives an incoming issuance request 210 (for example, from an external service requesting the creation of tokens on Layer 1 blockchain 204 and Layer 2 blockchain 206). The issuance request 210 may generally correspond to a transaction having reference ID "1" in Tables 1 to 5 above. Generally, the issuance request 210 includes information identifying several tokens to be issued and the address to which the tokens should be deposited on Layer 2 blockchain 206. The issuance request 210 may also include other information that can be used to annotate the atomic token issuance operation and to perform various authorization and authentication processes, etc.
[0038] Based on receiving the incoming issuance request 210, the transaction processor 202 sends an L1 issuance request 212 to the Layer 1 blockchain 204 to issue a specified number of tokens onto the Layer 1 blockchain 204. The L1 issuance request 212 is the first action of an atomic token issuance transaction, as discussed above, and may not be completed until the actions defined (e.g., by a smart contract or other enumerated actions that define an atomic token issuance transaction) are completed. To ensure that the atomic token issuance transaction is not mistakenly marked as completed while the actions remain pending, which could lead to an inconsistent state between the Layer 1 blockchain 204 and the Layer 2 blockchain 206, the transaction processor 202 places the L1 issuance request 212 in a pending state in the tracking database until the other actions defined for the atomic token issuance action are completed.
[0039] In the Layer 1 blockchain 204, upon receiving an L1 issuance request 212, block 214 is executed on the Layer 1 blockchain 204, and the number of tokens specified in the L1 issuance request 212 is issued. Generally, issuing tokens in block 214 creates several tokens to be bridged to the Layer 2 blockchain 206, triggering the execution of the corresponding action on the Layer 2 blockchain 206 (for example, according to a smart contract invoked on the Layer 1 blockchain 204). As illustrated, a Layer 1-Layer 2 bridge request 216 is transferred from the Layer 1 blockchain 204 to the Layer 2 blockchain 206 to trigger the execution of the corresponding action on the Layer 2 blockchain 206. The Layer 1-Layer 2 bridge request 216 generally indicates the number of tokens to be issued on the Layer 2 blockchain 206 and the address to which the tokens should be deposited on the Layer 2 blockchain 206. In order to track the completion of an atomic token issuance transaction, in some embodiments, the transaction processor 202 generates a record in the tracking database for the Layer 1-Layer 2 bridge request 216 (corresponding to the transaction with reference ID "2" in Tables 2 to 5 above) and marks the L1 issuance request 212 as dependent on the completion of the Layer 1-Layer 2 bridge request 216.
[0040] Next, in block 218, the corresponding tokens are issued to create the corresponding tokens on the Layer 2 blockchain 206. In block 220, these tokens are deposited into the address on the Layer 2 blockchain 206 specified in the Layer 1-Layer 2 bridge request 216. To track the completion of atomic token issuance transactions, the 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" in Tables 4 to 5 above) and the token deposit operation in block 220 (corresponding to the transaction with reference ID "4" in Tables 3 to 5 above).
[0041] In block 222, the transaction processor 202 detects the completion of the operations defined for atomically issuing tokens on the L2 blockchain. To detect the completion of these operations, the transaction processor 202 generally reads the Layer 1 blockchain 204 and / or the Layer 2 blockchain 206, and / or listens for messages that reference specific operations issued by the Layer 1 blockchain 204 and / or the Layer 2 blockchain 206 (e.g., broadcast to participating devices) to confirm that these operations have been completed. Generally, the completion of atomic token issuance operations can work in reverse, with the most recent operation completing before the previous operation is considered complete. Once operations are complete, the transaction processor 202 checks the transaction data (e.g., in the tracking database 114), including the identifier of the associated operations, and / or quantity and destination address information, to link the transactions and initiate the process of confirming and completing previous operations upon completion of subsequent operations.
[0042] In block 224, transaction processor 202 marks the issuance transaction as complete, based on the detection of the completion of the operation to atomically issue tokens on Layer 2 blockchain 206. Since the issuance transaction is defined as an atomic transaction, and its completion may be defined as a prerequisite for the completion of the enumerated set of operations on Layer 1 blockchain 204 and Layer 2 blockchain 206, marking the transaction as complete generally ensures consistency between Layer 1 blockchain 204 and Layer 2 blockchain 206. That is, since the token issuance operation is defined as an atomic transaction that completes only when the enumerated set of operations is completed, when the atomic issuance transaction is marked as complete, the appropriate number of tokens are issued on both Layer 1 blockchain 204 and Layer 2 blockchain 206 and deposited into the appropriate address on Layer 2 blockchain 206. As discussed, atomic issuance transactions are marked as complete only after the enumerated set of actions is completed, thus ensuring consistency between records in Layer 1 blockchain 204 and Layer 2 blockchain 206. This can improve the reliability of systems performing actions on these blockchains and minimize the processing overhead involved in coordinating records across blockchains and ensuring that the blockchains to which token issuance transactions are bridged are consistent with one another. Furthermore, by executing token issuance transactions across blockchains as atomic transactions, aspects of this disclosure reduce the amount of computational resources involved in bridging token issuance transactions between different blockchains, as there is no need for messaging to be exchanged between the transaction processor 202 and other independent systems to coordinate the execution of actions involved in bridging token issuance transactions from Layer 1 blockchain 204 to Layer 2 blockchain 206.
[0043] Figure 3 is a message flow diagram showing messages exchanged between transaction processor 302, Layer 1 blockchain 304, and Layer 2 blockchain 306 to execute an atomic token burning transaction that burns previously issued tokens from Layer 1 blockchain and Layer 2 blockchain. Transaction processor 302 may correspond to, for example, transaction processor 112 shown in Figure 1, Layer 1 blockchain 304 may correspond to, for example, Layer 1 blockchain 122 shown in Figure 1, and Layer 2 blockchain 306 may correspond to, for example, Layer 2 blockchain 124 shown in Figure 1.
[0044] In this example, an atomic token burn transaction involves multiple actions. These actions include, for example, burning tokens on Layer 2 blockchain 306 and bridging the burning of these tokens to Layer 1 blockchain 304. Generally, an atomic token burn transaction is not complete until each of these actions is completed, and these actions are not considered separate actions that incur separate transaction fees, but rather a single all-or-nothing action that incurs a single transaction fee.
[0045] As illustrated, in order to initiate an atomic token burning transaction that bridges the burned tokens from Layer 2 blockchain 306 to Layer 1 blockchain 304, the transaction processor 302 receives an incoming burn request 310 (for example, from an external service requesting the destruction of tokens on Layer 1 blockchain 304 and Layer 2 blockchain 306). Generally, the burn request 310 includes information identifying several tokens to be burned and the address from which the tokens should be burned from Layer 2 blockchain 306. The burn request 310 may also include other information that can be used to annotate the atomic token burning operation and to perform various authorization and authentication processes, etc.
[0046] Based on receiving the incoming burn request 310, the transaction processor 302 sends an L2 burn request 312 to the Layer 2 blockchain 306 to burn a specified number of tokens on the Layer 2 blockchain 306. The L2 burn request 312 is the first action of an atomic token burn transaction, as discussed above, and may not be completed until the actions defined for it (e.g., by a smart contract or other enumerated actions that define an atomic token burn transaction) are completed. To ensure that an atomic token burn transaction is not incorrectly marked as completed while the actions remain pending, the transaction processor 302 places the record corresponding to the L2 burn request 312 (e.g., the transaction with reference ID "5" in Tables 6 to 8 above) in a waiting state in the tracking database until the other actions defined for the atomic token burn operation are completed.
[0047] In the Layer 2 blockchain 306, upon receiving the L2 burn request 312, block 314 is executed on the Layer 2 blockchain 304, burning the number of tokens specified in the L2 burn request 312. Generally, burning tokens in block 314 creates a discrepancy between the number of existing tokens in the Layer 2 blockchain 306 and the Layer 1 blockchain 304, triggering the execution of the corresponding action on the Layer 1 blockchain 304. As illustrated, to trigger the execution of the corresponding action on the Layer 1 blockchain 304, a Layer 1-Layer 2 bridge request 316 is transferred from the Layer 2 blockchain 306 to the Layer 1 blockchain 304. The Layer 1-Layer 2 bridge request 316 generally indicates the number of tokens to be burned on the Layer 1 blockchain 306 and the address from which the tokens should be burned from the Layer 1 blockchain 304. In order to track the completion of atomic token burning transactions, in some embodiments, the transaction processor 302 generates a record in the tracking database for the Layer 1-Layer 2 bridge request 316 (for example, the transaction with reference ID "6" in Tables 7 to 8 above) and marks the L2 burning request 312 as dependent on the completion of the Layer 1-Layer 2 bridge request 316.
[0048] Next, the corresponding number of tokens on the Layer 1 blockchain 304 are burned, and in block 318, the corresponding tokens are burned to equalize the number of existing tokens on the Layer 1 blockchain 304 and the Layer 2 blockchain 306.
[0049] In block 320, the transaction processor 302 detects the completion of operations defined to atomically burn tokens on the Layer 1 and Layer 2 blockchains. 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 that reference specific operations issued by the Layer 1 blockchain 304 and / or the Layer 2 blockchain 306 (e.g., broadcast to participating devices) to confirm that these operations have been completed. Generally, determining that an atomic token burning operation is complete can work in reverse, and a token bridge unbridge operation may be 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 complete. Once operations are complete, the transaction processor 302 checks transaction data such as the identifier of the associated operation, and / or quantity and destination address information, to link the transactions and initiate the process of confirming and completing previous operations upon completion of subsequent operations.
[0050] Based on the detection of the completion of the operations to atomically burn tokens on Layer 1 blockchain 304 and Layer 2 blockchain 306, in block 322, the transaction processor 302 marks the burn transaction as complete. Since a burn transaction is defined as an atomic transaction, and the completion of a burn transaction may be defined as a prerequisite for the completion of the enumerated set of operations on Layer 1 blockchain 304 and Layer 2 blockchain 306, marking the transaction as complete generally ensures consistency between Layer 1 blockchain 204 and Layer 2 blockchain 206. In other words, since the token burning operation is defined as an atomic transaction that completes only when the enumerated set of operations is completed, when the atomic burning transaction is marked as complete, the appropriate number of tokens are burned on both the Layer 1 blockchain 304 and the Layer 2 blockchain 306, and the number of tokens remaining after burning on each of the Layer 1 blockchain 304 and Layer 2 blockchain 306 is less than the number of tokens remaining before the burning request 310 was received and before the completion of the atomic token burning transaction. As discussed, since the atomic burning transaction is marked as complete only after the enumerated set of operations is completed, consistency between records on the Layer 1 blockchain 304 and Layer 2 blockchain 306 can be guaranteed, which can improve the reliability of the system performing operations on these blockchains and minimize the processing overhead involved in coordinating records between blockchains and ensuring that the blockchains on which transactions are bridged are consistent with each other.Furthermore, by executing token burning transactions between blockchains as atomic transactions, the aspect of this disclosure reduces the amount of computational resources involved in bridging transactions between different blockchains, because there is no need for messaging to be exchanged between the transaction processor 302 and other independent systems to coordinate the execution of operations involved in bridging the token burning transaction from Layer 1 blockchain 304 to Layer 2 blockchain 306.
[0051] Exemplary behavior for an atomic transaction bridge between a first blockchain and a second blockchain. Figure 4 illustrates 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 Layer 2 blockchain 124 shown in Figure 1, the Layer 1 blockchain 204 and Layer 2 blockchain 206 shown in Figure 2, and / or the Layer 1 blockchain 304 and Layer 2 blockchain 306 shown in Figure 3. Operation 400 may be performed, for example, by the transaction processing system 110 shown in Figure 1, or by other processing systems capable of coordinating transactions between the first blockchain and the second blockchain (e.g., between the Layer 1 blockchain and the Layer 2 blockchain, or vice versa).
[0052] As illustrated, action 400 begins in block 410 by receiving a request to invoke an atomic transaction. Generally, an atomic transaction includes an action performed on the first blockchain and an action performed on the second blockchain, and the atomic transaction is considered complete when the enumerated set of actions (on the first and second blockchains) is completed.
[0053] In some embodiments, the enumerated set of actions may be enumerated in a smart contract that defines an atomic transaction. A smart contract may be one 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 invoking an atomic transaction may be a request to generate a token on a first blockchain according to a defined format. For example, if the Ethereum® network functions as a Layer 1 blockchain with a Layer 2 blockchain superimposed on it, a request invoking an atomic transaction may be a request to generate a token that conforms to the Ethereum® Request for Comment (ERC)-20 prerequisites. The ERC-20 prerequisites generally define a set of functions that a token must implement in order to enable it to be integrated with other contracts, markets, wallets, or other computing resources that can perform transactions using these tokens.
[0055] In block 420, action 400 proceeds to initiate a first action for an atomic transaction within the enumerated set of actions on the first blockchain. In general, initiating a first action on the first blockchain triggers the initiation of one or more second actions on the second blockchain.
[0056] In block 430, action 400 proceeds to detect the completion of one or more second actions for an atomic transaction on the second blockchain. Generally, the completion of one or more second actions indicates that the actions for an atomic transaction related to the second blockchain have been completed on the second blockchain, and the remaining actions for an atomic transaction on the first blockchain may be executed and / or confirmed and completed on the first blockchain.
[0057] In some embodiments, initiating a first action for an atomic transaction involves writing an entry to a tracking database that includes the parameters of the first action, an identifier for the first action, and an indication that the first action is awaiting the completion of one or more second actions. As discussed, entries in the tracking database generally allow the transaction processor to link actions that may not be explicitly marked as related actions, and to mark them as actions that should not be completed until the related actions are completed. To detect the completion of one or more second actions, the transaction processor matches one or more parameters in the entry in the tracking database for one of the one or more second actions for the atomic transaction with one or more corresponding parameters of the first action. For example, the matching parameters may be reference identifiers associated with the first action and one or more second actions. For example, the matching parameters may include destination addresses and amounts associated with the transaction, as shown by the bridge and deposit transactions in Table 5 above. In some embodiments, if the first operation is not explicitly associated with one of the second operations, the first operation and one of the second operations may be matched based on other information, such as quantity parameters, destination address parameters, or other parameters associated with the first operation and one or more second operations.
[0058] In block 440, operation 400 proceeds to confirm an atomic transaction on the first blockchain, based on the detection of the completion of one or more second operations on the second blockchain.
[0059] In some embodiments, 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) superimposed on the Layer 1 blockchain. An atomic transaction may include a transaction for issuing tokens on the Layer 2 blockchain. In such cases, initiating the first action for the atomic transaction may include initiating a token issuance operation on the Layer 1 blockchain. This may then trigger the execution of one or more actions to bridge the token issuance operation on the Layer 1 blockchain to the Layer 2 blockchain. One or more actions 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 action 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 to burn tokens on the Layer 2 blockchain. In such cases, initiating a second action for an atomic transaction may include initiating a token burning operation on the Layer 1 blockchain. This may then trigger the execution of one or more actions to bridge the token burning operation on the Layer 1 blockchain to the Layer 2 blockchain. One or more actions to bridge the token burning operation generally include a transaction to cancel the corresponding token on the Layer 1 blockchain.
[0061] Exemplary System for an Atomic Transactional Bridge Between a First Blockchain and a Second Blockchain Figure 5 shows an exemplary system 500 configured to perform the methods described herein, including, for example, operation 200 in Figure 2, operation 300 in Figure 3, and / or operation 400 in Figure 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 the transaction processing system 110 shown in Figure 1.
[0062] As illustrated, system 500 includes a central processing unit (CPU) 502, a network interface 506 to which system 500 is connected to a network 590 (which may be a local network, intranet, internet, or any other group of computing devices connected to communicate with one another), memory 508, and interconnection lines 512. The network interface 506 may be used to receive requests to bridge transactions between different blockchains, such as Layer 1 blockchains and Layer 2 blockchains (for example, as illustrated and described with respect to Figures 1 to 3).
[0063] The CPU 502 may retrieve and execute programming instructions stored in memory 508. Similarly, the CPU 502 may retrieve and store application data present in memory 508. The interconnection line 512 transmits programming instructions and application data between the CPU 502, the network interface 506, and memory 508.
[0064] CPU502 is included to represent a single CPU, multiple CPUs, a single CPU with multiple processing cores, etc.
[0065] Memory 508 represents volatile memory such as random access memory, or non-volatile memory such as non-volatile random access memory or phase-change random access memory. As shown in the figure, memory 508 includes a transaction processor 520 and a tracking database 530.
[0066] Transaction processor 520 generally corresponds to transaction processor 112 shown in Figure 1. Generally, transaction processor 520 receives requests to invoke atomic transactions on a first blockchain (which may correspond to Layer 1 blockchain 122 shown in Figure 1) and a second blockchain (which may correspond to Layer 2 blockchain 124 shown in Figure 1). These requests may specify a set of operations to be completed in order to execute an atomic transaction between the first blockchain and the second blockchain, such as a token issuance transaction, a token burning transaction, or other transactions where consistency between the first and second blockchains should be maintained. To execute an atomic transaction, transaction processor 520 invokes a first operation of the enumerated set of operations for atomic transactions on the first blockchain (for example, by sending one or more messages to the first blockchain via the network interface 506), which triggers the execution of the corresponding operations on one or both of the first and second blockchains. When the transaction processor 520 detects that other operations within the enumerated set of operations have been completed (for example, by receiving messages from the first and / or second blockchains via the network interface 506 indicating that these operations have been completed), the transaction processor 520 completes the first operation to confirm the atomic transaction.
[0067] The tracking database 530 generally corresponds to the tracking database 114 shown in Figure 1. Generally, the tracking database 530 maintains records of transactions executed on the first and second blockchains. These records are generated, maintained, and updated by the transaction processor 520 based on records read from the first and / or second blockchains, as well as messages issued by the first and / or second blockchains, in order to track the completion of actions defined for atomic transactions. Once an action is marked as completed in the tracking database 530, any previous actions that depend on the completed action may be processed by the transaction processor 520 and the appropriate blockchains (e.g., the first and / or second blockchains).
[0068] Exemplary clause Details of implementations for various aspects of this disclosure are described in the following numbered clauses.
[0069] Clause 1: A method comprising receiving a request to invoke an atomic transaction, which includes an action performed on a first blockchain and an action performed on a second blockchain, the atomic transaction being completed when the enumerated set of actions is completed; initiating a first action on the first blockchain for the atomic transaction in the enumerated set of actions, the initiation of the first action on the first blockchain triggers the initiation of one or more second actions for the atomic transaction on the second blockchain; detecting the completion of one or more second actions for the atomic transaction on the second blockchain, indicating that an action for the atomic transaction related to the second blockchain has been completed on the second blockchain; and confirming the atomic transaction on the first blockchain based on the detection of the completion of one or more second actions on the second blockchain.
[0070] Clause 2: The enumerated sets of actions are enumerated in a smart contract defining an atomic transaction, as described in Clause 1.
[0071] Clause 3: A request to invoke an atomic transaction is the method described in either Clause 1 or 2, including a request to generate tokens on the first blockchain.
[0072] Clause 4: The method described in any one of Clauses 1 to 3, wherein initiating a first action for an atomic transaction on a first blockchain includes writing an entry to a tracking database containing parameters of the first action, an identifier of the first action, and an indication that the first action is awaiting completion of one or more second actions for an atomic transaction.
[0073] Clause 5: The method according to Clause 4, wherein detecting the completion of one or more second actions for an atomic transaction includes matching one or more parameters in an entry in a tracking database for one of the actions of the one or more second actions for an atomic transaction with one or more corresponding parameters of the first action.
[0074] Clause 6: The method described in any one of Clauses 1 to 5, wherein the first blockchain includes a Layer 1 blockchain and the second blockchain includes a Layer 2 blockchain.
[0075] Clause 7: An atomic transaction is the method described in Clause 6, including a transaction for issuing tokens on a Layer 2 blockchain.
[0076] Clause 8: Initiating a first action for an atomic transaction is the method described in Clause 7, which includes initiating a token issuance action on the Layer 1 blockchain.
[0077] Clause 9: The method according to Clause 8, wherein initiating a token issuance operation on the Layer 1 blockchain triggers the execution of one or more operations to bridge the token issuance operation on the Layer 1 blockchain to the Layer 2 blockchain, and one or more operations to bridge the token issuance operation on the Layer 1 blockchain to the Layer 2 blockchain include a transaction to deposit 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.
[0078] Clause 10: The method described in any one of Clauses 1 to 5, wherein the first blockchain includes a Layer 2 blockchain and the second blockchain includes a Layer 1 blockchain.
[0079] Clause 11: An atomic transaction is the method described in Clause 10, including a transaction to burn tokens on a Layer 2 blockchain.
[0080] Clause 12: Initiating a first action for an atomic transaction is the method described in Clause 11, which includes initiating a token burning action on the Layer 2 blockchain.
[0081] Clause 13: The method described in Clause 12, initiating a token burning operation on the Layer 2 blockchain triggers the execution of one or more actions to bridge an atomic transaction to the Layer 1 blockchain, the one or more actions including a transaction to cancel the corresponding token on the Layer 1 blockchain.
[0082] Clause 14: A system comprising memory storing executable instructions and a processor configured to execute executable instructions in order to perform any one of Clauses 1 to 13.
[0083] Clause 15: A system comprising means for performing any one of the operations described in Clauses 1 through 13.
[0084] Clause 16: A computer-readable medium storing instructions that, when executed by a processor, perform any of the operations described in any one of Clauses 1 through 13.
[0085] Additional considerations The foregoing description is provided to enable those skilled in the art to implement 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 apply to other embodiments. For example, changes may be made to the function and configuration of the elements described herein without departing from the scope of this disclosure. Various examples may omit, replace, or add various procedures or components as needed. Also, features described in some examples may be combined in some other examples. For example, an apparatus may be implemented or a method may be carried out using any number of embodiments described herein. Furthermore, the scope of this disclosure shall include, in addition to or in addition to, the various embodiments of the disclosure described herein, any such apparatus or method carried out using other structures, functions, or structures and functions. It should be understood that any embodiment of the disclosure disclosed herein may be embodied by one or more elements of the claims.
[0086] As used herein, the phrase “at least one of” the list of items refers to any combination of those items that includes a single member. For example, “at least one of a, b, or c” shall include a, b, c, ab, ac, bc, and abc, as well as any combination with multiple identical elements (e.g., aa, aaa, aab, aac, abb, acc, bb, bbb, bbc, cc, and ccc, or any other order of a, b, and c).
[0087] As used herein, the term “decision-making” encompasses a wide variety of actions. For example, “decision-making” may include calculating, calculating, processing, deriving, investigating, looking up (e.g., looking up in a table, database, or other data structure), and confirming. It may also include receiving (e.g., receiving information), accessing (e.g., accessing data in memory), and resolving, selecting, choosing, and establishing.
[0088] The methods disclosed herein include one or more steps or actions to achieve the method. The steps and / or actions of the method may be interchangeable with one another without departing from the claims. In other words, unless a specific order of steps or actions is specified, the order and / or use of any particular steps and / or actions may be modified without departing from the claims. Furthermore, the various operations of the methods described above may be performed by any suitable means capable of performing the corresponding functions. The means may include, but are not limited to, 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 may have corresponding similar means and components having similar functions and numbers.
[0089] The various exemplary logic blocks, modules, and circuits described in this disclosure may be implemented or run using general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs) or other programmable logic devices (PLDs), discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. While a general-purpose processor may be a microprocessor, alternatively, a processor may be any commercially available processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors working 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 interconnecting buses and bridges, depending on the specific application and overall design constraints of the processing system. The bus may link to various circuits, particularly processors, machine-readable media, and input / output devices. User interfaces (e.g., keypads, displays, mice, joysticks, etc.) may also be connected to the bus. The bus may also link various other circuits, such as timing sources, peripherals, voltage regulators, and power management circuits, but these circuits are well known in the art and therefore will not be described further. The processor may be implemented using one or more general-purpose and / or dedicated processors. Examples include microprocessors, microcontrollers, DSP processors, and other circuits capable of running software. Those skilled in the art will recognize how the described functions for the processing system should be best implemented, depending on the specific application and the overall design constraints imposed on the overall system.
[0091] When implemented in software, functionality can be stored or transmitted on computer-readable media as one or more instructions or code. Software should be broadly interpreted to mean instructions, data, or any combination thereof, whether referred to as software, firmware, middleware, microcode, hardware description language, or other names. Computer-readable media includes both computer storage media and communication media, such as any medium that facilitates the transfer of computer programs from one location to another. A processor may be responsible for managing the bus and general operations, including the execution of software modules stored on computer-readable storage media. Computer-readable storage media may be coupled to a processor so that the processor can read information from and write information to the storage media. Alternatively, the storage media may be integrated into the processor. For example, computer-readable media may include computer-readable storage media containing instructions, separate from the transmission lines, data-modulated carriers, and / or wireless nodes, all of which may be accessed by the processor through the bus interface. Alternatively or additionally, computer-readable media or any part thereof may be integrated into the processor, as in the case of caches and / or general-purpose register files. Examples of machine-readable storage media may include, as an 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 media, or any combination thereof. Machine-readable media may be embodied in computer program products.
[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. Computer-readable media 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 send modules and receive modules. Each software module may reside in a single storage device or be distributed across multiple storage devices. For example, a software module may be loaded from a hard drive into RAM when a trigger event occurs. While a software module is executing, 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 herein, and should be given the full scope consistent with the language of the claims. In the claims, references to singular elements mean "one or more" rather than "one and only one" unless otherwise specified. Unless otherwise specified, the term "several" means one or more. No element of any claim should be construed under 35 U.S. SC § 112(f) unless that element is expressly described using the phrase "means for" or, in the case of a method claim, the element is described using the phrase "steps for". All structural and functional equivalents of elements of various aspects described throughout this disclosure, known to those skilled in the art or to be known thereafter, are expressly incorporated herein by reference and are encompassed by the claims. Furthermore, nothing disclosed herein is intended to be made available to the public, whether such disclosure is expressly stated in the claims or not.
Claims
1. Receiving a request to invoke an atomic transaction which includes an action performed on a first blockchain and an action performed on a second blockchain, wherein the atomic transaction is completed when the enumerated set of actions is completed. Initiating a first operation for the atomic transaction within the enumerated set of 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, and initiating the first operation for the atomic transaction on the first blockchain includes writing an entry to a tracking database which includes 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. Detecting the completion of one or more second operations for the atomic transaction on the second blockchain, indicating that the operation for the atomic transaction related to the second blockchain has been completed on the second blockchain, A method performed by a computer, comprising confirming the atomic transaction on the first blockchain based on the detection of the completion of one or more second operations on the second blockchain.
2. The method according to claim 1, wherein the enumerated sets of actions are enumerated in a smart contract that defines the atomic transaction.
3. The method according to claim 1, wherein the request that invokes the atomic transaction includes a request to generate a token on the first blockchain.
4. The method according to claim 1, wherein detecting the completion of the one or more second actions for the atomic transaction includes matching one or more parameters in an entry in the tracking database for one of the actions of the one or more second actions for the atomic transaction with one or more corresponding parameters of the first action.
5. The method according to claim 1, wherein the first blockchain includes a layer 1 blockchain, and the second blockchain includes a layer 2 blockchain.
6. The method according to claim 5, wherein the atomic transaction includes a transaction for issuing tokens on the Layer 2 blockchain.
7. The method according to claim 6, wherein initiating the first operation for the atomic transaction includes initiating a token issuance operation on the Layer 1 blockchain.
8. Initiating the token issuance operation on the Layer 1 blockchain triggers the execution of one or more operations to bridge the token issuance operation on the Layer 1 blockchain to the Layer 2 blockchain. The method according to claim 7, wherein 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 for confirming that the tokens have been deposited to the address on the Layer 2 blockchain.
9. The method according to claim 1, wherein the first blockchain includes a layer 2 blockchain, and the second blockchain includes a layer 1 blockchain.
10. The method according to claim 9, wherein the atomic transaction includes a transaction for burning tokens on the Layer 2 blockchain.
11. The method according to claim 10, wherein initiating the first operation for the atomic transaction includes initiating a token burning operation on the layer 2 blockchain.
12. Initiating the token burning operation on the Layer 2 blockchain triggers the execution of one or more operations to bridge the atomic transaction to the Layer 1 blockchain. The method according to claim 11, wherein the one or more operations include a transaction for revoking the corresponding token on the Layer 1 blockchain.
13. It is a system, Memory that stores executable instructions, A processor configured to execute the aforementioned executable instructions and The executable instructions are provided to the system, Receiving a request to invoke an atomic transaction which includes an action performed on a first blockchain and an action performed on a second blockchain, wherein the atomic transaction is completed when the enumerated set of actions is completed. Initiating a first operation for the atomic transaction within the enumerated set of 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, and in order 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 to a tracking database 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 one or more second operations for the atomic transaction. Detecting the completion of one or more second operations for the atomic transaction on the second blockchain, indicating that the operation for the atomic transaction related to the second blockchain has been completed on the second blockchain, Based on the detection of the completion of one or more of the second operations on the second blockchain, the atomic transaction on the first blockchain is confirmed. A system that enables this to happen.
14. The system according to claim 13, wherein, in order to detect the completion of the one or more second operations for the atomic transaction, the processor is configured to match one or more parameters in an entry in the tracking database for one of the operations of the one or more second operations for the atomic transaction with one or more corresponding parameters of the first operation.
15. The first blockchain mentioned above includes a Layer 1 blockchain, The preceding 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 to bridge the token issuance operation on the Layer 1 blockchain to the Layer 2 blockchain. The system according to claim 13, wherein 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 for confirming that the tokens have been deposited to the address on the Layer 2 blockchain.
16. The aforementioned first blockchain includes a Layer 2 blockchain, The aforementioned second blockchain includes a Layer 1 blockchain, The atomic transaction includes a transaction to burn tokens on the Layer 2 blockchain. To initiate the first operation for the atomic transaction, the processor is configured to initiate a token burning operation on the Layer 2 blockchain, which triggers the execution of one or more operations to bridge the atomic transaction to the Layer 1 blockchain. The system according to claim 13, wherein the one or more operations include a transaction for revoking the corresponding token on the Layer 1 blockchain.
17. The system according to claim 13, wherein the enumerated sets of actions are enumerated in a smart contract that defines the atomic transaction.
18. A computer-readable medium storing instructions, wherein the instructions, when executed by a processor, Receiving a request to invoke an atomic transaction which includes an action performed on a first blockchain and an action performed on a second blockchain, wherein the atomic transaction is completed when the enumerated set of actions is completed. Initiating a first operation for the atomic transaction within the enumerated set of 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, and initiating the first operation for the atomic transaction on the first blockchain includes writing an entry to a tracking database which includes 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. Detecting the completion of one or more second operations for the atomic transaction on the second blockchain, indicating that the operation for the atomic transaction related to the second blockchain has been completed on the second blockchain, Based on the detection of the completion of one or more of the second operations on the second blockchain, the atomic transaction on the first blockchain is confirmed. A computer-readable medium that performs actions including [specific actions].
Citation Information
Patent Citations
Transaction system
WO2022075046A1