I propose that decentralization requires:
- a common, neutral protocol (prevents protocol centralization)
- multiple independent, competing clients (prevents client centralization)
- multiple, independent content aggregators, or direct connections between all leaf nodes (prevents architectural centralization)
- governance that, one way or another, makes it practically impossible to change the neutrality of the network (prevents governance centralization)
- user identities or "accounts" on the network that can be wholly independent or part of arbitrary different nodes, as they wish (prevents identity centralization)
- user data is owned by users individually (in most cases), or designated agents/inheritors, or perhaps no one at all (prevents data centralization)
- user follow lists are wholly controlled by the individual user (prevents social networking centralization)
- a certain ease of use (prevents geek centralization)
I think many systems that boast of being decentralized are in fact decentralized in one one or a few of these senses, and simply ignore the rest.
They're all important. Every single one of them will either prevent the movement from happening or else will co-opt effective control of it, permitting censorship.
By the way, please feel free to start your own topics.