Most residents in ZuSocial hacker house participated in at least 3 hackathons: HackZuzalu, ETH Global, and ZuSocial in-house hackathon. These hackathons were great chances to discuss and understand the relationship between protocols, developers, and applications.
Lens and Farcaster are the most popular protocols among developers, albeit the larger network sizes of ActivityPub, Matrix, or Nostr. It's a fascinating contrast, especially when considering recent integrations like WordPress, GitLab, and Threads, all aligning with ActivityPub. So, what sets Lens and Farcaster apart?
Both Lens and Farcaster are built with Ethereum, and many Lens and Farcaster users have influential voices in the Web3 community. Undoubtedly, these connections contribute to their popularity. However, integration with Ethereum also brings other fundamental differences that I have not previously thought of.
Using blockchain brings a global state to the protocol (Farcaster also has an additional global state and consensus mechanism called “message graph”). Relying on a global state is inefficient in many ways, and what some protocols intentionally avoid. But it also means all applications have to handle the same dataset, making it much easier for developers to read from and write into the network. This is very different from ActivityPub, where instances often use whitelists to only receive data from other instances they know and trust.
The problem of spam also becomes very different with a global state, since spam needs to be kept in control at the protocol level to prevent bloating the global state. For Lens, this is solved by blockchain gas fees, and Farcaster is trying to solve it by charging users storage fees. This puts less burden on the application developers and also removes one drive towards centralization.
However, a more compelling factor could be the financial nature of blockchain-based identity, ushering in new possibilities for monetization and incentivizing decentralized protocols in unprecedented ways. It taps into the thriving DeFi ecosystem, making everything from simple payments to complex market design more accessible. Another related factor is that crypto users are perceived to have a higher willingness to pay.
At Matters, we want to use blockchain-based identity to build a decentralized economic system, but the growing network effect of ActivityPub is hard to give up. The solution we came up with is using an Ethereum key pair as the identity while storing ActivityPub data on the IPFS network with the user’s signature. There are still a lot of compatibility issues to iron out, but this gives us a direction to utilize blockchain while being interoperable with many existing networks.
A question that naturally follows is, what information should be stored within the blockchain or any form of global consensus? Given the higher cost associated with blockchain transactions, the focus must be on essential elements. This includes financial transactions and key aspects of identity, such as unique names, credentials, and assets. What about content graphs and social graphs, the metadata that describe the relationship between people and content? Should they be in a global state, or locally in each client and instance to trade reliability for efficiency and scalability? This is want I am curious to learn more as these different protocols grow.