Authors:
(1) Martin Kleppmann, University of Cambridge, Cambridge, UK (martin.kleppmann@cst.cam.ac.uk);
(2) Paul Frazee, Bluesky Social PBC United States;
(3) Jake Gold, Bluesky Social PBC United States;
(4) Jay Graber, Bluesky Social PBC United States;
(5) Daniel Holmgren, Bluesky Social PBC United States;
(6) Devin Ivy, Bluesky Social PBC United States;
(7) Jeromy Johnson, Bluesky Social PBC United States;
(8) Bryan Newbold, Bluesky Social PBC United States;
(9) Jaz Volpert, Bluesky Social PBC United States.
Table of Links
2.3 Custom Feeds and Algorithmic Choice
3 The at Protocol Architecture
3.2 Personal Data Servers (PDS)
3.4 Labelers and Feed Generators
5 Conclusions, Acknowledgments, and References
5 CONCLUSIONS
Bluesky and the AT Protocol are a new approach to social media. While some decentralized systems prioritize censorship resistance, we believe that a good user experience requires explicitly addressing problematic content such as harassment and misinformation. We therefore make moderation a first-class concern that is handled separately from infrastructure hosting, and we provide strong mechanisms for users to control the content they see.
Our open architecture allows a pluralistic system in which there is no global consensus on what content is acceptable. A user on a self-hosted or loosely moderated PDS may post controversial content, but they are not entitled to the attention of others: App Views may choose not to index the content, and clients may ignore it depending on the user’s moderation settings. This philosophy is sometimes described as “free speech, but not free reach” [18].
The AT Protocol provides cryptographically authenticated data, but our implementation pairs it with custodial key management to provide a familiar user experience. The system is open to thirdparty clients and alternative PDS hosts, and anybody can index the network using real-time streams for low-latency updates. This reduces the dependency on any one provider, since every part of the system can be run by multiple competing providers, and users can switch providers with minimal friction (in particular, without changing username, and without losing any of their content or social graph). The AT Protocol is also extensible to other social modes besides microblogging.
ACKNOWLEDGMENTS
Martin Kleppmann is supported by the Volkswagen Foundation and crowdfunding supporters including Mintter and SoftwareMill.
REFERENCES
[1] [n. d.]. Scuttlebutt Protocol Guide. https://ssbc.github.io/scuttlebutt-protocolguide/
[2] Ben Adida. 2022. Don’t let federation make the experience suck. https://benlog. com/2022/12/28/dont-let-federation-make-the-experience-suck/ Archived at https://perma.cc/W7CY-TF23.
[3] Alex Auvolat and François Taïani. 2019. Merkle Search Trees: Efficient StateBased CRDTs in Open Networks. In 38th Symposium on Reliable Distributed Systems (SRDS 2019). IEEE, 221–230. https://doi.org/10.1109/srds47363.2019. 00032
[4] Cat Ball, fiatjaf, Kevin Smith, Vitor Pamplona, et al. 2022. Nostr issue #45: Key distribution, rotation, and recovery. https://github.com/nostr-protocol/nostr/ issues/45 Archived at https://perma.cc/26TW-ME48.
[5] Chelsea Barabas, Neha Narula, and Ethan Zuckerman. 2017. Defending Internet Freedom through Decentralization: Back to the Future? Technical Report. MIT Media Lab. https://dci.mit.edu/decentralizedweb Archived at https://perma.cc/ Q8CJ-D44Y.
[6] Bluesky Social PBC. [n. d.]. AT Protocol Community Projects. https://atproto. com/community/projects Archived at https://perma.cc/X88A-9XM4.
[7] Bluesky Social PBC. [n. d.]. AT Protocol Specification. https://atproto.com/ specs/atp
[8] Bluesky Social PBC. [n. d.]. GitHub repositories. https://github.com/blueskysocial
[9] Bluesky Social PBC. 2023. Algorithmic Choice with Custom Feeds. https: //blueskyweb.xyz/blog/7-27-2023-custom-feeds Archived at https://perma.cc/ Z6U4-VMY8.
[10] Bluesky Social PBC. 2023. ATProto Feed Generator. https://github.com/blueskysocial/feed-generator
[11] Bluesky Social PBC. 2023. Bluesky Proposal 0001: User Lists, Reply-Gating, and Thread Moderation. https://github.com/bluesky-social/proposals/tree/main/ 0001-user-lists-replygating-and-thread-moderation
[12] Bluesky Social PBC. 2023. Bluesky Proposal 0002: Labeling and Moderation Controls. https://github.com/bluesky-social/proposals/tree/main/0002-labelingand-moderation-controls
[13] Bluesky Social PBC. 2023. Featured Community Project: SkyFeed. https: //atproto.com/blog/feature-skyfeed Archived at https://perma.cc/AYR8-AY5K.
[14] Bluesky Social PBC. 2023. Moderation in a Public Commons. https://blueskyweb. xyz/blog/6-23-2023-moderation-proposals Archived at https://perma.cc/XFX2- CCFJ.
[15] Bluesky Social PBC. 2023. Purchase and Manage Domains Directly Through Bluesky. https://blueskyweb.xyz/blog/7-05-2023-namecheap Archived at https://perma.cc/QUA7-L8QJ.
[16] Bluesky Social PBC. 2023. Why are blocks on Bluesky public? https://atproto. com/blog/block-implementation Archived at https://perma.cc/2ZQX-KTNJ.
[17] Carsten Bormann and Paul Hoffman. 2020. RFC 8949: Concise Binary Object Representation (CBOR). IETF Standards Track. https://datatracker.ietf.org/doc/ html/rfc8949
[18] Renee DiResta. 2018. Free Speech Is Not the Same As Free Reach. WIRED. https: //www.wired.com/story/free-speech-is-not-the-same-as-free-reach/ Archived at https://perma.cc/ZF5R-USHM.
[19] ENS Labs Limited. [n. d.]. Ethereum Name Service. https://ens.domains/about/
[20] Farcaster Team. [n. d.]. Farcaster Architecture. https://docs.farcaster.xyz/ protocol/architecture.html Archived at https://perma.cc/7PDP-ATTH.
[21] fiatjaf. [n. d.]. nostr - Notes and Other Stuff Transmitted by Relays. https: //github.com/nostr-protocol/nostr Archived at https://perma.cc/6YCW-VERW.
[22] fiatjaf. 2023. A vision for content discovery and relay usage for basic socialnetworking in Nostr. https://fiatjaf.com/3f106d31.html Archived at https: //perma.cc/9N8B-DLXW.
[23] fiatjaf and Michael Dilger. 2021. NIP-05: Mapping Nostr keys to DNS-based internet identifiers. https://github.com/nostr-protocol/nips/blob/master/05.md
[24] Gildásio Filho. [n. d.]. deck.blue. https://deck.blue/
[25] Jay Graber. 2021. Ecosystem Review. https://gitlab.com/bluesky-community1/ decentralized-ecosystem Archived at https://perma.cc/RJ2Y-H6YT.
[26] Jay Graber. 2023. Algorithmic choice. https://blueskyweb.xyz/blog/3-30-2023- algorithmic-choice Archived at https://perma.cc/WQR6-5QJF.
[27] Christian Gribneau, Michael Prorock, Orie Steele, Oliver Terbu, Mike Xu, and Dmitri Zagidulin. 2023. did:web Method Specification. W3C Credentials Community Group. https://w3c-ccg.github.io/did-method-web/ Archived at https://perma.cc/WB8M-8ECW.
[28] Grow your own services. [n. d.]. Grow your own social network. https: //growyourown.services/grow-your-own-social-network/ Archived at https: //perma.cc/KS4A-RAEW.
[29] Cassie Heart, horsefacts, and Varun Srinivasan. 2023. FIP-6: Flexible Storage. https://github.com/farcasterxyz/protocol/discussions/98 Archived at https:// perma.cc/9JT5-DR3V.
[30] Evan Henshaw-Plath. 2023. Pivoting Protocols, from SSB to Nostr. https://www. nos.social/blog/pivoting-from-ssb-to-nostr Archived at https://perma.cc/9Y63- 28YM.
[31] Daniel Holmgren, Bryan Newbold, Devin Ivy, and Jake Gold. 2023. DID PLC Method (did:plc). https://github.com/did-method-plc/did-method-plc
[32] IPFS Documentation. [n. d.]. Content Identifiers (CIDs). https://docs.ipfs.tech/ concepts/content-addressing/ Archived at https://perma.cc/65PP-ZRQW.
[33] Ben Laurie. 2014. Certificate Transparency. ACM Queue 12, 8 (Aug. 2014), 10–19. https://doi.org/10.1145/2668152.2668154
[34] Christine Lemmer-Webber, Jessica Tallon, Erin Shepherd, Amy Guy, and Evan Prodromou. 2018. ActivityPub. W3C Recommendation. https://www.w3.org/ TR/2018/REC-activitypub-20180123/
[35] Lens Protocol. [n. d.]. Lens Protocol Overview. https://github.com/lens-protocol/ core Archived at https://perma.cc/SFA7-7CQ6.
[36] Lens Protocol. 2023. Introducing Momoka to Scale Lens. https://mirror.xyz/ lensprotocol.eth/3Hcl0dGE8AOYmnFolzqO6hJuueDHdsaCs3ols2ruc9E Archived at https://perma.cc/5SY9-PCP3.
[37] Emily Liu. 2023. How to set your domain as your handle. https://blueskyweb. xyz/blog/4-28-2023-domain-handle-tutorial Archived at https://perma.cc/4LNR6YC5.
[38] Mike Masnick. 2019. Protocols, Not Platforms: A Technological Approach to Free Speech. Technical Report. Knight First Amendment Institute at Columbia University. https://knightcolumbia.org/content/protocols-not-platforms-atechnological-approach-to-free-speech Archived at https://perma.cc/2V36- FKV3.
[39] Mastodon gGmbH. [n. d.]. Mastodon. https://joinmastodon.org/
[40] Matrix.org Foundation. [n. d.]. Matrix: An open network for secure, decentralised communication. https://matrix.org/
[41] Bryan Newbold. 2023. Mechanisms for private “block” relationships between Bluesky accounts. https://github.com/bluesky-social/atproto/discussions/1131 Archived at https://perma.cc/2FWX-NPAX.
[42] Samuel Newman. [n. d.]. Graysky: Bluesky, like you’ve never seen it before. https://graysky.app/
[43] Jarkko Oikarinen and Darren Reed. 1993. RFC 1459: Internet Relay Chat Protocol. IETF Network Working Group. https://datatracker.ietf.org/doc/html/rfc1459
[44] Project Liberty. 2020. Decentralized Social Networking Protocol (DSNP). https: //dsnp.org/dsnp_whitepaper.pdf Archived at https://perma.cc/RD62-RCKA.
[45] Protocol Labs. [n. d.]. Specification: DAG-CBOR. https://ipld.io/specs/codecs/ dag-cbor/spec/ Archived at https://perma.cc/D7UV-EUFL.
[46] Yoel Roth and Samantha Lai. 2023. Collective Security in a Federated World. In Scaling Trust on the Web. Atlantic Council, Chapter Annex 5. https://www. atlanticcouncil.org/in-depth-research-reports/report/scaling-trust/ Archived at https://perma.cc/CT3R-DCF5.
[47] Peter Saint-Andre. 2011. RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core. IETF Standards Track. https://datatracker.ietf.org/doc/html/ rfc6120
[48] SilverWolf32 et al. 2019. Mastodon issue #12423: Support Post Migration. https: //github.com/mastodon/mastodon/issues/12423
[49] Solid Project. [n. d.]. Solid. https://solidproject.org/
[50] Manu Sporny, Dave Longley, Markus Sabadello, Drummond Reed, Orie Steele, and Christopher Allen. 2022. Decentralized Identifiers (DIDs) v1.0: Core architecture, data model, and representations. W3C Recommendation. https: //www.w3.org/TR/did-core/
[51] Varun Srinivasan. [n. d.]. Farcaster: A Decentralized Social Network. https: //github.com/farcasterxyz/protocol/blob/main/docs/OVERVIEW.md
[52] André Staltz. 2023. Manyverse Blog: June 2023 update. https://www.manyver. se/blog/2023-06-05 Archived at https://perma.cc/D568-KD26.
[53] André Staltz. 2023. Manyverse Blog: May 2023 update. https://www.manyver. se/blog/2023-05-05 Archived at https://perma.cc/9D7E-E8EH.
[54] Orie Steele and Manu Sporny. 2023. DID Specification Registries: The interoperability registry for Decentralized Identifiers. W3C DID Working Group. https://w3c.github.io/did-spec-registries/#did-methods Archived at https:// perma.cc/LM4T-JTZ5.
[55] The Manyverse Authors. [n. d.]. FAQ: How can I use my account on many devices? https://www.manyver.se/faq/account-on-many-devices Archived at https://perma.cc/5S9S-NA9U.
[56] The Manyverse Authors. [n. d.]. FAQ: How do I delete content? https://www. manyver.se/faq/permanence Archived at https://perma.cc/DSB4-6H78.
[57] The Manyverse Authors. [n. d.]. Manyverse. https://www.manyver.se/
[58] Tokyo Outsider. 2023. MastodonContentMover. https://mastodoncontentmover. github.io/ Archived at https://perma.cc/EGM8-RM8U.
[59] Verse Communications Inc. [n. d.]. Planetary Social. https://www.planetary. social/
[60] Warpcast. [n. d.]. Farcaster: A protocol for decentralized social apps. https: //www.farcaster.xyz/
[61] X Help Center. [n. d.]. How to block accounts on X. https://help.twitter.com/en/ using-x/blocking-and-unblocking-accounts Archived at https://perma.cc/VZZ6- CSCM.
[62] Douglas Yeung. 2023. The ‘Digital Town Square’ Problem. The RAND Blog. https: //www.rand.org/blog/2023/01/the-digital-town-square-problem.html Archived at https://perma.cc/3GM7-3VPP.
This paper is available on arxiv under CC BY 4.0 DEED license.