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

ノストル

概要

  • Nostr はオープンで分散型の通信プロトコル
  • 中央集権や検閲に依存しない 設計
  • 多様な用途・クライアント・リレー で自由度が高い
  • スパム・ハラスメント対策や拡張性 も議論
  • MastodonやBlueskyと比較し 独自の強み を持つ

Nostrとは何か

  • Nostr は、誰もが利用・構築できる オープンな分散型通信プロトコル
  • 企業や政府の管理下にない コミュニケーション・コモンズ
  • シンプルな標準規格 で、クライアントとサーバー(リレー)の スケーラブルなアーキテクチャ を定義
  • あらゆる情報の自由な発信・共有 が可能
  • Twitterのようなマイクロブログだけでなく、 動画・長文・音声・マーケットプレイス等 多様な用途

インターネット初期のカオスを再現

  • 多様なデータ形式・ユーザー体験 を許容
  • 各クライアントが 同じ情報に異なる視点 を提供
  • 複数クライアント・複数リレー による分散型ネットワーク

クライアントとリレーの関係

  • クライアント: PCやスマホ上のアプリ
  • リレー: クラウド上で動作しドメイン名を持つサーバー
  • 中央集権型とは異なり、複数のリレーに同時接続 可能

新しいコミュニケーションのパラダイム

  • ユーザーは 秘密鍵(key)で識別
  • 各メッセージに デジタル署名 を付与し、 真正性・著者性 を保証
  • 権威不要の分散型信頼基盤 を実現

検閲と自由

  • プロトコル自体は無所有・非政治的
  • 各リレーは 独自の基準でコンテンツを許可・拒否 可能
  • ユーザーは 読むリレー・コンテンツを自由に選択

コミュニティとリレーの運営

  • 誰でも自分専用のリレーを簡単に立ち上げ可能
  • 独自ルールの設定や運用 が容易

新しいアイデアと拡張性

  • サブプロトコル開発 が活発(例:分散型Wikipedia、マーケット、協働開発)
  • コアデータ以外の 調整・発見メカニズム としても利用可能
  • ファイル共有・ライブ配信 等、多用途展開

エコシステムと現状

  • 多くのオープンソースソフトウェアとユーザー
  • まだ 発展途上 であり、 開発者・アーリーアダプター の貢献が重要
  • プロトコル設計やUX改善 が進行中

マイクロブログとグループ

  • "アウトボックスモデル" による検閲耐性クライアント設計
  • NIP-29 で効率的なクローズドグループ実現(フォーラム・チャット向け)

Nostrの仕組みと特徴

  • 検閲・障害時でもユーザーとオーディエンスの接続維持
  • 自由なアソシエーション とネットワーク効果

FAQ:よくある質問

  • プロトコルとは?

    • 複数のソフトウェアが共通言語で通信する仕組み(例:e-mail, HTTP)
    • 特定のアプリに依存せず 多様なクライアントが利用可能
  • スパム・迷惑コンテンツ対策

    • フォローした人の情報のみ取得 でスパム回避
    • リプライや外部からの接触にはフィルタリング戦略 を各クライアントが実装可能
    • 信頼できるリレーのみ利用 など多様な対策
  • スケーラビリティ

    • ユーザーが 多数のリレーに分散 することで 自然な負荷分散
    • ネイティブアプリは 多数WebSocket接続 も容易
    • ローカルDBでイベント管理 しバッチ処理も可能
  • オンラインハラスメント対策

    • 迷惑ユーザーは ブロック で可視化防止
    • 共有ブロックリストや限定公開リレー など追加策も
  • なぜMastodon/FediverseではなくNostrか

    • Mastodonは 暗号技術非対応でIDがサーバー依存
    • サーバー管理者の権限が強く 中央集権的リスク
    • Nostrは リレー単位で本当のコミュニティ形成 が可能
  • なぜBluesky/ATProtoではなくNostrか

    • Blueskyは ID・データの中央集権
    • 単一ソース依存で検閲・シャドウバン等のリスク
    • 複数ソース運用すれば 結局Nostr的構造 になる
  • リレー運用の経済的インセンティブ

    • 低コスト運用 が可能(例:$5/月で数千ユーザー)
    • 多様な運営主体 (個人・コミュニティ・企業等)
  • 情報の網羅性

    • 全ての情報を常に把握することは不可能
    • ユーザーは 関心・許可された範囲の情報のみ取得
  • 検索機能

    • 見たことのある範囲のみ検索可能
    • クライアント側に蓄積したデータでローカル検索 が実現
    • Googleのようなインデックス型検索も可能だが範囲限定

