IP Library Granted Patent US 12,212,673
Granted Patent B2
US 12,212,673 · App. 17/681,369 · Granted Jan 28, 2025

Systems and methods for facilitating secure blockchain operations in decentralized applications using cryptography-based, storage applications in computer networks

Inventors: Ankit Chiplunkar (San Francisco, CA); Ben Schreck (San Francisco, CA); Matt Moore (San Francisco, CA); Olivia Thet (San Francisco, CA); Peter Jihoon Kim (San Francisco, CA); Trevor Aron (San Francisco, CA)
Assignee: Coinbase, Inc.
H04L9/0894H04L9/3247H04L9/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 12,212,673
App. No.
17/681,369
Granted
Jan 28, 2025
Kind
B2
Abstract

Methods and systems disclosed herein recite the use of linking cryptography-based digital repositories in order to perform blockchain operations in decentralized applications. For example, the system may link a first cryptography-based, storage application (e.g., a first digital wallet) with a second first cryptography-based, storage application (e.g., a second digital wallet). The first cryptography-based, storage application may correspond to a first private key, and wherein the first private key is stored on a first user device. The second cryptography-based, storage application corresponds to a first partial private key and a second partial private key, wherein the first partial private key is stored on a first remote device, and wherein the second partial private key is stored on the first user device.

Claims (81)

1. A system for facilitating secure blockchain operations in decentralized applications using cryptography-based, storage applications in computer networks, the system comprising:

one or more processors and media storing instructions that, when executed by the one or more processors, cause operations comprising:

in response to receiving, via a user interface on a user device, a first user input requesting access to a user account associated with a decentralized application, generating for display, in the user interface on the user device, (i) a first icon that corresponds to a first cryptography-based, storage application associated with the user account and (ii) a second icon that corresponds to a second cryptography-based, storage application associated with the user account, wherein the second cryptography-based, storage application corresponds to a first partial private key stored on a remote device and a second partial private key stored on the user device;

in response to receiving, via the user interface on the user device, a second user input selecting the first icon for performing a blockchain operation, performing the blockchain operation using the first cryptography-based, storage application;

receiving, via the user interface on the user device, a third user input selecting the first icon for performing an additional blockchain operation;

in response to determining that a characteristic of the first cryptography-based, storage application and a characteristic of the additional blockchain operation do not correspond, automatically determining a characteristic of the second cryptography-based, storage application; and

in response to determining that the characteristic of the second cryptography-based, storage application and the characteristic of the additional blockchain operation correspond, generating for display, in the user interface on the user device, a recommendation to perform the additional blockchain operation using the second cryptography-based, storage application.

2. A method for facilitating secure blockchain operations in decentralized applications using cryptography-based, storage applications in computer networks, the method comprising:

receiving, via a user interface on a user device, a first user input, wherein the first user input requests access to a user account in connection with a decentralized application for performing a plurality of blockchain operations;

in response to the first user input, generating for display, in the user interface, (i) a first icon that corresponds to a first cryptography-based, storage application associated with the user account and (ii) a second icon that corresponds to a second cryptography-based, storage application associated with the user account, wherein the second cryptography-based, storage application corresponds to a first partial private key stored on a remote device and a second partial private key stored on the user device; ;

receiving, via the user interface on the user device, a second user input, wherein the second user input selects the first icon for performing a blockchain operation of the plurality of blockchain operations;

in response to the second user input, performing the blockchain operation using the first cryptography-based, storage application;

receiving, via the user interface on the user device, a third user input, wherein the third user input selects the first icon for performing an additional blockchain operation;

determining that a characteristic of the first cryptography-based, storage application and a characteristic of the additional blockchain operation do not correspond;

in response to determining that the characteristic of the first cryptography-based, storage application and the characteristic of the additional blockchain operation do not correspond, automatically determining a characteristic of the second cryptography-based, storage application;

determining that the characteristic of the second cryptography-based, storage application and the characteristic of the additional blockchain operation correspond; and

in response to determining that the characteristic of the second cryptography-based, storage application and the characteristic of the additional blockchain operation correspond, generating for display, in the user interface on the user device, a recommendation to perform the additional blockchain operation using the second cryptography-based, storage application.

3. The method of claim 2 , wherein the first cryptography-based, storage application comprises a non-custodial wallet to which the first icon corresponds, and wherein the second cryptography-based, storage application comprises a semi-custodial wallet to which the second icon corresponds.

