Blockchain transaction management and orchestration relay model

The transaction management system addresses processing delays in blockchain transactions by strategically selecting relay storage applications and managing counter values, ensuring timely and secure transaction execution with optimized gas usage and robust failure recovery.

WO2026101834A1PCT designated stage Publication Date: 2026-05-15VISA INTERNATIONAL SERVICE ASSOCIATION
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
VISA INTERNATIONAL SERVICE ASSOCIATION
Filing Date
2025-11-03
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

Existing relay systems for blockchain transactions suffer from processing delays and unpredictable settlement times due to mempool congestion, rate-limiting, and transaction conflicts, leading to inefficiencies and security risks.

Method used

A transaction management system that selects appropriate relay storage applications based on transaction type and priority, manages counter values, and dynamically adjusts processing values to ensure timely and secure transaction execution on the blockchain.

Benefits of technology

The system enhances transaction throughput, ensures quick processing of priority transactions, optimizes gas usage, and recovers from failure scenarios, thereby improving the reliability and efficiency of blockchain transaction processing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2025053783_15052026_PF_FP_ABST
    Figure US2025053783_15052026_PF_FP_ABST
Patent Text Reader

Abstract

A method is disclosed. The method includes receiving a transaction creation request for creating a transaction, the transaction creation request comprising transaction details. The method also includes determining a process value associated with processing the transaction, determining, using a plurality of factors, a relay storage application from a plurality of storage applications to process the transaction. The method also includes obtaining a counter value for the transaction, signing the transaction using a private key associated with the determined storage application; and transmitting the signed transaction and the counter value to a blockchain network managing a blockchain for inclusion in the blockchain.
Need to check novelty before this filing date? Find Prior Art

Description

PATENT Attorney Docket No.: 079900-1514200-9842W001 Client Reference No.: 9842WO01BLOCKCHAIN TRANSACTION MANAGEMENT AND ORCHESTRATION RELAY MODELCROSS-REFERENCES TO RELATED APPLICATIONS

[0001] This application is a PCT application which claims the benefit of the filing date of U.S. provisional application no. 63 / 716,971 , filed on November 6, 2024, which is herein incorporated by reference in its entirety for all purposes.BACKGROUND

[0002] Blockchain networks such as Ethereum rely on users or services to construct, sign, and broadcast transactions to decentralized consensus systems for inclusion in blocks. To improve usability and abstract away gas payment and infrastructure management, many applications employ relay storage applications such as relay wallets in which a user signs an intent off-chain and a relayer (e.g., a relay storage application) submits a corresponding on-chain transaction on the user’s behalf. In these models, the relayer can manage tasks such as validation and simulation, gas estimation and funding, transaction ordering, and monitoring for confirmation across variable network conditions. While this architecture offers important advantages for usability, recoverability, and sponsor execution, it also introduces complexity arising from dependencies on relayer queues, external RPC (remote procedure call) endpoints, and transaction pool (e.g., mempool) dynamics.

[0003] In practice, existing relay systems can exhibit processing delays that result in unpredictable settlement times or failed execution. Causes can include mempool congestion, rate-limiting and batching policies at relayer services, counter value management conflicts for high-frequency accounts, transaction replacement and timeout rules, etc.

[0004] Accordingly, there is a need for relay wallet architectures and methods that reduce latency, improve determinism of transaction settlement, and enhance throughput without compromising security or protocol compatibility. Embodiments of the invention address these challenges by providing improved systems and1TOWNSEND 80171010 1techniques for conducting cryptocurrency transactions via relay wallets, thereby mitigating sources of delay, and delivering more reliable, timely execution for users and applications.

[0005] Embodiments of the invention address these and other problems, individually and collectively.BRIEF SUMMARY

[0006] One embodiment of the invention includes a method comprising: method comprising: receiving, by a transaction management computer, a transaction creation request for creating a transaction, the transaction creation request comprising transaction details; determining, by the transaction management computer, a process value associated with processing the transaction; determining, by the transaction management computer using a plurality of factors, a storage application (e.g., a relay storage application) from a plurality of storage applications (e.g., a plurality of relay storage applications) to process the transaction; obtaining, by the transaction management computer, a counter value for the transaction; signing, by the transaction management computer, the transaction using a private key associated with the determined storage application; and transmitting, by the transaction management computer, the signed transaction and the counter value to a blockchain network managing a blockchain for inclusion in the blockchain.

[0007] Another embodiment of the invention includes a transaction management computer comprising: one or more processors; and one or more computer readable media coupled to the one or more processors, the one or more computer readable media comprising code, executable by the one or more processors implementing operations comprising: receiving a transaction creation request for creating a transaction, the transaction creation request comprising transaction details; determining a process value associated with processing the transaction; determining, using a plurality of factors, a relay storage application from a plurality of storage applications to process the transaction; obtaining a counter value for the transaction; signing the transaction using a private key associated with the determined storage application; and transmitting the signed transaction and the counter value to a blockchain network managing a blockchain for inclusion in the blockchain2TOWNSEND 80171010 1

