Zooko's Triangle
en.wikipedia.org
en.wikipedia.org
The real answer to Zooko's Triangle is to do human-meaningful name lookups as little as possible. For instance, in an ideal world I should be able to run a nameserver that stuffs all of ICANN's TLD pollution under an .icann label, such that I could type "blog.google.icann" to access what is currently called "blog.google". References to other resources would be specified with decentralized non-human-readable (ie cryptographic) identifiers, and outgoing links intended for human consumption would also have a relative hint so that my browser could turn the cryptographic identifier back into a human readable identifier in my own namespace.
In the case of a naming system, as you point out, that means there is still one finite, scarce namespace in the system, just as there is in DNS.
More generally, there is still a central authority pushing out code, and so unless you want to hard-fork, what does the "decentralization" in a blockchain actually buy you? Does it do anything more for you in practical terms than protecting you from a central server suffering an outage?
I spent some time a while back coming up with ideas for an alternative to blockchains that would pursue many of the same goals, starting from first principles ("what the heck even _is_ money?"). I have no idea whether any of my ideas would have actually worked in practice, but they at least ticked the "decentralized" box in a way that I found a lot more meaningful than merely "decentralized execution of a centrally-defined algorithm to determine a single global consensus state". (I stopped working on them not because they didn't show promise, but because I became convinced that they would be a net negative for the world if they were successful; I lost the desire to find a working design.)
Not necessarily, it's quite common for forks to compete on a single ledger, with features activated when the majority of miners elect to run the fork which supports them.
I'll use bitcoin as an example. If you are using visa/mastercard, they can censor you. The government can order them to censor you. Bitcoin mitigates this problem. If a particular miner refuses your transaction, you have plenty of other miners to choose from.
I think about the only decentralized improvement one can do is software that creates credit lines denominated in an existing currency, between mutually trusting parties. And then attempt to scale that up (ala Hawala), with technical means to keep the slightly diminishing fungibility from being an issue (one USD owed to you by the Treasury is worth slightly more than one USD owed to you by your friend A (owed to him by B, and so-on), even if you trust A with your life).
However, there are many areas where we can adopt decentralized functionality (which actually means not having unnecessary centralized functionality), such as my above naming example. If we want decentralization, it's just ridiculous for my browser to be making hundreds of centralized name lookups to render a single page. And I've seen too many blockchain projects where they're actually pushing a solution that is more centralized than the existing ones.
furthermore, I heavily doubt it's even a realistic argument that a single high net worth individual could ever compete with a globally sized competition where it's easy to vote via: 1 cpu = 1 vote mechanism. it would be much easier with the traditional asics mining because the high net worth individual could have the money and means to buy up all the asics or produce them himself, but with the ease of availability of cpus, I heavily doubt that it's the same ball game.
I think a better solution is to just leave meaningful names to centralized DNS. It's a perfect fit. Amazon is centralized already.
Private individuals don't commonly need them. Look at phone numbers. We are fine with local assigned names for the most part.
What we need is a way to create a URL that embeds its SSL fingerprint and is independent of any authority. Self hosted stuff can use that because there's generally a safe bootstrap method to communicate that name.
And even with unsafe bootstrapping like non unique search, you are still not any worse off than you are with Facebook using the same method. Probably better, in fact, if you are using local-only nonunique search over Bluetooth instead of something anyone anywhere can fake.
Meaningful names can even give a false sense of security and lead to typosquatting. The advantage of not needing a blockchain or consensus seems bigger than the advantage of names.
[0] https://github.com/cwebber/rebooting-the-web-of-trust-spring...
Human-meaningful: Meaningful and memorable names.
Unique: The referent of a name is unique and immutable.
Intergenerational: The first generation of users can't take up all the good names.
https://facebookcorewwwi.onion/
This seems to be human meaningful, secure, and decentralized.
https://m.facebook.com/nt/screen/?params=%7B%22note_id%22%3A...
Maybe it took x thousands of compute years to generate the secret key for `facebokcorewww` - and they didn't care about the last character. But still, let's say you're a government agency with endless resources - how hard would it be to recreate that private key? If a private corp can do it once with finite resources - why can't you?
Was it is just a stroke of luck for those working on it? What are the chances?
The blockchain itself has a decentralized structure. But when we use it as a basis for our naming scheme it becomes a single point of failure. It isn't possible for some participant in the naming scheme to choose to use a different blockchain which they prefer.