Hacker News new | ask | show | jobs
by evgen 3281 days ago
It is always amusing when various "debcentralise the X" efforts learn the same hard lessons over and over, namely that when compared to centralised equivalents, decentralisation is more complicated, more difficult to debug and verify correctness, and always more expensive.
4 comments

So what's your answer? Hand over all control to the Microsofts, Apples, and Googles of the world? Become a cog in their machine, just because freeing ourselves from their machine is hard? No thanks.

People probably laughed at the efforts of those trying to overthrow monarchs and dictators, and instate democracy. And that was hard too, but it doesn't mean it wasn't worthwhile.

Decentralization is futile*

* Except in all the places where it's succeeded and vastly improved the world.

Can you name an example where complete decentralisation succeeded? In most cases, fully decntralized systems were developed for a small, closed network of agents and then when they failed to scale well the architects were forced to introduce mid-tier centralisation points to assist coordination and make the system more efficient.
Decentralisation isn't a binary succeed/fail, it's a direction to head towards. Increasing decentralisation incrementally is nearly always a win.

The web, git, bitcoin, email. They are all incremental improvements on more-centralised predecessors.

It is a continuum, but it is also the case that the most efficient sweet spot for reliability and cost effectiveness changes on this continuum as your scale up.

The web is very decentralized when it started, but it was impossible to find anything, so you would pass along lists of interesting URLs via email lists, usenet postings, etc. Eventually we get catalogues like Yahoo and later search engines like Altavista and Google. The later were a huge step towards centralization of the web and we have not really gotten around this problem.

Email was initially very decentralized (I am talking things like UUCP, Bitnet mail, Fido, etc.) but message routing was a major pain as anyone who remembers UUCP bangpaths can tell you. SMTP is a bit of a sidestep on this path, making addressing easier by moving somewhat in a decentralized direction with direct TCP delivery (and then a half-step back with MX records and centralization of campus-wide email systems.) While email was decentralized it was also open to parasites and we fought the good fight for a while but are now at a point where more than half of all email in the US runs through three organizations because they have the resources and expertise to deliver a good product and control spam -- not exactly decentralized anymore is it?

Git? Yeah, for your small repo. Now try to make that repo open to the rest of the internet and participate in the global source web. Oh yeah, up to github or bitbucket you go. Once again we centralize to scale up and to solve the discoverability problem. Outside of a local context git is almost completely centralized.

Bitcoin? I would point out how only a few mining consortiums control the bulk of the hashing output, but we are now reaching fish in a barrel stage.

If you examine all of these 'improvements' I think you will see that they became more centralized as they scaled up to solve problems with efficiency, discoverability, complexity, and controlling parasites and increasing the cost for attackers. As I stated initially, decentralization for its own sake is almost always a sure sign of an amateur who does not understand the math of network relationships or who has no experience in the field and is just itching to make a dash through the minefield without noticing all of the dead bodies ahead of them or bothering to learn from these lessons.

Skype, before clients with minimal memory, cpu, and battery life became common (laptops, tablets, and phones).
Once you factor in the effort to build the entity that backs a centralized infrastucture and the way they acquire their power to enforce centralization it suddenly becomes a lot more complicated too.

And BGP is far from ideal too.

The things I find amusing are the propensity for "decentralise the X" project leaders to be ignorant of prior art, and the willingness of the communities that form around those projects to overlook the cost of that ignorance.

However, I see no evidence of that with CJDNS. What makes you think it is anything but an honest stab at a hard problem?

I think it is an honest attempt and I have a sincere interest in cjdns as a neat piece of tech, but anyone with even a passing familiarity with the literature could have predicted the necessity of this change. It just makes me wonder what other landmines are yet to be discovered...
Are you referring to the necessity of supernodes?
Except for "decentralize the source code repository," which makes source code easier to manage.
do you consider github decentralized ?
It's less centralised than using SVN on sourceforge.