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とフォロワーベースが失われることはありません。
    • ユーザーに新しいリレーアドレスを手動で入力するように要求する代わりに(これもサポートされているはずですが)、フォローしている誰かがサーバーの推奨事項を投稿するたびに、クライアントはクエリを実行するリレーのリストにそのアドレスを自動的に追加する必要があります。
    • リレーを使用してデータを公開しているが、別のリレーに移行したい場合は、その前のリレーにサーバーの推奨事項を公開して移動できます。
    • 誰かが多くのリレーから禁止され、サーバーの推奨事項をブロードキャストできない場合でも、他の手段で現在公開しているリレーを親しい友人に知らせる可能性があります。その後、これらの親しい友人はその新しいサーバーにサーバーの推奨事項を公開でき、ゆっくりと、禁止されたユーザーの古いフォロワーベースは新しいリレーから自分の投稿を再び見つけ始めます。
    • All of the above is valid too for when a relay ceases its operations.
  • Censorship-resistance

    • Each user can publish their updates to any number of relays.
    • A relay can charge a fee (the negotiation of that fee is outside of the protocol for now) from users to publish there, which ensures censorship-resistance (there will always be some Russian server willing to take your money in exchange for serving your posts).
  • Spam

    • If spam is a concern for a relay, it can require payment for publication or some other form of authentication, such as an email address or phone, and associate these internally with a pubkey that then gets to publish to that relay — or other anti-spam techniques, like hashcash or captchas. If a relay is being used as a spam vector, it can easily be unlisted by clients, which can continue to fetch updates from other relays.
  • Data storage

    • For the network to stay healthy, there is no need for hundreds of active relays. In fact, it can work just fine with just a handful, given the fact that new relays can be created and spread through the network easily in case the existing relays start misbehaving. Therefore, the amount of data storage required, in general, is relatively less than Mastodon or similar software.
    • Or considering a different outcome: one in which there exist hundreds of niche relays run by amateurs, each relaying updates from a small group of users. The architecture scales just as well: data is sent from users to a single server, and from that server directly to the users who will consume that. It doesn't have to be stored by anyone else. In this situation, it is not a big burden for any single server to process updates from others, and having amateur servers is not a problem.
  • Video and other heavy content

    • It's easy for a relay to reject large content, or to charge for accepting and hosting large content. When information and incentives are clear, it's easy for the market forces to solve the problem.
  • Techniques to trick the user

    • Each client can decide how to best show posts to users, so there is always the option of just consuming what you want in the manner you want — from using an AI to decide the order of the updates you'll see to just reading them in chronological order.

FAQ

  • This is very simple. Why hasn't anyone done it before?

    I don't know, but I imagine it has to do with the fact that people making social networks are either companies wanting to make money or P2P activists who want to make a thing completely without servers. They both fail to see the specific mix of both worlds that Nostr uses.

  • How do I find people to follow?

    First, you must know them and get their public key somehow, either by asking or by seeing it referenced somewhere. Once you're inside a Nostr social network you'll be able to see them interacting with other people and then you can also start following and interacting with these others.

  • How do I find relays? What happens if I'm not connected to the same relays someone else is?

    You won't be able to communicate with that person. But there are hints on events that can be used so that your client software (or you, manually) knows how to connect to the other person's relay and interact with them. There are other ideas on how to solve this too in the future but we can't ever promise perfect reachability, no protocol can.

  • Can I know how many people are following me?

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

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

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

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

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

プロトコル仕様

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

ソフトウェア

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

ライセンス

パブリックドメイン。