Skip to content
loading...
markdown guide
 

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.

 

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?

 

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.

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?

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.

 

A few weeks ago, my government's Agricultural Portal (where you can manage your tenders for fund support also) was taken off, because there was a building on fire next to it and they had to cut the power in the neighbourhood.

That's centralized...

 

Decentralized is highly dependant on the context of the items.

For example, in the torrent world it’s decentralized to a degree - there’s always list servers that are responsible for connecting peers.

Now take something like fully autonomous decentralized systems - these systems (if implemented properly) could theoretically scan the internet and find other hosts - it’s a tedious process but none-the-less it’s a truly P2P decentralized platform. Once peers are connected they share information about other peers they’ve met, and it’s a continuous hunt for peers.

 

I don't know if I have a lot to contribute to the meaning of the word, but I'm curious what people's take on the dat protocol, the Beaker browser, secure scuttlebutt and the like is?

 

They sound interesting, but I haven't gotten around to playing with them.

Classic DEV Post from Sep 1 '19

Refactoring — oops, I’ve been doing it wrong.

Avoiding refactoring mistakes.

Ben Halpern profile image
A Canadian software developer who thinks he’s funny. He/Him.

Sore eyes?

dev.to now has dark mode.

Go to the "misc" section of your settings and select night theme ❤️