So now one population of namecoin nodes sees the hacked entry, accepts the transaction, and puts it in a block. Another population doesn't see it and rejects the transaction. The blockchain forks.
You might get by if the hacked DNS is seen by a minority of users. Then the chain without the disputed transaction will win anyway and all is well.
But suppose most DNS nodes have the hacked entry? Then the minority will refuse to accept the majority chain, since they can't validate it, and the fork persists. If that seems implausible, imagine a hacker watching for a new DNS namecoin entry, and making his hacked DNS server immediately remove it.
A few things would help a bit:
- Only accept namecoin registrations when the matching DNS entry is old enough to have propagated everywhere
- If the longest blockchain has old blocks that don't validate against DNS, keep checking. Hopefully the errant DNS servers will get fixed soon and that'll resolve the fork.
- If the disputed block gets old enough, just go ahead and accept it if it's in the longest chain. You're just trying to minimize squatting, and letting some skilled squatters through isn't the worst disaster.
But it's still kind of a mess because namecoin isn't just a naming system, it's also a currency. For as long as the fork persists, people can doublespend their coins. It'll be resolved but in the meantime maybe a merchant has shipped goods. You're essentially creating money that depends on the integrity of DNS for security.