So first I would suggest some sort of global service for translating user friendly names to internet addresses. Something that might have a bit of centralization at the top, but ultimately a decentralized network of authority of sub-namespaces and protocols for building servers that can translate these names to addresses. This system should also support attaching small bits of metadata to these names.<p>On top of this I propose building a protocol for store and forward messaging. Something where it is possible for anyone to develop a server that speaks this protocol. Instances of these servers can be registered in the namespace above and this is how these servers can find each other to push data around. Anyone should be able to run these servers, providing service just for themselves, small communities or even large organizations, businesses, institutions or resold commercial services.<p>Lastly I propose an application layer on top of this. This application layer has two components:<p>1) A suite of standard protocols for user agents to contact these servers and download user data
2) A suite of standard protocols for rich content, encryption or group distribution<p>From these pieces, it would be totally possible to build a giant decentralized social network that could present the same sort of data we see on social networks. While things could start with simple messaging, similar features to what we find on social networks could be built.<p>Of course there's the problem of bad actors and abuse, but it seems this could be solved by merely blocking all communication except for that from a list of known senders... We could call this the friends list.<p>It would be a lot of work to build and get right, it's a shame nothing like this exists today.