# US 12,192,386 B2 · Systems and methods for facilitating blockchain operations based on network congestion

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,192,386 B2
- Document ID: US12192386B2
- Status: Granted
- Kind: B2
- Application number: 17/699,859
- Filed: 2022-03-21
- Published: 2023-09-21
- Granted: 2025-01-07
- Earliest claimed: 2022-03-21
- Assignees: Coinbase, Inc.
- Applicants: Coinbase, Inc.
- Inventors: Yuga Cohler
- Web page: https://patentgrep.com/patent/US12192386B2

## CPC

- H04L 9/50: {using hash chains, e.g. blockchains or hash trees}
- H04L 9/3247: {involving digital signatures}
- H04L 47/12: Avoiding congestion; Recovering from congestion
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 2209/56: Financial cryptography, e.g. electronic payment or e-cash
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods and systems are described for facilitating blockchain operations based on network congestion. The system may facilitate blockchain operations by generating recommendations for blockchain operations based on values for one or more blockchain operation characteristics that are determined based on a likelihood that a given blockchain operation will be completed in a timely manner. The system thus ensures accounts for transient congestion in a blockchain network, while also minimizing a burden on a user device attempting to perform a blockchain operation.

## Claims

### Claim 1

A system of facilitating blockchain operations based on network congestion, the system comprising:
one or more processors and media storing instructions that, when executed by the one or more processors, cause operations comprising:
determining, for a blockchain operation type, a set of congestion values comprising (i) first values respectively corresponding to blockchain operations that were completed within one block of a blockchain during a first time period, (ii) second values respectively corresponding to blockchain operations that were not completed within one block of the blockchain during the first time period; (iii) third values respectively corresponding to blockchain operations that were completed within one block of the blockchain during a second time period, (ii) fourth values respectively corresponding to blockchain operations that were not completed within one block of the blockchain during the second time period;
based on the first values and the second values of the set of congestion values with respect to the first time period, determining a first representation indicating a first probability of completion of a given blockchain operation within one block as a function of values for the blockchain operation type,
based on the third values and the fourth values of the set of congestion values with respect to the second time period, determining a second representation indicating a second probability of completion of a given blockchain operation within one block as a function of values for the blockchain operation type;
in connection with receiving a user request to perform a blockchain operation corresponding to the blockchain operation type, determining (i) a first network resource amount for the blockchain operation type based on a first requested percentile for the blockchain operation type and the first representation indicating the first probability of completion and (ii) a second network resource amount for the blockchain operation type based on a second requested percentile for the blockchain operation type and the second representation indicating the second probability of completion; and
generating for display, on a user interface, a recommendation for the blockchain operation based on a composite value derived from the first and second network resource amounts for the blockchain operation type.

### Claim 2

A method of facilitating blockchain operations based on network congestion, the method comprising:
determining, for a blockchain operation type, a set of congestion values comprising (i) first values respectively corresponding to blockchain operations that were completed within one block of a blockchain during a first time period and (ii) second values respectively corresponding to blockchain operations that were not completed within one block of the blockchain during the first time period;
based on the first values and the second values of the set of congestion values, determining a first representation that indicates one or more probabilities of completion of a given blockchain operation within one block as a function of values for the blockchain operation type;
in connection with receiving a user request to perform a blockchain operation corresponding to the blockchain operation type, determining a first requested percentile, and determining a first network resource amount for the blockchain operation type based on the first requested percentile and the first representation indicating the one or more probabilities of completion; and
generating for display, on a user interface, a first recommendation for the blockchain operation based on the first network resource amount for the blockchain operation type.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
determining, based on (i) a second requested percentile for the blockchain operation type and (ii) the first representation indicating the one or more probabilities, a second network resource amount for the blockchain operation type; and
generating for display, on the user interface, simultaneously with the first recommendation, a second recommendation for the blockchain operation based on the second network resource amount for the blockchain operation type.

### Claim 4 (depends on 2)

The method of claim 2, further comprising:
recording the blockchain operations corresponding to the first values of the set of congestion values and the blockchain operations corresponding to the second values of the set of congestion values in a blockchain indexing application; and
parsing the blockchain indexing application to determine the first and second values of the set of congestion values.

### Claim 5 (depends on 2)

The method of claim 2, further comprising:
determining, for the blockchain operation type, (i) third values respectively corresponding to blockchain operations that were completed within one block of the blockchain during a second time period and (ii) fourth values respectively corresponding to blockchain operations that were not completed within one block of the blockchain during the second time period;
based on the third values and the fourth values, determining a second representation indicating a second probability of completion of a given blockchain operation within one block as a function of values for the blockchain operation type;
determining a second network resource amount for the blockchain operation type based on the first requested percentile for the blockchain operation type and the second representation indicating the second probability of completion;
determining a composite value based on the first network resource amount and the second network resource amount; and
generating for display, on the user interface, a second recommendation for the blockchain operation based on the composite value.

### Claim 6 (depends on 5)

The method of claim 5, wherein determining the composite value comprises determining a rate of change in the first network resource amount and the second network resource amount.

### Claim 7 (depends on 2)

The method of claim 2, further comprising:
in connection with the determination of the first representation indicating the one or more probabilities of completion, selecting the first time period from a plurality of time periods based on an off-chain characteristic such that the first time period corresponds to the off-chain characteristic.

### Claim 8 (depends on 2)