4. The method of claim 2 , wherein the second cryptography-based, storage application comprises a semi-custodial wallet to which the second icon corresponds.

5. The method of claim 2 , further comprising:

determining a threshold digital asset amount for the second cryptography-based, storage application;

receiving, via the user interface on the user device, a prior user input to create the second cryptography-based, storage application and generating the second cryptography-based, storage application based on the prior user input; and

in response to generating the second cryptography-based, storage application, generating an instruction to automatically transfer the threshold digital asset amount from the first cryptography-based, storage application to the second cryptography-based, storage application.

6. The method of claim 2 , wherein performing the blockchain operation comprises:

determining that the blockchain operation corresponds to a request to read a contract state; and

in response to determining that the blockchain operation corresponds to the request to read the contract state, retrieving data related to the contract state from a blockchain node.

7. The method of claim 6 , wherein retrieving the data related to the contract state comprises:

determining, based on a database lookup, an address for the first cryptography-based, storage application;

generating, based on a blockchain protocol, encoded data comprising a method name and parameter into a binary data format;

transmitting a call request to the blockchain node with the encoded data; and

parsing the data related to the contract state based on a response from the call request.

8. The method of claim 2 , wherein performing the blockchain operation comprises:

determining that the blockchain operation corresponds to a blockchain transaction;

in response to determining that the blockchain operation corresponds to the blockchain transaction, generating a digital signature derived from (i) a partial private key stored on the remote device and (ii) a partial private key stored on the user device;

signing the blockchain operation with the digital signature; and

submitting the blockchain operation to a blockchain node.

9. The method of claim 8 , wherein submitting the blockchain operation to the blockchain node comprises:

determining, based on a database lookup, an address for the first cryptography-based, storage application;

generating, based on a blockchain protocol, an unsigned transaction;

determining a nonce value; and

determining a gas limit by simulating the blockchain transaction.

10. The method of claim 2 , further comprising generating for display, in the user interface, a third icon, wherein the third icon corresponds to a third cryptography-based, storage application corresponding to the user account, wherein the third cryptography-based, storage application corresponds a first private key, and wherein the first private key is stored on the user device.

11. The method of claim 2 , further comprising:

receiving a fifth user input, at the user interface, wherein the fifth user input requests a status of digital assets for the first cryptography-based, storage application and the second cryptography-based, storage application; and

in response to the fifth user input, querying a blockchain indexer for the decentralized application for blockchain operations related to the digital assets for the first cryptography-based, storage application and the second cryptography-based, storage application, simultaneously.

12. One or more non-transitory computer-readable media comprising instructions that, when executed by one or more processors, causes operations comprising:

in response to receiving, via a user interface on a user device, a first user input t that requests access to a user account with which a non-custodial wallet and a semi-custodial wallet are associated, generating for display, in the user interface, (i) a first icon corresponding to the non-custodial wallet associated with the user account with (ii) a second icon corresponding to the semi-custodial wallet associated with the user account, wherein the semi-custodial wallet corresponds to a first partial private key stored on a remote device and a second partial private key stored on the user device;

receiving, via the user interface on the user device, a second user input that selects the first icon or the second icon for performing a blockchain operation;

in response to the second user input being a selection of the first icon corresponding to the non-custodial wallet, causing execution of a standalone application that (i) controls a private key corresponding to the non-custodial wallet and (ii) is separate from an application hosting the user interface, and performing the blockchain operation using the non-custodial wallet via the standalone application; and

in response to the second user input being a selection of the second icon corresponding to the semi-custodial wallet, generating for display, in the user interface on the user device, one or more features for performing the blockchain operation using the semi-custodial wallet.

13. The one or more non-transitory computer-readable media of claim 12 , wherein the instructions cause further operations comprising:

receiving, via the user interface on the user device, a third user input, wherein the third user input selects the first icon for performing an additional blockchain operation;

in response to the third user input that selects the first icon corresponding to the non-custodial wallet, generating for display, in the user interface on the user device, a recommendation to perform the additional blockchain operation using the semi-custodial wallet in lieu of using the non-custodial wallet corresponding to the selected first icon to perform the additional blockchain operation; and

based on user acceptance of the recommendation, performing the additional_blockchain operation using the semi-custodial wallet.