Nostrの今後と課題

  • さらなるユーザー体験向上やプロトコル改善 が必要
  • 多様なクライアント・リレー・エコシステム の拡大
  • 新たなユースケースやサブプロトコル の登場に期待

Hackerたちの意見

HNでNostrが注目されてるのを見るのは嬉しいね。まだ始まったばかりだけど、Nostrは「zapps」を使えるんだ(要はビットコイン・ライトニングを使った即時マイクロペイメントね)。広告や怪しいアルゴリズムを使う代わりに、コンテンツクリエイターに少額の支払いで感謝を示せるってわけ。これは広告なしの分散型ソーシャルメディアのモデルになるかも。

ビットコインはめっちゃ規制されてるよね。

NostrがHNのトップにあって嬉しいよ。まだ始まったばかりだけど、Nostrでは「zapps」が可能なんだ。Nostrは少なくとも5年前から存在してるよ。パンデミックの時に人々がそこに移行して、Twitterで宣伝してたのを覚えてる。まだ始まったばかり?

こういうコメントを読むと、今すぐ登録したくなるけど、実際のページをクリックして探ってみると、最初に目にするのは本当に物を作って売ってる人たちなんだ。確かにビットコインで支払いを受け付けてるけど、ギーやカカオを売ってて、代替教育に興味があるコミュニティがあるんだよ。君が言ってるのは「私の日記を見せるから、それにお金を払って」っていうのとは違う。リアルな商品やサービスで、「コンテンツ」じゃないんだ。

Nostrクライアントのプルリクエストでザップを稼ぐこともできるよ。こんな感じのバウンティをいくつかホスティングしてるんだ: https://app.lightningbounties.com/issue/615dc5f7-ed91-4ecd-8...

技術者向けに明らかに作られた新しいソーシャルネットワークについて、ちょっと理解できないことがあるんだ。僕の考える真の分散型ソーシャルネットワークって、元々のウェブみたいに個人がホスティングしたウェブサイトのネットワークに近いんだよね。別のプラットフォームでアカウントを作ってやり取りするのはもううんざり。個人のウェブサイトを運営することを奨励しつつ、チャットやフィードみたいな典型的なソーシャルメディア機能を中央集権的に追加するような「ネットワーク」を作ろうとした試みはあったのかな?思いつくのはRSSだけど、それはコンテンツの公開をフォローするための手段に過ぎないし。

個人がホスティングしたウェブサイトのネットワークに近い それじゃ monetization できないよね。

だいたいそんな感じでnostrは動いてるよ。ウェブサイトの代わりにノートがあって(何でもありの一般的なタイプ)、サーバーの代わりに「リレー」があるんだ。

これは面白い質問だね。ちょっと脱線するけど、すでにその効果を得るための技術のミックスがあるんだ。簡単に言うと、個人のウェブサイトを共有ホスティングやVPSでホストしながら、IRCやXMPPでチャットしたり、RSSを使って自分についての情報を共有するフィードを作ったりできる。だから、実際に解決したい問題は何なの? アクセシビリティを改善したいの?つまり、非技術者がフィードに参加したり、自分の考えを発信したり、グループチャットに参加したりするハードルを下げたいの? それとも、既存のものの発見性を向上させたいの?みんなが偶然情報を見つけやすくしたいの?検索や推薦、リンク、pub/subなどを簡単にしたいの?持続可能性を解決したいの?技術の維持費をカバーするモデルを開発したいの?それとも、コミュニティが自分たちでモデレート・ガバナンスできるようにするための十分な配慮を提供するガバナンスの問題を解決したいの?これらは大きな質問で、これらを一緒に解決しようとすると、必然的にトレードオフが必要になるよ。すべてを分散化するのは素晴らしいけど、それは発見性やアクセスの面に影響を与える。別のアカウントがないのは良さそうだけど、オンラインとオフライン、分散アイデンティティについての複雑な議論を隠しちゃう。さらに深く掘り下げると、私たちのアプローチは価値観に基づいているんだ。それは話す相手によって大きく異なることもある。ここから、社会学や文化のあいまいな領域に入っていくんだ。そこには絶対的な真実は少ない。だからといって、手を挙げて現状を受け入れるべきだとは思わないけどね。「単一のネットワーク」や「単一のプロトコル」という言い方は、これらの質問にアプローチするには粗すぎる。インターネットが私たちに提供する本質的な価値は、標準化や構成、オープン性といったいくつかの基本的なデザイン原則に見出せる。それによって、多様なコミュニティをホストする多くのネットワークを作ることができるんだ。それぞれ自分に合ったものを持つのは悪いことじゃない。みんなのニーズに応える万能の解決策があるなんて考えるのはあまりにもナイーブだよ。バルカン化は、自由でオープンでアクセス可能なデジタルグローバルネットワークについて私たちが持つ共通の信念を侵食する場合、本当に問題になる。MastodonやNostr、Fediverse、Smolwebなどのニッチで活動している「技術者」たちは、初期のインターネットの誕生につながった同じ価値観を持つ特定の(カウンター)カルチャーに浸っているからこそ、そうしているんだ。サイバースペースはまずアイデアの市場なんだ。技術はその表現に過ぎない。

