Eli5 why aren’t decentralized apps more popular?

650 views

Is it an engineering or adoption issue?

In: Technology

4 Answers

Anonymous 0 Comments

Which decentralized apps are you thinking of?

Anonymous 0 Comments

I looked into some of such apps, long ago. There are many problems:

**Storage**. If you’re talking about storing data semi-permanently, you also need distributed storage. That’s usually done by contributing some amount of disk space to the network. Some systems allow you to “pin” whatever you want. Some, like Freenet in my understanding are sort of probabilistic: you upload stuff, but have no control over where it goes. It might remain in the network, or not. Storage is also very unreliable. People turn off their computers, lose interest, lose data, etc.

Typically there’s some sort of propagation and caching. This means that if you have something everyone likes, it’ll probably stay. Upload something of little interest and it quickly vanishes. So the network as a whole heavily suffers from bit rot, and prioritizes popular content like porn over more useful things that are less immediately interesting.

Storage may be very limited capacity, since content needs to be extensively duplicated, and users may not be contributing enough.

**Networking**. Distributed networking is messy. Failures are common. Low bandwidth and high latency are common. Distributed networking also tends to consume mass amounts of bandwidth, something an ISP might be unhappy with.

**Lack of regulation**. If there’s no central authority that can tell you that your politics are unwelcome, there’s no central authority to tell anybody spam is unwelcome. The network can be easily attacked by uploading mass amounts of junk. Forums and such can be spammed directly. Distributed storage can be attacked by uploading mass amounts of junk that will push out the more interesting data.

**Bad communities**. Guess who’s most willing to tolerate all this? All kinds of not so nice people. The network will tend towards illegal content, drugs and crazy politics. Nobody with normal interests really needs to bother with putting up with all the limitations, so you get people who do have good reasons.

**Lack of altruism**. Participating in a distributed network requires contributing resources that are not to personal benefit, and might even go against personal benefit (from slowing down your connection, to endangering the user legally). It doesn’t help that the main audience for such things isn’t that altruistic.

**Limited growth**. The networks get quickly found out by hardcore adherents and then… nothing much seems to happen. Probably because a lot of people find such cesspits unpleasant to wade through, and eventually even the hardcore adherents start realizing that mentioning such places in polite conversation doesn’t look good.

Anonymous 0 Comments

A centralized app is usually easier to write and easier to operate. Reddit is centralized, and that makes it dead simple to use. All I have to do is load up the web browser and I’m done.

If I wanted to use a decentralized version of Reddit, I’d probably have to have an instance of the distributed Reddit and run it locally. I’d have to have at least a bit of understanding about how distributed Reddit works. That’s going to be a barrier to entry for some (maybe a lot of) people. Email is technically a distributed system, but even that has tended towards centralized services like Gmail. Hardly anyone runs their own email servers.

Distributed systems are hard to monetize. Facebook and Reddit being centralized, mean that each of those companies has a lot more control over those systems. If Facebook were distributed, then parts of the Facebook Network would be outside of Facebook’s control. If another Facebook Network provider becomes popular, then they could actually be in competition with Facebook for revenue. It’s rare that a company would deliberately create competition for themselves like that.

Anonymous 0 Comments

Decentralization adds additional layers of complexity. Engineers like to avoid complexity. In a centralized model it’s usually much easier to control the environment of the application, which helps avoiding bugs. And if there are bugs, they are easier to trace and eliminate.

I’d use a decentralized approach only for use cases, where decentralization offers a substantial benefit over the simpler centralized model.

For users, decentralization also can have issues. There are multiple distributed components involved, but they still have to talk to each other. This need for distributed communication introduces network overhead into the system, which users may experience as lagging performance. Additionally, users might have to configure their home network to allow talking to the distributed parts. In that case, some of the complexity of the distributed app is bleeding through to the users too.