IP Library Granted Patent US 11,205,172
Granted Patent B2
US 11,205,172 · App. 16/351,597 · Granted Dec 21, 2021

Factom protocol in blockchain environments

Inventor: Paul Snow (Austin, TX)
Assignee: Inveniam Capital Partners, Inc.
G06Q20/367G06F16/29G06F21/53G06F21/645G06Q20/065G06Q20/0658G06Q20/12G06Q20/3674G06Q20/3829G06Q20/401H04L9/0618H04L9/0637H04L9/0643H04L9/3236H04L67/12H04L9/3239H04L2209/38H04L2209/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,205,172
App. No.
16/351,597
Granted
Dec 21, 2021
Kind
B2
Abstract

A Factom protocol cost effectively separates any blockchain (such as the Bitcoin blockchain) from any cryptocurrency (such as the Bitcoin cryptocurrency). The Factom protocol provides client-defined Chains of Entries, client-side validation of Entries, a distributed consensus algorithm for recording the Entries, and a blockchain anchoring approach for security.

Claims (55)

1. A method, comprising:

receiving, by a server, an entry specifying a chain name;

determining, by the server, a chain identifier representing a hashing of the chain name;

determining, by the server, an entry block in a blockchain data layer that is associated with the chain identifier;

adding, by the server, the entry to the entry block in the blockchain data layer that is associated with the chain identifier;

generating, by the server, a directory block in the blockchain data layer based on the entry block and the chain identifier;

determining, by the server, a rate of generation associated with the directory block;

querying, by the server, a database for the rate of generation associated with the directory block, the a database associating virtual machines to rates of generation including the rate of generation associated with the directory block;

identifying, by the server, a virtual machine of the virtual machines referenced by the database that is associated with the rate of generation;

assigning, by the server, the virtual machine to the entry specifying the chain name; and

recording, by the server, the directory block and the virtual machine to a blockchain;

wherein the directory block recorded to the blockchain confirms the receiving of the entry specifying the chain name and the assigning of the virtual machine.

2. The method of claim 1 , further comprising generating a hash value representing the directory block by hashing the directory block.

3. The method of claim 2 , further comprising recording the hash value representing the directory block to the blockchain.

4. The method of claim 2 , further comprising recording the hash value representing the directory block and the chain identifier to the blockchain.

5. The method of claim 1 , wherein the adding of the entry to the entry block further comprises adding the entry to other entries also added to the entry block.

6. The method of claim 5 , further comprising generating the directory block by hashing all the entries added to the entry block.

7. The method of claim 5 , further comprising generating the directory block by hashing the chain identifier with all the entries added to the entry block.

8. A system, comprising:

a hardware processor; and

a memory device storing instructions that, when executed by the hardware processor, perform operations, the operations comprising:

receiving an entry specifying a chain name;

determining a chain identifier representing a hashing of the chain name;

determining an entry block in a blockchain data layer that is associated with the chain identifier;

adding the entry to the entry block in the blockchain data layer that is associated with the chain identifier;

generating a directory block in the blockchain data layer based on the entry block and the chain identifier;

determining a rate of generation associated with the directory block;

querying a database for the rate of generation associated with the directory block, the database associating virtual machines to rates of generation including the rate of generation associated with the directory block;

identifying a virtual machine of the virtual machines referenced by the database that is associated with the rate of generation;

assigning the virtual machine to the entry specifying the chain name; and

recording the directory block and the virtual machine to a blockchain;

wherein the directory block recorded to the blockchain confirms the receiving of the entry specifying the chain name and the assigning of the virtual machine.

9. The system of claim 8 , wherein the operations further comprise generating a hash value representing the directory block by hashing the directory block.

10. The system of claim 9 , wherein the operations further comprise recording the hash value representing the directory block to the blockchain.

11. The system of claim 10 , wherein the operations further comprise recording the hash value representing the directory block and the chain identifier to the blockchain.

12. The system of claim 8 , wherein the operations further comprise adding the entry to other entries also added to the entry block.

13. The system of claim 12 , wherein the operations further comprise generating the directory block by hashing all the entries added to the entry block.

14. The system of claim 12 , wherein the operations further comprise generating the directory block by hashing the chain identifier with all the entries added to the entry block.

15. A memory device storing instructions that when executed cause a hardware processor to perform operations, the operations comprising:

receiving entries specifying a chain name associated with a digital contract;

determining a chain identifier representing a hashing of the chain name associated with the digital contract;

determining an entry block in a blockchain data layer that is associated with the chain identifier;

adding the entries to the entry block in the blockchain data layer that is associated with the chain identifier;

generating a directory block in the blockchain data layer based on a hashing of the entries added to the entry block;

determining a rate of generation associated with the directory block in the blockchain data layer;

querying an electronic database for the rate of generation associated with the directory block in the blockchain data layer, the electronic database electronically associating virtual machines to rates of generation including the rate of generation associated with the directory block in the blockchain data layer;

identifying a virtual machine of the virtual machines referenced by the electronic database that is electronically associated with the rate of generation;

assigning the virtual machine to the entries specifying the chain name associated with the digital contract; and

recording the directory block and the assigning of the virtual machine to a blockchain;

wherein the blockchain records the receiving of the entries and the assigning of the virtual machine to the entries specifying the chain name associated with the digital contract.

16. The memory device of claim 15 , wherein the operations further comprise generating a hash value representing the directory block by hashing the directory block.

17. The memory device of claim 16 , wherein the operations further comprise recording the hash value representing the directory block to the blockchain.

18. The memory device of claim 17 , wherein the operations further comprise recording the hash value representing the directory block and the chain identifier to the blockchain.

19. The memory device of claim 15 , wherein the operations further comprise sending the entries to a network address associated with the virtual machine.

20. The memory device of claim 15 , wherein the operations further comprise sending the entries to a server associated with the virtual machine.

Assignments (4)
AMENDMENT AND JOINDER TO SECURITY AGREEMENT Recorded Mar 29, 2025
From: INVENIAM CAPITAL PARTNERS INC
To: 1221 INVENIAM LLC; 1221 INVENIAM II LLC
Reel/Frame 070741/0157 →
SECURITY INTEREST Recorded Jun 27, 2024
From: INVENIAM CAPITAL PARTNERS, INC.
To: 1221 INVENIAM LLC
Reel/Frame 067932/0074 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 29, 2021
From: FACTOM, INC.
To: INVENIAM CAPITAL PARTNERS, INC.
Reel/Frame 056698/0188 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2019
From: SNOW, PAUL
To: FACTOM, INC.
Reel/Frame 050890/0272 →
Continuity (2)
Provisional Application 62714909 · Aug 6, 2018
Related Publication 20200044827A1 · Feb 6, 2020
Cited By (10)
US 12,192,371 US 12,225,107 US 12,231,535 US 12,231,566 US 12,341,906 US 12,511,314 US 12,519,848 US 12,580,782 US 12,597,066 US 12,647,291