SEP 21, 2023
Understanding Farcaster: The Decentralized Social Network Endorsed by Vitalik
by 吴说猫弟, WuBlockchain
Last week, Vitalik Buterin's Twitter account was hacked and used to post phishing links, resulting in user losses of over $690,000. After research, Slowmist Yuxian pointed out that the phishing group behind the theft of Vitalik's Twitter is still related to the currently popular and rampant PinkDrainer. The hacking method might have been SIM swap or something similar. Two days later, Vitalik confirmed on the decentralized social media platform Farcaster that his Twitter account was indeed compromised via a SIM swap attack. He speculated that the vulnerability might have been exposed when he registered for Twitter Blue, revealing his phone number. He had previously seen advice against using phone numbers for identity verification but unfortunately did not heed it. Vitalik stated that he has since deleted Twitter and has joined Farcaster, where account recovery can be controlled through an Ethereum address.
Farcaster is a decentralized protocol for building social applications, which can be accessed through front-ends like Opencast and Warpcast. In 2022, Farcaster secured a $30 million investment led by a16z. This article will provide a brief analysis of this decentralized social protocol, which has garnered the attention and endorsement of both Vitalik and a16z.
Core Issues of Social Networks
Social networking activities can be simply understood as a group of users interacting, such as sending messages (texts, images, and audio, etc.) to others, liking posts, commenting, sharing, and so on. In centralized social networks, this group of users can only interact within a specific social application. However, in decentralized social networks, it allows this group of users from different applications to interact across apps.
This also presents challenges. Farcaster categorizes them into four core issues of decentralized social networks: Identity, Authentication, Availability, and Consistency.
●Identity: This pertains to usernames, allowing users to switch between different social applications while maintaining their identity.
●Authentication: When a user receives a message from someone else, it's crucial to ensure that the sender is a recognized and trusted source.
●Availability: User data should always be accessible across different applications.
●Consistency: The rules of the social network. All front-end applications need to consistently support and enforce these rules.
Farcaster's social network encompasses three levels: Identity Layer, Data Layer, and Application Layer.
●Identity Layer: Based on Ethereum, it determines the operations that can be executed on the network and the way they are authorized. Identity and authentication are at its core.
●Data Layer: It stores information authorized by the Identity Layer and makes it available.
●Application Layer: It consumes the information stored in the Data Layer.
(1) Identity: Farcaster ID (FID)
Farcaster introduces usernames and Farcaster ID (FID) for user social identity. The FID is a unique and immutable identifier for users launched by Farcaster. Although the FID is a string of numbers tied to the user's main address, using a numeric identifier to represent users in a decentralized system isn't ideal. Hence, users can choose to register a Farcaster name (username) and link it to their FID. Farcaster usernames are managed in a dedicated namespace. While usernames might be reclaimed, FIDs will not.
Usernames and Farcaster ID are reflected in two separate contracts on Ethereum: the Name Registry and the FID Registry, forming the foundation of Farcaster user identity.
Notably, users benefit from FID for identity recovery. Users can set another address in advance as a credential to recover their Farcaster identity. This other address could be another wallet address of the user, the address of another Farcaster user they know, or even a third-party custodian.
Message authentication benefits from Farcaster ID. When a user receives a message, they can verify the real source of the message by checking the sender's FID, looking up the corresponding public key (address) on the Ethereum chain, and then verifying if the signature was generated by that address.
To address the issue of protecting user private keys on devices (since private keys need to be loaded onto device applications to generate signatures), Farcaster introduces the concept of Signers. Signers are off-chain Ed25519 keys. Users register signers by transacting with the KeyRegistry using the signer's public key. The private key can then be used to sign and publish messages to the network.
(3) Availability: Storage Leasing
In centralized social applications, users store information on servers similar to RSS, and all data on the network is accessed by indexing these servers. Farcaster introduces hubs for data storage. When different users interact socially, they download copies of each other's information and store it.
However, to prevent hubs from being flooded with junk data, Farcaster charges users a rental fee for storing data on the network, which is a primary source of revenue for Farcaster. Users rent storage space by paying an annual fee to Farcaster. This approach curbs spam and encourages users to clear out low-value data. Storage is managed and tracked on-chain by the StorageRegistry contract.
Farcaster is not a direct social application but rather a foundational social protocol, analogous to the relationship between Lens Protocol and Lenster. Currently, applications built on Farcaster primarily include the DAO-supported Web3 social application Alphacaster, the platform for creating and sharing Discove, on-chain groups and personalized subscriptions Jam, open-source Twitter-style front-ends Opencast and Warpcast, and the social aggregator Yup that cross-posts to Twitter and Lens. The Farcaster front-end used by Vitalik is Warpcast. In terms of usage logic, Warpcast is fundamentally similar to Twitter's core logic, allowing users to view broad posts from the "world group" and comment, share, and like posts (threads) from followed users.
Applications built on Farcaster provide consumption scenarios for data stored on hubs. Application servers communicate with hubs, download all information, organize and categorize this information to create applications tailored for different user experiences, and then provide APIs for users on various clients.
Applications built on Farcaster must adhere to Farcaster's rough consensus and operational code, which serves as Farcaster's governance model. When someone proposes an FIP (Farcaster Improvement Proposal) and it gains approval from protocol developers, application developers, and users, and once the code is published, changes to Farcaster will ensue. Different entities reach consensus by either agreeing or disagreeing. Farcaster does not set up a binding voting procedure, and there is no official role with veto power.
Social Ecosystem Partners
Through Farcaster identity accounts, users can link to other applications or communities. These include user notification system Alertcaster, Move-to-Earn platform Blobs, on-chain social event notifier Eventcaster, Farcaster ecosystem metrics tracker Farcaster Network, task completion for points system FarQuest, messaging application Frens, Ethereum on-chain explorer Interface, decentralized hacker news platform Kiwi News, platform for discovering the latest Web3 projects Launchcaster, personalized media source Neynar, publishing and communication platform Paragraph, platform for finding interesting topics Pincaster, DAO tool created by Nouns Builder called Purple DAO, search engine Search via Raycast, API/GUI-based search platform Searchcaster, Farcaster community content explorer Surveycaster, tipping platform Tipcast, and the token-driven real-time streaming platform Unlonely.
Currently, Farcaster is still in its beta phase, and users can submit to a waiting list. Both Farcaster and Lens Protocol serve as foundational protocols for building social networks. However, compared to Lens Protocol, Farcaster is less in the user spotlight, focusing more on developers and application creation. Official data from mid-September, around the time Vitalik announced his use of Farcaster, indicates that Farcaster had just over 20,000 users, with more than 3.8 million historical messages on hubs. After migrating to Optimism, efforts have been made to filter out spam messages and open up to more users. Although there hasn't been any news regarding an airdrop plan for Farcaster, the FIP governance module has been integrated as a crucial part of the protocol, making it worthwhile for users to engage and interact.