I often see people say Farcaster isn't "sufficiently decentralized".
You're free to define what "sufficiently decentralized" means to you, of course, but how we think about it is laid out in Varun's blog post:
A social network achieves sufficient decentralization if two users can find each other and communicate, even if the rest of the network wants to prevent it. This implies that users can always reach their audience, which can only be true if developers can build many clients on the network. If only one client existed, it could stop users from communicating. Achieving this only requires three decentralized features: the ability to claim a unique username, post messages under that name, and read messages from any valid name.
De facto centralized?
You might ask: "But if most people use Warpcast, doesn't that mean it's de facto centralized?"
Depends on the perspective.
For a developer, if you are building on the protocol, then you're free to sign up your own users or convince users to move over to your app (it's easy for users to use multiple clients at the same time).
For an account with an audience, let's say you were unfairly nerfed by Warpcast, i.e. you don't appear on the app. There's definitely a lot of friction to get people to start using another client if they already don't, but the protocol itself is not restricting your ability to communicate. That's an important distinction because on web2 / centralized social networks, the app and the "protocol" (i.e. the database) is the same thing.
So if you're argument is Farcaster is not sufficiently "decentralized" (or "decentralized" if you don't like the sufficient framing) then you're defining decentralization as a protocol or network that has at least 2 independent, roughly equivalent functionality and UX clients (because majority of consumers revealed preference is UX over principles).
That's a reasonable definition.
But in practice, in the near-term, there's unlikely to be multiple, well-resourced enough clients that are full-time building on the protocol for amazing UX. That's not a knock on people building, just the reality that in 2024 consumers expect a lot of our their daily driver apps.
In the medium to long-term, dedicated individuals, small teams or open source projects can likely hit the UX bar. But that will probably take years of sustained effort.
So protocols in the early days are unlikely to hit the bar of 2 independent, roughly equivalent and functionality UX clients.
This is something I've changed my mind on over the years.
Missing features
"But if Warpcast didn't have exclusivity on DCs and channels, then other clients could better compete"
Yes, but having both be interoperable / in the protocol doesn't magically mean all of that surface area gets built out in other clients.
I would assume other clients can move quicker by copying whatever patterns Warpcast has iterated to (avoiding all of our mistakes) and then in some cases, improve the UX.
But building out a robust chat UX in 2024 that's passable (not even Telegram level snappy) is a lot of work. That's effort not being spent on differentiating features or other core parts of the app. Same goes for channels.
And arguably, the most important part of a feed-based social app is the feed, which is mostly backend (machine learning, performance).
One advantage for other clients are dedicated infrastructure companies like @neynar, @openrank etc.
But it's still a lot of work.
To close: it's easy to have a bunch of opinions on how the ecosystem should be built. But if you talk to the people building the apps, they often have a different perspective having been in the salt mines.
That's not to say we are doing everything perfectly (we're not!) and we don't make mistakes. One of the reasons we are holding Developer Day next week is to get candid feedback from a group of developers working in the ecosystem daily. Goal is to get everyone better aligned and rowing in the same direction to make Farcaster successful.
Sharing how we think about spam so people can better understand.
Who should you prioritize?
1. Most people will only use social networks if they are fun
2. Casting something and getting dozens of spammy replies is not fun
3. If you get enough spammy replies, you'll just stop using the app
4. So, aggressively filtering for spam is necessary to keep your existing users happy
5. However, this means some good new users will hit spam filters. Understatement: this is a bad user experience for those people. It would be great to not have this happen.
6. But given the choice of who to make unhappy — an existing user who has invested a ton of time and energy into the network or a new user that is most likely to churn (top tier social networks lose 50% of users!), then you have to optimize for your existing users.
7. So does that mean you don’t care about new users? No! It’s existential to have new users be able to join Farcaster and find people to connect with — without being labeled as spam.
8. So here’s what we are doing to improve this so new good users aren’t mislabeled as spam:
a. Continually refine the spam model by identifying incorrectly labeled people (that feeds back into the model and makes it better); good existing users on the network reporting incorrect labels is really valuable here
b. Warnings to users before they are labeled spam so they have a chance to adjust their behavior
c. Increase the number of signals our model uses to help filter out bots vs. people
d. Working a new version of channels that give owners / moderators complete control of who appears in their channel (so a Warpcast spam label won’t affect casts in the channel)
What's the threshold?
Here's another way to look at the spam filtering problem.
1. Let's say you have a new account on the network (Account A) at they reply 100 times to the same account (Account B) with no engagement back.
2. It doesn't actually matter if Account A is run by a human or a bot with AI.
3. If you have 1000 accounts like Account B, Account A will just stop using the app. They'll move to another network or a messaging app.
4. Ideally, Account B would reply thoughtfully a few times and Account A engages with them, and then it increases over time as they build a relationship.
5. If you say "well 100 times is too much, but 50 times is fine", then you're admitting humans can be spammy and we're now arguing over the definition.
6. Side note: I don't think anyone is ready for a world where bots powered by AI are as interesting—or even more interesting—than humans.
"I'm not a spammy, I'm a real person not a bot."
Or "Just use proof of humanity to solve spam."
1. Spam is relative: you might not find something spammy but another person might find it spammy.
2. If you are casting in your home feed or to people who chose to follow you, then it's by definition not spammy
3. If you are casting at someone else, then their opinion does matter. It's no different than walking up to someone on the street and trying to strike up a conversation with them.
4. Fundamentally, spam is unwanted inbound that tries to get someone's attention (literally what spam email is).
5. Humans can be spammy and bots can be not spammy.
6. What proof of humanity does is limits how fast new accounts can get created, i.e. if you want to create 1000 accounts, you now have to get 1000 proof of humanity credentials. That's friction.
7. However, if you have proof of humanity, you can still be spammy (and still hook your account up to ChatGPT, etc.).
The value of an FID is in the social graph—both stated (following) and revealed (activity). Profile is secondary. There is minimal (no?) value in the onchain primitive absent the above.
This is why digital identity is always emergent from apps with utility. If you spend a lot of time using an app / platform / OS, it starts to become your identity. Building an identity layer is the wrong order of operations. You earn the right to be an identity layer by time spent, usage, people building on it, etc.
At-scale digital identities in 2024:
Email address — the original "killer app" of the internet; so naturally websites asked for you email address as your identity
Phone number — as smartphones became more popular, many apps shifted from asking for an email address to a phone number. Even more people had a phone number than an email address, esp. in developing countries.
OS-level identities — Sign in with Apple and Sign in with Google