リレーって何?

短い答え

各ユーザが所属できる「グループ」のようなものです。複数のグループに所属することもできます。原則として、あなたはあなたが属するグループに属しているユーザのことしか認識できません。

ここで、グループを選択することは「コミュニティ」を選択することとはあまり関係がないことには注意が必要です。どちらかというと、携帯電話を使うためにどこのキャリアを使うかといったインフラの選択に近いニュアンスを持ちます。

コミュニティに関係がないとは言っても言語人口の偏りは確かに存在しているので、日本語の多いタイムラインを構成したい場合などはリレーを吟味する必要があります。

少し長い答え

リレーはユーザが発信した イベント (event) を受け取って、同じリレーに属するユーザに配信する (リレーする) サーバです。イベントとは、ユーザが Nostr 上で行う行動のうち他のユーザから見えうるようなものについて記述するデータです。

例えば、あなたが何かを投稿したり、誰かの投稿にリアクションしたり、プロフィールを更新したり、他のユーザをフォローしたり……といったおよそ SNS らしい行動のひとつひとつはすべてイベントとして記述され、リレーを介して他のユーザにばらまかれます。逆に、他のユーザのそうした行動も、リレーを中継してイベントとしてあなたの手元に届きます。このイベントの送受信が Nostr の仕組みを支える核となるものです。逆に言えばそれ以外の情報のやり取りはほとんど行われていません。

同じリレーに属さないユーザ同士が互いを認識できない理由は以上の仕組みから簡単に説明できます。つまり、互いのイベントを受け取ることができないからです。あるユーザからイベントが届かないということは、そのユーザが投稿しても、リアクションしても、プロフィールを更新してもあなたにはそれが見えないということですから、あなたにとってそのユーザはいないのと同じです。

ところで、先程グループ (リレー) の選択はコミュニティの選択ではないと言いました。というのも、各グループは大部分で重なり合うケースが多いのです。ユーザ同士が繋がるためにはどこかひとつのリレーで繋がってさえいればいいはずなのに、なぜこのような一見無駄とも思える構造をしているのでしょうか?その理由には冗長化と責任分散という 2 つの側面があります。

ひとつ目の冗長化とは「どこかのリレーが機能不全に陥ったとしても他のどれかひとつでもリレーが生きていれば普段通り Nostr を使うことができる」という効果を狙うものです。あなたはいくつかのリレーに同時に属することによって (通信量と引き換えに) 冗長化の恩恵に与ることができます。

ふたつ目の責任分散はあなたではなくリレーの運営者にとって嬉しい性質です。これも冗長化の延長線上にある恩恵だと言えますが、つまり「代わりがたくさんいるので、リレーの運営をいつやめてもユーザに迷惑がかからない」という性質です。これは従来の分散型 SNS にあまり類を見ない珍しい特色だと言えます。