decentralized

From IndieWeb
Jump to: navigation, search


decentralized is an adjective used to describe a system (often a network) where central authority is diminished, delegated, or possibly even eliminated (in that last case also known as fully decentralized or distributed). The system or network can be any connected group: computers, people, governments. It is often misunderstood and misapplied.

Real World Misuse

The term is often used by monoculture social network (web or other) projects to at best inaccurately describe themselves (monoculture projects are centralized by definition, having a single point of failure of their particular implementation). When such mislabeled projects fail, they have the unintended consequence of teaching the market to expect anything labeled decentralized to fail.

Academic Definition

In a fully decentralized topology there is no one, true canonical definition of a concept. It is up to the individual node to determine what is and what is not "true".

Rohit Khare

centralized distributed decentralized.png

Khare wrote in his thesis summary section 2.4 Definitions:

  • A centralized variable requires simultaneous agreement between a leader and all of its followers.
  • A distributed variable is determined by applying a shared decision function over all participants' inputs.
  • An estimated variable is in simultaneous agreement only a fraction of the time.
  • A decentralized variable is determined by applying a private assessment function over other trusted participants' variables (or estimates of those variables)

Khare wrote in his thesis Extending the REpresentational State Transfer (REST) Architectural Style for Decentralized Systems (2003) section 2.3.4 Decentralized:

Decentralization is fundamentally different from either centralization or distribution because it permits multiple, distinct, simultaneously valid outcomes for the same decision. It also differs significantly from estimation, since several independent agents with their own estimates of a centralized or distributed variable can end up using multiple, distinct values at the same time, they are all attempting to recover a single outcome for the shared decision. In a consensus-free system, each agency’s updates merely represent its own opinion — and comparing more opinions from other, trusted agencies can increase the accuracy of one’s own opinion. The statistical premise behind this is that the errors of each agency are independent: they can’t all conspire against you. Thus, a hallmark of decentralization is its specific emphasis on agency conflicts — a shift from matters of fact to matters of opinion.

Example Chat Topologies

INDIEWEB = //indieweb.org
OFFICIAL_CHAT = //chat.indieweb.org/indieweb
ALICE_CHAT = //alice.example/chat/indieweb
BOB_CHAT = //bob.example/chat/indieweb

Centralized

Alice signs in to INDIEWEB and posts a message to OFFICIAL_CHAT. Copies can be backfed to her own site ALICE_CHAT.

Distributed

OFFICIAL_CHAT is the canonical resource for the "IndieWeb primary chat channel". Alice may reference this resource on her own ALICE_CHAT using rel=canonical. This would imply that her channel is a non-canonical alternate for the true IndieWeb's version. She posts to her own site ALICE_CHAT, publishes them to OFFICIAL_CHAT and from there her message is relayed to all other participants, all of whom respect the message as true and correct (author, content, timestamp). Bob renders Alice's message on his own BOB_CHAT.

Estimated

Take the distributed example above but instead of relaying through OFFICIAL_CHAT Alice delivers the message directly to each participant directly. Bob checks OFFICIAL_CHAT to see if ALICE_CHAT is listed before accepting and rendering her message on his own chat BOB_CHAT (80% certainty). If this is the first time Bob sees Alice he may grey her text for the first hour until she's proven a trustworthy participant (95% certainty).

Note that in this public case a fair estimation can be made easily and the risks of failure are low. Consider alternatively a private chat where you risk revealing sensitive information with Alice before fully trusting her.

Decentralized

In this case you can remove OFFICIAL_CHAT completely. Alice posts to her own site ALICE_CHAT. Bob joins the channel by posting to his own site BOB_CHAT and publishing to Alice directly. It is entirely up to Alice to determine if Bob is a trusted participant of the channel. If she decides that Bob is not to be trusted, she can squelch his publishes. When Carol joins she chooses who to trust.

Note that Tina from the IndieWeb can share trust information on new participants allowing for some degree of centralized trust in an otherwise decentralized topology.

Note that it is a certainty that a chat channel with tens, let alone thousands or millions, of participants will diverge over time as a consequence.

See Also