IP Library Granted Patent US 11,956,374
Granted Patent B2
US 11,956,374 · App. 18/134,814 · Granted Apr 9, 2024

Cryptographic signature delegation

Inventors: Jesús Alejandro Cárdenes Cabré (Montreal, CA); Arteum Kanda (Pierrefonds, CA); Jeremy Taylor (Montreal, CA); John Christopher Muddle (Barcelona, ES); Kai Chung Cheung (Markham, CA)
Assignee: Via Science, Inc.
H04L9/3247H04L9/3213H04L9/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,956,374
App. No.
18/134,814
Granted
Apr 9, 2024
Kind
B2
Abstract

A computing system that is configured for a federated wallet with cryptographically secure signature delegation. The system may be configured to receive a session public key corresponding to a decentralized application and a user. The system may be further configured to receive an unsigned transaction of a blockchain, the unsigned transaction corresponding to the user. The system may be further configured to provide a symmetric encryption key to the user's device for encrypting the user's private signing key. The system may be further configured to determine, using the session public key, that the unsigned transaction is valid. Based on the validity of the unsigned transaction, the system may send the unsigned transaction to the user's device. The system may send the symmetric encryption key to the user's device to decrypt the private signing key. The system may be further configured to receive a signed transaction for submission to the blockchain.

Claims (113)

1. A system comprising:

at least one processor; and

at least one memory including instructions that, when executed by the at least one processor, cause the system to:

receive first data representing a session public key corresponding to a first decentralized application and a first user;

receive second data representing an unsigned transaction of a blockchain and corresponding to the first user;

determine, using the session public key and the second data, that the unsigned transaction is valid;

receive third data representing a signed transaction, wherein the signed transaction corresponds to the unsigned transaction signed by a private signing key associated with the first user;

receive fourth data representing an approval, corresponding to a second user, for the unsigned transaction;

determine, based on at least the fourth data, a number of approvals corresponding to the unsigned transaction;

determine the number of approvals satisfies an approval threshold corresponding to the second data; and

send, to at least one device associated with the blockchain, the third data.

2. The system of claim 1 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the system to:

prior sending the third data, determine an approval condition corresponding to the second data, wherein the approval condition corresponds to an approver characteristic;

receive fifth data representing an approval for the unsigned transaction and corresponding to a third user;

determine, based on at least the fifth data, a first characteristic of the third user; and

determine the first characteristic corresponds to the approver characteristic.

3. The system of claim 1 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the system to:

receive a first request from a first device to access an account of the first user, the account corresponding to the blockchain;

determine first authentication data of the first user;

generate, based on the first authentication data of the first user, a first token corresponding to a first browser of the first device; and

send the first token to the first device.

4. The system of claim 3 , wherein the second data representing the unsigned transaction is received from the first device and the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the system to store the second data in a database.

5. The system of claim 4 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the system to:

receive a second request from a second device to access the account of the first user;

determine second authentication data for the first user;

receive, from the second device, a third request corresponding to the second data;

retrieve the second data from the database; and

send the second data to the second device,

wherein the third data is received from the second device.

6. The system of claim 5 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the system to:

generate a symmetric encryption key;

send, to the first device, the symmetric encryption key; and

in response to receiving the third request from the second device, send, to the second device, the symmetric encryption key.

7. The system of claim 3 , wherein the first request is generated from the first browser of the first device and the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the system to:

generate, based on the first authentication data of the first user, a second token corresponding to a second browser of the first device;

send the second token to the first device;

receive, from the second browser of the first device, the third data and the second token;

receive a public signing key corresponding to the private signing key; and

determine, using the public signing key, the third data corresponds to the first user.

8. The system of claim 1 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the system to:

receive, from a database, fifth data representing a second unsigned transaction of the blockchain corresponding to the first user;

determine, using the session public key, the second unsigned transaction is invalid;

generate notification data representing a notification corresponding to the second unsigned transaction; and

send, to a first device of the first user, the notification data.

9. The system of claim 1 , wherein the at least one memory further includes instructions, that, when executed by the at least one processor, further cause the system to:

receive, from a database, fifth data representing a second unsigned transaction of the blockchain corresponding to the first user;

receive sixth data representing a blocklist for decentralized applications;

determine, using the sixth data, the second unsigned transaction is invalid;

generate notification data representing a notification corresponding to the second unsigned transaction; and

send, to a first device of the first user, the notification data.

10. A computer-implemented method comprising:

sending, using a first device, first data representing a first authentication request for a first user of the first device;

receiving a symmetric encryption key corresponding to the first user;

