"To implement this simply requires adding one new field to each transaction, the 'name' (or hash) of the 'stock' being transferred."
In the case of DNS this still leaves the problem of discovering where in the world are your DNS records hosted. I think you need one more piece of data, the IP addresses of your authoritative DNS name servers.
I'm unclear on who gets to register new names in your scheme, how much they have to pay, and who receives thevpayment. Also, are name registrations permanent and forever?
Each block is allowed to register a maximum number of new names. Transaction fees determine the priority of name registration. Hashing the name prevents 'front running' good names.
By tying a concept such as an 'IP' address into the block chain you end up with a fundamental problem of too narrow a scope (IP based networks) that still depend upon current network design. Suppose that web 3.0 did away with dedicated servers and instead used a gigantic distributed hash table that mapped keys (domain + filename) to values (files) and verified permission to modify the value stored at domain+filename based upon signing the contents of filename with the private key of the domain. In this situation content is not looked up by 'ip address', but by a hash of the contents domain + filename.
Now imagine that this gigantic distributed hash table stored an 'ip address' at domain/ip. So users would buy a named public/private key pair via BitName and then trade it (including partial ownership) using the block list. Then someone invents a snazzy DNS app that knows how to lookup the IP in the DHT. Users of the domain lookup would not need the block list, they would simply trust the DHT which would validate all writes against the blocklist.