[0008] Another embodiment of the invention includes a system comprising: a transaction management computer comprising one or more processors, and one or more computer readable media coupled to the one or more processors, the one or more computer readable media comprising code, executable by the one or more processors for implementing operations. The operations comprise: receiving a transaction creation request for creating a transaction, the transaction creation request comprising transaction details, determining a process value associated with processing the transaction, determining, using a plurality of factors, a relay storage application from a plurality of storage applications to process the transaction, obtaining a counter value for the transaction, signing the transaction using a private key associated with the determined storage application, and transmitting the signed transaction and the counter value to a blockchain network managing a blockchain for inclusion in the blockchain; and the blockchain network in communication with the transaction management computer.

[0009] These and other embodiments are described in further detail below.BRIEF DESCRIPTION OF THE DRAWINGS

[0010] FIG. 1 a diagram of a submission process for a blockchain transaction.

[0011] FIG. 2 shows a diagram of a transaction management computer according to an embodiment.

[0012] FIG. 3 shows a flowchart illustrating methods according to embodiments of the invention.

[0013] FIG. 4 shows a flowchart of a transaction recovery process.

[0014] FIG. 5 shows a flow diagram illustrating a counter value management process.

[0015] FIG. 6 shows an exemplary transaction data structure.DETAILED DESCRIPTION

[0016] Prior to discussing embodiments of the invention, some descriptions of some terms may be useful.3TOWNSEND 80171010 1

[0017] A “user device” may be a device that is operated by a user. Examples of user devices may include a mobile phone, a smart phone, a card, a personal digital assistant (PDA), a laptop computer, a desktop computer, a server computer, a vehicle such as an automobile, a thin-client device, a tablet PC, etc. Additionally, user devices may be any type of wearable technology device, such as a watch, earpiece, glasses, etc. The user device may include one or more processors capable of processing user input. The user device may also include one or more input sensors for receiving user input. As is known in the art, there are a variety of input sensors capable of detecting user input, such as accelerometers, cameras, microphones, etc. The user input obtained by the input sensors may be from a variety of data input types, including, but not limited to, audio data, visual data, or biometric data. The user device may comprise any electronic device that may be operated by a user, which may also provide remote communication capabilities to a network. Examples of remote communication capabilities include using a mobile phone (wireless) network, wireless data network (e.g., 3G, 4G or similar networks), Wi-Fi, Wi-Max, or any other communication medium that may provide access to a network such as the Internet or a private network.

[0018] A “user” may include an individual. In some embodiments, a user may be associated with one or more personal accounts and / or mobile devices. The user may also be referred to as a cardholder, account holder, or consumer in some embodiments.

[0019] A “user identifier” can include any piece of data that can identify a user. A user identifier can comprise any suitable alphanumeric string of characters. In some embodiments, the user identifier may be derived from user identifying information. In some embodiments, a user identifier can include an account identifier associated with the user.

[0020] A "blockchain" can be a distributed database that maintains a continuously growing list of records secured from tampering and revision. A blockchain may include a number of blocks of interaction records. Each block in the blockchain can also include a timestamp and a link to a previous block. Stated differently, interaction records in a blockchain may be stored as a series of "blocks," or permanent files that include a record of a number of interactions occurring over a given period of time. Blocks may be appended to a blockchain by an appropriate node after it4TOWNSEND 80171010 1completes the block and the block is validated. Each block can be associated with a block header. In embodiments of the invention, a blockchain may be distributed, and a copy of the blockchain may be maintained at each full node in a verification network. Any node within the verification network may subsequently use the blockchain to verify interactions.

[0021] A “block header” can be a header including information regarding a block. A block header can be used to identify a particular block in a blockchain. A block header can comprise any suitable information, such as a previous hash, a Merkle root, a timestamp, and a nonce. In some embodiments, a block header can also include a difficulty value.

[0022] A “smart contract” can include distributed computer executable program code. A smart contract may contain a set of rules under which the parties to the smart contract agree to interact with each other. If and when the pre-defined rules are met, the program code is executed and the agreement implemented in the program code is automatically enforced. The smart contract code can be executed in a blockchain network to provide a decentralized automated mechanism to facilitate, verify, and enforce negotiation or performance of an agreement or transaction.

[0023] A “key” may include a piece of information that is used in a cryptographic algorithm to transform input data into another representation. A cryptographic algorithm can be an encryption algorithm that transforms original data into an alternate representation, or a decryption algorithm that transforms encrypted information back to the original data. Examples of cryptographic algorithms may include triple data encryption standard (TDES), data encryption standard (DES), advanced encryption standard (AES), etc.

[0024] A “public key” may include an encryption key that may be shared openly and publicly. The public key may be designed to be shared and may be configured such that any information encrypted with the public key may only be decrypted using a private key associated with the public key (i.e. , a public / private key pair).

[0025] A “private key” may include any encryption key that may be protected and secure. A private key may be securely stored at an entity and may be used to decrypt any information that has been encrypted with an associated public key of a public / private key pair associated with the private key.5TOWNSEND 80171010 1

[0026] A “public / private key pair” may include a pair of linked cryptographic keys generated by an entity. The public key may be used for public functions such as encrypting a message to send to the entity or for verifying a digital signature which was supposedly made by the entity. The private key, on the other hand, may be used for private functions such as decrypting a received message or applying a digital signature. In some embodiments, the public key may be authorized by a body known as a Certification Authority (CA) which stores the public key in a database and distributes it to any other entity which requests it. The private key can typically be kept in a secure storage medium and will usually only be known to the entity. Public and private keys may be in any suitable format, including those based on Rivest-Shamir- Adleman (RSA) or elliptic curve cryptography (ECC).