receiving a first token corresponding to a first authentication of the first user;

generating a private signing key, wherein the private signing key is seeded using a digital certificate;

determining, using the symmetric encryption key and the private signing key, an encrypted private signing key;

receiving first data representing an unsigned transaction corresponding to a decentralized application and the first user;

decrypting, using the symmetric encryption key, the encrypted private signing key to determine the private signing key;

determining, using the first data and the private signing key, second data representing a signed transaction corresponding to the unsigned transaction; and

sending the second data and the first token.

11. The computer-implemented method of claim 10 , further comprising:

sending, using a second device, third data representing a second authentication request for the first user;

receiving a second token corresponding to a second authentication of the first user; and

receiving, at the second device, the private signing key,

wherein determining the second data at the second device and wherein sending the second data from the second device.

12. The computer-implemented method of claim 10 , further comprising:

in response to determining the encrypted private signing key, removing the symmetric encryption key from the first device; and

after receiving the first data, receiving the symmetric encryption key.

13. A computer-implemented method comprising:

receiving first data representing a session public key corresponding to a first decentralized application and a first user;

receiving second data representing an unsigned transaction of a blockchain and corresponding to the first user;

determining, using the session public key and the second data, that the unsigned transaction is valid;

receiving third data representing a signed transaction, wherein the signed transaction corresponds to the unsigned transaction signed by a private signing key associated with the first user;

receiving fourth data representing an approval, corresponding to a second user, for the unsigned transaction;

determining, based on at least the fourth data, a number of approvals corresponding to the unsigned transaction;

determining the number of approvals satisfies an approval threshold corresponding to the second data; and

sending, to at least one device associated with the blockchain, the third data.

14. The computer-implemented method of claim 13 , further comprising:

prior sending the third data, determining an approval condition corresponding to the second data, wherein the approval condition corresponds to an approver characteristic;

receiving fifth data representing an approval for the unsigned transaction and corresponding to a third user;

determining, based on at least the fifth data, a first characteristic of the third user; and

determining the first characteristic corresponds to the approver characteristic.

15. The computer-implemented method of claim 13 , further comprising:

receiving a first request from a first device to access an account of the first user, the account corresponding to the blockchain;

determining first authentication data of the first user;

generating, based on the first authentication data of the first user, a first token; and

sending the first token to the first device.

16. The computer-implemented method of claim 15 , further comprising:

generating a symmetric encryption key;

sending, to the first device, the symmetric encryption key; and

in response to receiving a third request, from a second device and corresponding to the second data, sending, to the second device, the symmetric encryption key.

17. The computer-implemented method of claim 15 , further comprising:

receiving a second request from a second device to access the account of the first user;

determining second authentication data for the first user;

receiving, from the second device, a third request corresponding to the second data; and

sending the second data to the second device, wherein the third data is received from the second device.

18. The computer-implemented method of claim 15 , wherein the first request is generated from a first browser of the first device and further comprising:

generating, based on the first authentication data of the first user, a second token corresponding to a second browser of the first device;

sending the second token to the first device;

receiving, from the second browser of the first device, the third data and the second token;

receiving a public signing key corresponding to the private signing key; and

determining, using the public signing key, the third data corresponds to the first user.

19. The computer-implemented method of claim 13 , further comprising:

receiving, from a database, fifth data representing a second unsigned transaction of the blockchain corresponding to the first user;

determining, using the session public key, the second unsigned transaction is invalid;

generating notification data representing a notification corresponding to the second unsigned transaction; and

sending, to a first device of the first user, the notification data.

20. The computer-implemented method of claim 13 , further comprising:

receiving, from a database, fifth data representing a second unsigned transaction of the blockchain corresponding to the first user;

receiving sixth data representing a blocklist for decentralized applications;

determining, using the sixth data, the second unsigned transaction is invalid;

generating notification data representing a notification corresponding to the second unsigned transaction; and

sending, to a first device of the first user, the notification data.

Assignments (2)
SECURITY INTEREST Recorded Sep 30, 2025
From: VIA SCIENCE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 072422/0488 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2023
From: CÁRDENES CABRÉ, JESÚS ALEJANDRO; KANDA, ARTEUM; TAYLOR, JEREMY; MUDDLE, JOHN CHRISTOPHER; CHEUNG, KAI CHUNG
To: VIA SCIENCE, INC.
Reel/Frame 063687/0076 →
Continuity (2)
Provisional Application 63331491 · Apr 15, 2022
Related Publication 20230336361A1 · Oct 19, 2023