世界を動かす技術を、日本語で。

プロトコルを使い、サービスを使わない

概要

  • インターネット本来の匿名性とプライバシー の重要性
  • 中央集権型サービス による個人特定と規制のリスク
  • プロトコル利用 による分散性と抵抗力の強調
  • サービスの乗り換えでは 根本的解決にならない ことの指摘
  • 今後はプロトコルベースの運用 への転換の提案

インターネットの匿名性とプライバシー

  • インターネットは 設計上、ほぼ匿名性とプライバシー保護 を持つ
  • 管理者が積極的に追跡しない限り、身元特定の仕組みが存在しない 設計
  • これらの特性を壊すのは クローズドな中央集権型プラットフォーム の台頭
  • プラットフォームでは 運営会社や政府による個人特定 が容易
  • 最近の規制強化 を受け、再びプロトコル利用への転換が必要

サービス集中の脆弱性

  • 政府は一社に要請するだけでユーザー特定や検閲が可能

  • 一通の要請や命令文書 でサービス運営会社は従わざるを得ない

  • 現在、 世界中で年齢確認義務化の法整備が進行中

  • Discordでは 未成年デフォルト設定や本人確認 (顔認証やID提出)が導入予定

  • プロトコルベースの通信では、これらの強制は不可能

    • IRC、XMPP、ActivityPub、Nostr、Matrix等の 分散型プロトコル
    • 各サーバー管理者が独自判断 で運営
    • 何千もの独立運営者に個別圧力は非現実的
    • 一部サーバーが従っても、 ユーザーは他へ移動可能

サービスの乗り換えの無意味さ

  • Discordの規制発表後、 他サービスへの移行衝動
  • しかし、 新サービスも同じ規制下、または将来的に圧力対象
  • 結局、 規制可能な単一事業体に依存し続けるだけ
  • 根本解決は商用サービス依存をやめ、プロトコルへ移行すること

プロトコルの例:メール

  • メール(SMTP)はプロトコルベース運用の好例
  • プロバイダー変更や自前運用も可能
  • 現在はGoogleやMicrosoft等による 寡占状態 だが、 プロトコルの強靭性 が証明されている
  • GoogleアカウントがBANされても、他プロバイダー経由でGmailユーザーと連絡可能
  • 仮に大手が撤退・遮断しても、 SMTP実装は残り、最低限の通信が継続可能
  • Discord等の中央集権型サービスはBANで完全にアクセス不能

プロトコル利用の推奨

  • サービス選択は、一社による個人特定・規制・データ提供を許容すること
  • プロトコル利用で、分散運営・自己決定権・規制耐性の確保
  • 今後はサービスではなく、プロトコルを選択する時代

Hackerたちの意見

Discordを置き換えることについては、2019年から考えていて、自分のIMプラットフォームを2007年から作ってるんだ。いろんなプラットフォームの提案を聞くけど、個人的にはXMPPが一番可能性があると思ってる。今はまだ見せられるものはないけど、モダンなクライアントを作ってるところで、基本的なXMPPの機能、友達追加、ステータス設定、メッセージ送信とか、シンプルなことをサポートしてる。2000年代後半から2010年代初頭には、GoogleやFacebookがXMPPをサポートしてたから、Pidginを通じてXMPPゲートウェイでFacebookチャットやGoogleトークにログインできたんだ(これがデフォルトプロトコルだったかブリッジだったかはもう忘れちゃったけど、何年も前のことだし)。XMPPの最大の強みは、ウェブや企業(銀行とか)もXMLを使ってるから、HTMLがめちゃくちゃ最適化されてるおかげで、高パフォーマンスのライブラリがたくさんあって、すごく効率的に処理できることだね。でももっと重要なのは、拡張可能なプロトコルだってこと。IRCや他の競合プロトコルとは違って、設計上拡張できるから、Discordにある機能の半分だって、プロトコルのデフォルト設計を崩さずに実現できる理由があるんだ。

