IP Library Granted Patent US 10,579,779
Granted Patent B2
US 10,579,779 · App. 16/300,929 · Granted Mar 3, 2020

Method and system for verifying integrity of a digital asset using a distributed hash table and a peer-to-peer distributed ledger

Inventors: Craig Steven Wright (London, GB); Stephane Savanah (London, GB)
Assignee: nChain Holdings Limited
G06F21/121G06F8/65G06F16/152G06F16/1834G06F21/10G06F21/105G06F21/51G06F21/57G06F21/602G06F21/6281H04L9/0637H04L9/0643H04L9/0841H04L9/3236H04L9/3247H04L9/3263H04L9/3265H04L63/0823H04L67/104G06F2221/2107H04L67/1065H04L2209/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 10,579,779
App. No.
16/300,929
Granted
Mar 3, 2020
Kind
B2
Abstract

A computer-implemented method ( 900 ) and system ( 1 ) for verifying the integrity of a computer software for installation using a distributed hash table ( 13 ) and a peer-to-peer distributed ledger ( 14 ). This may be the Bitcoin blockchain or an alternative implementation. The method includes determining ( 910 ) a metadata associated with a transaction record stored on the peer-to-peer distributed ledger ( 14 ). An indication of an entry stored on the distributed hash table ( 13 ) may be determined ( 920 ) from the metadata. The method further includes determining ( 930 ) a third hash value based on the computer software and determining ( 940 ) a fourth hash value from the entry on the distributed hash table ( 13 ). The method further includes comparing ( 950 ) the third hash value and the fourth hash value and verifying ( 960 ) the integrity of the computer software based on the comparing of the third hash value and the fourth hash value.

Claims (48)

1. A computer-implemented method of verifying integrity of a computer software for installation using a distributed hash table and a peer-to-peer distributed ledger, the method comprising:

determining a metadata (M) associated with a transaction record stored on the peer-to-peer distributed ledger;

determining an indication of an entry stored on the distributed hash table from the metadata (M);

determining a third hash value (H 3 ) based on the computer software;

determining a fourth hash value (H 4 ) from the entry on the distributed hash table;

comparing the third hash value (H 3 ) and the fourth hash value (H 4 ); and

verifying the integrity of the computer software based on the comparing of the third hash value (H 3 ) and the fourth hash value (H 4 ).

2. The method of claim 1 , wherein comparing the third hash value (H 3 ) and the fourth hash value (H 4 ) comprises determining whether the third hash value (H 3 ) and the fourth hash value (H 4 ) match.

3. The method of claim 1 , wherein before determining the metadata (M), the method comprises:

determining a second user public key (PU 2 ) associated with a second user (U 2 ) from a transaction record stored on the peer-to-peer distributed ledger;

determining a second public key (P 2 ) associated with the second user (U 2 ) from an entry stored on the distributed hash table;

comparing the second user public key (PU 2 ) and the second public key (P 2 ); and

verifying the ownership of the computer software based on the comparing of the second user public key (PU 2 ) and the second public key (P 2 ).

4. The method of claim 3 , wherein comparing the second user public key (PU 2 ) and the second public key (P 2 ) comprises determining whether the second user public key (PU 2 ) and the second public key (P 2 ) match.

5. The method of claim 4 , wherein before determining the second user public key (PU 2 ) the method comprises:

determining a data (D 1 ) associated with the computer software;

determining a first hash value (H 1 ) of the computer software;

determining a second hash value (H 2 ) based on the data (D 1 ) and the computer software;

sending, over a communications network, the data (D 1 ), the first hash value (H 1 ) and the second hash value (H 2 ) to an entry for storage in the distributed hash table, wherein the second hash value (H 2 ) is a key of a key-value pair and the data (D 1 ) and the first hash value (H 1 ) are a value in the key-value pair; and

determining the metadata (M) comprising the second hash value (H 2 ) for storage on the peer-to-peer distributed ledger.

