Decentralization Dilemma
molus.org
molus.org
If there's a dependence on canonical global registries or fixed network locations in the manner of addressing people/content, that becomes the case. Centralization occurs via a one-way ratchet – sought for ease but then practically irreversible due to high switching costs. "Federated" systems usually still have this centralization problem.
Systems based on cryptographically-derived names (for content or identities) offer a potential escape route. While you might choose certain centralized/dominant providers for a quick-and-easy start, retaining one's own stable crypto identity ensures absolute portability and location/provider indifference.
Such an architecturally-enforced right-of-exit can also make higher levels of centralization tolerable, before centralized power becomes a problem. The potential for choosing other arrangements, rapidly and with minimum disruption, deters abusive acts by larger proprietors.
I think the biggest issue is our home connections. I'd rather have a box in my house, but the need for the connection to not suck means I can't, which means there's added hosting costs, I have to trust someone to manage it, etc. If we had good symmetrical-speed Internet, I'd say a box with some reasonable defaults you plug in at home would be the way to go, and it wouldn't make sense to recentralize, because you aren't just switching hosts, you're leaving your house.
> the need for the connection to not suck
we don't need streaming TV. nice as it is, we don't need it.
Many ISPs already satisfy this need for most decentralization uses. Unless I'm really popular (at which point the network might make it easy for me to grab a virtual instance somewhere), my up speed should be fine to serve most social networking needs.
I agree with you to some extent, but I also think it's far more feasible than most people realize. I run a bunch of services (mail, website, repos, etc...) out of my house, and it's super rare that I have any problems with it. I know it wouldn't work for everyone, I'm just lucky enough to live in a city that has decent internet, but I think it is entirely doable for a lot more people than we realize.
The provider may block it, but IME that's as easy as sending them an email to open the port (which I would consider under the umbrella of "decent internet").
I can't say I've ever had my IP blacklisted that I know of, and I've never had delivery problems.
Historically, decentralized services don't get mass adoption because computers or mobile devices are off or unavailable most of the time. They are also behind NAT.
The wireless router is in a unique position. It's always on, it's a first-class citizen on the Internet, it's not very expensive, its ownership is clear and simple, and it often has significant unused computing power. It looks like a major, unexploited opportunity to me.
I'm waiting for some company to take advantage of this opportunity. Think of what this could do for decentralized social networking, file storage, currency exchange, etc. It's quite easy to think of possible server apps; just think of any centralized service and consider how valuable it would be to decentralize it.
I would do it myself if I weren't already involved in trying to build a possibly huge business or two. :-)
It seems likelier that a P2P web based on Dat (or something like it) will gain adoption in the large before getting embedded devices manufacturers (a) to willingly take on the role required here, and (b) to get it right, which are each big asks on their own. There's also the hidden third problem (c): getting the masses to actually go out and upgrade a piece of hardware that would actually support this kind of thing. It's a lot easier to just download a new browser (or an update for their current browser) and sign up for a service that will act as an always-on peer on your behalf—for exactly the same reason that the centralization of the Web happened in the first place.
(I'm sure someone's already thought of/worked with this idea before, though.)
Yes, I believe BitTorrent, Freenet, Grooveshark among others work this way. "P2P" was a big fad for a while.
However, IPFS, Scuttlebutt, GUN (full disclosure: mine -> https://github.com/amark/gun ), Beaker, etc. don't have this problem. Most of these, though, are tools for building decentralized apps, not necessarily the apps themselves - so there is plenty of love that we all need to have for enticing designers to build easy and beautiful apps.
ZeroNet seemed pretty easy though and well designed, so I'm not sure about the author's grievances against that one. Although it is more of an app (or app store) than a library/tool.
I like ZeroNet quite a bit myself. I found it really interesting because it applied p2p without the trendy keyword "blockchain" next to it.
Also, I don't have much grievances against any decentralization tech itself. The fact that they exist, they are Open Source and bright minds are working on them full/part-time, means we are all better off for having such technology.
i.e: There can be a sewing kit that has a high learning curve, but would result in faster production / better products. While this may result in the the kit not being (economically) successful, it would still be just as useful to each individual who bought it, and learned to use it properly.
People might re-centralize for discovery, but shouldn't need to for storage or other conveniences. And centralized discovery is not that bad of a problem.
The virality of a signal is related to the simplest pipe it will pass through.
Dang it, I hate when I can't remember names like this.
At this stage, I don't see how a new decentralized social network could realistically compete against the big guys.
oh, just systemic hierarchy.
to me it looks like our systems for coordinating as humans aren't really well suited for anything _other_ than hierarchy.
so we're in the process of finding out (now) whether our ancestors will have the ability to coordinate in an evolutionarily competitive way (as in a decentralized way), or if we'll be subsumed by the machine in some less competitive way.
and I wonder how they'll look back on our religious traditions when they consider us then...
If you are following the rise of "dapps" or blockchain applications (circa 2017) then I would answer your question with "almost anything Internet-related".
Some examples:
* Decentralized Storage (IPFS)
* Decentralized Computation (Golem)
* Decentralized Professional Networking (Indorse)
There are many other examples, but a lot of them are vaporware and not worth mentioning.
I am a bit surprised you are not aware of all of these, since they have been extensively discussed in the last few years.
For an oversimplified example I could, in theory, be in control of my input on this site with a nifty membership hook for publishing (or revoking) my interactions with it by working in my own "shared" instance of HN using a mutually agreed upon distribution protocol wherein each comment is published and "owned" by the commenter without HN having to pony up the resources to store or display it. Which could possibly include some potential for eliminating "acceptance critereon" altogether. ie. HN would have to ask me directly to manipulate my input for anything other than ranking or basic community acceptance. Wherein, ultimately, HN could pull the plug whenever but my "shared" instance could live on with others' until I, alone, pull my own plug which could even result in "comment deleted" throughout all live instances for all prior comments. And so on.
>1. The relative difficulty of running your own as an absolute beginner
The ease-of-use is brought up several times as a barrier to decentralization but I don't think this is really the fundamental issue. Yes, it appears to be the problem but it really isn't. If hackers invent a super simple UI, or hypothetical set-and-forget "IPFS/Sandstorm appliance", or an auto-configuring node... it still won't help widespread adoption for decentralization.
I was an expert for installing SMTP email servers but I don't bother with running a "decentralized" home email server anymore. Many sysadmin experts have abandoned the idea of running home email servers. If decentralization is the ideal, why do hackers like us not follow it? We're certainly not waiting for beginner-friendly email server software. (My previous comment about this.[1])
Also, any attempt to bake the "ease-of-use" into an idiot-proof software package or hardware appliance becomes its own vector for an attack on the unwitting homeowner. (Previous comment.[2])
>2. The eventual centralization on top of the most well-run versions (like Matrix)
Yes, this is the most unsolved problem by far: costs. One can write or decree that a protocol specification to be distributed but it doesn't change the fact that the real-world implementation of that protocol always costs real money and the money spent is not distributed. That leads to centralization. (Previous comments.[3][4])
I've been studying the decentralization space for years and have read every whitepaper about Diaspora, IPFS, Filecoin, Sandstorm, Mastodon, bitcoin, etc and nobody has figured this out. (Suggestion to HN readers... every time you see a proposal for a new decentralized protocol, do a Ctrl+F for "costs" and "money". It's a very under discussed topic.)
Real costs of hardware such as cpu+disk+bandwidth and costs of human labor such as trust+maintenance are inescapable and it is the #1 puzzle to decentralization.
E.g. Mastodon was recently suggested in various HN threads about "alternative to Facebook". Hmmmm.... if cpu+disk are not free... who's paying for the mastodon servers?!? Well, I see that several volunteers run Patreon crowdfunding to keep the lights on.[5] That's very noble but that funding model is also not scalable. That recreates how many BBS (bulletin board systems) were run in the 1980s with dial up modems. Only a small group of enthusiasts were users on each server.
[1] https://news.ycombinator.com/item?id=15526089
[2] https://news.ycombinator.com/item?id=11861683
[3] https://news.ycombinator.com/item?id=14125730
But it's not exactly about the costs either, but rather about incentives. Right incentives can drive funding into adoption of the technology. I mean people being able to profit from other people using the technology is what can bring funding, promotion of the technology and adoption.
Would there ever be a centralized provider without there being an incentive for it? Would such an incentive ever exist without an accompanying incentive to leverage your dominance to keep competing providers out?
Even email has the same problem.
A truly p2p/f2f messaging / social platform that uses only text can get away with kilobytes of data per hour if you think about the amount of text the user is capable of typing and reading.
Even email has this problem. It's virtually impossible to change email providers unless you happen to own your own domain that you use for email instead of "@gmail.com" or "@yahoo.com" like most people do. Having your own domain works, but then you have the burden of dealing with the server that responds to that domain.
Strangely, one system has solved this, and they solved it decades after initial deployment: phones. Used to be, if you moved or switched phone provider, you had to get a new phone number. These days, you can "keep your phone number" when you switch providers.
The technology behind that is called Local Number Portability and is managed by the Number Portability Administration Center [1]. That's a private organization, but I think has some federabal obligations for fairness [2]. That sounds a little similar to how domain name registration and ISBN numbers are managed [3].
There's probably a lesson here. Maybe part of the solution for federation and privacy is a single authoritative registrar for root identifiers (i.e. the "@blah" part of your identity). And then all of the federated systems sit on top of that. The individual user owns that identifier instead of the server.
I think you need some kind of level of indirection like these, so that a user's identity isn't directly bound to the federated server they happen to be using today. Basically a mutable map that users control where they can map a logical identity to the current server they are using. So, if your, say, Mastodon ID was "munificent@muni_root", Mastodon would ask muni_root, "What's the current Mastodon server ID for user munificent". If I move from one Mastodon server to another, I just update that one record and everything keeps working.
We could, I suppose, use domain names for this. But in practice (1) that space is already getting used up and (2) the usability is low and the overhead and costs high because that's not what it was designed for.
[1]: https://www.npac.com/number-portability/how-lnp-works [2]: https://www.npac.com/the-npac/about/neutrality [3]: https://en.wikipedia.org/wiki/International_Standard_Book_Nu...