IP Library Granted Patent US 11,249,985
Granted Patent B2
US 11,249,985 · App. 16/442,473 · Granted Feb 15, 2022

Scalable, secure, efficient, and adaptable distributed digital ledger transaction network

Inventors: Qinfan Wu (San Bruno, CA); Benjamin D. Maurer (San Francisco, CA)
Assignee: Facebook, Inc.
G06F16/2379G06F16/22G06F16/27H04L9/0891H04L9/30H04L9/3236H04L61/1511H04L2209/38
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,249,985
App. No.
16/442,473
Granted
Feb 15, 2022
Kind
B2
Abstract

The present disclosure relates to systems, methods, and non-transitory computer readable storage media for implementing a scalable, secure, efficient, and adaptable distributed digital ledger transaction network. Indeed, the disclosed systems can reduce storage and processing requirements, improve security of implementing computing devices and underlying digital assets, accommodate a wide variety of different digital programs (or “smart contracts”), and scale to accommodate billions of users and associated digital transactions. For example, the disclosed systems can utilize a host of features that improve storage, account/address management, digital transaction execution, consensus, and synchronization processes. The disclosed systems can also utilize a new programming language that improves efficiency and security of the distributed digital ledger transaction network.

Claims (54)

1. A method comprising:

determining a first state data structure of a distributed digital ledger transaction network, wherein the first state data structure represents account states of a plurality of user accounts of the distributed digital ledger transaction network;

identifying a plurality of transactions associated with user accounts of the plurality of user accounts, the plurality of transactions comprising a first transaction and a second transaction;

performing, while maintaining the first state data structure as a current state data structure of the distributed digital ledger transaction network, a preliminary execution of the plurality of transactions in parallel relative to the first state data structure;

determining, based on the preliminary execution of the plurality of transactions in parallel, that the first transaction from the plurality of transactions is independent from other transactions from the plurality of transactions and that the second transaction from the plurality of transactions is dependent upon at least one other transaction from the plurality of transactions;

generating an intermediate state data structure by applying a transaction result from the first transaction to the first state data structure; and

modifying the first state data structure to a second state data structure by applying a transaction result from the second transaction to the intermediate state data structure.

2. The method of claim 1 , wherein the second state data structure is equivalent to executing the plurality of transactions serially against the first state data structure.

3. The method of claim 1 , wherein performing the preliminary execution of the plurality of transactions in parallel relative to the first state data structure comprises:

determining a first transaction result reflecting application of the first transaction relative to the first state data structure; and

determining a second transaction result reflecting application of the second transaction relative to the first state data structure.

4. The method of claim 3 , wherein determining that the second transaction is dependent upon the at least one other transaction comprises determining that the second transaction is dependent upon the first transaction based on the first transaction result and the second transaction result.

5. The method of claim 3 , wherein generating the intermediate state data structure by applying the transaction result from the first transaction to the first state data structure comprises generating the intermediate state data structure by applying the first transaction result determined via the preliminary execution of the plurality of transactions to the first state data structure.

6. The method of claim 3 , wherein the plurality of transactions further comprises a third transaction and performing the preliminary execution of the plurality of transactions in parallel relative to the first state data structure comprises:

determining a third transaction result reflecting application of the third transaction relative to the first state data structure; and

determining that the third transaction is not dependent on the first transaction and the first transaction is not dependent on the third transaction.

7. The method of claim 6 , further comprising, in response to determining that the third transaction is not dependent on the first transaction and the first transaction is not dependent on the third transaction, applying the third transaction result to the first state data structure to generate the intermediate state data structure.

8. The method of claim 6 , wherein determining that the third transaction is not dependent on the first transaction and the first transaction is not dependent on the third transaction comprises determining that the third transaction and the first transaction are associated with different user accounts from the user accounts.

9. The method of claim 1 , wherein the plurality of transactions further comprises a third transaction and further comprising receiving a dependency indicator for the plurality of transactions from a validator node, the dependency indicator indicating that the third transaction depends on the first transaction.

10. The method of claim 9 wherein performing the preliminary execution of the plurality of transactions relative to the first state data structure comprises:

identifying, from the plurality of transactions and based on the dependency indicator, a first subset of transactions comprising the first transaction and a second subset of transactions comprising the third transaction; and

performing a preliminary execution of the first subset of transactions relative to the first state data structure.

11. A non-transitory computer-readable medium storing instructions thereon that, when executed by at least one processor, cause a computing device to:

determine a first state data structure of a distributed digital ledger transaction network, wherein the first state data structure represents account states of a plurality of user accounts of the distributed digital ledger transaction network;

identify a plurality of transactions comprising transactions associated with user accounts of the plurality of user accounts;

