IP Library Granted Patent US 11,921,689
Granted Patent B2
US 11,921,689 · App. 18/123,919 · Granted Mar 5, 2024

Data structure storage optimisation

Inventors: Mansoor Ahmed-Rengers (Cambridge, GB); Jonathan Geater (Cambridge, GB)
Assignee: RKVST Limited
G06F16/2272G06F16/2365H04L9/3242H04L9/3247
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,921,689
App. No.
18/123,919
Granted
Mar 5, 2024
Kind
B2
Abstract

A method of maintaining a data structure comprising: creating a data block; transmitting a message to validator devices requesting permission to add said data block to the data structure; determining that consensus is reached, and in response: forming a first sub-chain in the data-structure by adding the data block to the data structure, the first sub-chain starting with a genesis block and ending with said data block, wherein the data block comprises a block number indicating the number of blocks in the data structure from the genesis block, and creating a further data block; transmitting a further message to the validator devices requesting permission to add said further data block to the data structure; determining that consensus is reached, and in response, forming a second sub-chain by adding the further data block to the data structure after said data block, the second sub-chain starting with said further data block.

Claims (32)

1. A method of verifying a data structure comprising a plurality of linked data blocks, the method performed on a computing device, and comprising:

reading a data block of the data structure;

determining that the data block is a sub-chain end block at an end of a sub-chain in the data structure, the sub-chain comprising a first data block at a start of the sub-chain and at least one intervening data block between the first data block and the sub-chain end block;

extracting a cryptographic hash of the first data block at the start of the sub-chain from the end data block;

computing a cryptographic hash of the first data block at the start of the sub-chain;

determining if the extracted cryptographic hash of the first data block matches the computed cryptographic hash of the first data block,

successfully verifying the integrity of the data blocks of the sub-chain based on the extracted cryptographic hash of the first data block matching the computed cryptographic hash of the first data block; and

only storing a genesis block of the data structure, a sub-chain end block of each sub-chain of the data structure, a first data block of each sub-chain of the data structure, and all blocks of a final sub-chain corresponding to the verified data blocks of the sub-chain thereby enabling a computing device to verify that there are no additions, removals, or modifications to the data structure.

2. The method of claim 1 , wherein the determining that the data block is a sub-chain end block is based on the format of the data block.

3. A non-transitory computer-readable storage medium comprising instructions which, when executed by a processor of a computing device cause the computing device to perform the method of claim 1 .

4. The method of claim 1 , wherein the determining that the data block is a sub-chain end block comprises determining that the data block comprises:

the cryptographic hash of the first data block at the start of the sub-chain; and

a request, the request comprising:

a block number indicating a number of blocks in the data structure from a genesis block of the data structure;

a block number indicating a number of blocks in the sub-chain from the first data block; and

at least one integrity measure associated with one or more authorised signatory computing devices.

5. The method of claim 4 , wherein the at least one integrity measure comprises a digital signature associated with at least one of the one or more authorised signatory computing devices.

6. The method of claim 4 , wherein the at least one integrity measure comprises a digital signature associated with all of the one or more authorised signatory computing devices.

7. The method of claim 4 , wherein the at least one integrity measure is a multi-party signature associated with a plurality of the authorised signatory computing devices.

8. The method of claim 7 , wherein the multi-party signature is a group signature or a ring signature.

9. The method of claim 4 , wherein the request comprises a timestamp indicating the time at which the request was generated.

10. The method of claim 4 , wherein the request comprises a public key of each of the one or more authorised signatory computing devices.

11. The method of claim 1 , wherein the data structure is structured in accordance with a distributed ledger technology.

12. The method of claim 11 , wherein the distributed ledger technology is blockchain.

13. A computing device for verifying a data structure comprising a plurality of linked data blocks, wherein the data structure is stored in memory accessible to the computing device, and the computing device comprising a processor configured to:

read a data block of the data structure;

determine that the data block is a sub-chain end block at an end of a sub-chain in the data structure, the sub-chain comprising a first data block at a start of the sub-chain and at least one intervening data block between the first data block and the sub-chain end block;

extract a cryptographic hash of the first data block at the start of the sub-chain from the end data block;

compute a cryptographic hash of the first data block at the start of the sub-chain;

determine if the extracted cryptographic hash of the first data block matches the computed cryptographic hash of the first data block,

successfully verify the integrity of the data blocks of the sub-chain based on the extracted cryptographic hash of the first data block matching the computed cryptographic hash of the first data block; and

only store a genesis block of the data structure, a sub-chain end block of each sub-chain of the data structure, a first data block of each sub-chain of the data structure, and all blocks of a final sub-chain corresponding to the verified data blocks of the sub-chain thereby enabling a computing device to verify that there are no additions, removals, or modifications to the data structure.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2023
From: AHMED-RENGERS, MANSOOR; GEATER, JONATHAN
To: JITSUIN LTD
Reel/Frame 063039/0346 →
CHANGE OF NAME Recorded Mar 20, 2023
From: JITSUIN LTD
To: RKVST LIMITED
Reel/Frame 063039/0354 →
Priority Claims (1)
GB 1916295.7 · Nov 8, 2019 · national
Continuity (2)
Division 17087055 · Nov 2, 2020
Related Publication 20230229649A1 · Jul 20, 2023