nostr - 機能する可能性のあるTwitterの真に検閲に強い代替手段

(a truly censorship-resistant alternative to Twitter that has a chance of working)

Created at: 2020-11-09 11:17:41
Language:

nostr - リレーによって送信されるメモやその他のもの

検閲に強いグローバルな「ソーシャル」ネットワークを完全に作成できる最も単純なオープンプロトコル。

信頼できる中央サーバーに依存しないため、回復力があります。暗号化キーと署名に基づいているため、改ざん防止されています。P2P技術に依存しないため、機能します。

これは進行中の作業です。テレグラムグループに参加してください!

あなたが他に何も読むつもりがない場合、それがどのように機能するかの非常に短い要約:

誰もがクライアントを運営しています。ネイティブクライアント、Webクライアントなどにすることができます。何かを公開するには、投稿を書き、キーで署名して、複数のリレー(他の誰かまたはあなた自身がホストするサーバー)に送信します。他の人から最新情報を入手するには、複数のリレーにこれらの他の人について何か知っているかどうかを尋ねます。誰でもリレーを実行できます。リレーは非常に単純で愚かです。一部の人からの投稿を受け入れて他の人に転送する以外に何もしません。リレーを信頼する必要はありません。署名はクライアント側で検証されます。

Nostrの使用を開始する方法

Nostr クライアント機能の比較

Nostr上に構築されたプロジェクトのリスト

これは、他のソリューションが壊れているためです。

ツイッターの問題

  • ツイッターには広告があります。
  • Twitterは奇妙なテクニックを使用して中毒を維持します。
  • Twitterには、フォローしている利用者からの実際の過去のフィードは表示されません。
  • ツイッターは人々を禁止します。
  • ツイッターは人々をシャドウバンします。
  • ツイッターにはたくさんのスパムがあります。

マストドンおよび同様のプログラムの問題

  • ユーザーIDは、サードパーティによって制御されるドメイン名に添付されています。
  • サーバーの所有者は、Twitterと同じようにあなたを禁止することができます。サーバーの所有者は他のサーバーをブロックすることもできます。
  • サーバー間の移行は後付けであり、サーバーが協力する場合にのみ実行できます。敵対的な環境では機能しません(すべてのフォロワーが失われます)。
  • サーバーを実行する明確なインセンティブがないため、サーバーの所有者や、クールなドメインに自分の名前を付けたい人によって実行される傾向があります。次に、ユーザーは一人の独裁主義の対象となり、Twitterのような大企業よりも悪いことが多く、移行することはできません。
  • サーバーは素人っぽく実行される傾向があるため、しばらくすると放棄されることがよくあります—これは事実上、全員を禁止するのと同じです。
  • すべてのサーバーからの更新を他の大量のサーバーに苦痛にプッシュ(および保存)する必要がある場合、大量のサーバーを用意することは意味がありません。この点は、サーバーが膨大な数に存在する傾向があるため、より多くのデータをより多くの場所に頻繁に渡す必要があるという事実によって悪化します。
  • ビデオ共有の具体例として、ActivityPub愛好家は、テキストノートのようにサーバーからサーバーへビデオを送信することは完全に不可能であることに気付いたため、Nostrアプローチに似た、投稿された単一のインスタンスからのみビデオをホストし続けることにしました。

SSB(セキュアスカットルバット)の問題

  • 多くの問題はありません。素晴らしいと思います。実際、私はそれをこれの基礎として使用するつもりでしたが、
  • そのプロトコルは、オープンプロトコルであるとはまったく考えられていなかったため、複雑すぎます。それはおそらく特定の問題を解決するための簡単な方法でJavaScriptで書かれ、それから成長したので、ECMA-262第6版のルールに厳密に従わなければならないJSON文字列に署名するような奇妙で不必要な癖があります;
  • それは単一のユーザーからの更新のチェーンを持つことを主張します、それは私には不必要であり、物事に肥大化と硬直性を加える何か - 各サーバー/ユーザーは新しいものが有効であることを確認するために投稿のすべてのチェーンを保存する必要があります。なぜでしょうか。(多分彼らには正当な理由があります)。
  • Nostrほど単純ではなく、主にP2P同期用に作成されており、「パブ」は後付けです。
  • それでも、このカスタムプロトコルの代わりにSSBを使用し、それをクライアントリレーサーバーモデルに適応させることを検討する価値があるかもしれません。