この場合の「アカウント」は単なる公開鍵/秘密鍵のペアだよ。自分のリレーをホストできるし(誰もあなたの言いたいことを聞かないけど、サブスクライブしない限り)、同じ公開鍵(「アカウント」)をどのNostrリレーでも使える。投稿をすべてのリレーにブロードキャストすることも、いくつかのリレーにだけすることも、自分のリレーにだけすることもできる。理論的には、投稿ごとに新しい鍵を生成することもできるよ。リレーはそれを気にしない。これはMastodonなどにはない特徴だね(アカウントはサーバーに結びついているから、自己ホスティングしたMastodonを自己ホスティングしたAkkomoに移動するにはMastodonを動かし続けないといけないし、インスタンスの管理者が許可しない限り、別のインスタンスに移動できない)。その一方で、アカウントの回復が完全にできないことは、多くの人にとって問題になるかもしれないね。

なんで「明らかに技術者向け」って言うの?彼らを作った人たちの考えがわかるの?

インディウェブ?

Nostrをマイクロブログのソーシャルネットワークとして使わなくても、役立つレイヤーを提供できるよ。例えば、Trystero(MITライセンス)を使えば、中央サーバーなしでP2P WebRTC接続を確立できるんだ。

それいいね!Nostr、Bittorrent DHT、Mastodonを使って、検閲に強いマルチチャネルの冗長放送ビーコンを作ろうと思ってたんだ。すべての方法がダウンしない限り、ノード同士が見つけられなくなることはないからね。

すごいね、これ。自分のプロジェクトでも似たようなものを作ろうと思ってたから、同じ問題を抱えてた人がいてよかった。時間を節約できたよ。

これすごく面白いね。同じような感じで、少し前にNostrかATProtoがピアツーピアのインスタントメッセージングシステムの一部として機能する可能性があるか考えてたんだ。特に、永続的なストレージやオフラインメッセージングの手段としてね。(でも、接続を確立するのに使うのもかなり賢いと思う。)

Nostrのリレーが連携してメッセージを共有しているという誤解が多いけど、実際はそうじゃないんだ。だから「Twitterクローン」を作るなら、クライアントアプリは複数のリレーを検索して、複数のリレーに投稿しなきゃいけない。共通のリレーを使っていないクライアント同士はお互いを見ることができない。結果として、ユーザーにも開発者にも悪い体験になる。1つのリレーを使うのは中央集権的で、本来の目的を果たせないし、複数のリレーを使うのは遅くて面倒で、ユーザーがどのリレーに接続しているかを知っておく必要がある。数年前にNostrを触ったとき、「NIPs」はすでにめちゃくちゃだった。後から出たNIPsが前のNIPsを上書きして、クライアントがメッセージをどう解釈すべきかを変えちゃうし。今では「推奨されていない:廃止予定」としてフラグが立っているものもあるよ。

そうだね。メッセージの伝播に共通のモデルがないから、「ネットフォース」や明確な方向性がないんだよね。

