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