誰もが自分のサーバーを実行する必要がある他のソリューションの問題

  • 彼らは誰もが自分のサーバーを実行する必要があります。
  • ドメイン名を検閲する可能性があるため、これらの場所で検閲されることがあります。

Nostrはどのように機能しますか?

  • クライアントリレーの 2 つのコンポーネントがあります。各ユーザーはクライアントを実行します。誰でもリレーを実行できます。
  • すべてのユーザーは公開キーによって識別されます。すべての投稿は署名されています。すべてのクライアントがこれらの署名を検証します。
  • クライアントは、選択したリレーからデータを取得し、選択した他のリレーにデータを公開します。リレーは別のリレーとは通信せず、ユーザーと直接通信するだけです。
  • たとえば、誰かを「フォロー」するには、ユーザーはクライアントに、その公開鍵からの投稿について知っているリレーを照会するように指示するだけです。
  • 起動時に、クライアントは、フォローしているすべてのユーザーについて知っているすべてのリレーからのデータを照会し (たとえば、最終日からのすべての更新)、そのデータを時系列でユーザーに表示します。
  • 「ポスト」にはあらゆる種類の構造化データを含めることができますが、最も使用されているものは標準に組み込まれるため、すべてのクライアントとリレーがそれらをシームレスに処理できます。

上記のネットワークでは解決できない問題をどのように解決しますか?

  • ユーザーが禁止され、サーバーが閉鎖される

    • リレーは、ユーザーがそこで何かを公開するのをブロックできますが、他のリレーに公開できるため、ユーザーには影響しません。ユーザーは公開鍵によって識別されるため、禁止されてもIDとフォロワーベースが失われることはありません。
    • ユーザーに新しいリレーアドレスを手動で入力するように要求する代わりに(これもサポートされているはずですが)、フォローしている誰かがサーバーの推奨事項を投稿するたびに、クライアントはクエリを実行するリレーのリストにそのアドレスを自動的に追加する必要があります。
    • リレーを使用してデータを公開しているが、別のリレーに移行したい場合は、その前のリレーにサーバーの推奨事項を公開して移動できます。
    • 誰かが多くのリレーから禁止され、サーバーの推奨事項をブロードキャストできない場合でも、他の手段で現在公開しているリレーを親しい友人に知らせる可能性があります。その後、これらの親しい友人はその新しいサーバーにサーバーの推奨事項を公開でき、ゆっくりと、禁止されたユーザーの古いフォロワーベースは新しいリレーから自分の投稿を再び見つけ始めます。
    • 上記のすべては、リレーが動作を停止した場合にも有効です。
  • 検閲抵抗

    • 各ユーザーは、更新を任意の数のリレーに公開できます。
    • リレーは、ユーザーから料金を請求することができます(その料金の交渉は今のところプロトコルの範囲外です)そこで公開し、検閲抵抗を保証します(あなたの投稿を提供することと引き換えにあなたのお金を受け取ることをいとわないロシアのサーバーは常にあります)。
  • スパム

    • スパムがリレーにとって懸念される場合は、公開または電子メールアドレスや電話などの他の形式の認証の支払いを要求し、これらをそのリレーに公開する公開キー、またはハッシュキャッシュやキャプチャなどの他のスパム対策技術に内部的に関連付けることができます。リレーがスパムベクトルとして使用されている場合、クライアントは簡単にリストから削除され、他のリレーから更新を取得し続けることができます。
  • データストレージ

    • ネットワークを正常に保つために、何百ものアクティブなリレーは必要ありません。実際、既存のリレーが誤動作し始めた場合に新しいリレーを作成してネットワーク全体に簡単に拡散できるという事実を考えると、ほんの一握りで問題なく機能します。したがって、必要なデータストレージの量は、一般に、Mastodonまたは同様のソフトウェアよりも比較的少なくなります。
    • または、別の結果を考えてみましょう:アマチュアによって実行される何百ものニッチリレーが存在し、それぞれが少数のユーザーグループからの更新を中継します。アーキテクチャも同様に拡張され、データはユーザーから単一のサーバーに送信され、そのサーバーからそれを使用するユーザーに直接送信されます。他の人が保存する必要はありません。この状況では、単一のサーバーが他のサーバーからの更新を処理することは大きな負担ではなく、アマチュアサーバーを持つことは問題ではありません。
  • ビデオやその他の重いコンテンツ

    • リレーが大きなコンテンツを拒否したり、大きなコンテンツの受け入れとホスティングに対して課金したりするのは簡単です。情報とインセンティブが明確であれば、市場の力が問題を解決するのは簡単です。
  • ユーザーをだますテクニック

    • 各クライアントは、ユーザーに投稿を表示する最適な方法を決定できるため、AIを使用して表示される更新の順序を決定することから、時系列で読むことまで、必要なものを好きな方法で消費するオプションが常にあります。