14. The one or more non-transitory computer-readable media of claim 12 , wherein the instructions cause further operations comprising:

receiving, via the user interface on the user device, a fourth user input, wherein the fourth user input selects the first icon for performing an additional blockchain operation;

determining a characteristic of the non-custodial wallet and a characteristic of the additional blockchain operation;

comparing the characteristic of the non-custodial wallet and the characteristic of the additional blockchain operation;

in response to determining that the characteristic of the non-custodial wallet and the characteristic of the additional blockchain operation do not correspond, automatically determining a characteristic of the semi-custodial wallet; and

in response to determining that the characteristic of the semi-custodial wallet and the characteristic of the additional blockchain operation do correspond, generating for display, in the user interface on the user device, a recommendation to perform the additional blockchain operation using the semi-custodial wallet.

15. The one or more non-transitory computer-readable media of claim 14 , wherein the instructions cause further operations comprising:

determining a threshold digital asset amount for the semi-custodial wallet; and

in response to generating the semi-custodial wallet, generating an instruction to automatically transfer the threshold digital asset amount from the non-custodial wallet to the semi-custodial wallet.

16. The one or more non-transitory computer-readable media of claim 12 , wherein performing the blockchain operation comprises:

determining that the blockchain operation corresponds to a request to read a contract state; and

in response to determining that the blockchain operation corresponds to the request to read the contract state, retrieving data related to the contract state from a blockchain node.

17. The one or more non-transitory computer-readable media of claim 16 , wherein retrieving the data related to the contract state comprises:

determining, based on a database lookup, an address for the non-custodial wallet;

generating, based on a blockchain protocol, encoded data comprising a method name and parameter into a binary data format;

transmitting a call request to the blockchain node with the encoded data; and

parsing the data related to the contract state based on a response from the call request.

18. The one or more non-transitory computer-readable media of claim 12 , wherein performing the blockchain operation comprises:

in response to determining that the blockchain operation corresponds to a blockchain transaction, generating a digital signature derived from (i) a partial private key stored on the remote device and (ii) a partial private key stored on the user device;

signing the blockchain operation with the digital signature; and

submitting the blockchain operation to a blockchain node.

19. The one or more non-transitory computer-readable media of claim 18 , wherein submitting the blockchain operation to the blockchain node comprises:

determining, based on a database lookup, an address for the non-custodial wallet;

generating, based on a blockchain protocol, an unsigned transaction;

determining a nonce value; and

determining a gas limit by simulating the blockchain transaction.

20. The one or more non-transitory computer-readable media of claim 12 , wherein the instructions cause further operations comprising generating for display, in the user interface, a third icon, wherein the third icon corresponds to a third cryptography-based, storage application corresponding to the user account, wherein the third cryptography-based, storage application corresponds a first private key, and wherein the first private key is stored on the user device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2022
From: CHIPLUNKAR, ANKIT; SCHRECK, BEN; MOORE, MATT; THET, OLIVIA; KIM, PETER JIHOON; ARON, TREVOR
To: COINBASE, INC.
Reel/Frame 059107/0008 →
Continuity (1)
Related Publication 20230275757A1 · Aug 31, 2023
References Cited (16)
US 11626990B1 · Weber · 2023 [cited by examiner]
US 20180365201A1 · Hunn et al. · 2018 [cited by applicant]
US 20190034923A1 · Greco et al. · 2019 [cited by applicant]
US 20190303623A1 · Reddy et al. · 2019 [cited by applicant]
US 20190303887A1 · Wright · 2019 [cited by examiner]
US 20190342084A1 · Mehedy et al. · 2019 [cited by applicant]
US 20200076601A1 · Jafari · 2020 [cited by applicant]
US 20200313897A1 · Heath et al. · 2020 [cited by applicant]
US 20210184833A1 · Srivastava · 2021 [cited by examiner]
US 20220198563A1 · Kaplan et al. · 2022 [cited by applicant]
US 20220207022A1 · Wood · 2022 [cited by examiner]
US 20220318775A1 · Tomkins · 2022 [cited by examiner]
US 20220405747A1 · Coughlan · 2022 [cited by examiner]
US 20230006811A1 · Choo · 2023 [cited by examiner]
EP 3965040A1 · 2022 [cited by applicant]
Non-Final Office Action issued in co-pending U.S. Appl. No. 17/681,276 on May 7, 2024. [cited by applicant]