おお、新しいクライアント! Fluux[0]やMovimに来るSpaces[1]、そしてこれで、XMPPエコシステムがまたワクワクしてきたね。 [0] https://github.com/processone/fluux-messenger [1] https://movim.eu/

今日の比較は、同じアイデアを最近の形で表現したMatrixプロトコルとの対比がもっと重要だと思うし、JSONとXMLの議論はあんまり強いとは言えないね。

XMPPは今のクソみたいな状況への最初の一歩だったね。IRCとは違って、登録が必要だし、識別子を漏らすし、権力を第三者に集中させちゃう。法的トラブルやダウンタイム、リソースの無駄遣いにさらされることになる。あと、IRCは拡張性があるしね。

XMLは最近の強みじゃないと思うな。

準備ができたらぜひ見せてね!XMPPとプロトコル指向の考え方の復活に乾杯!

今日はXMPPサーバーのセルフホスティングについての別のスレッドがあるよ。 https://news.ycombinator.com/item?id=47034801

XMPPの一番いいところ、というかOPが言ってる「プロトコルではなくサービス」という点は、意図されたユースケースを超えて使えるところだよね。私のお気に入りの例は、AristaのネットワークスイッチがXMPPサーバーのクライアントになれること。コントロールプレーンはとてもスリムでなければならない。XMPPはネットワークオペレーターがネットワーク全体に広範囲で対称的な設定を適用できるようにしてくれるんだ、繰り返しなしでね。「コア」スイッチをグループチャットに追加して、同時に情報を問い合わせることもできる。例の記事を見つけたよ: https://jonw.mayhem.academy/arista-switch-wrangling-with-xmp... Discordをコントロールプレーン管理の選択肢として見ることはないし、SlackやTelegram、Signalもそうだよね。でも、もし全てかグループがXMPPをサポートしていれば、そういう道が開けるかもしれない(本当に誰かが望めばね)。今のところ、各サービスが独自のシステムを持っているせいで製品ロックインが起きていて、インタラクティビティには限界がある。だから、会社のSlackからスイッチの障害原因を直接引用することは、しばらくは無理だね。

XMPPの最大の強みは[...] XMLだと思う。確かにそれは利点だけど、私にとってはシリアライゼーションフォーマットが一番面白くない部分なんだ。他のも似たように最適化されてるし。拡張性や標準へのアプローチの方が、角括弧を使ってるってことよりもずっと面白いと思うよ。

ぜひ見せてほしいな! XMPPが大好きで、クライアントは少ないから。ジングルはできるの?

メールの例を使ってるけど、もしGoogleにバンされたら、自分のアイデンティティもバンされちゃうし、それが人と連絡を取る手段になるかもしれない。だから、分散型のアイデンティティが必要だよね。サービスプロバイダーとは独立して存在できるけど、ちゃんと自分のもので、偽者のものじゃないっていう。

atprotoは、非常にエレガントな分散型アイデンティティの解決策を持ってると思うよ。 https://atproto.com/guides/identity

Gmailで自分が所有するカスタムドメインを使うことができるよ。でも、もちろんドメインも完全に分散型ってわけじゃなくて、失うのが簡単だから、あんまり良くないよね。

それはドメイン名の形で存在してるよ。信頼できるTLDの場合は、違法行為を除いて永久的だね。

アイデンティティは「インフラ」で、政府がmDLSみたいなもので提供すべきだと思う。セキュリティを確保して、プライバシーを守る方法で使えるようにするために、たくさんの作業が必要だよね。例えば、年齢確認のための属性の選択的開示とか。オンラインアイデンティティが本当のアイデンティティに結びつかないペアワイズの仮名を使うことができれば、ほとんどの時間で役立つと思う。そういうのがあれば、分散型システムのシビル問題に対処するのに大いに役立つし、これはシステムデザイナーにとっては頭痛の種になりがちだから。