[0027] A “storage application” may be an application that stores data. An example of a storage application is a relay storage application such as a relay wallet. A storage application may have a public-private key pair associated with it. The storage application can interact with a distributed ledger such as a blockchain ledger.

[0028] A “digital wallet” can include an electronic device that allows an individual to conduct electronic commerce transactions. A digital wallet may store user profile information, payment credentials, bank account information, one or more digital wallet identifiers and / or the like and can be used in a variety of transactions, such as but not limited to eCommerce, social networks, money transfer / personal payments, mobile commerce, proximity payments, gaming, and / or the like for retail purchases, digital goods purchases, utility payments, purchasing games or gaming credits from gaming websites, transferring funds between users, and / or the like.

[0029] A “processor” may include a device that processes something. In some embodiments, a processor can include any suitable data computation device or devices. A processor may comprise one or more microprocessors working together to accomplish a desired function. The processor may include a CPU comprising at least one high-speed data processor adequate to execute program components for executing user and / or system -generated requests. The CPU may be a microprocessor such as AMD's Athlon, Duron, and / or Opteron; IBM and / or Motorola's PowerPC; IBM's and Sony's Cell processor; Intel's Celeron, Itanium, Pentium, Xeon, and / or XScale; and / or the like processor(s).6TOWNSEND 80171010 1

[0030] A “memory” may be any suitable device or devices that can store electronic data. A suitable memory may comprise a non-transitory computer readable medium that stores instructions that can be executed by a processor to implement a desired method. Examples of memories may comprise one or more memory chips, disk drives, etc. Such memories may operate using any suitable electrical, optical, and / or magnetic mode of operation.

[0031] A “server computer” may include a powerful computer or cluster of computers. For example, the server computer can be a large mainframe, a minicomputer cluster, a cloud server system, or a group of servers functioning as a unit. In one example, the server computer may be a database server coupled to a Web server. The server computer may comprise one or more computational apparatuses and may use any of a variety of computing structures, arrangements, and compilations for servicing the requests from one or more client computers.

[0032] Embodiments of the invention use a relay model for processing transactions. In a relay model, transactions can be submitted by a small number of service provider owned (e.g., bank owned) storage applications (e.g., relay wallets), but those transactions are conducted using user accounts that have specific cryptographic key pairs associated with them. Each user can sign their transactions with their private key, but the service provider will sign the data that is needed to record the transaction on the blockchain.

[0033] The relay model allows a client to only need to provide processing values (e.g., eth) for funding transactions to a small number of relay storage applications, instead of having to shift processing values (e.g., eth) around to each user storage application.

[0034] Embodiments of the invention can support a high throughput of transactions, can ensure that priority transactions are processed quickly, and can economize the amount of process value (e.g., gas) used to process the transactions. Embodiments of the invention can track a transaction’s lifecycle and recover from failure scenarios. Such failure scenarios can include a transaction build failure, a submit failure (e.g., a downstream node rejects the transaction such as the counter value is too low, we have an invalid signature, etc.), an insufficient process value failure, a dropped transaction failure (e.g., blockchain node fails, transaction pending7TOWNSEND 80171010 1in the transaction pool (e.g., a mempool) too long), and a revert transaction failure (e.g., smart contract logic causes a transaction to revert).

[0035] Because relay storage applications are used to submit transactions, it is possible to immediately increase throughput by increasing the number of relay storage applications. Transactions can be distributed among relays in a way to distribute loads while minimizing blocked transactions.

[0036] If a single relay storage application submits transactions faster than blocks are created (for example, currently ~12s on mainnet eth), problems can arise with respect to the order of transaction processing. Embodiments of the invention address such problems.

[0037] If a transaction is pending in the transaction pool (e.g., a mempool), any successive transactions with higher counter values for the same address (e.g., the same relay storage application) will be blocked until the pending transaction is processed. A higher processing value (e.g., gas price) can be selected in order to prevent this from happening, but this case is impossible to prevent completely. For example, assume a relay storage application has submitted transactions numbered one to ten (as indicated by a counter value) to the blockchain network. Also assume that transaction number two gets blocked. A common reason for the blockage may be that the transaction does not have a high enough processing value (e.g., gas price). Even if the transactions with higher counter values have higher processing values (e.g., gas prices), then they cannot be processed until transaction number two is processed. If transaction two has been pending for too long, then the system according to embodiments of the invention can fix this. The system can increase the gas price for transaction number two to get the transaction processed faster. The system monitors all transactions so that it can clean up the ones that are lagging.

[0038] Further, some priority or security critical token transactions (such as freezing a malicious wallet or pausing the token contract) require special handling to get them on-chain. The processing value (e.g., gas price) calculation can consider the criticality of the transaction to set an even higher processing value (e.g., gas price) for security critical transactions. Also, to prevent a critical transaction from being blocked by an operational transaction with a lower counter value and insufficient gas price, the system can segregate critical transactions into their own relay storage application.8TOWNSEND 80171010 1Thus, embodiments of the invention can use different relay storage applications for processing different types of transactions according to processing priority. As another example, some transactions such as mint transactions can be time sensitive compared to other types of transactions. Transactions can be assigned to different wallets according to the speed at which the transactions need to be processed.