6. The method of claim 1 , wherein the computer software comprises a header and a body.

7. The method of claim 6 , wherein the third hash value (H 3 ) is determined from the body of the computer software.

8. The method of claim 6 , wherein the header comprises a hash value of the body of the computer software.

9. The method of claim 6 , wherein the header further comprises a second hash value (H 2 ).

10. The method of claim 6 , wherein the body of the computer software comprises an executable of the computer software.

11. The method of claim 10 , further comprising determining a second user public key (PU 2 ) and wherein before determining the second user public key (PU 2 ), the method comprises encrypting the executable of the computer software.

12. The method of claim 11 , wherein encrypting the executable of the computer software comprises:

determining a generator value (GV);

determining a second user second public key (P 2 U 2 ) based on the second user public key (PU 2 ) and the generator value (GV), wherein the second user second public key (P 2 U 2 ) forms a cryptographic pair with a second user second private key (V 2 U 2 );

determining a first user second public key (P 2 U 1 ) based on a first user public key (PU 1 ) and the generator value (GV), wherein the first user second public key (P 2 U 1 ) forms a cryptographic pair with a first user second private key (V 2 U 1 );

determining a common secret (CS) based on the second user second public key (P 2 U 2 ) and the first user second private key (V 2 U 1 ); and

encrypting the executable of the computer software with the common secret (CS) to generate an encrypted executable of the computer software.

13. The method of claim 12 , wherein the encrypted executable of the computer software is decrypted by:

determining the common secret (CS) based on the first user second public key (P 2 U 1 ) and the second user second private key (V 2 U 2 ); and

decrypting the executable of the computer software with the common secret (CS) to generate a decrypted executable of the computer software.

14. The method of claim 13 , further comprising:

installing the decrypted executable of the computer software on a processing device associated with the second user (U 2 ).

15. The method of claim 14 , further comprising:

determining an activation key (AK) from the second user (U 2 ); and

executing instructions of the decrypted executable of the computer software based on the activation key (AK).

16. A computer software program comprising machine-readable instructions to cause a processing device to implement the method of claim 1 .

17. A computer system for verifying integrity of a computer software for installation using a distributed hash table and a peer-to-peer distributed ledger, the computer system comprising a processing device associated with a node on a peer-to-peer network of nodes, configured to:

determine a metadata (M) associated with a transaction record stored on the peer-to-peer distributed ledger;

determine an indication of the location of an entry on the distributed hash table from the metadata (M);

determine a third hash value (H 3 ) based on the computer software;

determine a fourth hash value (H 4 ) from the entry on the distributed hash table;

compare the third hash value (H 3 ) and the fourth hash value (H 4 ); and

verify the integrity of the computer software based on a comparison of the third hash value (H 3 ) and the fourth hash value (H 4 ).

Assignments (4)
CHANGE OF NAME Recorded Mar 14, 2023
From: NCHAIN HOLDINGS LTD
To: NCHAIN LICENSING AG
Reel/Frame 063085/0470 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2020
From: WRIGHT, CRAIG; SAVANAH, STEPHANE
To: NCHAIN HOLDINGS LTD
Reel/Frame 051528/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2020
From: WRIGHT, CRAIG; SAVANAH, STEPHANE
To: NCHAIN HOLDINGS LTD
Reel/Frame 051528/0233 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2020
From: WRIGHT, CRAIG; SAVANAH, STEPHANE
To: NCHAIN HOLDINGS LTD
Reel/Frame 051528/0255 →
Priority Claims (3)
GB 1608454.3 · May 13, 2016 · national
GB 1608456.8 · May 13, 2016 · national
GB 1608463.4 · May 13, 2016 · national
Continuity (1)
Related Publication 20190340362A1 · Nov 7, 2019
Cited By (4)
US 12,250,320 US 12,346,416 US 12,380,182 US 12,505,180