そうだね、(特にBluesky / ATProtoを見た後で)これは解決すべき問題じゃないってますます思うようになったよ。メールはまだプロトコルだし、ATProtoがやってることは解決しようとしてる問題と同じくらい問題を引き起こしてる。だって「分散型アイデンティティ」って結局「アイデンティティ」だからね。一番安全なアイデンティティのやり方は、壊せてその場で再構築できることだと思う。

両方のプロトコルと非プロトコルの根本的な問題はアイデンティティだよね。Gmailが機能するのは、Googleがアイデンティティを持っていて、人間の証明としてうまく機能しているから。ちょっと脱線するけど、今まで以上に多くの人が個人の公開鍵ペア(暗号を通じて)を持つことは、実際にはいい方向だと思う。Atprotocolも今、アイデンティティの大きなプレイヤーだね。「悪いことはできない」メカニズムが生き続けて、良いUXがあればいいな。

個人的には、分散化とプロトコルはソフトウェアの最終フロンティアだと思う。確かにAIもあるけど、今のところ見てきた限りでは、個人に対する権力のバランスを変えてない。プロトコルは変えるけどね。他のものはノイズか、薄っぺらい独占のように感じる。考えてみると、これらの多くの根底にはアイデンティティがある。プロトコルのために新しいアイデンティティソリューションが必要だね。

1000億のChatGPTがどのプロトコルも使えない理由は何?

Nostrはアイデンティティとプロトコルの両方を提供しているよ。

SMTPはいいWebhook配信プロトコルになると思ってた。

これの重要性は強調しきれないよ。LLMがソフトウェアを書くのを簡単にして、リリースが増えてる。去年は増加が見られなかったアプリストアも、今はリリースの増加が見えてきてる。これは起こってることなんだ。つまり、ソフトウェアはもっと競争力が高く、マージンが低くなるってこと。これを聞くと暗い未来のように聞こえるけど、実際には素晴らしいことだよ。消費者にとっても、巨大企業と競争したいインディー開発者にとってもね。彼らのマージンは君のチャンスだよ。その一方で、君が探しているような初期採用者たちは、エンシティフィケーションやロックインに敏感だから、彼らにリーチして話題にされる最良の方法は、大手VC支援の企業が絶対に作らないようなソフトウェアを作ることだよ。勝者は、自分の顧客を理解し、尊重する一人の会社になるだろうね。オープンプロトコルはユーザーに対するリスペクトを示して、素晴らしい差別化要因になるかもしれない。

消費者にとって素晴らしいことだね。うん、私も自分のデータが公開のFirebaseバケットにアップロードされるのが好きだよ。

「一人会社」と「オープンプロトコル」はあんまり意味がないと思う。たぶん、一人がすごいプロトコル定義を vibe コードする超小さなチャンスがあるかもしれないけど、それはほとんど笑えるくらい小さい。Vibe コーディングがすべての問題の答えじゃないよ。

特に、サービスから完全に抜け出せるプロトコルがいいよね!(ローカルファースト、ピアツーピア)。今、興味があるのはこのフロンティア技術で、AIじゃないんだ(でも将来的には互換性があるかもね)。

プロトコルとサービスの違いが重要なのは、バージョンライフサイクルがロックインを生むところだね。サービスに依存すると、そのサービスの廃止スケジュールに振り回されることになる — Herokuの無料プラン、Googleリーダー、Parseみたいに。プロトコルに依存すると、最悪の場合は実装を切り替えるだけで済む。議論のアイデンティティのポイントはその通り。ほとんどのプロトコルファーストアーキテクチャに欠けているのは、サービス依存を別のレベルで再現しないポータブルなアイデンティティレイヤーだね。DIDや検証可能なクレデンシャルがこれを解決しようとしているけど、消費者向けの魅力的なユースケースがまだないから、採用は非常に遅い — 企業のコンプライアンス関連の話ばかり。XMPPとMatrixの議論は面白いけど、少しポイントを外してるかも。どちらのプロトコルも機能する。Discordが勝った理由はプロトコルの優位性じゃなくて、すでにソーシャルグラフを持っているゲーミングコミュニティに乗っかって「空の部屋」問題を解決したからだよ。プロトコル設計は必要だけど、それだけじゃ不十分。みんなが同時に切り替えなくてもいい移行パスも必要だね。

