AT Protocol
AT Protocol (Authenticated Transfer Protocol) 背後是由 Bluesky 這個社群軟體公司所開發的一種協議。
Bluesky 大多是由前 Twitter 員工所組成的,可以發現它和 Twitter 的介面非常的相似。
Why
爲什麼會有這個協議:主要是爲了解決封閉的社群網站,使用者沒有自己資料的所有權,當進行遷移意味著會損失所有的一切(流量、like、留言等),而被迫待在自己不喜歡的社群提供商中。
當使用者無法離開服務商資料被綁架的時候,服務商一切都會以利潤為主,而不重視使用者,會有更多的廣告或是壓縮成本只為了賺取更多的報酬。
在過往社群軟體尚未普及的時候:
大家會寫自己的內容並建立在自己的網域中。
例如 Tom 建立了自己的 Blog 在 tom.blog.com 上,而 Jack 也建立了自己的 Blog jack.blog.com。
他們彼此會透過強大的 HTML 原生的能力 link 去進行鏈接,可以相互的引用或是使用不同位置的照片。
在這個時期,所有建立的資料都是自己的。
假設 Blog 是建立在 AWS 上,你不滿意 AWS 的服務或是沒有任何的理由想要換成 Google,沒有任何的問題,你不會喪失任何的東西,使用者也不會有任何的感覺。
就算更換了服務商但只要 Domain 仍然一樣,鏈接就仍然有效,Jack 引用了 Tom 的圖片仍然可以正常運作,資料也一直在自己的手中,除了重新建立服務會花點時間外,沒有任何的影響。
直到大量的封閉社群網站開始流行(X, Facebook, 小紅書等):
使用者無法輕易的遷移,因為遷移的成本太高,就算可以將內容進行備份,但像是喜歡、讚、留言或是追蹤等一切都會消失,只剩下留存的內容。
為什麼使用者會接受並且成為主流?原因是相比傳統的 Blog 社群多了許多的功能,像是 Feed、通知或是社團等功能,豐富的功能讓使用者被迫接受了資料在他人手裡的情境,而當服務商發現使用者無法輕易的離開後,就不在尊重使用一切以利益為優先。
How
Bluesky 建立了 AT Protocol 為了解決這個問題,每個使用者都有自己的倉庫(Repository),每個倉庫的資料都是使用者自己的,資料內不僅包含了使用者的 Post 資料,也包含了 Like, Comment 等。
並透過相互連結的方式,像是 Tom 在 Jack 的一篇 Post 留下了 Comment,Jack 按下 Like 在 Tom 的 Comment。
Tom 的倉庫會記錄下,Tom 在哪個 Post 留下了 Comment。
Jack 的倉庫會紀錄下,他的 Post 有哪些 Comment,並且他按了哪些 Comment Like。
像是在 Post 就會紀錄,並透過連接可以關聯到其他使用者的紀錄。
{
"text": "also `goat syntax tid check 3m3zm7eurxk26`",
"$type": "app.bsky.feed.post",
"langs": [
"en"
],
"reply": {
"root": {
"cid": "bafyreic6orgs5a5uz3iq345gpmhyfagqxfnqi3wlcvaxj5z5hpiai772ju",
"uri": "at://did:plc:fpruhuo22xkm5o7ttr2ktxdo/app.bsky.feed.post/3m3zmdqg2n22h"
},
"parent": {
"cid": "bafyreieylye5ctlkl7yudytnhqyvgfn5f4k65ybzy7abchjiyn7cjx4h3i",
"uri": "at://did:plc:p2cp5gopk7mgjegy6wadk3ep/app.bsky.feed.post/3m3zmroxwys2u"
}
},
"createdAt": "2025-10-25T16:03:32.263Z"
}每次的 Like 也都會進行紀錄。
{
"$type": "app.bsky.feed.like",
"subject": {
"cid": "bafyreie3mmpdidl2wpeyjdv2knuat6fxmrhjsrp4gpahhu32d7t6qleeo4",
"uri": "at://did:plc:44ybard66vv44zksje25o7dz/app.bsky.feed.post/3m46ybtoiks2w"
},
"createdAt": "2025-10-27T18:06:44.298Z"
}如果多數的社群都支援 AT Protocol 的話,那麼在 A 社群發佈了 Post,若大家不滿意 A 社群,那完全可以由 B 社群 Host AT Protocol,並顯示使用者的 A 社群曾經的 Post 與留言。
也可以透過 AT Protocol 建立自己想要的社群,透過 type 進行 filter。
{
"$type": "pub.leaflet.document",
"pages": [
{
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "i like to move it move it..."
}
}
]
}
],
"title": "hello world",
"author": "did:plc:fpruhuo22xkm5o7ttr2ktxdo",
"description": "just testing",
"publication": "at://did:plc:fpruhuo22xkm5o7ttr2ktxdo/pub.leaflet.publication/3lxgd325zh22o",
"publishedAt": "2025-09-24T20:00:32.188Z"
}每個社群實現的方式也可以不同。
像是可以實現在 A 社群發佈 Post,在 B 社群也同時顯示。端看服務商要如何處理這些資料。
當社群背後資料使用了 AT Protocol,不同的 Client 端可以透過 Web Socket 進行資料的即時更新,並儲存在 Local 端的 DB 中後,其它功能像是興趣推薦、通知或訊息等就由各社群進行實作,達成了資料屬於使用者,但仍然擁有目前社群多數有的功能。
Thoughts
要架設 AT Protocol 服務的成本非常的高昂,資料量是非常的龐大,那注定一般的小型企業或是一般的使用者非常的難以進入其中,雖然號稱著讓使用者擁有選擇,但以目前來看仍然是以 Bluesky 目前的 AT Protocol 服務為主,還沒有其它人是獨立架設第二個 AT Protocol,並且此協議也是以 Bluesky 內部進行開發的,主打著讓使用者可以擁有選擇,但真實情況可能非常難以實現。
另外一個類似的社群想法是 Mastodon 不過並不是基於 AT Protocol,而是使用了 ActivityPub 的方式,成本更且也能在多個社群中使用。
Mastodon is a free, open-source social network server based on ActivityPub where users can follow friends and discover new ones. On Mastodon, users can publish anything they want: links, pictures, text, and video. All Mastodon servers are interoperable as a federated network (users on one server can seamlessly communicate with users from another one, including non-Mastodon software that implements ActivityPub!)
自己覺得也許單就讓使用者更能進行選擇的話, Mastodon 會更有優勢一點,也更不容易被服務商綁架。但這 2 者對多數人來說應該還是沒有任何的誘因,大部分使用社群軟體的人應該也是為了周遭的朋友、家人等,畢竟社群是透過人與人之間才建立的,當大多數人都選擇使用 Facebook 的時候,也會迫使其他人儘管不喜歡但為了種種原因還是會繼續使用它。