これは確かに有効な観察で、ある意味ハードルだね。僕にとっては、取り組むのが面白い問題だよ。これを解決するアプローチはいくつかある。例えば、NIP65では、自分のプロフィールにどのリレーを読み書きするかを定義して、クライアントが正しいコンテンツを見つけられるようにしてるんだ。それは一つのアプローチで、他のアイデアを探ってる人もいるみたい。とにかく、解決可能な問題に見えるね。

いくつかのNIPにはちょっとおかしなことがあるけど、技術が急速に進化したからなんだ。ほとんどのNIPは大丈夫で、継続的に改善されてるよ。定期的にNIPをリリースすれば、他の仕様と同じように簡単に解決できることだよ。今のところ、その形式的な必要性はあまりないけど、ほとんどの開発者はすぐにそれを使ってツールを作る方法を理解してるみたい。

Mastodonの方がその目的には適してるのに、フロントページにTwitterのクローンを載せるのはちょっと誤解を招くよね。このプロトコルの本当の価値は他のユースケースにあるんだ。

今はほとんどのクライアントがアウトボックスをサポートしてるから、共通のリレーは必要ないよ。ユーザーはインボックスとアウトボックスのリレーを持ってて、クライアントはそれを使ってメモを送受信するんだ。

リレーはフェデレーションできるよ。ポイントは、Nostrというプロトコルがこれについて何も言っていないし、気にしていないってこと。僕は他のリレーインデクサーとフェデレーションするインデクサー(リレー)を運営してる。ActivityPubのリレーが機能するのと似たような感じだね。どのクライアントでもインデクサーに接続して、イベントのメタデータを見つける手助けができる。リレーに接続していなくても、クライアントから情報を発見する方法はたくさんあるよ。

それは誤解だよ。リレーを「使う」っていう感覚じゃなくて、リレーに書き込むんだ。読むときは、読みたい人たちのリレーに接続する。確かに、いくつかのアプリは静的なリレーのセットを選ぶ方法を使ってるけど、それがプロトコルだったら中央集権や膨張について正しいかもしれない。でもそれは未完成な初期実装からの名残で、今はほとんどのアプリが正しいやり方をしてるし、残りは移行中なんだ。

リレーはユーザー生成コンテンツを所有してないから、クライアントが一般的に選んだリレーセットを「フェデレート」する必要はないんだ。ユーザーは、どこでイベントを読み書きしたいかを選ぶんだよ。とはいえ、多くの「大きな」リレーは他のリレーからのイベントを保存してる(フェデレーションって呼びたいならそう呼んでいいけど)。Primalもそうだし、TheForrestもそう、nostr.landなんかもね。特にnostr.landは、他の多くのパブリックリレーからノートを集約する目的があって、スパムフィルタリングもしてる。これはそのために作られた有料リレーなんだ。そういうのが嫌なら、他のを使えばいい。今のところ、ほとんどのユーザーは現在のリレーのフェデレーションから99%のノートを見ることができるけど、そのメトリクスをチェックするのは不可能だよ。特定のクライアントやサイナーはノートをプライベートに保存してるから、もしリレーがノートを検閲することに決めたら、別のリレーに公開すればいいんだ。人気のある有料リレーを使ってるなら、他のリレーがすでに最初にノートを公開してるって警告が3/4の書き込みイベントで来る可能性が高いよ。だいたいそんな感じで早いんだ…。最後に、リレーは自分自身がクライアントとして機能することで「フェデレート」するんだ。ほとんどのリレーソフトウェアはすでにこれをオプションとして提供してるし、モバイルでネットワークやWi-Fiが遅い時のためにローカルキャッシュとして使うこともある。ローカルリレーは他のリレーからノートをゆっくり引っ張ってきて、そのノートをクライアントを立ち上げる時にキャッシュするんだ。これはキャッシュで、クライアントの開発者はその機能をわざわざ書く必要もなかった、透明だったんだ。最後に、他の人が言ってたアウトボックスも独自の問題があるけど、クライアント開発者がユーザーに選択肢を与えることができるから、あんまり関係ないんだよね。フェデレーテッドからピアツーピアに移行するのが本来の意図だったんだ。