FAQ

  • これは非常に簡単です。なぜ誰も前にそれをしなかったのですか?

    わかりませんが、ソーシャルネットワークを作っているのは、お金を稼ぎたい企業か、サーバーなしで完全に物を作りたいP2P活動家であるという事実と関係があると思います。どちらも、Nostrが使用する両方の世界の特定の組み合わせを見ることができません。

  • フォローする人を見つけるにはどうすればよいですか?

    まず、それらを知り、どこかで参照されているか、参照されているのを見て、何らかの方法で公開鍵を取得する必要があります。あなたが中に入ると Nostr ソーシャルネットワークでは、彼らが他の人と交流しているのを見ることができ、その後、これらの他の人をフォローして交流することもできます。

  • リレーを見つけるにはどうすればよいですか?他の人と同じリレーに接続していない場合はどうなりますか?

    あなたはその人とコミュニケーションをとることができなくなります。ただし、クライアントソフトウェア(または手動で)が他の人のリレーに接続して対話する方法を知るために使用できるイベントに関するヒントがあります。将来的にこれを解決する方法については他にもアイデアがありますが、完璧な到達可能性を約束することはできません。

  • 私をフォローしている人の数を知ることはできますか?

    いいえ、しかし、リレーがプロトコル外の方法で協力する場合、いくつかの見積もりを得ることができます。

  • 人々がリレーを実行するインセンティブは何ですか?

    質問は誤解を招く恐れがあります。リレーは、人々がリレーを介してデータを移動できるように存在する無料のダムパイプであることを前提としています。この場合、はい、インセンティブは存在しません。これは実際、他のすべてのP2PネットワークスタックのDHTノードにも言えます:人々がDHTノードを実行するインセンティブは何ですか?

  • Nostrを使用すると、サーバーリレー間を移動したり、複数のリレーを使用したりできますが、これらのリレーがAWSまたはAzure上にあるだけの場合、違いは何ですか?

    今日、文字通り何千ものVPSプロバイダーが世界中に散らばっていますが、AWSやAzureだけではありません。AWSまたはAzureは、多くのスケールを必要とする単一の集中型サービスプロバイダーによって使用されるプロバイダーであり、それでもこれら2つだけではありません。小規模なリレーサーバーの場合、どのVPSも非常にうまく機能します。

プロトコル仕様

プロトコル仕様の合理的に詳細な説明については、NIP、特にNIP-01を参照してください(ヒント:非常に短く単純です)。

ソフトウェア

Nostrを使用して構築されているほとんどのソフトウェアのリストがあります https://github.com/aljazceru/awesome-nostr 前回見たときにはほぼ完成しているように見えました。

ライセンス

パブリックドメイン。