Cover photo

An introduction of Farcaster V2

Table of contents

  1. Short introduction to Farcaster Protocol

  2. Features of Farcaster Protocol

    2.1 Identity System

    2.1.1 Identity

    2.1.2 Farcaster ID

    2.1.3 Farcaster name

    2.1.4 Why are there two identity smart contracts

    2.2 Delta Graph

    2.3 Farcaster Hub

  3. Data Analytics

    3.1 Ecosystem

    3.2 Users

    3.3 Activity

    3.4 Funding

  4. Summary

1. Short introduction to Farcaster Protocol

Farcaster is a decentralized social network built on top of Ethereum. It offers:

  1. User identifiers.

  2. Real-time settlement and propagation of changes between users

  3. Decentralized access to all data on the network

Users start by registering a public-private key-pair and an id with an Ethereum contract first. Users upload signed messages to a Farcaster Hub, which is like a node in a blockchain network. Hubs share messages over a peer-to-peer protocol, and each Hub stores all the messages on the network.

Developers can create applications for users to interact with the network. Apps connect to Hubs and they can use servers to cache data, generate feeds, make recommendations and send notifications.

The Layer 1 blockchain manages user identities, while a Layer 2 network spreads updates between users.

Source: https://github.com/farcasterxyz/protocol

2. Features of Farcaster Protocol

2.1 Identity System

2.1.1 Identity

Users must generate a new Ethereum address which serves as their key pair and use it to acquire an id, and a username. If users already have an EOA which can be reused. The signing up for Farcaster flow looks like this:

  1. User deploys a contract from their EOA wallet

  2. As part of the deploy, the contract registers an fid and an fname

  3. The EOA signs a message which authorizes an EdDSA key pair as a signer

2.1.2 Farcaster ID

A Farcaster ID or fid is the canonical identifier. Users call the Farcaster ID Registry contract and pay a small amount of gas to request a fid. Users register fids to an Ethereum address, and this address is known as the custody address. These fids can be transferred to a new custody address, though each address can own only one fid at a time. Anyone can inspect the contract to determine the custody address that owns the fid.

2.1.3 Farcaster name

A Farcaster name or fname is like @alice. Users can get an fname to a custody address, which can own more than one name at a time.

Users register fnames for a year at a time by paying a fee to the Farcaster Name Registry, which issues each one as an NFT. An fname becomes renewable ninety days before it expires. Once expired, fnames enter a dutch auction.

The custody address is so important that users may appoint a recovery address to protect their fnames and fids in case they lose access to the custody address.

The contracts can be found at the following addresses on Goerli.

Source: https://github.com/farcasterxyz/contracts/

2.1.4 Why are there two identity smart contracts

In a decentralized social system, no one can control the identities but the creators. And another important thing is that users can jump between different social networks and continue using the same identity.

The username can be changed, but the Farcaster id is fully decentralized, and can not change. Users can sign a message containing their fid with their custody address. Recipients can verify its authenticity by looking up the custody address in the ID Registry and verifying the signature. No-one can reclaim or revoke a fid once a custody address claims it.

2.2 Delta Graph

A delta graph is a data structure that represents and synchronizes a social network's state between many replicas. The state of the social network is a graph where each vertex is an entity like a user or message, and each edge is a relationship between entities. A network where @alice creates a message and @bob likes and replies to it would produce this graph:

The graph decomposes into a series of deltas which help with synchronization over an unreliable network. A delta is an action a user takes, like posting a message or liking something. There are six types of deltas (message types) defined by the Farcaster protocol:

  1. casts, which are public and text messages from a user

  2. reactions, which are reactions to a user's messages from another user (e.g., a like)

  3. amps, which are links between two users

  4. verifications, which are proofs of ownership (e.g., an Ethereum address signature)

  5. signers, which are key pairs authorized by a user to sign their deltas

  6. user data, which are metadata about the user (e.g., their profile picture)

Hubs use delta graphs to reach consensus about the network's state. Since updates are independent operations, delta graphs achieve consensus without coordination, forming a layer-2 storage network.

2.3 Farcaster Hub

A Hub is a node in the Farcaster network that synchronizes the delta graph. When a hub gets a new delta, it broadcasts it to its peers over a gossip protocol. When Ethereum has updates, they will update as needed.

The goal of the team is to maintain the number of Hubs operators at ~ 100, making the network practically decentralized.

Since Farcaster Hubs store a copy of all the data on the network, it will raise the cost of running a Hub due to the increasing amount of disk space. The team is looking for solutions to address the problem, after rejecting several approaches.

The team publishes proposals to perfect the protocol, such as handling storage, bandwidth, decentralization of Hubs, etc. If you are interested in reading or once you have an solution, you can look through this link:

3. Data Analytics

3.1 Ecosystem

The amount of Farcaster-related projects are about 30, and most of them are clients.

Source: https://github.com/a16z/awesome-farcaster

3.2 Users

The total number of connected addresses is 8,039 and the total number of users is 8,594. Weekly active users, monthly active users and new users per week are 1.4k, 2.7k and 247 separately now.

Source: https://farcaster.network/

You can find the Farcaster NameRegistry NFT contract here: https://goerli.etherscan.io/token/0xe3be01d99baa8db9905b33a3ca391238234b79d1

3.3 Activity

The total number of casts is 427k and average cast per day is 2,368 which increased significantly since July 2022. All time high average cast per day is 5430 in November 2022.

Source: https://castalytics.farcase.xyz/

As for the engagement, most users cast 1-10 times, and they make up 39% of the total. Unfortunately, there is 27% of the user who does not ever cast.

And nearly 20% of the users first come back to this app after 3 months, only a few people will continue casting on it in the first week. It seems that there is still a long way to go to change user habits.

3.4 Funding

Farcaster has closed a $30 million round of funding led by a16z with participation from Coinbase Ventures in July 2022.

4. Summary

The Farcaster team wants to realize a social network where the data is always available whenever what applications we switch to. For example, Alice and Bob send messages to each other, but when Alice starts to use a new app, she can still see the old messages from Bob. That is to say, when we jump into a new app, we can see all the different messages generated on other social networks. All of the above is decentralized.

However, they face some critical challenges and have unresolved issues to overcome.

There is also some comparison on Farcaster and Lens.

At HashBrown Research, we last time said that “Web3 Companies should focus on Decentralizing their platforms to the best of their ability, or else it is no different from a Web2 Company + Crypto Token representing it”.

We think that Dan Romero and the Farcaster team are doing this kind of work, the version 2 they are developing will launch on mainnet in May 2023.

You can also view our Dune Dashboard here:

Loading...
highlight
Collect this post to permanently own it.
HashBrown Research logo
Subscribe to HashBrown Research and never miss a post.
#melody#web3
  • Loading comments...