IP Library Granted Patent US 11,677,550
Granted Patent B2
US 11,677,550 · App. 17/140,351 · Granted Jun 13, 2023

Methods and apparatus for a distributed database including anonymous entries

Inventor: Leemon C. Baird, III (Richardson, TX)
Assignee: Hedera Hashgraph, LLC
H04L9/0866G06F16/00G06F16/182G06F16/25G06Q20/065G06Q20/367H04L9/30H04L9/321H04L9/3247H04L9/50H04L2209/56
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,677,550
App. No.
17/140,351
Granted
Jun 13, 2023
Kind
B2
Abstract

In some embodiments, an apparatus having at least a portion of a first instance of a distributed database at a first compute device is configured to be included within a group of compute devices that implement via a network operatively coupled to the group of compute devices the distributed database. The distributed database enables anonymous transfers of digital assets between compute devices via a transfer protocol such that an identity of a compute device associated with a private key corresponding to a public key logically related to a destination record is concealed among a set of compute devices including the first compute device and at least one second compute device.

Claims (35)

1. An apparatus, comprising:

a portion of an instance of a distributed database at a first compute device configured to be included within a plurality of compute devices that implements, via a network operatively coupled to the plurality of compute devices, the distributed database, the distributed database including a first source record logically related to a first public key associated with the first compute device and a first destination record logically related to a second public key associated with the first compute device; and

a processor of the first compute device operatively coupled to the portion of the instance of the distributed database, the processor configured to:

receive from a second compute device, (1) a first public key associated with the second compute device and logically related to a second source record and (2) a second public key associated with the second compute device and logically related to a second destination record;

define a transfer command by executing a deterministic sort between the second public key associated with the first compute device and the second public key associated with the second compute device; and

send a signal to post into the distributed database the transfer command configured to transfer a value from (1) the first source record to one of the first destination record or the second destination record based on the deterministic sort and (2) the second source record to the other of the first destination record or the second destination record based on the deterministic sort.

2. The apparatus of claim 1 , wherein the deterministic sort is a lexicographical sort.

3. The apparatus of claim 1 , wherein the processor is configured to define the transfer command to include an indication of a time threshold conditioning the transfer command to be nullified when convergence of the distributed database is not reached via a consensus protocol before the time threshold.

4. The apparatus of claim 1 , wherein the processor is configured to define the transfer command to include an indication of the value.

5. The apparatus of claim 1 , wherein the value corresponds to an amount of a digital asset.

6. The apparatus of claim 1 , wherein the processor is configured to verify that the first source record and the second source record each have at least the value prior to executing the transfer command.

7. The apparatus of claim 1 , wherein the transfer command is signed with a private key paired with the first public key associated with the first compute device and a private key paired with the first public key associated with the second compute device.

8. The apparatus of claim 1 , wherein the processor is configured to receive the second public key associated with the second compute device as an encrypted public key encrypted with the first public key associated with the first compute device.

9. A method, comprising:

receiving at a processor of a first compute device having a portion of an instance of a distributed database and configured to be included within a plurality of compute devices that implements the distributed database via a network operatively coupled to the plurality of compute devices, and from a second compute device from the plurality of compute devices, a first public key of the second compute device and an indication of a value requested to be transferred from a first source record logically related to the first public key of the second compute device, the distributed database including a second source record logically related to a first public key of the first compute device;

encrypting a second public key of the first compute device with the first public key of the second compute device to define an encrypted second public key of the first compute device, the second public key of the first compute device logically related to a first destination record;

sending, to the second compute device, the encrypted second public key of the first compute device;

defining, by executing a deterministic sort between the second public key of the first compute device and a second public key of the second compute device, a transfer command including the first public key of the first compute device, the first public key of the second compute device, the second public key of the first compute device, and the second public key of the second compute device, the second public key of the second compute device logically related to a second destination record; and

sending a signal to post into the distributed database the transfer command, the transfer command configured to transfer the value from (1) the first source record to one of the first destination record or the second destination record and (2) the second source record to the other of the first destination record or the second destination record.

10. The method of claim 9 , wherein the deterministic sort is a lexicographical sort between the second public key of the first compute device and the second public key of the second compute device.

11. The method of claim 9 , wherein the defining includes defining the transfer command to include an indication of a time threshold conditioning the transfer command to be nullified when convergence of the distributed database is not reached via a consensus protocol before the time threshold.

12. The method of claim 9 , wherein the defining includes defining the transfer command to include an indication of the value.

13. The method of claim 9 , wherein the value corresponds to an amount of a digital asset.

14. The method of claim 9 , wherein the transfer command is signed with a private key paired with the first public key associated with the first compute device and a private key paired with the first public key associated with the second compute device before being executed.

15. A non-transitory processor-readable medium storing code representing instructions to be executed by a processor, the code comprising code to cause the processor to:

receive, at a first compute device configured to be included within a plurality of compute devices that implements a distributed database and from a second compute device, (1) a first public key associated with the second compute device and logically related to a first destination record and (2) a second public key associated with the second compute device and logically related to a first source record;

define a transfer command by executing a deterministic sort between a public key associated with the first compute device and the first public key associated with the second compute device, the public key associated with the first compute device being associated with a second destination record; and

send a signal to post into the distributed database the transfer command configured to transfer a value from (1) the first source record to one of the first destination record or the second destination record based on the deterministic sort and (2) a second source record to the other of the first destination record or the second destination record based on the deterministic sort.

16. The non-transitory processor-readable medium of claim 15 , wherein the deterministic sort is a lexicographical sort.

17. The non-transitory processor-readable medium of claim 15 , wherein the code to cause the processor to define the transfer command includes code to cause the processor to define the transfer command to include an indication of a time threshold conditioning the transfer command to be nullified when convergence of the distributed database is not reached via a consensus protocol before the time threshold.

18. The non-transitory processor-readable medium of claim 15 , the code further comprising code to cause the processor to:

verify that the first source record and the second source record each have at least the value prior to executing the transfer command.

19. The non-transitory processor-readable medium of claim 15 , wherein the public key associated with the first compute device is a first public key associated with the first compute device, the transfer command is signed with a private key paired with a second public key associated with the first compute device and a private key paired with the second public key associated with the second compute device.

20. The non-transitory processor-readable medium of claim 15 , wherein the public key associated with the first compute device is a first public key associated with the first compute device, the code to cause the processor to receive the first public key associated with the second compute device including code to cause the processor to receive the first public key associated with the second compute device as an encrypted public key encrypted with a second public key associated with the first compute device.

21. The non-transitory processor-readable medium of claim 15 , wherein the public key associated with the first compute device is a first public key associated with the first compute device, the transfer command including the first public key associated with the first compute device, the first public key associated with the second compute device, a second public key associated with the first compute device and the second public key associated with the second compute device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2022
From: SWIRLDS, INC.
To: HEDERA HASHGRAPH, LLC
Reel/Frame 059113/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2021
From: BAIRD, LEEMON C., III
To: SWIRLDS, INC.
Reel/Frame 054808/0211 →
Continuity (4)
Continuation 16405069 · May 7, 2019
Continuation PCTUS2017061135 · Nov 10, 2017
Provisional Application 62420147 · Nov 10, 2016
Related Publication 20210126780A1 · Apr 29, 2021
Cited By (2)
US 12,443,622 US 12,487,990