[0039] The processing value (e.g., gas price) subsystem calculations according to embodiments of the invention can use historical processing values on the blockchain or gas price oracles and considers the criticality of a transaction to determine the appropriate price of gas with which to submit a transaction.

[0040] Embodiments of the invention can also provide each transaction to the client operating the transaction submission computer to obtain approval before submitting the transaction to the blockchain.

[0041] FIG. 1 shows a diagram of a system 100 and an overlaid process flow of blockchain transaction. The system 100 includes a transaction submission computer 10 which can be operated by an upstream entity such as a financial institution. The transaction submission computer 10 can be a server computer, and can submit transactions on behalf of various users (e.g., customers) that operate user devices (not shown) in communication with the transaction submission computer 10. The transaction submission computer 10 can be in communication with a transaction management computer 20, which may also be a server computer. The transaction management computer 20 may manage a plurality of relay storage applications (e.g., relay wallets) for the entity operating the transaction submission computer 10.

[0042] The transaction management computer 20 may submit transactions to the blockchain network 30 for inclusion on a blockchain 50. The transactions may be submitted by the transaction management computer 20 on behalf of the entity operating the transaction submission computer 10 using the relay storage applications. Each relay storage application may be associated with a public-private key pair. For example, the transaction submission computer 10 may be operated by a financial institution, which may have thousands of users. Those users may submit transaction requests for inclusion on a blockchain 50, and the transactions may be generated and processed by the relay storage applications on the transaction management computer 20. The number of relay storage applications per entity may9TOWNSEND 80171010 1vary. For example, in some embodiments, the number of relay storage applications per entity may be greater than five, but less than one hundred.

[0043] FIG. 1 also shows a monitoring computer 40 which can monitor data regarding the blockchain managed by the blockchain network 30 and a corresponding transaction pool (e.g., mempool). In some embodiments, the monitoring computer 40 can be part of the transaction management computer 20.

[0044] A method can be described with reference to FIG. 1 with reference to steps S2-S12. Although the method of FIG. 1 and some of the other Figures are described in the context of a payment transaction such as a cryptocurrency transaction, it is understood that other embodiments of the invention can be used in a non-payment context, such as for storing data records in general.

[0045] In step S2, a transaction creation request is submitted by the transaction submission computer 10 to the transaction management computer 20. The transaction creation request can include transaction details for a transaction for a user associated with an entity operating the transaction submission computer 10. Example transaction details may include the data (e.g., a sender user public key or a sender user identifier) regarding a sender user that is to provide a transaction value, data (e.g., a receiver user public key or a receiver user identifier) regarding a receiver user that is to receive the transaction value, the transaction value, and a digital signature of the transaction (signed using a private key of the sender user).

[0046] In step S4, the transaction management computer 20 can function as a relayer of the transaction to the blockchain network 30. The transaction management computer 20 can verify the digital signature in the transaction details using the sender user’s public key, and can then construct a new on-chain transaction with the sender user’s digital signature embedded. The transaction management computer 20 can select an appropriate relay storage application (e.g., relay wallet) to use for the transaction. The transaction management computer 20, the relay storage application can then transmit the on-chain transaction in a transaction message to the blockchain network 30 via a node in the blockchain network 30. Further details regarding the construction and submission of the on-chain transaction will be described below with respect to FIG. 3.10TOWNSEND 80171010 1