僕のバックバーナーアイデア:NostrのリレーやMastodonのインスタンス、Discordのサーバーなどの同等物は、分散型ソーシャルメディアが機能するためにクライアントアプリで自己ホスティングできる必要がある。クラシックなP2Pソフトウェアはまさにこれを実現していて、素晴らしく機能してた。クラシックなP2Pソフトウェアがうまくいかなかった理由は、著作権侵害の訴追があって、ユーザーが未知のコンテンツをホスティングする責任を負わされるからなんだ。後でそのコンテンツが著作権侵害されたものだとわかると、ユーザーは空港のチェックポイントで違法物質を持ってるかのように、犯罪者として責任を問われる。これは良くないよね。ユーザーの受動的な行動が罪に問われるのも、物質のことも。だから、次世代のP2Pは、AIベースのコンテンツフィルターやハリウッドの検出器みたいな信頼できるログを持つ必要がある。そうすれば、ユーザーは刑事裁判で自分を守れるから。あるいは、システムが特定のサークル内でのみ機能するようにして、テロリストグループ全体が一緒に起訴されても価値が失われないようにすることもできるけど、そうするとネットワークの成長が妨げられるかもしれないね。でも根本的には、すべてのクライアントがサーバーでもあるべきだと思う。それがソーシャルメディアを分散化する最良の方法だよ。

これがirohの動作方式だと思う。彼らには「リレー」があって、必要に応じて2つのクライアント間の接続を確立するのを助けるサーバーなんだ。 https://www.iroh.computer/docs/concepts/relay

これは面白いけど、P2Pはうまくいかないよね。Irohもある意味「リレー」に依存してるし。Nostrはそれを明示的にして、リレーにアイデンティティを与えてるから、変な方法でハックしなくても自由にポリシーを実行できるんだ。

Nostrの機能を示すいくつかのアプリ: https://www.openux.app/ - Mobbinの代替 https://kinostr.com/ - チャットルーム付きの映画 https://zap.stream/ - Twitchに似たライブストリーミング https://dtan.xyz/ - トレント https://zapstore.dev/ - 許可なしアプリストア https://nostrnests.com/ - オーディオルームチャット https://zapmeacoffee.com/ - コーヒーを買ってもらうみたいな

Nostrの上にQuora/StackOverflowの代替を作ってるんだ。 https://asknostr.site/ これが、分散型ソーシャルプロトコルが多くのユースケースを解決できることと、エンドユーザーへの利点を示すことを願ってる: - あなたのデータを持つ(VC支援の)企業に rugpulled されない - 貢献することで zaps/お金を受け取る - データは本当に誰でも利用できる(でも著者によって署名されてる)

このアイデア/プロトコルについて何度か考え直したけど、まだ疑問があるんだ。* そもそも必要なの?ほとんどの人は中央集権的なプラットフォームに満足してると思うし、すぐには変わらないんじゃないかな(なんで?)* 結局、中央集権的な世界に戻るんじゃない?複数のNOSTRクライアントやリレーがあっても、ネットワーク効果がどう働くかはみんな知ってるし、結局は一つか二つのベストなものに人が集まるよね。今の状況、つまりいくつかの中央集権的なプラットフォームがあるのが本当に変わるの?* このプロトコルには、現在のソーシャルメディアの状況を改善する明確なインセンティブが見えないんだ。今の広告や注意を売るモデルが好きじゃないけど、こういうプロトコルがあった方がいいのか、中央集権的なプラットフォームがいくつかある方がいいのか、よくわからない。技術的な課題やNOSTRがもたらす悪化したユーザー体験については言うまでもないよ。

物議を醸す話題を持ってる人が、プロフィールにバックアップアカウントを載せるのはよくあることだよね。中央集権的なプラットフォームは、簡単にアカウントを凍結しちゃうから。もしそれが許容できるなら、nostrは向いてないかも。俺は誰かにネットで意見を発表する許可を乞うのは嫌なんだ。

