コンテンツにスキップ
ニムチャットに戻る

知識ベース インターネット外

Bluetoothメッシュ

インターネット、携帯電話サービス、インフラストラクチャなしでのメッセージング 優しい。近くのデバイスは Bluetooth LE を介してリンクし、相互に中継するため、メッセージが届きます。 人々は、間にあるデバイスを飛び越えることで、無線の範囲を超えます。

メッシュとは何ですか

メッシュはリレーと並行して実行される 2 番目のトランスポートであり、別個のアプリや別個のトランスポートではありません。 アイデンティティ。パブリック チャネルとプライベート メッセージの両方がその上で機能し、どちらを選択するかはアプリが決定します。 独自に実行するルート: オンライン送信はインターネット経由で行われ、次の場合は Bluetooth にフォールバックします。 これは利用できませんが、無線経由でのみ到達可能なピアはどちらの方法でもメッシュ上に残ります。

それは洪水ネットワークです. 各デバイスは、音が聞こえるデバイスにパケットを渡し、ホップ制限があります。 7パッケージが永遠に流通しないように、すでに見たものを倍増させ、直接聞こえない2人は、それらの間のデバイスの連鎖がある限り、まだメッセージを交換しています。

その下で、ピアのすべてのペアが ノイズXX 握手とそのことについての話し合い 独自の暗号化されたセッション。パケットはパディングされ、大きい場合は断片化されるため、サイズは あなたは、それが何であるかについてできるだけ述べずに送信します。

洪水はその瞬間に聴いている人にしか届かないので、その時点でメッセージを伝える3つの事柄:デバイス 最近の公共の歴史を思い出して 迷う者に渡す。 Nearby Peers Carry Sealed Mail ポスト 距離の外の誰かのために、そしてインターネットなしで送信されたものは何でも 出版後 インターネットが復活したら

オンにする

Bluetooth メッシュ パネルを開き、 を押します。 オンにする。次に何が起こるかは以下によって異なります 何で実行しているのか。

Nymchat Bluetooth メッシュ パネル。メッシュ ステータス、ペアリングされたデバイス、メッシュ上のピア、および無線ログを表示します。
メッシュ パネル: ステータス、ペアリングされたデバイス、聞こえたピア、およびライブ無線ログ。

Android と iOS の場合

アプリは、Bluetooth の両方の役割を同時に実行します。つまり、自分自身を宣伝し、他のユーザーをスキャンします。 — つまり、近くにある 2 つのデバイスは、どちらが相手に気づいたかに関係なくリンクします。グラント Bluetooth 許可を求められた場合は、自動的にピアを見つけます。

ブラウザで

