In a perfect world, DNS would not have been setup in such a way that everyone would be using the same one. Here is my proposal to god so he can go back and change history.
ICANN makes one tld, I don't care the name, perhaps
I then decide ICANN is doing something stupid. They are handling it all wrong and I can do better. I decide to make
ICANN is very US centric and follows US laws. China decides they want to control DNS... fine. All they need to do is make there own and then mandate that computers sold in the country use it. I disagree with this... but it would not affect the rest of the internet.
I use google very often. Google has a tld. I install it and I can now can go to maps.google instead of maps.google.icann.
US blocks the pirate bay dns. Good thing I have
What about conflicts? How do we handle ports? Name conflicts would happen occasionally, people would need to be smart enough to ignore them.
How can you trust tlds? You get them from official websites. You assign trust as necessary. People tend to trust a couple big ones because everyone uses them.
Smart people will add dns info to the links they post. For example dns-FFFFFFFF://http://google.icann. In this case, the dns master IP is included in the link (as a hex string). Because of fishing attempts, a browser will point out with a glaring error message (ssl like) that something is horribly wrong if one of your known TLDs has a different dns hex. People will use bookmarks or add the TLD if they so choose.
This is in my opinion of the perfect system. Decentralized and left in the user's hands. Some may think I give users too much credit, but the end result would be a couple big guys and a common idea that you only accept tlds from big companies. Centralization would naturally occur, but it would not be forced.