Nostrの暗号技術がひどいことを知っておく価値があると思う。これが今年のEuroS&Pで発表された論文で、Black Hatの暗号トラックでも紹介されたものだよ: https://eprint.iacr.org/2025/1459.pdf ここにある脆弱性はかなりやばいよ :yikes: * システムを動かすイベントプロトコルは公開鍵を認証しないから、非対称署名がパフォーマティブになってる。メッセージを傍受できる攻撃者(Nostrサーバー、E2EEメッセージングシステムの想定される敵)は、鍵を入れ替えて再署名できる。* 主要なクライアントであるモバイルのDamusアプリとウェブのIrisアプリは、そもそも署名を検証してない。* このシステムのDMは認証されてないCBCだから、攻撃者はメッセージやイベントをビットフリップして好きなことを言える。* アプリは自動リンクプレビューをするから、EFAIL攻撃を再構成しちゃった。攻撃者はメッセージ内のリンクを見つけて(SNIやDNSでバレるけど)、それをビットフリップして攻撃者が制御するサーバーに向けることができる。これでURL(トークンを含むことが多い)や、ちょっとした手間でメッセージ自体も暴露される(URLに?foo=を付け加えることで)。* システムに鍵の分離がないから、ユーザーを騙してメッセージングシステムとは別のサブプロトコルを実行させて、セッションキーを確立させることができる。それがメッセージングに使われることになる。これらは本当に基本的なエラーで、2000年代中頃の暗号工学レベルだね。他にもNostrを使う理由はあるかもしれないけど、エンドツーエンドのセキュリティはその一つではなさそうだ。

なんで今までこの問題に気づかなかったんだろう。誰か早くこの問題について話すべきだよ。プロトコル的に、どの連携プラットフォームがより安全なんだろう? bluesky(atプロトコル)それともfediverse?

しばらくNostrコミュニティにいて、Safari用の人気Nostr拡張の作者だったけど、いろんな理由でNostrを諦めたんだ。論文は全部読んでないけど、君が言ってるセクションには飛ばして読んだよ。> システムを動かすイベントプロトコルは公開鍵を認証しないから、非対称署名はパフォーマティブなものになる。メッセージを傍受できる攻撃者(Nostrサーバー、E2EEメッセージングシステムの想定される敵)は、鍵を入れ替えて再署名することができる。君と著者たちは、Nostrプロトコルを誤解してるかもしれない。Nostrは、実質的に公開鍵に結びついたアイデンティティシステムなんだ。暗号技術はしっかりしてるよ。君のアイデンティティは公開鍵なんだ。ユーザーのプロフィールやイベントをリクエストする時は、特にその公開鍵でリクエストする。これは偽造できない(実装にバグがない限り、著者たちがDamusで見つけたような)。これには、ユーザーが特定の公開鍵を持つ人が本当にその人か、偽物かをどうやって確認するかというUXの問題がある。これは暗号自体がしっかりしているかどうかとは別の問題だね。

残念ながら、この論文はNostrに対する安っぽい攻撃の目的を果たしていない。実際、クライアントはサーバーから受け取ったイベントの署名を確認しているし、それはプロトコル仕様に明記されている。少しでも正直な人なら分かるはず。論文の全ての前提は、クライアントがそれをしないというもので、無効だよ。確かに、2年前に署名を確認しないクライアントがいくつか見つかったけど、それがプロトコルの脆弱性とは言えないよね。Nostrには、実装を終えていないクライアント開発者を逮捕するコード警察が必要だったのかな?それ以外にも、彼らが示した攻撃は、他の馬鹿げた状況に依存してる(例えば、攻撃を受けるためには攻撃者のサーバーのURLを手動で入力しなきゃいけない)けど、基本的な前提が完全に間違ってるから、話す価値もないよ。暗号化されたメッセージの話は、そもそもNostrのコアな部分じゃないし、Nostrは公開または半公開のコンテンツを放送するためのプロトコルなんだ。暗号化はその上に追加できるし、やり方はいくつかあって、MLSの実装や他の方法も含まれてる。個人的には、どれもあまり気にしてないけど。論文の著者がもっと正直で、「署名を確認せずに暗号署名を信頼することの危険性」というタイトルで再発表してくれたらいいのにと思うけど、そうしたらあまりにも明白で無価値になっちゃうだろうね。

