Distributed Protocol for Social Networks : never more needed than now

I still have a Firefox t-shirt labelled « Take back the web ». I think this goal hasn’t been more important than today, with the rise of so many social networks.

I’ve already written my opinion on this here and here, and I’ve read this on Slashdot recently, that seems to back it a little :

With the failure of email on the spam-fighting front, the weaknesses of DNS to properly enforce trust in network communication, I think it’s time to build an ecosystem of social communication, not based on a company or even a free software (as did Diaspora), but on a set of protocols that could allow messages, information, search, affinities, trust and money to be distributed and exchanged between identities on the web.

The ideas from virtual distributed money can maybe be reused to some extent, but other methods, for instance to deal with distributed affinities or search needs to be invented.

For once, public intervention may be a good idea. I’m pretty sure the EU would be wise to invest a lot of money in this envdeavour, to break free from our US friends and their companies.

Alternative to mail, blogging, micro-blogging, multi-facets publishing, chatting, etc.

So after that yesterday post about an open protocol that could cover all of our social needs while preserving privacy, I’ve thought a lot. One thing that stroke me is how much the concept of blogging/publishing/chatting is the opposite of how the mail system is made. This brings me to some interesting ideas (or not, you tell me)

The internet mail is a very good image of the real mail system : you’ve got

  • post offices that collect departing messages near you (SMTP),
  • mail agents that carry the messages from post offices to post offices (until it reaches the post office near the receiver)
  • and finally mailboxes that stores the messages for whom you’re the receiver. It’s a model based on minimizing the distances, and that’s probably not the best model for the internet (even though it has some good

Now how would it work if emails where following the publishing way of sharing information : S wants to send a message to R, so S publish it on its server (which also serves for blogging, sharing photos with family, etc.). S is the only one on earth that can talk to its server, When the server receives the publication, it contacts R’s server, telling him that there’s a message from S for him. During the short contact, serverS sends a key to serverR that will serve to retrieve the content of the message. There is no reason that serverR would really want to retrieve the message, only when R goes online will she see that S has sent her a message, so she might decide to download it (or it may be done automatically if R knows S and the message is small enough). The advantages :

  • S can discard its message if R hasn’t read it
  • No duplication of data (even when sending a mail to many people)
  • SPAMMING is be much harder
  • Adding/removing trusted sources would be in control of the user, no need to write rules to send undesired mails to trash
  • Side effect : your social network IS your set of trusted sources,
  • Double side effect : every publishing could be advertised in the same way (to your subscribers/followers, for instance)

The drawbacks

  • How R receives the message would depend on serverS’ ping and bandwidth, so the quality of your email service would actually impact your receivers, not you… (that may be a good thing actually)
  • A lot of private/public keys and symmetric keys. I don’t see this as a real drawback either
  • You complete…

So, could we

  • Get rid of SPAM ?
  • Have an open, privacy respecting, distributed, secure social networking system ?
  • Have email service providers that would compete for the quality of service, not for keeping their customers in prison ?

Sure we could :)

Diaspora the distributed social networking system

After I wrote my last post, I immediately thought « Darn, I’ve forgotten to talk about Diaspora ». Fortunately, nobody has flamed me yet…

So here it is, Diaspora is still in its infancy, and actually is still in closed beta status, but it has already been acclaimed by many as a decent alternative to facebook. However it is hard to believe that it will really strikes – yesterday I stumbled on a post while looking for something about their protocol : they seemingly may have started the project the wrong way, writing the implementation before thinking about an interop protocol. It’s certainly not completely bad. Writing an implementation of a protocol is a mandatory step to find its weaknesses. From a company point of view, actually, this is quite a good approach. Designing a protocol is a cumbersome and expensive thing to do. If interoperability and openness is not your primary goal, then the Diaspora way is probably the fastest way. Going fast is not the best way to go far, though…

Standard protocol for Social Networking

I was recently wondering about the fact that we where at the very beginning of the social networking era. And I was thinking to myself that, like HTTP vs. hypercard, the only way to deal openly with social groups real-time sharing needs is to develop an open protocol that would allow the development of social accounts (in the very same way that you have mail accounts) that you could easily create and control. I believe we really are at the pre-standard age of the phenomenon (or should I say, the completion of the phenomenon, since emails and IRC where bits of our social life).

I’m not the only one to think that way, of course : Adrian Thurston has developped the distributed social networking protocol which may well be the right way to do it. Will he be the next Tim Berners-Lee ? Today it’s probably not as easy as in the good ol’ times. When TBL came up with the HTTP protocol, its most proeminent private competitor was HyperCard, a $50 Apple application that actually shipped with all new Macs (we were in 1987). So on the bad side, today, Mr. Thurston would have to fight against one big company (FB) that is thought to handle a significant amount of the social traffic (this is not true, though, blogs, emails, chats, phone calls, face-to-face meetings, still hold the largest part of this social traffic) On the bright side, several people are a bit pissed off by the success of FB. Google’s Orkut and Buzz are attempts to jump in the SN/micro-blogging phenomenon, and Apple’s Ping is a miserable attempt to sneak iTunes users into a social network. So if someone proposes a way to remove the « forerunner advantage » effect that currently benefits FB. So a question arises : while Google almost always chose to undermine competitors positions by pushing open standards efforts, why did it not do it this time for social networking ? It would be quite simple to allow deep interop with Social Networking sites if your had social identities held by your email addresses. Just transform mail servers into identities servers, using private/public key for publication/sharing, a real-time push/pull API, and you’re almost done ! It would probably not even destroy Facebook, as it would remain a great contender because of what it really brings to the users : an open environment for application integration. But it would also open the field for a lot of new competitors bringing interesting innovations.