Decentralized Social Media

Decentralized Social Media

Author: Jacob Gadikian (@gadikian on Twitter)

Drafts reviewed and suggestions made by: Guy LePage, David Jeffreys

Blockchain Frameworks:

I’ve arranged these in order of my personal preference, as choosing one of these for your project pretty much means committing to it.

Cosmos-SDK (Tendermint)

The Cosmos SDK is a toolkit for creating blockchain applications in Go. The team is also working on a blockchain interoperability protocol called IBC (Inter-Blockchain Communication).

Substrate (Parity)

Substrate is a tool for building blockchains in Rust. All of the blockchain logic is compiled to Wasm, and then deployed to a network. This allows the logic to be updated without taking down the validator nodes themselves.

Graphene (Bitshares, Steem, EOS)

Graphene is only sort of a blockchain framework, as it lacks overarching documentation on how to implement it in novel ways. That said, it’s been used across a number of platforms quite successfully. It’s written in C++, and any application on top of it would be written in C++, as well.

Of course, you don’t necessarily need to use a blockchain at all to build decentralized social media, but it could help. If you did, you’d probably want to build your own blockchain with one of the above frameworks, or build from the ground up. Building on something like Ethereum could lead to users needing to pay transaction costs that are unacceptable for a social media application.

P2P Technologies:

Webtorrent

Webtorrent is Bittorrent over webRTC. You can see it in action at webtorrent.io. Basically, it’s bittorrent for the browser. Webtorrent fully supports the Bittorrent DHT concept of magnet links.

Bittorrent

Bittorrent is a peer to peer file sharing protocol that’s been used mostly for pirating movies and music. All together, it’s probably the world’s largest operational distributed system.

IPFS

IPFS is a peer to peer hypermedia protocol. In the end, it works a lot like Bittorrent’s magnet links. Content is hashed and given a unique ID. The content itself is then retrievable from that ID, provided that an IPFS node is serving that content.

Libp2p (this began as a part of IPFS, and has now been implemented in javascript, rust, and Go)

LibP2P is a collection of peer to peer discovery and transport tools. It can be used on the back end or in the browser.

GunDB

GunDB is a data sync and storage system that can be used to enable real-time peer to peer interactions on applications. It’s written entirely in JavaScript,

Existing Networks:

Blockstack Based
Afari

Dlive - Cosmos based incentivized livestreaming platform. While writing this, I learned that Dlive would soon be moving to the Tron network.

Steem-Based:
Steem - the original incentivized social media network
BravoCoin - steem fork for reviews
WhaleShares - steem fork for bitshares community
Smoke.io - steem fork for cannabis lovers
Scorum - gambling oriented steem fork
Bearshares - general purpose steem clone
Golos - gold-oriented steem fork

Mastodon Flavored
Gab Flavored Mastodon
GNU Social
Mastodon

Note: The mastodon and Gab networks are separated largely because many Mastodon servers refuse to connect with Gab servers. It’s technically the same protocol, and they live in the same “fediverse”.

Ethereum Based
Decentraland
Akash
Peepeth

SSB

“Secure, Scalable Scuttlebutt”. A protocol for social media that’s designed to mirror real life.

ZeroNet

ZeroNet is a decentralized content hosting platform that uses bittorrent and borrows cryptographic techniques from Bitcoin.

Twister

Decentralized twitter-alike built on a DHT with libtorrent.

Notabug.io

Reddit-alike built on GunDB.

Iris

https://github.com/irislib/iris
Decentralized social media with blockchain ID. Uses GunDB and has advanced concepts of identity.

Twetch - twitter clone built on BSV’s big blocks

An Attempt of Mine:

Dawn - github.com/dawn-network/dawn

Upcoming Networks:

Desmos (cosmos-sdk)
Decentralized social media back end
Istrustory (cosmos-sdk)
Incentivized, structured debates
https://github.com/raddinet/raddi (POW)
Windows-first, decentralized reddit
Voice (EOS)
Real-ID decentralized social media

Interesting info about Twitter
https://www.internetlivestats.com/twitter-statistics/ - Shows twitter content in real time
https://www.internetlivestats.com/one-second/#tweets-band - Shows tweets per second
https://blog.twitter.com/engineering/en_us/topics/infrastructure/2017/the-infrastructure-behind-twitter-scale.html - Describes Twitter’s current infrastructure

What Ideal Might Look Like (Opinion)
A common difference between approaches listed here is whether or not there’s a token to reward users for their content creation. Steemit pioneered this with its currency steem and the social network steemit. Without getting too deep into how things worked at steemit, it’s fair to say that these tokens monetize “likes.” The more people who like your content, the more currency you get.

The pull of near-instant content monetization is very strong. That said, current approaches make a crucial mistake: awarding/selling tokens founders, the company or investors. This model actually prevents the network from scaling by putting the company/founders/investors in a position of earning from the value represented by user’s creative work. It slows the growth of the community, and harms the utility of the token as an actual currency. Instead, The token should be a reward from the network showing appreciation for human creativity, and that’s all it should ever be awarded for. The highest quality content will get the most likes, and therefore get the most rewards.

The successful decentralized social network will have a token, but that the token will only ever be rewarded for posts (or possibly staking to pay for the operation of network infrastructure.) A company (or companies?) built around this model would likely earn by creating interfaces to the underlying system and selling ad space on those interfaces, similar to how Facebook and Twitter currently profit. This model prevents the kind of token dilution seen at Steemit, which owned the majority of the Steem token in the beginning and has been slowly selling it off. It also opens the door to network effects, because the platform treats everyone equally. “Spam” should be prevented by charging transaction fees to post new messages.

Identity would be a key product of a network like this. Users could participate with just a keypair, or post their identity and have their friends confirm it.

Decentralized & incentivized social media could be created by one company, but if that single entity dominates the platform economically or technologically, it’s in fact just as centralized as current systems, so it’s important that whatever is built is built in a way that multiple entities can easily interact with, likely by providing front ends.

A highly effective system for rewarding uncensored thought online would likely lead to a great step forward for humanity in general.

Coin Marketplace

STEEM 0.30
TRX 0.11
JST 0.033
BTC 64106.00
ETH 3129.71
USDT 1.00
SBD 4.16