In which I consider how a peer-to-peer social network could be run for its users, by its users, and the benefits and disadvantages of such a scheme.

Warning: this post contains quoted strong language.


I use Facebook and Twitter; they have re-united me with old friends, and provide an engaging means of contact with them that I once thought would be by email. I don’t use email so much for social contact these days; spam made it something I only check rarely. It’s heavyweight, compared to the style of conversation that social networks provide. So, I am indebted to Facebook and Twitter, and will continue to use both.

But there are some disadvantages with them…

The cost of social networks

Social networks such as Facebook and Twitter (and Google+ and whatever Microsoft might build) are not free. You do not pay money to use them, but providing the service is a significant cost to their owning companies. The hardware / infrastructure employed by centralised social networks has to be paid for; engineers need to be paid.


Typically these costs are mitigated through advertising, and since the networks can analyse your graph and conversations, this will tend towards targeted advertising.

I’m starting to see adverts, sponsored stories, sponsored tweets, in my timelines and – in the case of Twitter’s despised treading topics Quick Bar – in your face with no way to avoid it. Facebook’s tracking of who likes what now provides a regular source of unsolicited dross at the top of my timeline.

I have a peculiar dislike of advertising which won’t be shared by many, I’d admit. I rarely watch commercial TV. I use ad-blockers and anti-tracking plugins. I choose not to be bombarded by these distractions; the false world the advertisers foist on us. I choose not to include the downloading of adverts in my monthly bandwidth allowance. I’d like the choice to block adverts on social networks, although I understand that this is not in their interests.

I’m in agreement with Banksy, who said:

People are taking the piss out of you everyday. They butt into your life, take a cheap shot at you and then disappear. They leer at you from tall buildings and make you feel small. They make flippant comments from buses that imply you’re not sexy enough and that all the fun is happening somewhere else. They are on TV making your girlfriend feel inadequate. They have access to the most sophisticated technology the world has ever seen and they bully you with it. They are The Advertisers and they are laughing at you.

You, however, are forbidden to touch them. Trademarks, intellectual property rights and copyright law mean advertisers can say what they like wherever they like with total impunity.

Fuck that. Any advert in a public space that gives you no choice whether you see it or not is yours. It’s yours to take, re-arrange and re-use. You can do whatever you like with it. Asking for permission is like asking to keep a rock someone just threw at your head.

You owe the companies nothing. Less than nothing, you especially don’t owe them any courtesy. They owe you. They have re-arranged the world to put themselves in front of you. They never asked for your permission, don’t even start asking for theirs.

I think he has a point: advertising could be opt-in, controlled by me: I would follow those companies/organisations in which I have an interest, and they post adverts and other information for my consumption. If I choose to I unfollow, that’s my prerogative, and I should never hear from them again. There should be no way in which they can sell my address to other organisations, as typically happens when signing up to less-than-scrupulous sites using your email address. An organisation’s right to put information in my timeline must be granted by me, be revocable by me, and be binding. In building a social network, I would not view my friends as a sea of eyeballs/attentions to be advertised at and provoked.

I don’t begrudge companies wanting to promote themselves and their products, but I find out about so many things by word of mouth/tweet, and recommend things to my followers: if your product is not good enough to go viral because of its inherent quality or your company’s ethics, you may want to reconsider its viability. Natural selection, invisible hands of markets making significant gestures, and whatnot.

Of course, blocking adverts would deprive the social networks of some of their income; the ad-blocker I use, Ad-Block Plus recently introduced an option to allow or block selected, non-intrusive adverts; I exercised my choice. Facebook have recently prevented one such ad-blocker, F. B. Purity, so I’m stuck with their dross.

So if they are not supported by adverts, how are the networks to sustain themselves? Would you pay for access to a social network? I might, depending on cost. I suspect many wouldn’t pay. It probably wouldn’t yield a sustainable income – take the example of smartphone apps: Apps typically have a paid version and a “free” ad-supported version. I heard that the ad-supported versions typically generate more money than those that people pay for in order to remove the annoyances. Note: App.Net exists precisely to cater for those who do not want an ad-supported social network. Can it sustain itself?

I think it’s odd, supporting yourself by irritating your users. Perhaps the advertising will become increasingly irritating/invasive to the point of this model being rejected by users: however, the continuing existence of commercial TV is an existence proof that suggests this is unlikely to happen. The BBC exists in its current form because it extracts an entertainment tax from its viewers. Were it not to do this, it would be annoying us with adverts to generate income. So, the advertisers are expecting us to acquiesce, and accept their intrusions.

