IP Library › Granted Patent US 11,756,031
Granted Patent B1
US 11,756,031 · App. 16/798,978 · Granted Sep 12, 2023

Multicurrency blockchain platform and method of use

Inventors: Paul Hamera (San Francisco, CA); Alexander Kern (San Francisco, CA); Ali Fathalian (San Francisco, CA); Nikhil Srinivasan (San Francisco, CA); Omar Bohsali (San Francisco, CA); Jing Fan (San Francisco, CA); Josh Ellithorpe (San Francisco, CA)
Assignee: Coinbase, Inc.
G06Q20/401G06Q20/3678G06Q20/382H04L9/0637G06Q2220/00H04L9/50
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,756,031
App. No.
16/798,978
Granted
Sep 12, 2023
Kind
B1
Abstract

Systems and methods for blockchain services with a multicurrency blockchain platform.

Claims (58)

1. A method of facilitating concurrency control for a blockchain platform with respect to a limited number of blockchain addresses despite a greater number of user accounts generating blockchain requests, the method comprising:

generating, by a server system of the blockchain platform, (i) multiple first auxiliary identifiers associated with an account of a first user using blockchain addresses associated with a blockchain and (ii) multiple second auxiliary identifiers associated with an account of a second user different from the first user using at least some of the blockchain addresses,

each identifier of the first auxiliary identifiers being an off-chain address generated using a given blockchain address different from addresses of the blockchain addresses used to generate other identifiers of the first auxiliary identifiers;

in response to receiving a blockchain request indicating a first account of the first user associated with a first auxiliary identifier of the first auxiliary identifiers, performing, by the server system, a lock operation on a blockchain address used to generate the first auxiliary identifier;

selecting, by the server system, from among a plurality of sub-modules associated with different blockchains, an operations sub-module for the blockchain request that operates in accordance with a protocol of the blockchain;

generating, by the server system, via the selected operations sub-module, a transaction for the blockchain using information in the blockchain request;

selecting, by the server system, from among a plurality of sub-modules associated with the different blockchains, an interface sub-module for the transaction that operates in accordance with the protocol of the blockchain;

while the blockchain address remains locked from the lock operation, broadcasting, by the server system, the transaction to the blockchain; and

in response to determining that a transaction hash of the transaction is stored on the blockchain in connection with the broadcast of the transaction, performing, by the server system, an unlock operation on the blockchain address used to generate the first auxiliary identifier.

2. The method of claim 1 , further comprising:

streaming, by the server system, block data of one or more blocks of the blockchain to a poller associated with the blockchain, the poller being one of a plurality of pollers of the blockchain platform;

identifying, by the poller, the transaction hash as being in both the block data and in an off-chain database of the blockchain platform by processing the block data to identify the transaction hash in the block data and querying the off-chain database for a corresponding instance of the transaction hash identified in the block data; and

determining that the transaction is recorded on the blockchain based on the identification of the poller.

3. The method of claim 1 , further comprising:

in response to receiving an identifier creation API request for a new auxiliary identifier, selecting, by the server system, the blockchain address from a set of blockchain addresses and generating the first auxiliary identifier using the blockchain address; and

generating, by the server system, a response to the identifier creation API request, the response comprising the first auxiliary identifier.

4. A computer system of a blockchain platform, the computer system comprising:

one or more processors programmed with computer program instructions that, when executed by the one or more processors, cause operations comprising:

generating (i) first auxiliary identifiers associated with an account of a first user using blockchain addresses and (ii) second auxiliary identifiers associated with an account of a second user different from the first user using at least some of the blockchain addresses,

at least one identifier of the first auxiliary identifiers being generated using a given blockchain address different from addresses of the blockchain addresses used to generate other identifiers of the first auxiliary identifiers;

in response to receiving a blockchain request indicating a first account associated with a first auxiliary identifier of the first auxiliary identifiers, performing a lock operation on a blockchain address used to generate the first auxiliary identifier;

selecting, from among a plurality of sub-modules associated with different blockchains, an operations sub-module for the blockchain request that operates in accordance with a protocol of a blockchain;

generating, via the selected operations sub-module, a transaction for the blockchain using information in the blockchain request;

while the blockchain address remains locked from the lock operation, broadcasting the transaction to the blockchain; and

in response to determining that the transaction has been recorded on the blockchain, performing an unlock operation on the blockchain address used to generate the first auxiliary identifier.

5. The computer system of claim 4 , wherein performing the unlock operation on the blockchain address comprises, in response to determining that a transaction hash of the transaction is stored on the blockchain after the broadcast of the transaction, performing the unlock operation on the blockchain address used to generate the first auxiliary identifier.

6. The computer system of claim 5 , the operations further comprising:

obtaining block data of one or more blocks of the blockchain;

identifying the transaction hash as being in both the block data and in an off-chain database of the blockchain platform by processing the block data to identify the transaction hash in the block data and querying the off-chain database for a corresponding instance of the transaction hash identified in the block data; and

determining that the transaction is recorded on the blockchain based on the identification of the transaction hash as being in both the block data and in an off-chain database of the blockchain platform.