システムを動かすイベントプロトコルは公開鍵を認証しないから、非対称署名はパフォーマティブなものになる。メッセージを傍受できる攻撃者(Nostrサーバー、E2EEメッセージングシステムの想定される敵)は、鍵を入れ替えて再署名することができる。これは完全にナンセンスで、ほとんどのクライアントは実際に署名を確認してる。全ての中継もそうだ。> 2つの主要なクライアント、モバイルアプリのDamusとウェブアプリのIrisは、そもそも署名を確認しない。Damusの作者です。これは古いバージョンの分析です。これ以降は修正されました。初期の頃は、信頼できる中継の固定リストに接続していました。これらの中継は署名を確認していました。これは、ノートを確認するための最適化された作業キューを持つまでの実用的な妥協でした(これがnostrdb、lmdb上に構築されたカスタム埋め込みNostrデータベースにつながりました。これはNostr用のSQLiteです。https://github.com/damus-io/nostrdb)> このシステムのDMは認証されていないCBCなので、攻撃者はメッセージやイベントをビットフリップして好きなことを言わせることができる。これは本当ではなく、全体のノートはsecp256k1署名でカバーされています。> アプリは自動リンクプレビューを行うので、EFAIL攻撃を再構成することができました。攻撃者はメッセージ内のリンクを特定でき(SNIやDNSで明らかになる)、それをビットフリップして攻撃者が制御するサーバーを指すようにすることができます。これにより、URL(トークンを含むことが多い)や、少しの追加作業でメッセージ自体(URLに?foo=を追加することで)を露出させることができます。これらはオフにできますし、画像もオフにできます。もちろん、心配な人はVPNを使うべきです。

批判は実装依存(署名をチェックしてないとか、プロトコルの目的を完全に無視してる)か、非常に初期の概念実証の暗号スキームに基づいていて、今はもう古いものになってる(NIP 44によって、これは独立して監査された)。ここには実質的なものや実行可能なものはもうないよ。

どのキーアルゴリズムが使われてるのか調べようとしたけど、どこにも載ってなかった。すべてがBlech32(ビットコインキーエンコーディング)についてのページに繋がった。https://hellonostr.dev/en/introduction/ エンコーディングには、nostrのドキュメントやビットコインのドキュメントに含まれている未記載のバージョン番号があるみたい。npub1abcxyz...はnpub(ヘッダー)1(バージョン)abcxyz...(キー)だ。上のリンクのドキュメントを見てみて。

私の「アポリティカル」なシャツは、すでにシャツに書いてある質問をたくさん聞かれてる。商品説明の最初の文で使うには奇妙な言葉だし、「オープン」って言葉も含まれてるけど、これはこの文脈では本質的に政治的な概念だよね。Nostrには暗号通貨とのつながりがあったの?それとも別のことを考えてるのかな?

うん、ビットコイナーがたくさんいるよ。

右派の人たちは、自分たちを無政治的だって言う歴史が長いよね。

彼らは明確に「nostrコイン」を持ってないし、「オンチェーン」なこともしてない。そこは評価できるよ。特に、Nostrと暗号通貨コミュニティのベン図がほぼ一つの円になってるからね。

なんでこれらのプロジェクトは、提示する際にユースケースと哲学、実装を分けられないのかな?一見しただけでは何なのか理解できない。ソーシャルネットワークなの?プロトコルなの?「検閲賛成?ブログ記事を読まないと…」scuttlebutt/gossipや、mastodon、activitypub、diasporaの代替インターネットの残りの部分でもこんな感じだった。『これはメールとどう違うの?Twitterと比べてどうなの?』という質問をする代わりに、『これは何を見てるの?技術的実装なのか製品なのか?ウェブサイトなのかアプリなのか?これで何をすればいいの?』から始めなきゃいけない。Urbitもあるけど、誰一人としてそれが何か正確に説明できないと思う。『Web3』ほどひどくはないけど、それは認めるよ。Blueskyはうまくやったね。geminiもある程度はそうだった。

Nostrは基本的にp2pと従来のウェブアーキテクチャの妥協点なんだ。ウェブサーバーを使いながら、ユーザーがサーバーに依存するのを減らすために、アイデンティティにはキーを、データの認証にはデジタル署名を使ってる。これによって、ユーザーには「信頼できる出口」がある(他にも色々あるけど)、これは何年も議論されてきたことなんだ。新しい「ユースケース」を生み出すわけじゃないから、ユースケースは「まあ、これが新しいインターネットだ」って説明されることが多いんだよね。実際には、プラットフォームのコントロールよりもユーザーのコントロールを優先する、非常に異なるトレードオフを導入してるんだ(それに伴うUXのトレードオフもあるし、少なくとも異なるUXのイディオムがある)。ソーシャルに焦点を当ててるのは、実際に存在するアプリケーションの大半を表してるからで、プロトコルを構築する元々の動機でもあるし、たくさんの人が共感できる価値提案(検閲耐性)でもあるんだ。

誰も君がそのサイトを作るのを止めてないよ?