When I was writing "How can open social protocols fail us in 2025", I did not account for the centralizing force Snapchain would add onto the Farcaster protocol.
Before Snapchain, the properties of the protocol were quite similar to ATProto: Anyone could participate, as long as your messages were well-formed and cryptographically verified, you can toss it into any hub and it would make its way into the network. (This is exactly how ATP works btw.)
The main difference was that Farcaster had self-sovereign onchain identity roots, and ATP did not. For this, I gave Farcaster a higher score.
Snapchain adds a consensus "bottleneck", it forces the network to have a consistent global view of all valid messages. Partly to make fast sync easier (can deliver a static snapshot of the global view at some moment), partly to make timestamping more robust (many ways to do this), and partly for other stated/revealed reasons (more control of who gets to participate??).
How is this consensus managed? It's a JSON file in a Github repo that controls who is allowed to be a Snapchain consensus validator and who is not. This is at the center of the recent drama with
@cassie's upcoming fork.
IMO Snapchain resulted net-negative change which makes Farcaster less decentralized than ATProto, despite not having onchain identity.
If I were going to update my post, I would give Snapchain/Farcaster today a slightly lower score than ATProto/Bluesky. This can change, and my thinking around this continues to evolve. Curious how others are thinking about this today (vs a year ago)? (cc
@vrypan.eth)