7. The computer system of claim 4 , the operations further comprising:

in response to receiving an identifier creation API request for a new auxiliary identifier, selecting the blockchain address from a set of blockchain addresses and generating the first auxiliary identifier using the blockchain address; and

generating a response to the identifier creation API request, the response comprising the first auxiliary identifier.

8. The computer system of claim 4 , wherein the first auxiliary identifier is an address generated from (i) the blockchain address and (ii) a unique string for the first account.

9. The computer system of claim 4 , wherein the blockchain request indicates an action supported by a protocol of the blockchain, and wherein generating the transaction comprises generating a given transaction for the action indicated in the blockchain request.

10. The computer system of claim 9 , wherein the action comprises sending an amount of cryptocurrency from a source to a destination.

11. The computer system of claim 9 , wherein the action comprises delegating an amount of cryptocurrency for a proof-of-stake blockchain, transferring funds from an inbound hot wallet to an outbound hot wallet, transferring funds from an outbound hot wallet to cold storage, transferring funds from cold storage to an outbound hot wallet, performing staking, or invoking a smart contract process.

12. One or more non-transitory computer-readable media storing computer program instructions that, when executed by one or more processors of a blockchain platform, perform operations comprising:

generating (i) first auxiliary identifiers associated with an account of a first user using blockchain addresses and (ii) second auxiliary identifiers associated with an account of a second user different from the first user using at least some of the blockchain addresses,

at least one identifier of the first auxiliary identifiers being generated using a given blockchain address different from addresses of the blockchain addresses used to generate other identifiers of the first auxiliary identifiers;

in response to receiving a blockchain request indicating a first account associated with a first auxiliary identifier of the first auxiliary identifiers, performing a lock operation on a blockchain address used to generate the first auxiliary identifier;

selecting, from among a plurality of sub-modules associated with different blockchains, an operations sub-module for the blockchain request that operates in accordance with a protocol of a blockchain;

generating, via the selected operations sub-module, a transaction for the blockchain using information in the blockchain request;

while the blockchain address remains locked from the lock operation, broadcasting the transaction to the blockchain; and

in response to determining that the transaction has been recorded on the blockchain, performing an unlock operation on the blockchain address used to generate the first auxiliary identifier.

13. The media of claim 12 , wherein performing the unlock operation on the blockchain address comprises, in response to determining that a transaction hash of the transaction is stored on the blockchain after the broadcast of the transaction, performing the unlock operation on the blockchain address used to generate the first auxiliary identifier.

14. The media of claim 13 , the operations further comprising:

obtaining block data of one or more blocks of the blockchain;

identifying the transaction hash as being in both the block data and in an off-chain database of the blockchain platform by processing the block data to identify the transaction hash in the block data and querying the off-chain database for a corresponding instance of the transaction hash identified in the block data; and

determining that the transaction is recorded on the blockchain based on the identification of the transaction hash as being in both the block data and in an off-chain database of the blockchain platform.

15. The media of claim 12 , the operations further comprising:

in response to receiving an identifier creation API request for a new auxiliary identifier, selecting the blockchain address from a set of blockchain addresses and generating the first auxiliary identifier using the blockchain address; and

generating a response to the identifier creation API request, the response comprising the first auxiliary identifier.

16. The media of claim 12 , wherein the first auxiliary identifier is an address generated from (i) the blockchain address and (ii) a unique string for the first account.

17. The media of claim 12 , wherein the blockchain request indicates an action supported by a protocol of the blockchain, and wherein generating the transaction comprises generating a given transaction for the action indicated in the blockchain request.

18. The media of claim 17 , wherein the action comprises sending an amount of cryptocurrency from a source to a destination.

19. The media of claim 17 , wherein the action comprises delegating an amount of cryptocurrency for a proof-of-stake blockchain, performing staking, or invoking a smart contract process.

20. The media of claim 17 , wherein the action comprises transferring funds from an inbound hot wallet to an outbound hot wallet, transferring funds from an outbound hot wallet to cold storage, or transferring funds from cold storage to an outbound hot wallet.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE SPELLING OF THE FOURTH ASSIGNOR'S LAST NAME PREVIOUSLY RECORDED ON REEL 053264 FRAME 0277. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 24, 2020
From: HAMERA, PAUL; KERN, ALEXANDER; FATHALIAN, ALI; SRINIVASAN, NIKHIL; BOHSALI, OMAR; FAN, JING; ELLITHORPE, JOSH
To: COINBASE, INC.
Reel/Frame 053309/0865 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2020
From: HAMERA, PAUL; KERN, ALEXANDER; FATHALIAN, ALI; SRINIVANSAN, NIKHIL; BOHSALI, OMAR; FAN, JING; ELLITHORPE, JOSH
To: COINBASE, INC.
Reel/Frame 053264/0277 →
Continuity (2)
Provisional Application 62892691 · Aug 28, 2019
Provisional Application 62809458 · Feb 22, 2019
Cited By (2)
US 12,265,965 US 12,737,736