IP Library › Granted Patent US 11,184,437
Granted Patent B2
US 11,184,437 · App. 17/321,239 · Granted Nov 23, 2021

Decentralized computation system architecture based on node specialization

Inventors: Dietrich Theodore Shirley (Vancouver, CA); Fabiano Pereira Soriani (Vancouver, CA); Christopher Patrick Scott (Vancouver, CA); Layne Lafrance (Vancouver, CA)
Assignee: Dapper Labs Inc.
H04L67/1093H04L9/3242H04L67/108H04L2209/38H04L2209/463
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,184,437
App. No.
17/321,239
Filed
May 14, 2021
Granted
Nov 23, 2021
Kind
B2
Art Unit
2497
USPC
713/157
Abstract

Described are systems, methods, and media for providing secure and scalable decentralized computation for one or more decentralized applications. Features include a blockchain, and a plurality of nodes that are separated into at least a first specialized node type and a second specialized node type. Nodes of the first specialized node type can be assigned non-deterministic tasks to perform, and each of the nodes of the second specialized node type can be assigned deterministic tasks to perform. Thus, the disclosed systems and methods can achieve improvements in speed and cost that scale with hardware capacity without compromising decentralization.

Claims (10)

1. A decentralized computation system for providing decentralized computation for one or more decentralized applications, the system comprising:

a blockchain; and a plurality of nodes, wherein the plurality of nodes are separated into at least a first specialized node type and a second specialized node type, each of the nodes of the first specialized node type assigned non-deterministic tasks to perform and each of the nodes of the second specialized node type assigned deterministic tasks to perform, wherein the nodes of the first specialized node type are configured to perform the non-deterministic tasks comprising at least: a) receiving one or more transactions from at least one client, the one or more transactions each comprising transaction text and credentials; b) cryptographically signing a hash for each of the transaction text of the one or more transactions based on a determination that the one or more transactions are well-formed; c) providing the one or more signed hashes to a security node for validation; d) providing a state response to the at least one client, the state response determined based on an output for a finalized block; e) receiving the transaction text for each of the one or more transactions based on a query provided, the query determined according to the finalized block; f) presenting a hashed commitment of the output for the finalized block, the output for the finalized block determined based on the transaction text for each of the one or more transactions; and g) revealing the output when each of the other nodes of the first specialized node type has presented the output for the finalized block.

2. The system of claim 1 , wherein the nodes of the second specialized node type are configured to perform the deterministic tasks comprising at least at least: a) generating a candidate block comprising the one or more signed hashes; b) finalizing the candidate block by performing a Byzantine fault tolerance (BFT) consensus algorithm to validate that a threshold number of access nodes determined that the one or more transactions were well-formed based on the one or more signed hashes; and c) providing the finalized block to the nodes of the first specialized node type.

3. A decentralized computation system for providing decentralized computation for one or more decentralized applications, the system comprising: a plurality of nodes; a blockchain, wherein an architecture of the blockchain is divided by task into at least two specialization groups based on tasks associated with functions of the blockchain, the specialization groups comprising: a first specialization group of tasks being assigned to a first subset of the plurality of nodes to perform, and a second specialization group of tasks being assigned to a second subset of the plurality of nodes to perform, the second subset of the plurality of nodes including different nodes than the first subset of the plurality nodes, wherein the first specialization group of tasks comprises one or more non-deterministic tasks associated with functions that are subjective or requiring network-level consensus, and the second specialization group comprises one or more deterministic tasks associated with functions that are objective or generating a correct output, wherein the non-deterministic tasks comprise at least: a) receiving one or more transactions from at least one client, the one or more transactions each comprising transaction text and credentials; b) cryptographically signing a hash for each of the transaction text of the one or more transactions based on a determination that the one or more transactions are well-formed; c) providing the one or more signed hashes to a security node for validation; d) providing a state response to the at least one client, the state response determined based on an output for a finalized block; e) receiving the transaction text for each of the one or more transactions based on a query provided, the query determined according to the finalized block; f) presenting a hashed commitment of the output for the finalized block, the output for the finalized block determined based on the transaction text for each of the one or more transactions; and g) revealing the output when each of the other nodes of the first specialized node type has presented the output for the finalized block.

4. The system of claim 3 , wherein the non-deterministic tasks comprise at least: determining transactions included in a shared state, and determining an order of the transactions for storing in a transactions log.

5. The system of claim 4 , wherein the deterministic tasks comprise at least: storing the transactions in a transaction log, and determining a state that results from an application of the contents of a log in a consensus order.

6. The system of claim 3 , wherein the deterministic tasks comprise at least: a) generating a candidate block comprising the one or more signed hashes; b) finalizing the candidate block by performing a Byzantine fault tolerance (BFT) consensus algorithm to validate that a threshold number of access nodes determined that the one or more transactions were well-formed based on the one or more signed hashes; and c) providing the finalized block to the nodes of the first specialized node type.

7. A decentralized computation system for providing decentralized computation for one or more decentralized applications, the system comprising:

a blockchain; and a plurality of nodes, wherein the plurality of nodes are separated into at least a first specialized node type and a second specialized node type, each of the nodes of the first specialized node type assigned non-deterministic tasks to perform and each of the nodes of the second specialized node type assigned deterministic tasks to perform, such that each of the plurality of nodes performs either deterministic tasks or nondeterministic tasks and an architecture of the blockchain is divided by tasks into the first specialized node type performing the non-deterministic tasks and the second specialized node type performing the deterministic tasks, the nodes of the first specialized node type configured to perform the nondeterministic tasks comprising at least: a) receiving one or more transactions from at least one client, the one or more transactions each comprising transaction text and credentials; b) cryptographically signing a hash for each of the transaction text of the one or more transactions based on a determination that the one or more transactions are well-formed; c) providing the one or more signed hashes to a security node for validation; and d) providing a state response to the at least one client, the state response determined based on an output for a finalized block; e) receiving the transaction text for each of the one or more transactions based on a query provided, the query determined according to the finalized block; f) presenting a hashed commitment of the output for the finalized block, the output for the finalized block determined based on the transaction text for each of the one or more transactions; and

g) revealing the output when each of the other nodes of the first specialized node type has presented the output for the finalized block; and the nodes of the second specialized node type configured to perform the deterministic tasks comprising at least: a) generating a candidate block comprising the one or more signed hashes; b) finalizing the candidate block by performing a Byzantine fault tolerance (BFT) consensus algorithm to validate that a threshold number of access nodes determined that the one or more transactions were well-formed based on the one or more signed hashes; and c) providing the finalized block to the nodes of the first specialized node type.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2021
From: SHIRLEY, DIETRICH THEODORE; PEREIRA SORIANI, FABIANO; SCOTT, CHRISTOPHER PATRICK; LAFRANCE, LAYNE
To: DAPPER LABS INC.
Reel/Frame 056851/0300 →
Continuity (3)
Continuation In Part 16421222 · May 23, 2019
Provisional Application 62676131 · May 24, 2018
Related Publication 20210273993A1 · Sep 2, 2021
Cited By (1)
US 12,417,449