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

US12505180B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12505180-B2
Application numberUS-202117560107-A
CountryUS
Kind codeB2
Filing dateDec 22, 2021
Priority dateMay 13, 2016
Publication dateDec 23, 2025
Grant dateDec 23, 2025

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

The invention claimed is: 1. A computer-implemented method of controlling distribution and installation of computer software by verifying ownership using a distributed hash table and a peer-to-peer distributed ledger, the method performed by a node comprising a processor and associated with a first user (U1) corresponding to a software provider, the method comprising: determining, by the node, a first hash value (H1) by hashing an executable of the computer software using a hashing function, wherein the executable is configured to enable installation of the computer software; determining a second hash value (H2) based on a data (D1) associated with the computer software and the first hash value (H1), the data (D1) comprising a license that authorizes a second user (U2) to install the computer software, wherein the license is associated with the second user (U2) and is a top hash value of a Merkle tree cryptographically linking the license to the computer software; encrypting, by the node, the executable of the computer software with a symmetric key derived from a common secret (CS), wherein the common secret (CS) is determined by the node based on a first private key (VU1) associated with the first user (U1), a second user public key (PU2) associated with the second user (U2), and a value (GV) shared between the first user (U1) and the second user (U2), the common secret (CS) being independently derivable by the second user (U2) using a first public key (PU1) and a second user private key (VU2); determining, by the node, the second user public key (PU2) associated with the second user (U2) from a transaction record stored on the peer-to-peer distributed ledger, wherein the second user public key (PU2) is retrieved from metadata comprising the second hash value (H2) embedded in a redeem script of the transaction record; determining, by the node, using the second hash value (H2) as a key of a key-value pair associated with an entry stored on the distributed hash table, a second public key (P2) associated with the second user (U2) from the entry in the distributed hash table; comparing, by the node, the second user public key (PU2) and the second public key (P2) to confirm a correspondence between the transaction record and a distributed hash table entry in the distributed hash table; verifying, by the node, the ownership of the computer software by the second user (U2) based on a comparison indicating a match between the second user public key (PU2) and the second public key (P2); and in response to verifying the ownership, by the node, transmitting the encrypted executable of the computer software to a location in the distributed hash table indicated by the data (D1) and causing the computer software to be installed on a computing device associated with the second user (U2) by enabling decryption of the encrypted executable into an executable form using the symmetric key derived from the common secret (CS), the symmetric key being derivable by the second user (U2) based on the verified ownership, thereby preventing unauthorized installation of the computer software. 2. The method of claim 1 , wherein 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 computer software comprises a header and a body. 4. The method of claim 3 , wherein the header comprises a hash value of the body of the computer software. 5. The method of claim 3 , wherein the header further comprises the second hash value (H2) of the data (D1) associated with the license. 6. The method of claim 3 , wherein the body of the computer software comprises the executable of the computer software. 7. The computer-implemented method of claim 1 , wherein the second user public key (PU2) and the second public key (P2) have a same public key value. 8. A computer system for controlling distribution and installation of computer software by verifying ownership using a distributed hash table and a peer-to-peer distributed ledger, the computer system comprising a processing device associated with a first user (U1) corresponding to a software provider, the processing device comprising a processor and a memory, the memory storing instructions which, when executed by the processor, cause the processing device to: determine a first hash value (H1) by hashing an executable of the computer software using a hashing function, wherein the executable is configured to enable installation of the computer software; determine a second hash value (H2) based on a data (D1) associated with the computer software D1 and the first hash value (H1), the data (D1) comprising a license that authorizes the second user (U2) to install the computer software, wherein the license is associated with the second user (U2) and is a top hash value of a Merkle tree cryptographically linking the license to the computer software; encrypting the executable of the computer software with a symmetric key derived from a common secret (CS), wherein the common secret (CS) is determined based on a first private key (VU1) associated with the first user (U1), a second user public key (PU2) associated with the second user (U2), and a value (GV) shared between the first user (U1) and the second user (U2), the common secret (CS) being independently derivable by the second user (U2) using a first public key (PU1) and a second user private key (VU2); determine the second user public key (PU2) associated with the second user (U2) from a transaction record stored on the peer-to-peer distributed ledger, wherein the second user public key (PU2) is retrieved from a metadata comprising the second hash value (H2) embedded in a redeem script of the transaction record; determine using the second hash value (H2) as a key of a key-value pair associated with an entry stored on the distributed hash table, a second public key (P2) associated with the second user (U2) from the entry in the distributed hash table; compare the second user public key (PU2) and the second public key (P2) to confirm a correspondence between the transaction record and a distributed hash table entry in the distributed hash table; verify the ownership of the computer software based on a comparison indicating a match between the second user public key (PU2) and the second public key (P2); and in response to verifying the ownership of the computer software, the processing device is configured to transmit the encrypted executable of the computer software to a location in the distributed hash table indicated by the data (D1) and cause the computer software to be installed on a computing device associated with the second user (U2) by enabling decryption of the encrypted executable into an executable form using the symmetric key derived from the common secret (CS), the symmetric key being derivable by the second user (U2) based on the verified ownership, thereby preventing unauthorized installation of the computer software. 9. A non-transitory machine-readable storage medium comprising instructions thereon, the instructions when executed by a processor of a processing device, cause the processing device to: determine a first hash value (H1) by hashing an executable of computer software, wherein the executable is configured to enable installation of the computer software; determine a second hash value (H2) based on a data (D1) associated with the computer software D1 and the first hash value (H1), the data (D1) comprising a license that authorizes a second user (U2) to install the computer software, wherein the license is associated with the second user (U2) and is a top hash value of a Merkle tree cryptographically linking

Assignees

Inventors

Classifications

  • involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements (network architectures or network communication protocols for supporting authentication of entities using certificates in a packet data network H04L63/0823) · CPC title

  • Hash functions, e.g. MD5, SHA, HMAC or f9 MAC · CPC title

  • Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM] · CPC title

  • G06F21/105Primary

    Arrangements for software license management or administration, e.g. for managing licenses at corporate level · CPC title

  • License processing; Key processing · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12505180B2 cover?
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 trans…
Who is the assignee on this patent?
Nchain Holdings Ltd, Nchain Licensing Ag
What technology area does this patent fall under?
Primary CPC classification G06F21/105. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 23 2025 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).