The method of claim 2, further comprising:
determining a dynamic blockchain operation characteristic based on a current state of a blockchain network; and
determining a dynamic gas range for executing the blockchain operation based on the dynamic blockchain operation characteristic and the first network resource amount.

### Claim 9 (depends on 2)

The method of claim 2, further comprising receiving a user input comprising a priority designation for the blockchain operation, wherein the first requested percentile is based on the priority designation.

### Claim 10 (depends on 2)

The method of claim 2, further comprising:
generating a dynamic gas range by combining a dynamic blockchain operation characteristic with the first network resource amount by:
determining a range for the dynamic blockchain operation characteristic;
generating a lowerbound of the dynamic gas range by summing the first network resource amount with a lowerbound of the range; and
generating an upperbound of the dynamic gas range by summing the first network resource amount with an upperbound of the range.

### Claim 11 (depends on 2)

The method of claim 2, further comprising:
accessing a user account corresponding to a public key in response to receiving the user request, wherein a first cryptography-based storage application corresponds to the user account that is accessible to a user device through a platform application, and wherein the first cryptography-based storage application is used to perform a plurality of blockchain operations;
retrieving, from the user account, a first partial private key and a user address;
querying the user device for use of a second partial private key in performing the blockchain operation;
generating a first digital signature based on the first partial private key and the second partial private key; and
performing the blockchain operation based on the first digital signature and the user address.

### Claim 12

One or more non-transitory, computer-readable media comprising instructions that, when executed by one or more processors, cause operations comprising:
determining, for a blockchain operation type, a set of congestion values comprising (i) first values respectively corresponding to blockchain operations that were completed within one block of a blockchain during a first time period and (ii) second values respectively corresponding to blockchain operations that were not completed within one block of the blockchain during the first time period;
based on the first values and the second values of the set of congestion values, determining a first representation that indicates one or more probabilities of completion of a given blockchain operation within one block as a function of values for the blockchain operation type;
in connection with receiving a user request to perform a blockchain operation corresponding to the blockchain operation type, determining a first requested percentile, and determining a first network resource amount for the blockchain operation type based on the first requested percentile and the first representation indicating the one or more probabilities of completion; and
generating for display, on a user interface, a first recommendation for the blockchain operation based on the first network resource amount for the blockchain operation type.

### Claim 13 (depends on 12)

The one or more non-transitory, computer-readable media of claim 12, wherein the instructions further cause operations comprising:
determining, based on (i) a second requested percentile for the blockchain operation type and (ii) the first representation indicating the one or more probabilities, a second network resource amount for the blockchain operation type; and
generating for display, on the user interface, simultaneously with the first recommendation, a second recommendation for the blockchain operation based on the second network resource amount for the blockchain operation type.

### Claim 14 (depends on 12)

The one or more non-transitory, computer-readable media of claim 12, wherein the instructions further cause operations comprising:
recording the blockchain operations corresponding to the first values of the set of congestion values and the blockchain operations corresponding to the second values of the set of congestion values in a blockchain indexing application; and
parsing the blockchain indexing application to determine the first and second values of the set of congestion values.

### Claim 15 (depends on 12)

The one or more non-transitory, computer-readable media of claim 12, wherein the instructions further cause operations comprising:
determining, for the blockchain operation type, (i) third values respectively corresponding to blockchain operations that were completed within one block of the blockchain during a second time period and (ii) fourth values respectively corresponding to blockchain operations that were not completed within one block of the blockchain during the second time period;
based on the third values and the fourth values, determining a second representation indicating a second probability of completion of a given blockchain operation within one block as a function of values for the blockchain operation type;
determining a second network resource amount for the blockchain operation type based on the first requested percentile for the blockchain operation type and the second representation indicating the second probability of completion;
determining a composite value based on the first network resource amount and the second network resource amount; and
generating for display, on the user interface, a second recommendation for the blockchain operation based on the composite value.

### Claim 16 (depends on 15)

The one or more non-transitory, computer-readable media of claim 15, wherein determining the composite value comprises determining a rate of change in the first network resource amount and the second network resource amount.

### Claim 17 (depends on 12)

The one or more non-transitory, computer-readable media of claim 12, wherein the instructions further cause operations comprising:
in connection with the determination of the first representation indicating the one or more probabilities of completion, selecting the first time period from a plurality of time periods based on an off-chain characteristic such that the first time period corresponds to the off-chain characteristic.

### Claim 18 (depends on 12)

The one or more non-transitory, computer-readable media of claim 12, wherein the instructions further cause operations comprising:
determining a dynamic blockchain operation characteristic based on a current state of a blockchain network; and
determining a dynamic gas range for executing the blockchain operation based on the dynamic blockchain operation characteristic and the first network resource amount.

### Claim 19 (depends on 12)

The one or more non-transitory, computer-readable media of claim 12, wherein the instructions further cause operations comprising receiving a user input comprising a priority designation for the blockchain operation, wherein the first requested percentile is based on the priority designation.

### Claim 20 (depends on 12)

The one or more non-transitory, computer-readable media of claim 12, wherein the instructions further cause operations comprising:
generating a dynamic gas range by combining a dynamic blockchain operation characteristic with the first network resource amount by:
determining a range for the dynamic blockchain operation characteristic;
generating a lowerbound of the dynamic gas range by summing the first network resource amount with a lowerbound of the range; and
generating an upperbound of the dynamic gas range by summing the first network resource amount with an upperbound of the range.
