分散SNSとしてのNostr
要旨
・Nostrの分散性の源泉はクライアントが複数のリレーに接続できる仕組みと、プロトコル自体がオープンソースなため誰でもクライアントやリレーを作れることにある。
・ライトニングネットワークの統合によって既存の決済手段の統合ではシームレスに実現することが難しかったグローバルな投げ銭が実現されており、ライトニングネットワークとのシナジーが大きい。
・分散SNSとしての強みはオープンソースのプロトコルのシンプルさから開発者が参入しやすいところにあるが、冗長性(おもに通信量)と分散性がトレードオフの関係にあるため分散性が犠牲にされやすいという弱点もある。
・現時点では通信量やスパムに起因するUXの問題を改善する有料リレーやフィルター機能などがNostrに関連したビジネスとして成り立っている模様である。
本稿で初めてNostrを紹介したのは昨年12月のこと。Twitterから競合として名指しされてから、ユーザー数が一気に数百人程度から数万~数十万人へと拡大したタイミングでした。
その後も順調に利用者が定着しており、最近ではDamusというクライアントアプリがライトニング決済機能についてAppleのアプリストアから圧力を受けたことも話題になりました。
さて、開発者向けAPIの改悪・有料化、モバイルアプリやAPIからのツイート閲覧数制限、閲覧目的でもログイン必須化など、今年に入ってからもTwitterの迷走が続いています。これを受けて競合のSNSは今がチャンスとばかりに盛り上がっており、例えば日本ではMisskeyの登録者が急増したり、アメリカではMeta社のThreadsアプリがローンチしています。
この流れを受けてNostrは分散SNSとしての存在感を維持し、ユーザーを増やしていくことができるのでしょうか。今日は分散SNSとしてのNostrに焦点を当てていきます。
クライアントとリレーの仕組み、分散性
まずはNostrの仕組みを軽くおさらいします。
Nostrにはクライアント(ユーザー)とリレー(サーバー)という2種類の役割があります。クライアントはリレーに接続すると、そのリレーに接続したすべてのユーザーから発せられるイベントを受信します。もちろん、ユーザーが発信したメッセージなども同じリレーに接続する他のユーザーすべてに配信されます。
ユーザーは複数のリレーに接続することができるのがNostrのキモの部分です。そもそも、別のリレーを使用しているユーザーの投稿を受け取るには共通のリレーに接続する必要があります。冗長とも捉えられるこの仕組みによって、もしあるユーザーと複数のリレーを共有していればどれかが利用できなくなっても引き続きお互いの投稿を見ることができます。これがNostrが「分散SNS」と表現される理由の1つです。
Nostrのリレーやクライアントはオープンソースのプロトコルに従って動作するものなので、多数の実装が存在します。DamusやAmethystといったクライアントアプリが人気ですが、その他にも数多くのクライアントやリレー実装が存在します。プロトコルがシンプルなことも実装のカンブリア爆発に貢献しており、プロトコルを拡張するサブプロトコルの提案(NIP)も数十件提案されています。
つまり、Nostrの分散性はクライアントが複数のリレーに接続できることと、シンプルなプロトコルに従えばクライアントやリレーが比較的簡単に実装できることから実現しているということです。
ライトニングとの相性が抜群
昔から仮想通貨のユースケースの1つに投げ銭というものがあります。数年前まではTwitterで様々なコインのTipbotが稼働していた記憶があります。リプライなどでチップを(一般的にはカストディアルウォレット内で)送れるシステムです。
実は、従来のSNSでシームレスに投げ銭機能を実装しているものはあまり多くありません。理由は様々かもしれませんが、単純に考えてグローバルなSNSであれば決済手段や通貨、払い出し周りのコンプライアンス対応など様々な問題があると考えられます。
例えばYouTubeのスパチャではコンプライアンス面で配信者の地域、動画の内容など様々な条件が課せられています。また、払い出しに関しても条件に合致するごく一部の配信者を扱うのと全ユーザーを扱うのでは大変さが天と地の差でしょう。
一方でNostrは考案者がライトニングネットワーク界隈で有名なfiatjaf氏であるだけに、割と早い段階からライトニングを利用したビットコインの投げ銭機能が提案されています。必ずしもすべてのクライアントアプリが対応しなければならない機能ではないですが、人気のものの多くが対応しています。
プロフィールからの投げ銭のほかに、特定の投稿に投げ銭をすることができるこの機能はZap (NIP-57)と呼ばれ、fiatjaf氏が考案したLNURLを少し拡張することで実装されています。LNURLサーバーはセルフホストすることもできますが、大半のユーザーはカストディアルウォレットを利用していると考えられます。
このように、Nostrは非常にオープンな投げ銭によってビットコインやライトニングのネットワーク効果を強化していく可能性があります。
注意点として、ライトニングネットワークのプライバシー面での特徴により、Zapが行われた金額は受け取った側の自主申告であり、第三者には検証不可能です。例えば2100万BTC受け取ったと主張することもできてしまうので、Zap金額を鵜呑みにはできません。
分散SNSとしての強み
さて、以前の記事ではNostrはあくまでクライアントとリレー間のプロトコルであって、分散SNSは1つのアプリケーションにすぎないとしていましたが、分散SNSとしての強みはどこにあるのでしょうか。
何よりの強みはプロトコルのシンプルさや拡張しやすさが多数の開発者を呼び込むことに成功していることだと感じています。P2P通信を含むような分散SNSはソフトウェアの複雑性が大きく、開発者にとってハードルが高いものですし、オープンソースであってもコードが中央集権的に管理されているようなサービスだと意見の相違から開発者が離れていく場合も多いと想像できます。一方でNostrではコアのプロトコルにさえ従っていれば独自の実装を作ってしまえるため、「俺の考えた最強のSNS」をNostrという共通基盤の上に築いていける側面があります。
逆に分散SNSとして見たときの弱点としては、Nostrではアカウントが短時間で無数に作れてしまえるためスパム耐性が極端に低いこと、そしてリレーの仕組み上通信量が膨大になることです。究極的にはこれらの対策として各クライアントが接続するリレー数を絞ったり、リレーがクライアントに面倒な条件を課してしまうと冗長性から得られる分散性が失われやすくなるのではないかという懸念があります。
実際にリレーの有償化や投稿にProof of Workを要求する(NIP-13)などの対策、すべての通信ではなくプロキシに提供したユーザーのリストに関連する通信だけを受信する、などの対策が取られていますが、どれも冗長性とコストのトレードオフになっています。
Nostrのビジネスチャンス
上記の通り、Nostrにはプロトコルレベルでの弱点がいくつか存在します。逆に言えばこれらはビジネスチャンスであり、問題の解決にライトニングネットワークを使った支払いが利用しやすいのは便利だと言えます。
例えばリレーによっては料金を請求しているものもあります。例えばNostr.wineでは月に10,000satsの料金で接続することができます(プリペイド式)。期間ではなく、投稿単位で課金を要求するのに使えるようなNIP (NIP-42)も存在するので、そのようなモデルを採用しているリレーもあるかもしれません。
また、Nostr.wineは複数のリレーをアグリゲートする機能もあるため、リストに含まれるリレーを他に利用している場合は通信量の節約にも役立ちます。ただし、他のリレーに直接接続しない場合はNostr.wineが配信内容をフィルタリングしていないことをトラストする必要はあります。
このように、Nostrではリレーがデータの保存や配信に関わる大きなコストを負担しており、モバイルであればクライアントにとっても負担となる水準の通信量が生まれるため、これらを軽減する方法がそのままビジネスチャンスとなっています。ただし、冗長性によって確保される分散性とトレードオフの関係にあることは留意すべきでしょう。
究極的には1人1リレーになって、フォロー=リレー接続になると効率をある程度改善しつつ分散性を維持できるかもしれません。(これが同じくジャック・ドーシーが支援しているがなかなかプロダクト出てこないWeb5というやつです…)
果たしてスケーリングができるのか?
結局のところ自分が気になる点はここです。今も少なくとも数万人はアクティブユーザーがいると思われるNostrですが、これが10~1000倍になったときに果たしてその通信量を捌けるリレーがどれくらい残るか?という点に不安が残ります。しかし、その規模まで成長するかもわかりませんし、その時が来るまでわからないでしょう。
以上、分散SNSとしてのNostrについてでした。
次の記事
読者になる
一緒に新しい世界を探求していきましょう。
ディスカッション