IP Library Granted Patent US 11,210,372
Granted Patent B2
US 11,210,372 · App. 16/300,514 · Granted Dec 28, 2021

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

Inventors: Stephane Savanah (London, GB); Craig Steven Wright (London, GB)
Assignee: nChain Holdings Limited
G06F21/121G06F8/65G06F16/152G06F16/1834G06F21/10G06F21/105G06F21/12G06F21/51G06F21/57G06F21/602G06F21/6281G06F21/64H04L9/0637H04L9/0643H04L9/0841H04L9/3236H04L9/3247H04L9/3263H04L9/3265H04L63/0435H04L63/061H04L63/0823H04L67/104G06F2221/0755G06F2221/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 11,210,372
App. No.
16/300,514
Granted
Dec 28, 2021
Kind
B2
Abstract

A computer-implemented method ( 600 ) and system ( 1 ) for verifying ownership 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 blockchain implementation. The method includes determining ( 610 ) a second user public key associated with a second user ( 24 ) from a transaction record stored on the peer-to-peer distributed ledger ( 14 ). A second public key associated with the second user may be determined ( 620 ) from an entry on the distributed hash table ( 13 ). The method further includes comparing ( 630 ) the second user public key and the second public key, and verifying ( 640 ) the ownership of the computer software based on the comparing of the second user public key and the second public key.

Claims (55)

1. A computer-implemented method of verifying authorized control of a controlled digital asset using a peer-to-peer distributed ledger and a separate storage resource, the method comprising:

determining, from a metadata (M) in a redeem script of a transaction record stored on the peer-to-peer distributed ledger, a hash value (H2) representative of details of the controlled digital asset and a second user public key (PU2) associated with a second user (U2);

determining a second public key (P2) associated with the second user (U2) from an entry retrieved from the separate storage resource using the hash value (H2) as the key of a key-value pair stored on the separate storage resource;

determining a generator value (GV);

determining a second user second public key (P2U2) based on the second user public key (PU2) and the generator value (GV), wherein the second user second public key (P2U2) forms a cryptographic pair with a second user second private key (V2U2);

determining a first user second public key (P2U1) based on a first user public key (PU1) and the generator value (GV), wherein the first user second public key (P2U1) forms a cryptographic pair with a first user second private key (V2U1);

determining a common secret (CS) based on the second user second public key (P2U2) and the first user second private key (V2U1);

encrypting the controlled digital asset with the common secret (CS) to generate an encrypted controlled digital asset, wherein the encrypted controlled digital asset is decrypted by:

determining the common secret (CS) based on the first user second public key (P2U1) and the second user second private key (V2U2); and

decrypting the controlled digital asset with the common secret (CS) to generate a decrypted controlled digital asset;

comparing the second user public key (PU2) and the second public key (P2); and

verifying ownership of the controlled digital asset based on the comparing of the second user public key (PU2) and the second public key (P2).

2. The method of claim 1 , wherein:

the controlled digital asset is a portion of item of software; or

the separate storage resource is a distributed hash table; or

the method further comprises sending, over a communications network:

data (D1) associated with the controlled digital asset;

a first hash value (H1) based on the controlled digital asset; and

a second hash value (H2) based on the controlled digital asset and the first hash value (H1); or

wherein the second hash value (H2) is assigned to a key of a key-value pair and the data (D1) and the first hash value (H1) are assigned to the value in the key-value pair, wherein the value of the key-value pair comprises an identifier indicative of a location of the controlled digital asset; or

comparing the second user public key (PU2) and the second public key (P2) comprises determining whether the second user public key (PU2) and the second public key (P2) match.

3. The method of claim 1 , wherein the controlled digital asset comprises a header and a body.

4. The method of claim 3 , wherein the header comprises a hash value of the body of the controlled digital asset.

5. The method of claim 3 , wherein the header further comprises the hash value (H2) of a data associated with the controlled digital asset or a licence.

6. The method of claim 3 , wherein the body of the controlled digital asset comprises an executable of a portion or item of computer software.