考えてみてよ - なんでDiscordやSlackがIRCを超えたのかな? プロトコルの進化はすごく遅いんだよね。IRCv3がチャンネルの履歴を持つようになるまでどれくらいかかったと思う? ネットワーク分裂によるチャンネルの引き継ぎはどう? 20世紀にはこれが問題だってわかってたのに、解決するのにすごく時間がかかった。あ、チャット履歴の拡張機能はまだドラフトのままだし、チャンネル名変更もそう! アカウント登録は? それに、Mastodonを使うのがなんでこんなに辛いの? これはほんの一例に過ぎないよ。HTMLやHTTPクライアントの統合が、これらのサービスに革新をもたらした唯一の方法だったことを考えてみて。人々はChromeに追いつかなきゃいけないけど、あいつは自分のやりたいことだけやってるからね。プロトコルで支配される分散型の世界を望みたいけど、素早く進化する良いソフトウェアは例外であって、普通じゃないんだよね。

あなたが言ってることは、あなた(と他の多くの人)が過去に便利さや迅速な機能開発を自由や安定性よりも重視してきたってことだけだよね。それは理解するのに良いけど、そのトレードオフが問題を引き起こし始めたときには、トレードがあったことを思い出すのが大事だよ。私たちは思っているほど動けないわけじゃない、過去の選択を再評価しないと決めない限りはね。

全然理解できるよ、私も分散型の世界には賛成だし。でも実際はほとんどの人が、速く動いて、すぐに使えるものを選ぶんじゃないかな。ドラフトなんていらないし。逆の例が見られたら素晴らしいけど、今のところ中央集権的なアプローチの方がうまくいってるよね。

IRCプロトコルとDiscordプラットフォームを比べるのはバカげてるよ。リンゴとオレンジみたいなもんだし。

IRC、XMPP、ActivityPub、Nostr、Matrixで年齢確認を求めることはできないよ。なぜなら、強制できる単一のエンティティが存在しないから。各サーバーの運営者がそれぞれの判断を下すんだ。政府は数千の独立した運営者に対して、各地で個別に圧力をかける必要があるけど、それは立法的にも執行的にも不可能だよ。投稿の主張には非常に共感するけど、この手の主張には暗黙のうちに「(今のところ)」が付いてることを認識すべきだと思う。法律制度は、まだ対処する必要がなかった問題に対しては良いメカニズムを持っていないけど、もしほとんどの人が暗号化された分散型プロトコルに移行したら、法律が改正されて、政府にそれを大規模に立法したり監視したりする権限を与えることができるようになるかもしれない(独裁政権、投票ブロック、国家安全保障サービスなどの十分に強力なグループによって必要とされる場合)。だから、もう一つの暗黙の部分は、技術の変化が私たちの政治的期待に対する文化的変化を伴うことを望むということだね。人々がプライバシーや自律性に慣れたら、それらの権利を侵害しようとする努力に抵抗するようになるから。これを支持しているみんなに幸運を祈るよ! Discordの後にたくさんの活気あるコミュニティが見られることを本当に楽しみにしてる。

普通の人は自分のメールサーバーを設定したいわけじゃないんだ。彼らはただ、メールを送受信できる「サービス」にログインしたいだけ。これが企業が人々の生活に入り込む方法で、低い摩擦で、しばしば無料で時間と労力を節約できるんだ。プロトコルがその問題をどう解決するの? 誰かが他の人の生活を楽にするために時間と労力を寄付しなきゃいけないし、そうなるとまた中央集権化が進むよ。