There is a way that a social network can be built, sustainably, without advertising, but before I discuss this, there are several other aspects to think about…

Privacy and interception

Having a large user base using social networks as a centralised communications platform is also great for regimes seeking to intercept, censor or perform sentiment analysis of messages.

I believe that we are entitled to some privacy. A decentralised system might make such interception slightly harder. Given that our home and mobile Internet traffic is monitored, then even decentralised social network traffic would be visible. It would just be slightly harder to tie all the messages together. The system I’m proposing uses secure communications for all inter-node communications.

In the context of a social network, I think Twitter’s model of privacy is what I’d like to emulate: my posts are all public, but I can send private messages to specific followers if I follow them.

The spooks can see all the public stuff, and if they want to, can throw their weight behind a brute force attack on the private messages. I am under no illusions that any of this would prevent them from reading what I might consider secure: I’m assuming they have the kind of resources and abilities that might appear in a Dan Brown novel.

A decentralised system (see future post describing the mechanisms I’m considering) would necessarily store a user’s messages on multiple systems, encrypted, possibly distributed worldwide.


Centralisation also means that regimes can censor communications. In extreme cases, entire countries are disconnected from the global Internet, as we have seen during the Arab Spring, and recently in Syria. Specific sites such as Facebook or Twitter can be blocked, although proxies and Tor can reduce the impact of this.

A decentralised network communicating over HTTP could only be blocked using some form of deep-packet inspection. I’m sure the system I have in mind could be disrupted significantly; there are points of failure, but once working, a significant network disruption would cause partitioning, not complete failure. When the network is restored, the partition would be automatically recovered. (He says, glibly, waving hands frenetically around the CAP theorem and FLP impossibility result)

Privacy and the trend towards total openness

Social networks have been known to make changes to their settings that led to reduced privacy, without notifying users. Some networks have complex privacy settings that may be more open by default than you may like. There are also attempts to leverage their huge user base to become an identity provider or a messaging provider. Their smartphone apps scour your contacts, upload and modify them.

There is a trend away from private to public, controlled by these networks, without the users’ consent. This is not democracy.

Facebook recently gave up their voting system, as voting turnout was very low.
I’d like to think that users would want to be able to express views on how the system expands and is developed. So I’m thinking of providing a voting system where the users choose how the system evolves.

The basic simple privacy model should not change, though; it should not be made more complex than it is.


There’s a cynical notion that if you’re not paying for it, then you are the product being sold.

What would it be like if we had a social network that challenged these assumptions?

Something for nothing

To build a social network without incurring any costs, without the need for advertising to sustain it, without building server farms will require a system that users build themselves by their participation; one that self-organises, self-maintains. It must be trivially easy to set up and get started. Anything that involves anything remotely technical will not get used (see Diaspora*). It has to be as easy to use as Skype. It has to be decentralised, using peer-to-peer technologies, as I can’t afford a central server, nor do I want to be the administrator.

So this is my current überproject. It involves peer-to-peer communications (using JXTA as the underlying network transport), embedded databases, gossip protocols, web user interfaces and all that they entail.

It does not preclude the making of money: not everyone will want to run a node; many will not be able to, if they do not have a traditional computer or if they have moved to the cloud, and only use a tablet or smartphone. In these cases, they can pay a small- or micro-fee for a subscription to access the network via a server that’s maintained by a responsible company. (Perhaps there will be a race to the bottom between hosting companies, as we see in the App Stores?!)

You could start a company selling a Raspberry Pi pre-loaded with a Linux distribution, JVM and the node software. Add it to your home network, create your account, and off you go!

It does not preclude companies creating a presence for advertising, but won’t rely on them for funding. Such companies will not be given any special privileges to push advertising at users.

It does not prevent a determined power from intercepting traffic, but should give an element of privacy with user-to-user messages.

You pay for it by running a node. If you can spare the bandwidth, you can run an Internet-facing node, allowing other users to relay through it, improving access. Generous donors and philanthropists could run nodes on high-availability/performance servers in data centres.

Once you have a node, you create an account, then log into your account on the node with a browser. Then you can follow others, read their posts, and port your own messages.

Subsequent posts will describe the features I’m proposing, and the implementation of this system in more detail.

Are you in?