Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
A quick technical review ๐Ÿงต on AT Protocol (Bluesky) and Farcaster. Both protocols have quite similar objectives, but they have very different design. First, identity. Both want account portability where user can migrate identity to a new service provider without existing serverโ€™s cooperation (unlike Fediverse).
22 replies
0 recast
0 reaction

Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
Account portability is achieved by having handles that resolve into pubkeys that sign messages. Thus data can be authenticated regardless of the location. Both have 2 identifiers: a stable identifier that is not very readable (FID in FC and DID in ATP) and a readable and changeable handle (FNAME and DNS name). 2/n
0 reply
0 recast
0 reaction

Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
ATP embraces generic standards in their design such as DID and DNS, which is good for extensibility and interoperability. However, in current implementation, they use their own DID method called DID Placeholder (PLC) because they arenโ€™t satisfied with existing DID methods. 3/n
1 reply
0 recast
0 reaction

Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
PLC relies on a centralized "PLC server" to store the signed DID document (analogize to FID smart contract of FC). It is named โ€œPlaceholderโ€ because it is temporary and expected to be replaced by a decentralized alternative. 4/n
0 reply
0 recast
0 reaction

Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
In ATP, user handles are DNS names that resolves into DIDs. Contrary to popular belief, DNS is an okay option as decentralized identities if you accept that ICANNโ€™s multistakeholder governance model is sufficiently neutral. The problem of DNS is more about UX. 5/n
0 reply
0 recast
0 reaction

Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
The legacy system of registry and registrar makes it hard to be fully automated (even if we ignore the fees). Thus, most users would rely on subdomain names offered by service providers (e.g. *.bsky.social) because setting up DNS is too technical. But this possibly defeats the purpose of account portability. 6/n
0 reply
0 recast
0 reaction

Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
On the other hand, FC has a specialized identity system built with Ethereum smart contracts. FCโ€™s approach has several advantages. Interactions with smart contracts can be fully abstracted away from users. FID is a simple number which is minimally usable on its own, contrary to the hash in PLC DID. 7/n
0 reply
0 recast
0 reaction

Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
(cont) FNAME fee revenue can be used to fund the development of the protocol directly where DNS registration fee wonโ€™t go to ATP; and FNAME is shorter than DNS names. But FID/FNAME will need its own governance structure to make it truly decentralized. 8/n
0 reply
0 recast
0 reaction

Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
Next, the network architecture. Both protocols want to offers some level of censorship resilience, and both assume that apps need to ingest all content in the network to provide useful functions such as content discovery (algorithms) and user search. 9/n
0 reply
0 recast
0 reaction

Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
ATP achieves it by distinguishing between small-world and big-world. Small-world is a network that encompasses inter-personal activity, and big-world aggregates activities in the larger network. Personal Data Servers (PDS) are responsible for the small-world while apps use indexing services for the big-world. 10/n
0 reply
0 recast
0 reaction

Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
FC Hub essentially combines small-world and big-world, with Hubs responsible for storing and disseminating every userโ€™s data. In FC, messages are disseminated in a gossip-based P2P protocol. ATP 2-worlds design is more hierarchical in which PDS and indexers uses a HTTP-based protocol to sync messages from a PDS. 11/
0 reply
0 recast
0 reaction

Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
In ATP, the small-world (i.e. PDS) is user-owned and hence it offers censorship resilience similar to the web. The big-world is provided by larger service providers and it is inevitable that censorship (or moderation) happens in this layer. 12/n
0 reply
0 recast
0 reaction

Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
However, it means that ATP users either have to run their PDS in a home server, or look for a service provider that run it for them. Either way is a friction to user adoption. 13/n
0 reply
0 recast
0 reaction

Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
By the way, both protocols use merkle tree for synchronization. ATP uses Merkle Search Tree while FC uses Merkle Patricia Trie. But they differs in that each ATP user has a individual tree and user signs the treeโ€™s root, while FC has a tree that represents the worldโ€™s state and user signs their own messages. 14/n
1 reply
0 recast
0 reaction

Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
ATP makes moderation and spam filtering easier because PDS and indexers are free to ignore some users when syncing. FC makes it easier to sync the worldโ€™s state, but spams may become a problem because there is no obvious way for Hub to selectively ignore some users. 15/n
0 reply
0 recast
0 reaction

Chu Ka-Cheong pfp
Chu Ka-Cheong
@kc
Also, I donโ€™t have invitation to Bluesky yet. Please give me one if you have any ๐Ÿ™
2 replies
0 recast
0 reaction

Dan Kantor pfp
Dan Kantor
@dankantor
Thanks, great write up!
0 reply
0 recast
0 reaction

Andy Jagoe pfp
Andy Jagoe
@andyjagoe
great review! have you thought about how you'd summarize the key tradeoffs in a single cast?
0 reply
0 recast
0 reaction

Syed Shah๐Ÿดโ€โ˜ ๏ธ๐ŸŒŠ pfp
Syed Shah๐Ÿดโ€โ˜ ๏ธ๐ŸŒŠ
@syed
Exactly the kind of summary I was hoping to find. Ty @kc !!
0 reply
0 recast
0 reaction

bun.lockb ๐ŸŸฃ pfp
bun.lockb ๐ŸŸฃ
@jklb.eth
This is so good - thanks for taking the time ๐Ÿ™
0 reply
0 recast
0 reaction