[0047] In step S6, the transaction message is broadcasted across the other nodes in the blockchain network 30 network and is added to a transaction pool (e.g., a mempool. The transaction will be stored in the transaction pool with other transactions, waiting to be processed by the nodes in the blockchain network 30.

[0048] In step S8, nodes (miners / validators) of the blockchain network 30 can validate the transaction by solving a complex problem / unique algorithm such as a consensus process. A consensus process is a protocol used by blockchain networks to achieve agreement on the validity of transactions and maintain the integrity of the decentralized ledger. In a decentralized system without a central authority, this process ensures that all network participants — or "nodes" — can agree on a single, unified version of the transaction history and prevent malicious activity like doublespending. Different blockchains employ various consensus models, such as the original Proof-of-Work (PoW) used by Bitcoin, and the more energy-efficient Proof-of- Stake (PoS) adopted by Ethereum.

[0049] In step S10, once verified, the transaction is combined with other transactions to create a new block. A Merkle Tree can also be created and a Merkle root can be included in a header for the new block.

[0050] In step S12, the block is then added to the blockchain 50 to complete the transaction.

[0051] FIG. 2 shows a block diagram of a transaction management computer 200 and a database 210 coupled to the transaction management computer 200 according to an embodiment of the invention. The transaction management computer 200 may comprise a processor 204. The processor 204 may be coupled to a memory 202, a network interface 206, and a computer readable medium 208. The computer readable medium 208 can comprise a number of modules. The computer readable medium 208 can comprise a communication module 208A, a transaction construction module 208B, relay storage applications 208C, a relay storage application selection module 208D, a process value determination module 208E, a counter value determination module 208F, a cryptography processing module 208G, and a blockchain monitoring module 208H.

[0052] The database 210 may store transaction data, counter values, relay storage application identifiers, etc.11TOWNSEND 80171010 1

[0053] The memory 202 can be used to store data and code. For example, the memory 202 can store cryptographic keys, mapping tables, verification information, etc. The memory 202 may be coupled to the processor 204 internally or externally (e.g., cloud based data storage), and may comprise any combination of volatile and / or non-volatile memory, such as RAM, DRAM, ROM, flash, or any other suitable memory device.

[0054] The computer readable medium 208 may comprise code, executable by the processor 204, for performing a method comprising: receiving, by a transaction management computer, a transaction creation request for creating a transaction, the transaction creation request comprising transaction details; determining, by the transaction management computer, a process value associated with processing the transaction; determining, by the transaction management computer using a plurality of factors, a relay storage application from a plurality of storage applications to process the transaction; obtaining, by the transaction management computer, a counter value for the transaction; signing, by the transaction management computer, the transaction using a private key associated with the determined storage application; and transmitting, by the transaction management computer, the signed transaction and the counter value to a blockchain network managing a blockchain for inclusion in the blockchain.

[0055] The communication module 208A may comprise code executable by the processor 204, for allowing the transaction management computer 200 to communicate with external entities such as the blockchain network.

[0056] The transaction construction module 208B may comprise code executable by the processor 204, for constructing transactions for submission to a blockchain network. The transaction construction module 208B can obtain data from a transaction submission request and format a transaction data structure using data from the transaction submission request and data from other sources (e.g., a gas oracle).

[0057] The relay storage applications 208C may be relay wallets which may process and submit transactions for different users associated with an entity such as a financial institution. In embodiments of the invention, there may be sets of relay12TOWNSEND 80171010 1storage applications 208C respectively associated with upstream entities such as financial institutions.

[0058] The relay storage application selection module 208D may comprise code executable by the processor 204, for selecting an appropriate relay storage application for processing a transaction requested by an entity. The selection of the relay storage application can be based on a plurality of factors. For example, first, the relay storage application can be selected so that it is the appropriate type or appropriate level for the transaction. For example, a relay storage application may be used only for security critical transactions and may all be assigned high gas price limits to ensure that the transactions always get processed as quickly as possible. Other relay storage applications can be used to process transactions with lower priority. Second, the relay storage application can be selected if it has a sufficient balance to conduct the transaction using the maximum process value. Third, the relay storage application needs to be active and not blocked. For example, the relay storage application that is selected is not one that has had a transaction pending in the mempool for a long time. For example, a transaction submitted by a relay storage application may be slow to process because it has a low process value (e.g., gas price) limit. This delays any subsequently submitted transactions submitted by that same relay storage application since transactions from the relay storage application need to be processed sequentially. Fourth, the selected relay storage application can be one with the fewest number of transactions.

[0059] The process value determination module 208E may comprise code executable by the processor 204, for determining a process value (e.g., a gas value) for a transaction. The process value determination module 208E may communicate with process value (e.g., gas) oracles external to the transaction management computer 200 to determine process values.

[0060] The counter value determination module 208F may comprise code executable by the processor 204, for determining a counter value (e.g., also referred to as a “nonce” in systems such as Ethereum) for submission with a transaction. Methods for determining and obtaining counter values are described in detail below.13TOWNSEND 80171010 1

[0061] The cryptography processing module 208G may comprise code executable by the processor 204, for performing cryptographic operations including signing, signature validation, encryption, and decryption.

[0062] The blockchain monitoring module 208H may comprise code executable by the processor 204, for monitoring a status of a blockchain and a transaction pool (e.g., mempool) associated with a blockchain network managing the blockchain.

[0063] The network interface 206 may include an interface that can allow the authenticating computer 108 to communicate with external computers. The network interface 206 may enable the authenticating computer 108 to communicate data to and from another device (e.g., the relying party computer 106, the user device 102, the cryptographic authentication process server 110, the authorizing entity computer 112, etc.). Some examples of the network interface 206 may include a modem, a physical network interface (such as an Ethernet card or other Network Interface Card (NIC)), a virtual network interface, a communications port, a Personal Computer Memory Card International Association (PCMCIA) slot and card, or the like. The wireless protocols enabled by the network interface 206 may include Wi-Fi™. Data transferred via the network interface 206 may be in the form of signals which may be electrical, electromagnetic, optical, or any other signal capable of being received by the external communications interface (collectively referred to as “electronic signals” or “electronic messages”). These electronic messages that may comprise data or instructions may be provided between the network interface 206 and other devices via a communications path or channel. As noted above, any suitable communication path or channel may be used such as, for instance, a wire or cable, fiber optics, a telephone line, a cellular link, a radio frequency (RF) link, a WAN or LAN network, the Internet, or any other suitable medium.

[0064] FIG. 3 shows a flowchart illustrating a process that can be performed by a transaction management computer. The flowchart in FIG. 3 can be understood in light of the process described with respect to FIG. 1 . Although FIG. 3 shows steps in a particular order, embodiments of the invention can have steps in a different order. For example, in embodiments of the invention, the order of steps S308 and S310 can be reversed.14TOWNSEND 80171010 1

[0065] In step S302, the transaction management computer can receive a transaction request from a transaction submission computer similar to step S2 in FIG. 1 . The transaction request may be one of many transaction requests received from the transaction submission computer. The transaction submission computer may be operated by an entity such as a bank. The entity may manage storage applications (e.g., wallets) for its users and may serve as a custodian for the private keys associated with those storage applications. The entity may also have associated with it a number of relay storage applications (e.g., relay wallets), and the relay storage applications may be on and / or managed by the transaction management computer. The each relay storage application can submit transactions for multiple users associated with the entity to the blockchain network for inclusion on the blockchain. The use of such relay storage applications is more efficient than allowing each user of the entity to submit transactions on their own to the blockchain network.

[0066] In step S304, the transaction management computer can validate transaction parameters associated with the transaction request. The transaction management computer can validate the transaction parameters to ensure the request is complete and suitable for on-chain execution under applicable policies and constraints.

[0067] In step S306, the transaction management computer can construct transaction data and process value limit parameters. This enables the system to set bounds or budgets for how much fee or priority may be used during submission and monitoring.

[0068] In step S308, the transaction management computer can select a relay storage application based on several factors. First, the relay storage application is selected so that it is the appropriate type or appropriate level for the transaction. For example, a relay storage application may be used only for security critical transactions and may all be assigned very high gas price limits to ensure that the transactions always get processed as quickly as possible. Other relay storage applications can be used to process transactions with lower priority. Second, the relay storage application can be selected so that it has a sufficient balance to conduct the transaction using the maximum process value. Third, the relay storage application needs to be active and not blocked. For example, the relay storage application that is chosen is not one that15TOWNSEND 80171010 1has had a transaction pending in the mempool for a long time. Fourth, the selected relay storage application can be one with the fewest number of transactions.

[0069] In step S310, the transaction management computer can calculate a process value for the transaction. Each transaction can contain process value parameters such as gas price parameters, which state the amount of process value (e.g., wei) the transaction is willing to pay per unit of process value (e.g., gas). If a transaction does not offer a competitive process value (e.g., price), it will wait in the transaction pool (e.g., mempool) until the price of the processing value (e.g., gas) comes down.

[0070] In step S310, gas oracles can be queried, or the transaction management computer can calculate an acceptable processing value (e.g., gas price) to use based on processing values (e.g., gas price) recently accepted by the blockchain. Client configuration data and transaction priority is used to determine a processing value (e.g., gas price). Once the system has the processing value and the payload, the total cost of the processing the transaction can be determined.

[0071] In step S312, the transaction management computer can obtain a counter value for the transaction. Each sending address and transaction has an associated counter value, which is used for replay protection. The counter value is incremented per transaction. If a counter value is too low, the transaction management system can reject the transaction. If a counter value is too high, the transaction will wait in the transaction pool (e.g., mempool). Other transactions can replace an existing transaction by using the same counter value and a higher processing value. Some aspects of the selection of the counter value can be described with respect to FIG. 5.

[0072] In step S314, the transaction management computer can obtain a digital signature on the transaction which can include the transaction details, the counter value, and the processing value. A digital signature can be produced by signing the transaction using the private key associated with the selected relay storage application. The digital signature may be used by the blockchain network to authorize the transaction for on-chain inclusion.

[0073] In step S316, the transaction management computer can store the transaction data and the digital signature in a database. The resulting transaction can be stored in a database to preserve state and support recovery, auditing, or re-tries.16TOWNSEND 80171010 1

[0074] In step S318, the transaction management computer can submit the transaction to the blockchain network.

[0075] In step S320, the transaction management computer can receive a response from the blockchain network in response to the transaction submission in step S318. The responses may include one more of a mempool acceptance, an error message, or a final confirmation status.

[0076] During the steps in FIG. 3, the transaction management computer can poll and monitor the state of the blockchain managed by the blockchain network and the mempool. It can determine whether any transactions that have been submitted are not being processed (e.g., due to a low processing value or an error) and the reason for any processing delays or errors.

[0077] FIG. 4 shows a transaction recovery process according to an embodiment. The flowchart in FIG. 4 shows how increasing gas prices (processing values) and dummy transactions (e.g., empty transactions) with higher gas prices (processing values) can be used to clear out transactions that are delayed or stuck in processing.

[0078] In step S402, the transaction is sent to blockchain network and is stored in a transaction pool (e.g., a mempool) along with other transactions as they wait to be processed.

[0079] In step S404, the transaction management computer can monitor the transaction pool, and can determine if there is sufficient processing value to process the transaction with a predetermined timeout. Stated differently, the transaction management computer can determine whether the current fee (processing value) or priority is likely to achieve confirmation within a desired window. For example, a transaction may be waiting for a long period of time to be processed (e.g., five minutes) and it may be the first transaction in line for a particular relay storage application. If yes, then the process flow proceeds to step S410 where the transaction is completed. If no, then the process proceeds to step S406.

[0080] In step S406, If the processing value is not sufficient, the flow can evaluate whether the processing value limit for the transaction can be incremented as many times as needed within a maximum allowed threshold (e.g., 5 times). Each17TOWNSEND 80171010 1incremented processing value can be greater than the minimum 10% increase required to be reconsidered by the blockchain nodes. If yes, then the process flow proceeds to step S410 where the transaction is completed. If no, then the process can proceed to step S408.

[0081] In step S408, the transaction management computer can submit a new empty transaction to the blockchain network with the same counter value as the “stuck transaction”, the same selected relay storage application, and with a higher processing value that will ensure that the transaction will be processed. The empty transaction can be processed thus clearing out the delay in the queue of transactions for that relay storage application. Empty transactions involve little processing since they are empty and setting a high processing value for the empty transactions ensures that they will be processed by the blockchain network. The stuck transaction in the transaction pool with the same counter value as the empty transaction will not be processed by the blockchain network since the empty transaction was processed with the same counter value.

[0082] In step S410, after step S406 is performed, the empty transaction is completed and written to the blockchain.

[0083] FIG. 5 shows a counter value management process, which can correspond to step S312 in FIG. 3. The system can record the current counter value for every relay storage application locally. When the system gets a new counter value, the blockchain is queried and the local store is queried. The system then takes the highest. In some cases, transactions can fail, and the counter value is not used. The system then stores the missed counter values in memory.

[0084] In step S502, the transaction management computer begins the process of obtaining a counter value for a transaction to be submitted by a relay storage application.

[0085] In step S504, the transaction management computer determines if there is a counter value exception for the relay storage application. A counter value exception may result when a transaction failed for some reason. If yes, then the process proceeds to step S506. If no, then the process proceeds to step S508.18TOWNSEND 80171010 1

[0086] In step S506, the transaction management computer returns the lowest exception counter value and marks that exception counter value as in use. This ensures that the counter value which was never processed is used in a transaction. Doing this also ensures that the blockchain network will not fail to continue to process transactions due to a missing counter value.

[0087] In some embodiments, a dummy transaction (e.g., empty transaction) with the exception counter value may be submitted to clear out the exception counter value. Assume that fifty transactions and fifty counter values are created. Then, an error occurs with one of the transactions and a particular counter value remains unused (e.g., counter value number five). A table is checked to see if there is a missed counter value, and if so, then a dummy transaction (e.g., empty transaction) with the missed counter value may be submitted to allow the remaining transactions to be processed.

[0088] In step S508, the transaction management computer reads the counter value from a row in the database for the selected relay storage application.

[0089] In step S510, the transaction management computer selects the latest counter value from the blockchain for the selected relay storage application.

[0090] In step S512, the transaction management computer determines if the blockchain counter value is larger than the counter value from the database. If yes, then the process proceeds to step S514. If no, then the process proceeds to step S516.

[0091] In step S514, the transaction management computer sets the database counter value to be the blockchain counter value + 1 and returns the blockchain counter value.

[0092] In step S516, the transaction management computer increments the counter value row in the database and returns the database counter value.

[0093] The transaction processing then can proceed as described above with respect to FIG. 3.

[0094] FIG. 6 shows an example transaction object formatted with fields commonly used for Ethereum transactions, including a “from” address identifying the19TOWNSEND 80171010 1sender, a “to” address for the destination, a “nonce” or counter value for ordering, a “gasLimit” to cap execution resources, a “data” field containing call data for contract interaction, and fee parameters (processing values) “maxFeePerGas” and “maxPriorityFeePerGas” that can be tuned to influence inclusion priority under variable network conditions. In the illustrated example, the object shows representative hexencoded values such as gasLimit set to 0x55555, maxFeePerGas set to 0x1234, maxPriorityFeePerGas set to 0x1234, data set to Oxabcd, nonce set to 0x2, a from address of 0x1923f626bb8dc025849e00f99c25fe2b2f7fb0db, a to address of 0x07a565b7ed7d7a678680a4c162885bedbb695fe0, and a value field set to 0x1234, all of which may be prepared and signed by a relay storage application (e.g., a relay wallet) as part of the submission workflow.

[0095] Embodiments of the invention have a number of advantages. Embodiments of the invention ensure that transactions are processed quickly by a blockchain network, and further optimizes processing values associated with processing transactions. Embodiments of the invention also provide for appropriate failure recovery to ensure that transactions are not pending for long periods of time in a mempool.

[0096] Any of the software components or functions described in this application, may be implemented as software code to be executed by a processor using any suitable computer language such as, for example, Java, C++, or Perl using, for example, conventional or object-oriented techniques. The software code may be stored as a series of instructions, or commands on a computer readable medium, such as a random access memory (RAM), a read only memory (ROM), a magnetic medium such as a hard-drive or a floppy disk, or an optical medium such as a CD-ROM. Any such computer readable medium may reside on or within a single computational apparatus, and may be present on or within different computational apparatuses within a system or network.

[0097] The above description is illustrative and is not restrictive. Many variations of the invention may become apparent to those skilled in the art upon review of the disclosure. The scope of the invention can, therefore, be determined not with reference to the above description, but instead can be determined with reference to the pending claims along with their full scope or equivalents.20TOWNSEND 80171010 1

[0098] One or more features from any embodiment may be combined with one or more features of any other embodiment without departing from the scope of the invention.

[0099] A recitation of "a", "an" or "the" is intended to mean "one or more" unless specifically indicated to the contrary.

[0100] All patents, patent applications, publications, and descriptions mentioned above are herein incorporated by reference in their entirety for all purposes. None is admitted to be prior art.21TOWNSEND 80171010 1

Claims

WHAT IS CLAIMED IS:1 . A method comprising: receiving, by a transaction management computer, a transaction creation request for creating a transaction, the transaction creation request comprising transaction details; determining, by the transaction management computer, a process value associated with processing the transaction; determining, by the transaction management computer using a plurality of factors, a storage application from a plurality of storage applications to process the transaction; obtaining, by the transaction management computer, a counter value for the transaction; signing, by the transaction management computer, the transaction using a private key associated with the determined storage application; and transmitting, by the transaction management computer, the signed transaction, and the counter value to a blockchain network managing a blockchain for inclusion in the blockchain.

2. The method of claim 1 , wherein determining the storage application is based on a priority of the transaction, and the storage application is a relay storage application, and wherein the transaction includes the transaction details, the process value and the counter value.

3. The method of claim 1 , wherein the counter value is obtained from a counter value exception list.

4. The method of claim 1 , wherein the blockchain network stores the signed transaction and the counter value in a transaction pool before the transaction is included in the blockchain.

5. The method of claim 4, wherein the processing value is a first processing value, and the method further comprises:22TOWNSEND 80171010 1monitoring, by the transaction management computer, the transaction pool; determining, by the transaction management computer that one or more transactions in the transaction pool are not being processed by the blockchain network because the blockchain network is waiting for a transaction with a specific counter value before processing the one or more transactions; and transmitting, by the transaction management computer, an empty transaction with a second processing value larger than the first processing value and the specific counter value to the blockchain network to allow the one or more transactions to be processed by the blockchain network.

6. The method of claim 1 , wherein obtaining the counter value comprises: determining if a counter value exception exists for the selected storage application; and if the counter value exception exists, then return a lowest counter value exception counter value as the counter value as the counter value that is obtained by the transaction management computer.

7. The method of claim 1 , wherein obtaining the counter value comprises: obtaining a latest counter value from the blockchain for the selected storage application; and if the latest counter value from the blockchain is larger than a counter value that is selected by the transaction management computer, then setting the counter value at the transaction management computer to be the latest counter value from the blockchain incremented by one, and returning the latest counter value from the blockchain incremented by one as the counter value that is obtained by the transaction management computer.

8. The method of claim 1 , wherein obtaining the counter value comprises: obtaining a latest counter value from the blockchain for the selected storage application; and23TOWNSEND 80171010 1if the latest counter value from the blockchain is less than a counter value that is selected by the transaction management computer, returning the selected counter value as the counter value that is obtained by the transaction management computer.

9. The method of claim 1 , wherein the plurality of storage applications are associated with a single entity.

10. The method of claim 1 , wherein each of the plurality of storage applications.

11. A transaction management computer comprising: one or more processors; and one or more computer readable media coupled to the one or more processors, the one or more computer readable media comprising code, executable by the one or more processors for implementing operations comprising: receiving a transaction creation request for creating a transaction, the transaction creation request comprising transaction details; determining a process value associated with processing the transaction; determining, using a plurality of factors, a storage application from a plurality of storage applications to process the transaction; obtaining a counter value for the transaction; signing the transaction using a private key associated with the determined storage application; and transmitting the signed transaction and the counter value to a blockchain network managing a blockchain for inclusion in the blockchain.

12. The transaction management computer of claim 11 , wherein determining the storage application is based on a priority of the transaction, and the storage application is a relay storage application.

13. The transaction management computer of claim 11 , wherein the counter value is obtained from a counter value exception list.24TOWNSEND 80171010 114. The transaction management computer of claim 11 , wherein in operations, the blockchain network stores the signed transaction and the counter value in a transaction pool before the transaction is included in the blockchain.

15. The transaction management computer of claim 14, wherein the processing value is a first processing value, and the operations further comprise: monitoring the transaction pool; determining that one or more transactions in the transaction pool are not being processed by the blockchain network because the blockchain network is waiting for a transaction with a specific counter value before processing the one or more transactions; and transmitting an empty transaction with a second processing value larger than the first processing value and the specific counter value to the blockchain network to allow the one or more transactions to be processed by the blockchain network.

16. The transaction management computer of claim 11 , wherein obtaining the counter value comprises: determining if a counter value exception exists for the selected storage application; and if the counter value exception exists, then return a lowest counter value exception as the counter value that is obtained by the transaction management computer.

17. The transaction management computer of claim 11 , wherein obtaining the counter value comprises: obtaining a latest counter value from the blockchain for the selected storage application; and if the latest counter value from the blockchain is larger than a counter value that is selected by the transaction management computer, then setting the counter value at the transaction management computer to be the latest counter value from the blockchain incremented by one, and returning the latest counter value25TOWNSEND 80171010 1from the blockchain incremented by one as the counter value that is obtained by the transaction management computer.

18. The transaction management computer of claim 11 , wherein obtaining the counter value comprises: obtaining a latest counter value from the blockchain for the selected storage application; and if the latest counter value from the blockchain is less than a counter value that is selected by the transaction management computer, returning the selected counter value as the counter value that is obtained by the transaction management computer.

19. A system comprising: a transaction management computer comprising, one or more processors, and one or more computer readable media coupled to the one or more processors, the one or more computer readable media comprising code, executable by the one or more processors for implementing operations comprising. receiving a transaction creation request for creating a transaction, the transaction creation request comprising transaction details, determining a process value associated with processing the transaction; determining, using a plurality of factors, a storage application from a plurality of storage applications to process the transaction, obtaining a counter value for the transaction, signing the transaction using a private key associated with the determined storage application, and transmitting the signed transaction and the counter value to a blockchain network managing a blockchain for inclusion in the blockchain; and the blockchain network in communication with the transaction management computer.26TOWNSEND 80171010 120. The system of claim 19, further comprising a transaction submission computer in communication with the transaction management computer, the transaction submission computer providing the transaction creation request to the transaction management computer.27TOWNSEND 80171010 1