Home Patent Forecast® Sectors Log In   Contact  
How it works Patent Forecast® Sectors Insights
Menu
Enjoy your FREE PREVIEW which shows only 2022 data and 25 documents. Contact Patent Forecast for full access.        

Cryptocurrency: Industrial Applications

Search All Patents in Cryptocurrency: Industrial Applications


Patent US10572688


Issued 2020-02-25

Blockchain Based Software Licensing Enforcement

A server compiles a software program with a randomly generated string to produce compiled code. The server also computes a hash of the compiled code to produce a unique identifier for the software program. Upon receiving a request from a user to download the software program, the server generates a transaction for a blockchain that has a transaction identifier and the transaction including a user identifier for the user and the unique identifier. The server embeds the transaction identifier and the unique identifier with the software program, and downloads the software program to a computing device associated with the user.



Much More than Average Length Specification


View the Patent Matrix® Diagram to Explore the Claim Relationships

USPTO Full Text Publication >

3 Independent Claims

  • 1. A method comprising: at a server, for a copy of a software program among a plurality of copies of the software program to be distributed: compiling the copy of the software program with a randomly generated string that is unique to the copy of the software program to produce compiled code; computing a hash of the compiled code to produce a unique identifier for the copy of the software program; upon obtaining a request from a user to download the copy of the software program, generating a transaction for a blockchain, the transaction having a transaction identifier and the transaction including a user identifier for the user and the unique identifier; embedding the transaction identifier and the unique identifier with the copy of the software program; and downloading the copy of the software program to a computing device associated with the user.

  • 9. An apparatus comprising: a communication interface configured to enable communications over a network; and one or more processors coupled to the communications interface, the one or more processors configured to, for a copy of a software program among a plurality of copies of the software program to be distributed: compile the copy of the software program with a randomly generated string that is unique to the copy of the software program to produce compiled code; compute a hash of the compiled code to produce a unique identifier for the copy of the software program; upon obtaining a request from a user to download the copy of the software program, generate a transaction for a blockchain, the transaction having a transaction identifier and the transaction including a user identifier for the user and the unique identifier; embed the transaction identifier and the unique identifier with the copy of the software program; and download the copy of the software program to a computing device associated with the user.

  • 16. One or more non-transitory computer readable storage media encoded with software comprising computer executable instructions and when the software is executed operable to perform operations comprising, for a copy of a software program among a plurality of copies of the software program to be distributed: compiling the copy of the software program with a randomly generated string that is unique to the copy of the software program to produce compiled code; computing a hash of the compiled code to produce a unique identifier for the copy of the software program; upon obtaining a request from a user to download the copy of the software program, generating a transaction for a blockchain, the transaction having a transaction identifier and the transaction including a user identifier for the user and the unique identifier; embedding the transaction identifier and the unique identifier with the copy of the software program; and downloading the copy of the software program to a computing device associated with the user.