Decentralising Facebook with Blockchains and Userfeeds.
Update from 11.10.2016: we’re actually building a platform based on the ideas from this article. The concept has evolved but if you’re interested — please leave your email at userfeeds.io. We’ll notify you when we launch the test version.
Part 1. The Problem.
Almost two years ago I wrote a blog post ‘Why the next Facebook will be owned by you’. It became clear to me at the time that the core invention behind Bitcoin, the blockchain, is much bigger than just sending money online. I argued that the concept of decentralised digital ownership, which Bitcoin applied to money, can be extended to other forms of value.
What I realised at the time was that owning bitcoins meant owning a stake in the underlying network. Holders of bitcoin not only owned a particular number of currency units. These units, apart from being a unit of exchange, were ‘shares’ in the future success of the entire network.
For the first time in history, millions of people around the globe could align their economic incentives by downloading and using the same software. This realisation blew my mind.
What if we could use the same technology to align our incentives in other forms of digital value exchange?
To illustrate the point, let’s use the example of Facebook. Facebook as a company is a hybrid entity.
It uses a 21st-century technological stack that allows a decentralised creation of value — people create value for each other on Facebook by uploading millions of posts, photos and videos. If you want to access this content — you have to join Facebook.
But economically Facebook operates on the 17th century ‘legal stack’ of a joint stock company. It has to generate returns for its shareholders and legally that’s the primary purpose of its existence.
So value created by millions of users is extracted and converted into capital returns for a small group of FB shareholders. The mechanism used to achieve that is simple — sell users’ attention to advertisers.
I use Facebook as an example here but what I described is a general economic model of the Web 2.0. Leverage technology and free communications to aggregate users attention (forums, social networks, apps) and then convert it to capital via ads, to generate returns for a few shareholders.
But there’s a growing misalignment between the interests of users and companies operating the Web 2.0 platforms. It’s caused by the exponential growth of information while our attention stays limited. Getting attention and converting it to capital (by making people click on ads) becomes also exponentially harder.
To counter this, publishers and platforms respond with more clickbait, sensational headlines and intrusive advertising.
If users then start blocking ads, advertisers move away from banners into the ‘native ads’. So the game never ends.
To address this problem, we would have to reimagine the economic foundations of the Web 2.0 and design proper technologies around them.
Such reinvention was technically impossible even a few years ago. But today with the evolution of the Bitcoin ecosystem and new technologies such as the Ethereum blockchain & IPFS decentralised storage we can start seriously experimenting with alternative models.
There’s a lot of questions that come to mind when you start exploring this topic.
- How to build a system where various centralised components of Google or Facebook can be ‘uberized’?
- Is it possible to design incentives in decentralised social networks to achieve similar alignment that Bitcoin did with digital money?
- How to reward contributors with a stake in the network that’s proportional to their contributions?
- Authorship, content monetization & advertising — what is their meaning in this new context? Do old definitions still apply?
- How to address the issue of subjectivity in the evaluation of users contributions.
- How to combine technology, economics, UX to create experiences that are easy to understand and feel natural to the end users.
- What metaphors should be best suited to define and explain this new techno-economic model? Decentralised apps, decentralised websites? Or maybe something else.
Together with Kuba Kucharski, one of the most talented developers I know with experience in Bitcoin and Ethereum, we spent many hours discussing these topics and we came up with the concept of ‘userfeeds’ that might form the basis of decentralised social networks.
While we’re still prototyping the PoC we thought we’d share our thoughts with the wider community.
While it’s not a technical whitepaper (we’re working on that), but we believe it should be still valuable to share it at this point.
Part 2. Decentralised Userfeeds — the architecture for a decentralised ‘Facebook’ (and much more)
The web experience today is organised around streams.
Your Facebook wall, Twitter stream, Instagram feed, Reddit’s subreddit or even a notification center on your smartphone are all streams.
Essentially, these streams or data feeds are all series of time stamped events, recorded in platform’s databases, assigned to authors and content.
If you create new content on any of these platforms it’s saved to your personal feed and then depending on the indexing and ranking rules of a given platform, it becomes visible to other users.
The issue is that your data is locked up in the platform silo and can’t be ported elsewhere. Only the platform operator has full access to your data and can offer indexing, filtering and UIs that can’t be offered by third parties. Third parties are only allowed to access data via APIs which are limited to secure the operators monopoly.
So even though you create your own data feed and store it on Facebook, you can’t use this data outside of Facebook.
The emergence of Artificial Intelligence and machine learning exacerbates this imbalance even further. Platform operators can gain competitive advantage by training their AI models on huge datasets created by their users.
In the case of advertising platforms such as Google and Facebook, users effectively train the platforms to serve them more customised advertising.
Because it’s impossible for competitors to access the raw data layer and create alternatives, we’re stuck with the systems that will always direct our attention to content that’s ‘monetizable’ for the platforms.
Is there a solution then?
The Bitcoin experiment proved that it’s possible to create open data platforms which are not controlled by any single party. So in the case of Bitcoin, the blockchain contains the persistent, immutable ledger of transactions. Users can only add new transactions to the ledger but the history cannot be changed. The blockchain is public, readable by anyone and contains the objective version of what transactions took place and in what order.
The idea of Userfeeds is to run a similar ledger, on top of existing blockchains, but instead of time stamping transactions users would timestamp links to content stored on the IPFS storage layer.
The main difference with the financial transactions on the blockchain, is that the blockchain wouldn’t verify the content of these links. The blockchain layer is ‘dumb’ — for it just proves that a particular user time stamped a set of actions at a particular time.
The ‘meaning’ of this actions would be interpreted on the layer above.
By announcing their actions on the blockchain each user over time accumulates a unique footprint of behaviours. All their actions are persistently stored on the blockchain and visible to the indexing bots.
This is what we call a Userfeed. A unique history of actions such as content uploads, likes, votes etc, recorded on the blockchain and controlled by a particular identity.
As thousands of Userfeeds run in parallel on the network, adding new content and actions to their history, a new type of the social open data layer is created.
How we then evaluate these actions and present them to the end users?
This happens on the layers above the blockchain with decentralised indexes and interfaces.
Similarly to how Google indexes the web and offers a search engine UI to the end users, multiple parties could run their own equivalent of ‘Google bots’. These bots would scan, index and filter the public userfeed layer.
The same mechanism would work with UIs. A marketplace of UIs could emerge offering users competing views into the open userfeed layer.
The key difference though is that the ‘transaction data’ would be owned by the users at all times.
Users could switch to a different UI at any time and maintain their reputation and history. Because switching costs would be negligible indexes and interfaces would have to provide the best possible ‘return-on-attention’ for their users.
Why this model aligns user incentives better than the existing one?
By contributing to the underlying open data platform, users build their reputation stake in the entire system. If the platform grows and and receives more attention, the early joiners have the the longest ‘reputation chains’ and therefore will be more visible than the new joiners.
Attention is valuable so users with a lot of attention (high visibility) will be able to monetize this attention directly. Right now, Google and Facebook have monopoly on monetizing attention that’s aggregated by their platforms by inserting advertising into interfaces and indexes they control.
Users don’t participate in proceedings generated from the attention that they attracted with their content. With Userfeeds monetization is built directly into the protocol.
How users can monetize their userfeeds?
Userfeeds can incentivize each other to include certain actions using simple smart contracts and underlying value token of the blockchain (most likely Bitcoin or Ether).
So let’s imagine you are Kim Kardashian and you’re popular on the userfeeds based version of Instagram. Today, if a brand wants to promote their products in your Instagram feed they have to approach you directly or through a middleman and arrange a deal.
With Userfeeds they can directly send a bid offering money for being included in your feed. This way your Kim Kardashian persona can directly monetize their attention and fame in context of a decentralised Instagram.
How would this work? (the bitcoin token is used only as an example — depending on the chain used this would be Ether or other token)
- User controlling the userfeed #1 sends a bid to the user controlling the feed #4
2. In this example, user #4 performs a moderator role and user #1 wants to incentivize the moderator to review their submission earlier.
3. Smart contract escrows the money and checks whether the content hash specified by the user #1 appeared in the user #4’s feed.
4. User #4 reviews the content, posts its content hash into their own feed and pings the smart contract.
5. Smart contract verifies that content hash in moderator’s feed matches the one that was submitted by user #1. It releases money from escrow to the moderator.
This article is just an introduction to a much larger set of challenges related to building decentralised social networks.
In the following posts, we’ll look into possible applications and dive deeper into the economics of attention that the concept of Userfeeds is based on.
We’re aware that this outline is missing many technical details. These will be published soon in a more technical whitepaper.
Our goal at this stage is to get feedback from the community and possibly secure funding for further research and validation.
Let us know what you think and stay tuned for more.