generated at
Protocol Overview (AT Protocol)
Authenticated Transfer Protocol (別名 atproto、あっとぷろとこる) は、大規模な分散ソーシャル アプリケーション用のフェデレーション(連合)プロトコルです。 このドキュメントでは、AT プロトコルの背後にあるアイデアを紹介します。

Identity

ユーザーは AT プロトコルのドメイン名で識別されます。 これらのドメインは、ユーザーのアカウントとそのデータを保護する暗号化 URL (Cryptographic URL)にマップされます。

Data repositories
ユーザー データは、署名付きData Repositoriesで交換されます。 これらのリポジトリは、投稿、コメント、いいね、フォロー、メディア BLOB などを含むレ コードの集合です。

連合(Federation)

AT Protocol は、フェデレーション ネットワーク モデル内のリポジトリを同期します。 フェデレーションは、ネットワークが使いやすく、確実に利用できるようにするために選択されました。 リポジトリデータは、標準Webテクノロジー(HTTP XRPC + WebSockets event-stream) を使用してサーバー間で同期されます。

ネットワークの 3 つのコアサービス
Big Graph Services (BGS) ← 2024-02-09 現在、これが削除されて、下の Relay に置き換わっていた

feed生成やらベラーにも取り組んでいます。

さまざまな方法でスタックできる下位レベルのプリミティブは、リポジトリ(repositories)、レキシコン(lexicons)とDIDです。連合アーキテクチャに関する技術的な決定の概要をブログで公開しました。

相互運用

Lexicon と呼ばれるグローバル スキーマ ネットワークを使用して、サーバー間で呼び出しの名前と動作を統一します。 サーバーは、ユーザー リポジトリを同期するためのコア ATP lexiconや、基本的なソーシャル動作を提供するための Bsky lexiconなど、機能セットをサポートするために「lexicon」を実装します。
Web がドキュメントを交換する間、AT プロトコルは図式および意味情報を交換し、異なる組織のソフトウェアが互いのデータを理解できるようにします。 これにより、ATP クライアントはサーバーとは独立してユーザー インターフェイスを自由に作成できるようになり、コンテンツの閲覧中にレンダリング コード (HTML/JS/CSS) を交換する必要がなくなります。

規模の達成

ATP は、「スモールワールド」ネットワークと「ビッグワールド」ネットワークを区別します。 スモール ワールド ネットワーキングは個人間のアクティビティを含みますが、ビッグ ワールド ネットワーキングはユーザーの個人的なやり取り以外のアクティビティを集約します。

スモールワールド: メンション、返信、DM などの特定のユーザーを対象としたイベントの配信、および次のグラフによるデータセットの同期。
ビッグワールド: 大規模な指標 (いいね、再投稿、フォロワー)、コンテンツの発見 (アルゴリズム)、およびユーザー検索。

パーソナル データ サーバー (PDS) はスモール ワールド ネットワーキングを担当し、インデックス サービスは個別にネットワークをクロールしてビッグ ワールド ネットワーキングを提供します。
スモール ワールドとビッグ ワールドの区別は、スケールと高度なユーザー選択を実現するためのものです。

アルゴリズム選択

Web 検索エンジンと同様に、ユーザーは自由にインデクサーを選択できます。 各フィード、ディスカバリー セクション、または検索インターフェイスは、サード パーティ サービスから提供されながら、PDS に統合されます。

アカウント ポータビリティ

パーソナル データ サーバー(PDS)は、完全にオフラインになるか、特定のユーザーへのサービスを停止することにより、いつでも失敗する可能性があると想定しています。 ATP の目標は、ユーザーがサーバーの関与なしに自分のアカウントを新しい PDS に移行できるようにすることです。

ユーザー データは署名付きData Repositoriesに保存され、DID(Identity) によって検証されます。 DID は基本的にユーザー証明書のレジストリであり、ある意味で TLS 証明書システムに似ています。 これらは、安全で信頼性が高く、ユーザーの PDS から独立していることが期待されています。

各 DID ドキュメントは、署名鍵と回復鍵の 2 つの公開キーを発行します。
署名鍵 (Signing key): DID ドキュメントおよびユーザーのデータ リポジトリへの変更をアサートします。
回復鍵 (Recovery key): DID ドキュメントへの変更をアサートします。 72 時間以内に署名キーをオーバーライドできます。
署名鍵は、ユーザーのデータを管理できるように PDS に委ねられますが、回復鍵はユーザーによって紙の鍵などとして保存されます。 これにより、ユーザーは元のホストの助けなしにアカウントを新しい PDS に更新できます。
ユーザーのデータのバックアップは、バックアップとしてクライアントに永続的に同期されます (使用可能なディスク容量に依存します)。 PDS が通知なしに消えた場合、ユーザーは DID ドキュメントを更新してバックアップをアップロードすることで、新しいプロバイダーに移行できるはずです。

スピーチ、リーチ、モデレーション

ATP のモデルでは、スピーチとリーチは、互いに連携するように構築された 2 つの別個のレイヤーである必要があります。 「スピーチ(speech)」レイヤーは、中立で権限を分散し、誰もが発言できるように設計されている必要があります。 「リーチ(reach)」レイヤーは最上位にあり、柔軟性のために構築され、スケーリングするように設計されています。
ATP (Personal Data Repositories と 連合 Networking) の基本層は、誰もが自由に参加できるスピーチのための共通スペースを作成します。これは、誰もが Web サイトを立ち上げることができる Web に似ています。 インデックス サービスは、検索エンジンと同様に、ネットワークからコンテンツを集約することでリーチを可能にします。

仕様

@プロトコルの v1 は、5 つの主要な仕様で構成されています。 これらの仕様は次のとおりです。

Authenticated Transfer Protocol (ATP)
HTTP API (XRPC) と event-stream

これらの仕様は、依存関係の 3 つのレイヤーに編成できます。

ここ(ATプロトコル)から、引き続きガイドと仕様を読むことができます。