receive a dependency indicator for the plurality of transactions from a validator node;

identify a first subset of the plurality of transactions and a second subset of the plurality of transactions based on the dependency indicator;

perform, while maintaining the first state data structure as a current state data structure of the distributed digital ledger transaction network, a preliminary execution of the transactions in parallel relative to the first state data structure by performing a preliminary execution of the first subset of the plurality of transactions in parallel relative to the first state data structure based on the dependency indicator to determine a plurality of transaction results and dependencies of the transactions with regard to the user accounts; and

modify the first state data structure to a second state data structure by applying the plurality of transaction results based on the dependencies of the transactions.

12. The non-transitory computer-readable medium of claim 11 , further comprising instructions that, when executed by the at least one processor, cause the computing device to:

generate an intermediate state data structure based on transaction results from performing the preliminary execution of the first subset of the plurality of transactions; and

generate the second state data structure by executing the second subset of the plurality of transactions relative to the intermediate state data structure.

13. The non-transitory computer-readable medium of claim 11 , wherein:

the first subset of the plurality of transactions comprises a first transaction and a second transaction; and

the instructions, when executed by the at least one processor, cause the computing device to perform the preliminary execution of the first subset of the plurality of transactions in parallel relative to the first state data structure to determine the plurality of transaction results by:

determining a first transaction result reflecting application of the first transaction relative to the first state data structure; and

determining a second transaction result reflecting application of the second transaction relative to the first state data structure.

14. The non-transitory computer-readable medium of claim 13 , further comprising instructions that, when executed by the at least one processor, cause the computing device to, based on performing the preliminary execution of the first subset of the plurality of transactions in parallel relative to the first state data structure, determine that the second transaction is not dependent upon the first transaction and the first transaction is not dependent upon the second transaction.

15. The non-transitory computer-readable medium of claim 11 , wherein the second state data structure equivalent to executing the first subset of the plurality of transactions and the second subset of the plurality of transactions serially against the first state data structure.

16. The non-transitory computer-readable medium of claim 11 , further comprising identifying a third subset of the plurality of transactions based on the dependency indicator, the dependency indicator indicating that the third subset of the plurality of transactions depends on the second subset of the plurality of transactions.

17. A system comprising:

at least one processor; and

at least one non-transitory computer-readable medium storing instructions thereon that, when executed by the at least one processor, cause the system to:

determine a first state data structure of a distributed digital ledger transaction network, wherein the first state data structure represents account states of a plurality of user accounts of the distributed digital ledger transaction network;

identify a plurality of transactions associated with user accounts of the plurality of user accounts, the plurality of transactions comprising a first transaction and a second transaction;

perform, while maintaining the first state data structure as a current state data structure of the distributed digital ledger transaction network, a preliminary execution of the plurality of transactions in parallel relative to the first state data structure;

determine, based on the preliminary execution of the plurality of transactions in parallel, that the first transaction from the plurality of transactions is independent from other transactions from the plurality of transactions and that the second transaction from the plurality of transactions is dependent upon at least one other transaction from the plurality of transactions;

generate an intermediate state data structure by applying a transaction result from the first transaction to the first state data structure; and

modify the first state data structure to a second state data structure by applying a transaction result from the second transaction to the intermediate state data structure.

18. The system of claim 17 , wherein the second state data structure is equivalent to executing the plurality of transactions serially against the first state data structure.

19. The system of claim 17 , wherein the plurality of transactions further comprises a third transaction and further comprising instructions that, when executed by the at least one processor, cause the system to receive a dependency indicator for the plurality of transactions from a validator node, the dependency indicator indicating that the third transaction depends on the first transaction.

20. The system of claim 19 , wherein the instructions, when executed by the at least one processor, cause the system to perform the preliminary execution of the plurality of transactions relative to the first state data structure by:

identifying, from the plurality of transactions and based on the dependency indicator, a first subset of transactions comprising the first transaction and a second subset of transactions comprising the third transaction; and

performing a preliminary execution of the first subset of transactions relative to the first state data structure.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2025
From: CIRCLE INTERNET FINANCIAL, LLC
To: CIRCLE INTERNET GROUP, INC.
Reel/Frame 072774/0580 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2024
From: META PLATFORMS, INC.
To: CIRCLE INTERNET FINANCIAL, LLC
Reel/Frame 067654/0637 →
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058961/0436 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2019
From: WU, QINFAN; MAURER, BENJAMIN D.
To: FACEBOOK, INC.
Reel/Frame 049583/0202 →
Continuity (1)
Related Publication 20200394176A1 · Dec 17, 2020
Cited By (3)
US 12,254,518 US 12,333,599 US 12,536,555