7. The method of claim 6 , wherein before determining the second user public key (PU2), the method comprises encrypting the executable of the computer software.

8. The method of claim 7 , further comprising:

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

9. The method of claim 8 , further comprising:

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

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

10. A non-transitory machine readable storage medium comprising instructions embodied thereon for a computer software program for verifying ownership of a controlled digital asset for installation using a peer-to-peer distributed ledger and a separate storage resource, the instructions when executed cause a processing device to:

determine, from a metadata (M) in a redeem script of a transaction record stored on the peer-to-peer distributed ledger, a hash value (H2) representative of details of the controlled digital asset and a second user public key (PU2) associated with a second user (U2);

determine a second public key (P2) associated with the second user (U2) from an entry retrieved from the separate storage resource using the hash value (H2) as the key of a key-value pair stored on the separate storage resource;

determine a generator value (GV);

determine a second user second public key (P2U2) based on the second user public key (PU2) and the generator value (GV), wherein the second user second public key (P2U2) forms a cryptographic pair with a second user second private key (V2U2);

determine a first user second public key (P2U1) based on a first user public key (PU1) and the generator value (GV), wherein the first user second public key (P2U1) forms a cryptographic pair with a first user second private key (V2U1);

determine a common secret (CS) based on the second user second public key (P2U2) and the first user second private key (V2U1);

encrypt the controlled digital asset with the common secret (CS) to generate an encrypted controlled digital asset, wherein the encrypted controlled digital asset is decrypted by:

determining the common secret (CS) based on the first user second public key (P2U1) and the second user second private key (V2U2); and

decrypting the controlled digital asset with the common secret (CS) to generate a decrypted controlled digital asset;

compare the second user public key (PU2) and the second public key (P2); and

verify the ownership of the controlled digital asset based on comparing of the second user public key (PU2) and the second public key (P2).

11. A computer system for verifying ownership of a controlled digital asset for installation using a peer-to-peer distributed ledger and a separate storage resource, the computer system comprising a processing device associated with a node on a peer-to-peer network of nodes, configured to:

determine, from a metadata (M) in a redeem script of a transaction record stored on the peer-to-peer distributed ledger, a hash value (H2) representative of details of the controlled digital asset and a second user public key (PU2) associated with a second user (U2);

determine a second public key (P2) associated with the second user (U2) from an entry retrieved from the separate storage resource using the hash value (H2) as the key of a key-value pair stored on the separate storage resource;

determine a generator value (GV);

determine a second user second public key (P2U2) based on the second user public key (PU2) and the generator value (GV), wherein the second user second public key (P2U2) forms a cryptographic pair with a second user second private key (V2U2);

determine a first user second public key (P2U1) based on a first user public key (PU1) and the generator value (GV), wherein the first user second public key (P2U1) forms a cryptographic pair with a first user second private key (V2U1);

determine a common secret (CS) based on the second user second public key (P2U2) and the first user second private key (V2U1);

encrypt the controlled digital asset with the common secret (CS) to generate an encrypted controlled digital asset, wherein the encrypted controlled digital asset is decrypted by:

determining the common secret (CS) based on the first user second public key (P2U1) and the second user second private key (V2U2); and

decrypting the controlled digital asset with the common secret (CS) to generate a decrypted controlled digital asset;

compare the second user public key (PU2) and the second public key (P2); and

verify the ownership of the controlled digital asset based on comparing of the second user public key (PU2) and the second public key (P2).

Assignments (4)
CHANGE OF NAME Recorded Apr 9, 2023
From: NCHAIN HOLDINGS LTD
To: NCHAIN LICENSING AG
Reel/Frame 063280/0080 →
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 · May 13, 2016 · national
GB 1608456 · May 13, 2016 · national
GB 1608463 · May 13, 2016 · national
Continuity (1)
Related Publication 20190163883A1 · May 30, 2019
Cited By (5)
US 12,341,912 US 12,346,416 US 12,380,182 US 12,505,180 US 12,659,153