Decentralized social update: Everything is still on fire
Oh god he’s doomblogging about blockchains again.
Yes dear reader, blockchain social memes are back with a bang, and so is my blog!
Crypto twitter has recently found a newfound obsession with Farcaster. A brand new social media protocol. So wth is Farcaster and should you care? Will we as a species ever start learning from our mistakes? The answer may surprise you!
Farcaster
Farcaster describes itself as a sufficiently decentralized protocol as an alternative to standard social media, as well as other decentralized ones like Mastodon/ActivityPub.
You’ll hear the phrase sufficient decentralization very often when reading into Farcaster. This means that the ability to claim a unique username, post messages under that name, and read messages from any valid name.
Achieving said goals is very difficult when building social media, and on paper, I would say that Farcaster is pretty much sufficiently decentralized (with some caveats). The protocol is very generic, and interesting primitives can be built on top of it, similar to ActivityPub.
Unfortunately, the blockchain Kool-aid has been drunk. And a bit too much of it at that. I will do my best to give an unbiased overview of the protocol and how it works, and then my thoughts on it.
The protocol
Before being able to interact with the protocol, each user must get a unique Farcaster ID (FID). FIDs are registered on chain and are associated with an Ethereum account. Each time you post a message you are signing it with the key under that FID.
Messages on Farcaster are how things like likes, posts, and profile updates happen. Each message has a nonce and a timestamp which is how profile updates happen. Updates with newer nonces override old ones.
As an anti-spam measure, accounts must pay rent to keep their data on Farcaster. The prices are dynamic, but according to the docs, it costs $7 to store:
- 5000 casts (posts, tweets, whatever…)
- 2500 reactions
- 2500 links (includes images)
- 50 profile data (afaik these are updates to your profile)
- 50 verifications (no clue what this is)
Hubs and P2P
Unlike other attempts at blockchain social, messages are stored and propagated off-chain using hubs.
Hubs can be thought of as blockchain nodes, and messages as signed transactions broadcast to the wider network. Farcasters system of hubs acts as a pseudo-blockchain. Users’ messages are broadcast around and they become a canonical part of Farcaster optimistically. Hubs don’t have to agree on the exact state of the network to participate in the network.
If all of this sounds very similar to nostr, you’d be right! Farcaster messages and hubs are strikingly similar to nostr relays and events.
The onions
Because they are so similar to each other (despite both sides really insisting they’re not), most of my thoughts about nostr and farcaster are interchangeable. I will be focusing on Farcaster because I find it more interesting and an overall better implementation of what nostr is trying to do.
This will sound like I’m turbo-dooming and praying for Farcasters downfall, but I actually really like the concept. I don’t agree with how all of it is executed and would want to see the areas I talk about improve.
Long-term monetization of social interactions is unsustainable
When you meet someone new or talk to your friends, do you ever think about how you’d go about extracting value out of them for yourself? If you are not a VC trying to network or a psychopath, chances are you haven’t.
If you want a stable business, it is not a sustainable business model to live off of VC funding. Turning your product into something you can monetize is a part of this. This isn’t a critique of early-stage investing. There is nothing wrong with companies raising capital. It is often necessary, but lots of startups fail to do this sustainably.
Farcaster is promised to be a refuge from the failings of Twitter, Reddit, Tumblr, and others. Who alienated their core users in pursuit of maximizing shareholder value. Farcaster is currently in the exact same position all of the enshitified social platforms were a ~decade ago. A promising new platform with a dedicated bunch of core users with a loose plan to monetize it.
And make absolutely no mistake, the company behind Farcaster Merkle Manufactory absolutely will initiate the enshittification process at some point. They’re legally obliged to. Merkle Manufactory has raised $30 Million of seed capital.
This criticism is often deflected by saying:
“Oh but you see, they are developing clients for users to interact with the network! The network itself will be permissionless, trust!”
This is a fair point. But, Merkle Manufactory has a vested interest in capturing as many of the users it can and funneling them through their clients (we’ll talk about this later on). As far as I’m aware there is no set date for when Farcaster will go permissionless. And as we’ve seen from the team’s actions it doesn’t look like it’s happening anytime soon. VCs also really like to have control over things, so there’s that too.
CLARIFICATION: Farcaster has permissionless sign-ups, but it still has admin controls over some parts of the protocol.
Inefficient moderation
This is a big gripe I have with all blockchain social media.
Because all blockchain social platforms have the ethos of never banning anyone ever, efficient moderation is impossible.
Not censoring is good when it comes to monetary transactions. Not censoring is very bad when it comes to social interactions. The idea of not having a filter of who you want to interact with is kinda insane. We do it all the time in real life. If you live in an urban area, you would have surely interacted with drug addicts on the street. Chances are you don’t seek interactions with those people and would prefer to avoid them. As a less extreme example, within your friend group, you’re probably surrounded by like-minded people. And speaking more broadly, the chances of finding a neo-nazi hanging around at a synagogue are roughly 0.
Because everyone has their own unique idea of what’s acceptable, creating a platform that accommodates everyone, will on a long enough time scale accommodate no one.
Farcaster users who use the de facto official client Warpcast can choose to mute individual users. There are no blocklists, but AFAIK warpcast does ban accounts that break their TOS from showing up by default. Now this brings us back to what we said earlier about not censoring.
For the sake of argument, let’s say that Warpcast allows neo-nazi posts to show up on Warpcast. Now the social media experience has been massively degraded for a big majority of users. Nobody wants their social feed to look like the front page of /pol/. And neither do the VCs, which pressure Warpcast into banning their posts from showing up.
Now you have users complaining about how your uncensorable social media is actually censurable.
And to be clear, I am not advocating for echo chambers. Only that filters are required, and users should have the freedom to choose who they interact with and who can interact with them. As an example, I like to show this graph with various corners of the fediverse and their niches.
Federation is often criticized for creating walled gardens, but that’s exactly its biggest strength. There is no way in which communities like Pawoo can exist alongside normie mastodon instances. But with ActivityPub they still kind of coexist in the same ecosystem, for the better or for worse. Federation does have problems when instances defederate each other and sever users’ social graphs, but that’s a topic for another time.
Are we decentralized yet?
Channels are a feature exclusive to Warpcast. They’re kinda like hashtags, users can use them to categorize their posts. A few weeks ago, Warpcast took over the /interns
channel.
This is bad, but it somehow gets worse. In a now-deleted tweet, we can see interactions between DWR, one of the founders, and another user who has the /bankless
channel. A popular podcast that’s all about drinking the blockchain Kool-aid.
If Warpcast and Farcaster were honest about their marketing this would be fine. But both are consistently marketed as sufficiently decentralized and any criticism is deflected as it will get permissionless soon and warpcast is not a part of the protocol.
Domain squatting has been a thing since the introduction of DNS, and Farcaster does kind of mitigate it with the Fnames registry. Users can use Farcaster usernames, ENS, or whatever else is approved for their profile usernames. This still hasn’t stopped them from taking over usernames or channels. All of this is completely ridiculous for a protocol claiming to be decentralized. In this weird turn of events DNS, the Web 1.0 monolith that barely changed over the past 40-ish years ends up being more decentralized than Farcaster/Warpcast.
What farcaster needs is a proper, solid plan and timeline that will be followed for full decentralization. Talk is cheap, especially in crypto-land.
Users do not want to pay for social media
While writing this, I made a post on Faracaster as a sort of temperature check for its users.
This was posted in the farcaster channel. For those unfamiliar with how warpcast works, that’s the small thing with the Farcaster text in the bottom left. To post this, I had to pay 130 Warps to access the channel.
100 wraps cost $1. Imagine you had to pay every time you used a new hashtag. This is a completely bonkers way to monetize.
Even before posting in a paid channel, you must pay $5 to use farcaster in the first place. And remember the storage units? Well, you have to pay for those too.
This model of monetization is completely out of touch with most social media users. Most users don’t want to pay to use social media. A good example of this is twitter blue conversion rates and farcaster and Warpcast themselves, rolling out free accounts for selected territories if you connect your phone number. The comments are filled with people asking to expand this program.
Too much friction to use and onboard
I don’t want to repeat myself too much, but lots of friction is caused by:
- Having to pay
- Being on the blockchain
The second one is especially hard to swallow when there’s no proper account abstraction. Normies simply cannot be bothered to store their keys properly. For more on this, please read my previous article on blockchain social.
The culture is cringe
If you’ve ever ventured outside the crypto sphere into any discussion relating to cryptocurrency on the internet, you’ll probably see somewhere between lukewarm to overwhelmingly negative reception.
As a sample of what the general public thinks about crypto and NFTs, I recommend reading the comments on line goes up, a popular video essay about NFTs, crypto and the culture.
Most people still see crypto as a purely speculative investment vehicle, even people who are active in the crypto community. Unfortunately, this group is one of the most vocal ones on farcaster. If you spend any amount of time on Farcaster, you will be bombarded by BS speculation.
These 2 posts are the first thing I saw on my timeline today. Such posts represent a very good portion of the content on Farcaster.
It should be no surprise that a community that revolves around money is so performative and cringe. If you try to monetize everything, it’s inevitable that it attracts a certain type of people who are cringe to be around. Farcaster will never be adopted by the masses because the entire culture revolves around a zero-sum game, but it may become temporarily popular because of it. Because you know, the house always wins.
I am going to end this chapter with a quote written in the 17th century by Kondiaronk, that is more than relevant now than ever in our current society:
I have spent 6 years reflecting on the state of European society and I still can’t think of a single way they act that is not inhuman and I generally think this can only be the case as long as you stick to your distinctions of “mine” and “thine.” I affirm that what you call “money” is the devil of devils, the tyrant of the French, the source of all evils, the bane of souls and slaughterhouse of the living. To imagine one can live in the country of money and preserve one’s soul is like imagining one can preserve one’s life at the bottom of a lake. Money is the father of luxury, lasciviousness, intrigues, trickery, lies, betrayal, insincerity—of all the world’s worst behavior. Fathers sell their children, husbands their wives, wives betray their husbands, brothers kill each other, friends are false—and all because of money. In light of all of this, tell me that we Wyandotte are not right in refusing to touch or so much as look at silver.
Do you seriously imagine that I would be happy to live like one of the inhabitants of Paris? To take two hours every morning just to put on my shirt and make up? To bow and scrape before every obnoxious galoot I meet on the street who happens to have been born with an inheritance? Do you actually imagine I could carry a purse full of coins and not immediately hand them over to people who are hungry? That I would carry a sword but not immediately draw it on the first band of thugs I see rounding up the destitute to press them into Naval service? If on the other hand, Europeans were to adopt an American way of life, it might take a while to adjust but in the end you will be far happier.
Scalability and centralization problems
Farcaster functions by hubs gossiping messages between each other. For the network to be functional either:
- loads of traffic get duplicated between hubs,
- or traffic gets centralized amongst a few hubs.
Neither of these outcomes are good. If you’re after creating a decentralized network, users won’t be able to run nodes if the requirements are too high. If everything centralizes around a few nodes, farcaster fails at being a decentralized network.
This is a fundamental and existential problem for the network. It’s not something that can be fixed with a few updates to the node software. The entire architecture of the network is fundamentally flawed in such a way that it can’t be decentralized at scale.
To see how bad this can be, lets visualize this: Let’s say a hub has 8 peers each. And that every peer is also talking to each other. Each hub has a bidirectional connection by which they gossip the messages. One of the nodes was made aware of the new message. It will then start to gossip the message to every one of its peers. Because there are no delivery guarantees, traffic gets duplicated. A lot of it gets duplicated. In this case where we have 8 peers, we will forward the message 7 times, even if other nodes might be aware of it. Again, we can’t make any delivery guarantees. This process is mandatory in a network designed like this.
You can somewhat mitigate this. If you reduce peers, you get slower propagation and less network use. If you increase them you soft DDOS yourself and the network. If we do some napkin math, with optimistic message sizes (3.2kb) and peer count (20), we would duplicate around 60kb of useless traffic per message. With 2000 messages per second this is 121 MEGABYTES PER SECOND OF BANDWIDTH.
If a farcaster hub is an 8L Mustang v12, my self-hosted pleroma instance is a jap-economy shitbox sipping around 30GB per month with 9k peers.
What is to be done?
The team behind FC is obviously ambitious and has a certain vision for farcaster. Their biggest problem is poor p2p design, and that they’re probably too early. Account abstraction is not a thing. Normies are scared of the blockchain, and those that aren’t use it to gamble. It’s a noble effort to try and be pioneers in this space, but I’m afraid it might end up being in vain if they keep going down this path.
There is also the question of farcaster just not working at scale due to how it’s designed as a pseudo-blockchain network. As mentioned previously, when large amounts of messages start getting gossiped, the network will start DDOSing itself. Hubs will eventually centralize, indexers will be needed… and weren’t we building a decentralized social media network earlier?
So, what do?
Nostr-type social obviously doesn’t work. ActivityPub and federation were proved to work great. IMO if farcaster wants to not collapse under its own weight it should move away from nostr-style hubs/relays. BlueSky is really interesting, and you could totally implement farcaster on-chain identity things inside of it. It would be cool to see farcaster evolve into something like that. As it stands now, I don’t think farcaster is ever gmi as a popular platform. I would love for it to be successful, but I don’t think it has the potential to achieve it’s goals at scale in its current state.
Addendum
Random thoughts about the topics above:
Federation != decentralization
Yes. This is good.
I get this a lot when I mention Mastodon as an alternative to Twitter in crypto circles. The argument that is most often repeated is that some instances have massive defederation lists and that if you do not abide by draconian rules you will get defederated into the shadow realm with the likes of freespeechextremists, poast, and kiwifarms.
I am not defederating any instance and interact with people from various instances, some of which are controversial on the fediverse. In total I am defederated from 1 minor instance with 700 users:
And now add the delivery guarantees ActivityPub gets you, and federation isn’t looking like a bad option…
If you’re mostly on CT the reason you don’t really hear about Mastodon is because It’s really hard to monetize anything on Mastodon. There are no ads, there are no algorithms, and engagement farming. There is no potential for VCs to extract value out of fedi users because the culture is not receptive to such behavior. Outside of the blockchain sphere, fedi has already won.
BOTS!
todo