Web アプリは、Chromium ブラウザー (Chrome、Edge、 オペラとブレイブ。 Web Bluetooth を実装していない Safari および Firefox では、メッシュ コントロールは提供されて失敗するのではなく、完全に非表示になります。

ブラウザがリーフとして参加する

ブラウザは Bluetooth のみを使用できます 中央 役割: それ自体を宣伝することはできないため、 他のデバイスはそれを検出できません。近くの電話機に外部接続し、中継します。 彼ら。ブラウザー独自のデバイス セレクターを使用して各デバイスを 1 回選択し、その後、 自動的に再接続します。 2 つのブラウザは相互に直接リンクできません。

Bitchat とメッシュを共有する

Nymchat の実装 Bitchatさんの ワイヤー上のメッシュ プロトコル、バイトごと - 同じ GATT サービスと特性 UUID、同じパケット ヘッダー、同じメッセージ タイプ、同じデフォルトのホップ制限。二人 アプリは何も介さずにブリッジされます。それらは単に同じメッシュ上にあり、Nymchat デバイス上にあります。 と Bitchat デバイスは相互に検出し、暗号化されたメッセージを直接交換します。

アナウンスパケットは、 nostrLink: メッシュピアからへの署名付きリンク 彼らの本当のノストルの正体。ピアが存在し、それを確認すると、Bluetooth 経由で出会ったピアが あなたがリレーで知っているのと同じ人物として現れます。

下記の歴史和解と送信メールはBitchatのフォーマットでもあるので、2つのアプリは同じメッシュ上で共存するだけでなく、お互いの公共の歴史を同期し、お互いの封筒を持ち歩く。

歴史 The Mesh Carries

洪水は、その時点でラジオの範囲にいる誰にでも公共のメッセージを届ける。 部屋に一分遅れて入り、消えてしまったので、各デバイスは、最近聞いた公共のメッセージのウィンドウを保持します。 6時間1000パケットに制限され、そのウィンドウを彼が出会うすべての仲間と調和させる。 15秒あなたが欠けているものは何でも、彼らはあなたを送り、彼らが欠けているものは何でも、あなたは彼らを送ります。

比較は、コンパクトな確率セット(Golombコードフィルター)で行われるので、数千のメッセージを調和するには、16の代わりに約1キロバイトのコストがかかります。

窓はデバイスに保存されているので、再起動を生き延びることができます. それは、電話が街の叫びのように振る舞うことを可能にします:互いに距離を置いたことがない2つのグループの間を歩く、または数時間後に戻ってきて、反対側が見逃したものを渡します。

公開メッセージのみ

公共の交通機関のみがこのように運ばれています - すでにラジオの範囲内で誰にでも見えるメッセージ プライベートメッセージ、ハンドシェイク、暗号化セッションは決してその一部ではありません。

他人から送られたメール

もしあなたがラジオ圏外の人に書くならば、誰にもメッセージを届ける人がいない。Nymchatはその人のキーに封印し、封印されたコピーを数人の同僚に与える。 彼らはそれを持ち歩き、彼らが受信者に会った場合にそれを届けます。

コピーは、それを運ぶ誰にとっても透明です. 持っている唯一のルーティング情報は、タグです。 日々のルート 受信者の鍵をすでに知っている人によってのみ計算できるので、異なる日に同じ人のための2つの封筒は他の誰と関係がないように見えます。

コピーは倍増しません. 各プロバイダは、他の誰かにシェアを渡すときに半減する予算を持っており、メッセージが少数のプロバイダに広がり、その後停止します。 24時間確認されたアイデンティティのみが、いつの間にか与えられる。

できれば、Nymchatは封筒をAに封印します。 ワンタイムキー それぞれのデバイスはこれらの小さなバッチを発行し、それらが偽造されないように署名し、バッチは運ばれた歴史と同じように移動します - それは、その所有者が行方不明の間、正確に彼らのメールが運ばれているときにそれを利用できます。

Deletion Waits 48時間, 複数の運送業者が同じ封筒のコピーを保管している可能性があり、運送業者があなたに会うたびに到着します; 最初のコピーを削除すると、後者のすべてのコピーが失われた郵便物のように見えます。

運転手が学ぶこと

誰かに封筒を渡すことは、メッセージが存在し、あなたがそれを送信したことを彼らに知らせます. コンテンツは決して、それが誰のためにあるかではなく、事実です。

インターネットなしで作られた放送

オフラインで送信するメッセージは、すぐにラジオを通過し、近くにいる誰にでも届く - 他の誰にも届かない - レレイヤーに関しては決して存在しなかったので Nymchatはそれを保持し、インターネットが戻ってくる瞬間にそれを公表し、元の送信時間を保持し、会話で書いた場所に留まります。

既にBluetooth経由で受信した人は、それを2度見ることはありません:再公開されたコピーには、デバイスがそれを認識できるマーカーが付属します。 24時間決してそれをしないものは、送信を待っているよりも、失敗したとマークされている。

それは待つだけでなく、同時に、Nymchatは、まだ信号を持っている近くの同僚に、その代わりにメッセージを公表するように依頼します - 部屋の1つの接続は、それにいるすべての人に十分です。メッセージは、離れる前にあなたのデバイスによって署名されますので、それを運ぶ同僚は郵便箱です:それはそれを公表するものの一言を変えることはできません、そしてリレイヤーはそれを拒否します。 読書 隣人が持っているチャンネルです。

これはショートカットで、決して唯一のコピーではありません。隣人が実際に投稿するかどうかをあなたのデバイスに伝えるものは何もありませんので、メッセージはどちらの方法でも自分の接続のために列に並んでいます。両方が動作する場合、両方のコピーは同じメッセージのバイト-for-バイトであり、リレーは1つ保持します。チャンネルメッセージだけがこの方法で移動します - 誰かにプライベートメッセージを投稿するように依頼すると、あなたが誰に書いているかを彼らに知らせるでしょう - 決してゴーストモードでは、署名はあなたの本当のアイデンティティに直面しません。

ゴーストモード

メッシュ デバイスは、繰り返し自身をアナウンスする無線です。これにより、簡単にアナウンスを行うことができます。 場所やセッションを超えてフォローできます。ゴースト モードはオプトインの答えです。

点灯中は、 アナウンスが持つ識別子は使い捨てに置き換えられます 値を設定し、それらすべてが一緒に回転します。

  • ノイズ静的キー - ピア ID とフィンガープリントの派生元。
  • Ed25519 署名キー。
  • アドバタイズされた Bluetooth 名。
  • ニックネーム;
  • 発表された nostrLink、これは現実のままですが、一時的なものになるため、ピアは依然として npub に何も解決せずに届きます。

回転はおよそのジッターエポックで発生します。 15分。引退したアイデンティティ 最長で復号可能のまま 8エポック そのため、返信が遅れても到着し、 ゴースト中に開始された会話は、無言ではなく永久にメッシュに固定されます 実際のキーの下のリレーに移行します。

ゴースト モードがアクティブな間、アバターとバナーの共有は拒否されます: 繰り返される画像が 2 つをリンクします どのキーよりも速くエポックを結合します。

上記の配送経路の2つは、同じ理由でそれでオフになっています。ゴーストデバイスは、それを送信するために誰にもメールを送ることを求めません - あなたが回転した後も封筒を保持するクーリーヤーは、2つのアイデンティティの間の糸です。そして、網に接続された会話は、リレイヤーに再公開されません、なぜならそのコピーはあなたの本当のキーで署名され、他の誰がゴーストだったかを正確に伝えるでしょう。

ゴーストモードは匿名性ではありません

これにより、デバイスを追跡することが非常に困難になります。追跡できなくなるわけではありません。 Bluetooth ハードウェア アドレスはアプリではなくオペレーティング システムによって制御され、タイミングと 社会的パターンは相関性を維持します – 同じ人が同じ場所で話し合っている 同じ人、同じ時間に。

限界

  • 範囲は Bluetooth の範囲です。 オープンで数十メートル、壁を越えて少なからず。網は、より大きな叫び声でなく、ジャンプで到達を拡大します。網パネルのピアリストは、それが何であるかを教えてくれます:ピアをピンし、ツアーを報告し、実際にはどれだけのジャンプが離れているか。
  • 帯域幅が狭いです。 フレームは 512 バイト以上のメッセージに制限されます 断片化されている。メディア用ではなくテキスト用に構築されています。
  • 配信はベストエフォート型です。 7ホップの洪水は約束をしないし、それを拡張する道もありません:運ばれた歴史は、それを保持したデバイスに出会った場合にのみあなたに届き、クーリーは受信者に会う場合にのみ届きます。
  • ブラウザは葉っぱです、上記の通り、近くに電話があるかどうかに依存します。
  • ラジオは電池がかかる、スキャンと広告が継続的に行われるため、 それがメッシュを機能させるものです。