IP Library Granted Patent US 12,177,332
Granted Patent B2
US 12,177,332 · App. 18/119,739 · Granted Dec 24, 2024

Data block modification

Inventors: Jonathan Geater (Cambridge, GB); Mansoor Ahmed-Rengers (Cambridge, GB)
Assignee: RKVST Limited
H04L9/0643H04L9/0637H04L63/00H04L67/1097H04L9/50
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 12,177,332
App. No.
18/119,739
Granted
Dec 24, 2024
Kind
B2
Abstract

A method of modifying a data block of a data structure comprising a plurality of linked data blocks comprising: receiving a selection of said a data block comprising block data; creating modified block data; transmitting a request to a plurality of validator devices over a network, the request comprising a modification record and requesting permission to modify the data block in accordance with the modified block data; determining that consensus is reached by the plurality of validator devices that the data block can be modified in accordance with the modified block data; in response to the determining: modifying the data block in accordance with the modified block data; and adding a modification data block to the data structure, the modification data block comprising: the modification record and a cryptographic hash of a data block that precedes the modification data block after addition of the modification data block to the data structure.

Claims (41)

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

for a first data block at a beginning of the data structure:

computing a cryptographic hash of the first data block;

determining that the cryptographic hash of the first data block does not match a cryptographic hash stored in a successor data block of the first data block, and storing information associated with the first data block as an entry in a list of unmatching blocks stored in memory accessible by the computing device;

analysing each subsequent data block in the data structure after said first data block by:

determining that said subsequent data block is not a modification data block,

in response to determining that said subsequent data block is not a modification data block, the method comprising:

computing a cryptographic hash of the subsequent data block;

determining that the cryptographic hash of the subsequent data block does not match a cryptographic hash stored in a successor data block of the subsequent data block, and storing information associated with the subsequent data block as an entry in said list of unmatching blocks;

wherein said subsequent data block is a modification data block, the method comprising:

verifying an integrity measure of the modification data block;

in response to said verifying the integrity measure of the modification data block being successful, determining that information in the modification data block matches information of a matching entry in said list of unmatching blocks, and in response, removing said matching entry that matches the information in the modification data block from said list of unmatching blocks;

in response to completion of said analysing, successfully verifying the data structure based upon detecting that said list of unmatching blocks comprises no entries.

2. The method of claim 1 , wherein the method comprises determining that verifying the data structure has failed upon said verifying the integrity measure of the modification data block is unsuccessful.

3. The method of claim 1 , wherein in response to completion of said analysing, the method comprises determining that verifying the data structure has failed upon detecting that said list of unmatching blocks comprises one or more entries.

4. The method of claim 1 , wherein the determining said subsequent data block is a modification data block comprises determining said subsequent data block has contents in a format associated with a modification block.

5. The method of claim 4 , wherein the determining said subsequent data block is a modification data block comprises determining said subsequent data block has at least: at least one data portion identifier associated with a respective data portion of a block preceding the subsequent data block; a cryptographic hash of said block comprising the respective data portion; a new cryptographic hash of said block comprising the respective data portion in modified form; and an integrity measure.

6. The method of claim 1 , wherein said integrity measure comprises at least one digital signature.

7. The method of claim 1 , wherein said integrity measure comprises at least one Message Authentication Code.

8. The method of claim 1 , wherein said integrity measure comprises at least one cryptographic hash.

9. The method of claim 1 , wherein said integrity measure comprises at least one reference to a server.

10. The method of claim 1 , wherein the determining that information in the modification data block matches information of a matching entry in said list of unmatching blocks comprises determining that the list of unmatching blocks comprises an entry which includes a cryptographic hash corresponding to a cryptographic hash, included in the modification data block, of a block in the data structure obtained prior to modification of the block.

11. The method of claim 1 , wherein the determining that information in the modification data block matches information of a matching entry in said list of unmatching blocks comprises determining that the list of unmatching blocks comprises an entry which includes a cryptographic hash corresponding to a cryptographic hash, included in the modification data block, of a block in the data structure obtained after modification of the block.

12. The method of claim 1 , wherein the determining that information in the modification data block matches information of a matching entry in said list of unmatching blocks comprises determining that the list of unmatching blocks comprises a block identifier corresponding to a modified block identifier in the modification data block.

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

14. The method of claim 13 , wherein the distributed ledger technology is blockchain.

15. The method of claim 1 , wherein the successor data block of the first data block immediately follows the first data block in the data structure, and the successor data block of the subsequent data block immediately follows the subsequent data block in the data structure.

16. 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 .

17. 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:

for a first data block at a beginning of the data structure:

compute a cryptographic hash of the first data block;

determine that the cryptographic hash of the first data block does not match a cryptographic hash stored in a successor data block of the first data block, and store information associated with the first data block as an entry in a list of unmatching blocks stored in memory accessible by the computing device;

analyse each subsequent data block in the data structure after said first data block by:

determining that said subsequent data block is a modification data block,

in response to determining that said subsequent data block is not a modification data block, the processor configured to:

compute a cryptographic hash of the subsequent data block; and

determine that the cryptographic hash of the subsequent data block does not match a cryptographic hash stored in a successor data block of the subsequent data block, and store information associated with the subsequent data block as an entry in said list of unmatching blocks;

wherein said subsequent data block is a modification data block, the processor is configured to:

verify an integrity measure of the modification data block;

in response to said verification of the integrity measure of the modification data block being successful, determine that information in the modification data block matches information of a matching entry in said list of unmatching blocks, and in response, remove said matching entry that matches the information in the modification data block from said list of unmatching blocks;

in response to completion of said analysis, successfully verify the data structure based upon detecting that said list of unmatching blocks comprises no entries.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2023
From: GEATER, JONATHAN; AHMED-RENGERS, MANSOOR
To: JITSUIN LTD
Reel/Frame 062938/0232 →
CHANGE OF NAME Recorded Mar 9, 2023
From: JITSUIN LTD
To: RKVST LIMITED
Reel/Frame 062938/0281 →
Priority Claims (1)
GB 1916291 · Nov 8, 2019 · national
Continuity (2)
Division 17087007 · Nov 2, 2020
Related Publication 20230216661A1 · Jul 6, 2023