昨年12月、 。 私たちは Waku Network を発表しました Waku ネットワークは、ピアツーピア メッセージングに対してサービス拒否 (DoS) 保護を提供する、初の分散型のプライバシー保護ネットワークです。革新的なプロトコルとテクノロジーを実装することで、ピアツーピア通信におけるプライバシーとセキュリティを強化することを目的としています。 「Waku Network」とは何か、その理由をさらに深く掘り下げてみましょう。 起源 または をフォローしている場合は、Waku の起源についてよくご存知だと思います。 Status モバイル アプリは、コンセンサスのための Ethereum、ストレージのための Swarm、通信のための Whisper という 3 つのオリジナルの柱を活用する Ethereum エコシステムへのポータルである web3 スーパー アプリとして作成されました。 Waku Status Status 開発チームは Whisper を使用して Status を構築しようとしましたが、このプロトコルには基本的な制限があり、特に携帯電話などのリソースに制限のあるデバイスの場合には顕著でした。 Waku は Whisper の後継として誕生し、その欠陥から学び、モバイルとブラウザに適したスケーラブルなピアツーピア通信ネットワークを提供しました。 課題・求める特性 Waku は次の課題を克服することを目指しています。 一般化されたメッセージング: Waku は、任意のペイロードの転送を可能にするプロトコルとネットワークを提供することを目的としています。 Waku はもともとチャット アプリケーションである Status 用に作成されましたが、目的は Waku 上に分散型通信アプリケーションやシグナリング アプリケーションを構築できるほど一般化することです。 一時的なメッセージング: Waku は、リアルタイム通信の問題を解決することを目的としています。これは、1 人または複数のユーザーが小さなデータ ペイロードを交換できるようにするために、公平な遅延を提供することを目的としています。これは、待ち時間や応答性を犠牲にして大量のデータを保存する方法を提供する IPFS やその他の分散ストレージ システムとは対照的です。 検閲への耐性: Waku は、外部の攻撃者が Waku インフラストラクチャへのユーザーのアクセスをブロックできない、検閲に耐性のあるソリューションを提供することを目指しています。しかし、アプリ開発者にとっても、王国への鍵やユーザーをプラットフォームから解放する能力を 考え方で開発できるようになります。 持たない悪事はできないという プライバシー重視: ユーザーのデータとメタデータの収集に関して、アプリ開発者が という原則に基づいて運用できる機能を提供します。これは、たとえ彼らや第三者がユーザーからソーシャル グラフやアクティビティ パターンなどのメタデータを収集することを望んでいたとしても、あるいはそうするよう圧力をかけられたとしても、収集することができないことを意味します。 悪を行うことはできない 匿名性: プライバシーと同様に、これはユーザーが個人識別情報 (PII) を Waku ネットワークまたはネットワークを使用するアプリケーション上でのアクティビティにリンクさせない機能です。ここで考慮される PII は、ネットワーク (IP アドレス)、ブロックチェーン (イーサリアム アドレスなど)、およびルーティング (メッセージ相関) に関するものです。 リソースが制限されたデバイス: 前述したように、Waku を設計する際には、開発者がこれらのプラットフォーム向けに DApps を構築し、上記のプロパティをできるだけ多く提供できるように、モバイルやブラウザなどの環境を考慮する努力が払われています。 スケーラビリティ: Waku は、上記の原則を維持しながら、数百万のユーザーをサポートすることを目指しています。これは慎重に設計してテストする必要があります。 上記のすべての特性は、Waku を設計するときに他の問題を克服する必要があることを意味します。 DOS 保護: ネットワークにメッセージがあふれないようにすることで、リソースが少ないユーザーがネットワークから起動されることを防ぎます。 ネットワークの持続可能性とインセンティブ: ブラウザやモバイル デバイスなどのデバイスがネットワークにアクセスできるようにするために、ネットワーク内に十分なリソースを確保するにはどうすればよいでしょうか? 分散化: これらの特性を有効にするには、Waku をいくつかのレベルで分散化する必要があります。これらの特性を長期間にわたって確実に維持するために、適切なレベルの分散化を維持するにはどうすればよいでしょうか? わくネットワーク Waku Network は上記のプロパティの提供にどのように役立ちますか? ネットワーク内で組み合わされたさまざまな Waku プロトコルと、それらがどのようにしてこの偉業を達成できるのかを見てみましょう。 ピアディスカバリー ピアツーピア システムが信頼性が高く、分散化されているためには、通常、 と呼ばれる、システム内で新しいピアまたはノードを見つけるメカニズムが必要です。 ピア発見 Waku はイーサリアムと同様に discv5 を使用しています。 Waku ノードがアドバタイズできるようにするために、ENR に対する小規模な機能拡張が行われました。 動作しているシャード ( 」を参照) 「メッセージ ルーティング - シャーディング 彼らが有効にしたプロトコル たとえば、ブラウザが WebSocket 経由で前述のノードに接続するために持つことができる代替マルチアドレス。 Discv5 は分散型であるため、攻撃者が被害者のノードを取り囲んでネットワークの操作されたビューを提供しようとする潜在的なシビル攻撃を防ぐことができます。 これにより、匿名性、プライバシー、検閲への抵抗が可能になります。 アドバタイズされるサービス対象プロトコルのおかげで、携帯電話とブラウザはサービスを提供できるノードを見つけることができます。 メッセージ ルーティング - Gossipsub Ethereum と同様に、Waku は libp2p-gossipsub を使用します。これにより、次のようないくつかの利点がもたらされます。 Whisper と比較して帯域幅パフォーマンスが向上しました。gossipsub では、ノードはメッセージを送信する隣接ノード (メッシュ) のグループを形成します。特定のノードは、接続を維持し、他のノードと積極的にメッセージを交換することのみを試みます。各メッセージのアップロードまたはダウンロードの回数を減らします。 信頼性: gossipsub には冗長性が組み込まれているため、信頼できるノードや正常に動作しているノードが信頼できない分散型ピアツーピア ネットワークで動作する場合に、かなりの信頼性が得られます。 匿名性: ノードはメッシュ内の他のノードからメッセージを転送し、個々のメッセージにはメタデータが存在しないため (平文署名なしなど)、オブザーバーは隣接ノードが発信したか転送したかを知ることができないため、公平な匿名性が提供されます。メッセージ。これは、discv5 などの分散型ピア検出メカニズムと組み合わせると機能します。 Waku の gossipsub の使用法、プロトコル、ネットワークを名前にしました。 わくリレー。 メッセージルーティング - シャーディング Gossipsub の欠点の 1 つは、ネットワーク内のすべてのノードがネットワークのすべてのメッセージをある程度の増幅を伴って送受信することです。これがどのようにスケーラビリティを制限するかがわかります。家庭用のインターネット接続からネットワークのトラフィック全体をトラフィックさせることは期待できません。 この問題を解決するには、1 つの gossipsub ネットワークを使用する代わりにシャーディングを使用します。 Waku ネットワークは、いくつかの異なるメッセージ ルーティング サブネットワーク、つまりシャードに分割されます。現在、Waku ネットワークは 8 つのシャードに分割されています。つまり、Waku アプリケーションのユーザーは 1 つのシャード、またはネットワーク全体の (およそ) 8 分の 1 のトラフィックのみを中継することになります。 そもそも 8 という数字は小さく、任意の数字でした。私たちの理論分析によれば、シャードは約 4Mbps、つまりネットワーク全体で 80k の平均帯域幅要件を維持しながら、約 10,000 人のアクティブ ユーザーをサポートできることが示されています。 私たちは、仮定を確認するためにさらなるシミュレーションを実行することに取り組んでいます。また、理論をテストするために開発者とユーザーをネットワーク上に参加させます。目的は、時間の経過とともにネットワーク内のシャードの数を増やすことです。 discv5 に加えられた機能強化のおかげで、ノードは接続する前に他のピアがどのシャードを処理しているかを知ることができます。 メッセージルーティング - オートシャーディング シャーディングに関する問題の 1 つは、ユーザーとアプリケーションがどのシャードを使用するかを認識している必要があることです。 1 つのアプリケーションがどのシャードを使用するかを任意に決定できますが、特に新しいシャードを追加する場合には、多大な作業がかかる可能性があります。これは、開発者が行うべきもう 1 つの決定でもあります。私たちは、開発者のエクスペリエンスをできるだけ簡単にすることを好みます。また、開発者はユーザーにシャードの選択を委任することなく、複数のシャードに分散するアプリケーションを構築することもできます。 オートシャーディングは、アプリケーションに基づいてシャードにメッセージをディスパッチする単純なプロトコルです。 メッセージルーティング - RLN リレー Waku は一般化されており、プライバシーが保護されているため、あらゆる種類のペイロードを輸送できます。したがって、「スパム」の厳密な定義はありません。メッセージに 含まれていても、 も、Waku はその内容さえ知らないはずです。メタデータとデータは非公開のままにする必要があります。 ミームが プライベート DeFi の ZK ノートが含まれていて したがって、誰かがギガビットのデータをネットワークにプッシュするリスクがあります。これはさまざまなレベルで問題となる可能性があります。 帯域幅の使用量: これにより、ユーザーの帯域幅が占有され、他のサービス (ストリーミング、ステーキング) に影響を与えたり、予想外の請求が発生したりする可能性があります。 接続性: ノードに gossipsub 層上のすべてのメッセージを送受信するのに十分な帯域幅がない場合、その動作は、ノードから切断される可能性のある他のノードによって正しくないとみなされる可能性があります。 信頼性: トラフィックが利用可能な帯域幅よりも高い場合、ノードはメッセージを確実に送受信できない可能性があります。 その他のリソース: メモリ使用量はトラフィックと相関しており、ストア サービスのディスク容量も同様です。 そこで、「スパム」メッセージがどのようなものであるかを定義するのではなく、Waku の公正な使用を可能にするために、シャードごとの帯域幅使用量に上限を設け、ネットワークにレート制限を導入しました。これは、特定のパブリッシャーが送信するメッセージのレートを制限する RLN (Rate Limiting Nullifier) を使用して行われます。現在は 1 msg/s に設定されています。 最大メッセージ サイズ (150kB) と最大パブリッシャー数 (80k、TBD) を組み合わせると、シャードごとの最大帯域幅使用量 (約 10Mbps) を想定できます。 検閲に耐え、プライベートな方法で出版社のレートを制限することは困難です。これが、私たちがゼロ知識テクノロジーを使用している理由です。 ユーザーは、RLN 資格情報をスマート コントラクト (現在はイーサリアム セポリア テストネット上) にプッシュします。 ノードは、契約上のすべての登録メンバーシップを追跡します。 メッセージを送信するとき、ユーザーは現在のエポック (秒単位のタイムスタンプ) を含む RLN 証明をメッセージに添付します。 ノードは、ユーザーのイーサリアム アドレス (スマート コントラクトで使用される) と送信されるメッセージを関連付けることなく、匿名性を維持しながら証明を検証できます。 ユーザーが 1 msg/s を超えるメッセージを送信しようとすると、ノードがこれを検出して過剰なメッセージまたはスパムをドロップし、ネットワークを保護します。 ほとんどオフラインでリソースが制限されているデバイスへのサービス提供 最後に、Waku は携帯電話や Web ブラウザーなどのリソースに制限のあるデバイスにとってどのように役立ちますか? Waku は、そのようなデバイスが常にオンラインになったり大量の通信を消費したりすることなく Waku ネットワークにアクセスできるようにするために、多数の [リクエスト/レスポンス プロトコル ( questreply-domain )] を定義しています。つまり、Waku Relay ネットワークに参加せずに帯域幅を制限します。 https://rfc.vac.dev/spec/10/#re ライト プッシュ プロトコル (ドキュメントへのリンク) を使用すると、 リモート ノードからの受信確認とともに、Waku Relay ネットワークに転送されるメッセージを送信できます。フィルター プロトコルを使用すると、 リモート ピアにサブスクライブし、シャード上で送信されるすべてのメッセージではなく、メッセージのサブセットのみを要求できるようになります。 ライト クライアントは、 ライト クライアントが 最後に、ストア プロトコルにより、 と 見逃した可能性のある履歴メッセージを取得できるようになります。 ライト クライアント リレー ノードが、 Waku Network の価値提案 望ましいプロパティとテクノロジーを定義しましたが、Waku ネットワークの潜在的な使用例を理解することが重要です。この は現在、いくつかの USP (Unique Value Proposition) について説明していますが、この主題については今後さらに文書化する予定です。マシン間または人間間の通信アプリの構築を超えた、いくつかの注目すべきユースケースは次のとおりです。 号で インフラなし DApps: さまざまな分散テクノロジー (Waku、イーサリアム、IPFS) を組み合わせて、集中型ホスティング プロバイダーに料金を支払うことなく DApp をデプロイします。 ライト クライアント向けの分散ネットワークへの検閲耐性のあるアクセス: リクエスト/レスポンス プロトコルを使用して、ライト クライアントが集中型の検閲可能な Web ゲートウェイに依存せずにピアツーピア ネットワークにアクセスできるようにします。 信号ネットワーク: Waku ネットワークを使用して他のピアを検索し、特定のパラメーターをネゴシエートして、Waku かどうかに関係なく、異なるルール (より高いレート制限など) を持つ独自のピアツーピア ネットワークを形成します。 私たちはまだ ですか? 空白 Waku が望む特性と、Waku ネットワークがそれらをどのように実現するかについて説明しました。それは、Waku が検閲に耐性があり、プライベートであり、持続可能で拡張性があることを意味しますか? 完全ではありません。 ブートストラップは、私たちが取り上げなかったすべてのピアツーピア ネットワークのコンポーネントです。新しいノードはネットワーク内の他のノードをどのように見つけますか?ブートストラップ (ENR + DNS Discovery) には Ethereum テクノロジーを使用します。ただし、このテクノロジーはさらに分散化される可能性があります。私たちは、2024 年末か 2025 年頃にこの可能性を改善する予定です。 一般に、望ましい特性を実現するには、ネットワークを分散化する必要があります。一部のテクノロジーはこのような分散化を可能にしますが (私たちはそうでない部分の改善に取り組んでいます)、この問題には社会的な要素があります。 Waku チームだけがノードを実行している場合、本質的にネットワークは分散化されているとは見なされず、したがって検閲に耐性があるなどとなります。 これを解決するには、Waku チームに依存せずにノードを実行するノード オペレーターと開発者の良好な基盤を構築できるように、Waku ネットワークの導入を推進する必要があります。 昨年もこの取り組みを強化し、今年も継続していきます。もう 1 つの側面は、ネットワークが自立できるようにノードを実行するためにノード オペレーターに金銭的インセンティブを提供することです。私たちにはそのようなプロトコルはありません。私たちは最初の PoC を構築中です。 ここで重要な役割を果たしているのがWaku Networkです。このようなプロトコルが利用可能になると、開発者/ユーザーとオペレーターがお互いを見つけるための共通の (市場) 場所が必要になります。わくネットワークはそんな場所です。 結論 Waku は、特定の資産との主権通信を可能にすることを目指しています。 Waku ネットワークは、そのような目標を達成し、開発者が構築できる共通の分散型ネットワークを作成するための重要なマイルストーンであり、さらに多くのプロトコルを追加できます。 Waku が今日の目的のすべてであるとは言えませんが、Waku はすでにパーミッションレスであり、いくつかのレイヤーで分散化されています。 私たちは現在、プロトコルに不足している部分を追加するだけでなく、Waku の採用を推進して事実上の分散型にし、誰もがプライベートおよび検閲に抵抗できるようにすることに取り組んでいます。 何百万ものユーザーにピアツーピア通信を提供することに重点を置いた同じ考えを持つコミュニティに参加したい場合は、Waku 参加するか、 でフォローしてください。 Discord に X に登録すると、ニュースが直接受信箱に届きます。 毎月のニュースレター このテクノロジーに興味がある場合は、 か、 を一部獲得してください。 募集中の求人情報をチェックする 報奨金 独自の Waku Node を実行することで、分散化を確実に維持することもできます。