DEV Community

Discussion on: How would you define "decentralized"?

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

Decentralized means a system can function without a designated central authority. Agents in the system perform their duty of their own accord and coordinated with with other agents via direct, or neighbour, peer communications.

The key question to ask is whether if any particular agent is removed from the system, does the system continue to work?

There's a bit of a tricky situation when a network has a dominant member. For example, if one collective of bitcoin miners makes up 40% of the network, their removal could effectively shut-down bitcoin. In theory the other agents would continue, but sometimes practical concerns may dominate. In some opinions, networks with dominant agents are not decentralized. Dominance also allows agents to corrupt, or take over the network.

There's another interesting question about whether master elections qualify. Should one agent be elected master, via protocol, and then it gets removed, and another is elected to replace it (all automatically from the agents). This meets some criteria of a decentralized system, but all information may still flow through one designated master. In some systems this is not an acceptable decentralization.

We have to distinguish between theory and practice as well. Many systems could be decentralized, but in practice are not. Git is a good example. Git itself is decentral, as patches can take any path between agents. In practice GitHub, or the Linux Kernel Project, become central authorities.

Most of the definitions of decentralized systems apply to non-technical domains as well. Disaster relief is also something we'd like to have decentralized -- we don't want local organizations "agents", being unable to respond due to a federal organization being lost.

Collapse
 
ben profile image
Ben Halpern

Would you say the decentralization features of GitHub are lost in world where few truly make use of those features? Do you think things have a chance at swinging back that way or have the "hubs" of the world won?

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

Hubs are extremely convenient for business processes. They make it easy to write a lot of features that people want to use on a day to day basis.

Note that only git can be decentralized, not github. Most of our decentralized protocols deal with very limited things: BitCoin is a financial ledger, BitTorrent is a protocol, there are some Dbs, but limited. Consider now that GitHub offers git, issues, authentication, wikis, searching, etc... I don't even think we have enough combined knowledge on how to make that decentral.

Not all things need to be decentralized. It's mainly required for critical things that need to work in the face of disaster and free from snoopping or interference. There are plenty of good use cases here, like Internet fundamentals (traffic and DNS), chat programs, file sharing, Tor network, etc.

Thread Thread
 
ben profile image
Ben Halpern

What might be some examples of decentralized systems offer efficiency. In a lot of these examples that component is traded away for robustness or privacy. Are there good examples of things becoming more efficient due to decentralization?

Thread Thread
 
mortoray profile image
edA‑qa mort‑ora‑y

That's a good question, and I don't have an example. Distributed computing has many examples, but generally removing "master" or "coordinating" nodes almost always has a performance impact.

In real-world processes (non-computing) I think there are several examples. This usually results though becuase the central nodes, government or corporate, are sluggish to respond to their distributed "field" agents. Being able to act independently is certainly a boon in such processes -- though they ultimately report to a central authority as well.

In computer we tend not to have central servers that are so sluggish as to be a bottleneck. When they are, our response is to duplicate them, and keep duplicating them.

There are lots of ways to improve decentralized efficiency, but I guess efficiency is just not a reason you'd choose decentralization.