Blockchain as a solution for software licensing? I'm curious as to what blockchain could do to solve or improve upon the issues surrounding paid software licensing? (Verification, piracy prevention)

I've seen such claims all over the web when there is discussion around which domains blockchain has the potential to innovate. 

I'm very interested in this if it is true but I cannot think of any tangible benefits opposed to a traditional license server (i.e. user has to verify their license key by checking against your server) 

I suppose one benefit could simply be that it gives you the benefit of a license server without having to actually have a server, the blockchain would verify the validity of licenses. 

Other than this, what else could blockchain do? Piracy would still be an issue, nothing will prevent me from lending my license  ( say , my private key) to my friend.

Also another problematic issue is what incentive will there be for miners?

All of the hype made me very optimistic but I can't find anything to back up these claims.
The following are just some ideas that came to my mind when reading your question:

Let's say that all the instances of the software you want to protect share a blockchain with the servers of the producer company.
Licenses are released through the blockchain as a transaction, with the user who purchased the license as the receiver. This user, who will have its own private key (let's say a password), will be the only one able to unlock the license.

Each copy of the software program will also be registered on the blockchain (as an integrity checksum), so to uniquely associate the license to that specific copy.

The "license" transaction contain all the data that need to be verified, including:


the "coin" representing one license (maybe more than one)
the user ID (public key)
the the software copy ID/IDs (embedded in the software image)
a timestamp for the beginning of the license validity
the expiration time / date


Alternatively to the user ID, a unique identifier of the machine that will be allowed to run the code can be stored (e.g. the CPU ID, or something stored in a non-writable memory, so that it cannot be modified; this data can be sent by the user along with a "purchase transaction" on the same blockchain).

Now, the protected software connects to the blockchain each time it runs, to verify it can be actually run on that computer: if all the conditions written in the license transaction are valid, it runs the program, otherwise it stops.

Since data store in the blockchain cannot be modified, this prevents tampering.
The software copy ID can be an integrity checksum of the program image that is also stored on the blockchain; so if someone tries to crack it, the software will not recognize itself because the new checksum is not stored on the blockchain (only the transactions signed by the producer will be valid).
In case of software updates, new checksums can again be released through the blockchain (by the producer).

So, these were just a couple of ideas, but it's my belief that it wouldn't be hard to think about more and more sophisticated techniques.

In conclusion, let me point out that what we are actually talking about here, is a special case of the so called "smart contracts".

Hope this helps