Software connects to internet again asks for "total" received balance from multiple servers.
Software unlocks software by decryption
Hackers just save the decryption key and replay and distribute at will.
Well, protocol outlined by OP is kinda defective, but it is possible to make a good protocol using smart property:
The seller of the software will send a coin representing smart property ownership to customer's wallet. (Obviously, wallet needs to be smart property-aware.)
Software will then need to communicate with that wallet, requesting proof of ownership of a private key smart property was sent to.
It will check such proof periodically.
Suppose hackers copy private key... If private key isn't secret anymore, anybody can transfer this coin from it, and software licensing module can detect this.
So we have three advantages compared to system we have now:
1. There is no activation server, software will work as long as bitcoin blockchain is alive.
2. One can sell software, simply transfering smart-property coin to buyer's wallet.
3. There is a strong incentive NOT to share your private key with anybody you do not trust. E.g. you can install software on 10 computers within your organization, but if you post key on forum you'll lose your software.
Companies can further discourage piracy by offering trade-in: customer will return an old smartproperty to get discount on new version.
Of course, one might hack by patching a binary...
But, honestly, I don't think that smart property-based software activation is better than monthly membership model like this:
http://www.adobe.com/products/creativecloud.htmlCompany can get a steady stream of revenue, and customer pays only as long as it uses this software.
Bitcoin isn't particularly relevant for monthly membership, it is just a payment system like any other.