US 11,756,031 B1
Multicurrency blockchain platform and method of use
Paul Hamera, San Francisco, CA (US); Alexander Kern, San Francisco, CA (US); Ali Fathalian, San Francisco, CA (US); Nikhil Srinivasan, San Francisco, CA (US); Omar Bohsali, San Francisco, CA (US); Jing Fan, San Francisco, CA (US); and Josh Ellithorpe, San Francisco, CA (US)
Assigned to Coinbase, Inc., Oakland, CA (US)
Filed by Coinbase, Inc., San Francisco, CA (US)
Filed on Feb. 24, 2020, as Appl. No. 16/798,978.
Claims priority of provisional application 62/892,691, filed on Aug. 28, 2019.
Claims priority of provisional application 62/809,458, filed on Feb. 22, 2019.
Int. Cl. G06Q 20/38 (2012.01); G06Q 20/40 (2012.01); H04L 9/06 (2006.01); G06Q 20/36 (2012.01); H04L 9/00 (2022.01)
CPC G06Q 20/401 (2013.01) [G06Q 20/3678 (2013.01); G06Q 20/382 (2013.01); H04L 9/0637 (2013.01); G06Q 2220/00 (2013.01); H04L 9/50 (2022.05)] 20 Claims
OG exemplary drawing
 
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.