P2Pネットワークの説明
ホーム
記事
P2Pネットワークの説明

P2Pネットワークの説明

中級者
公開済 Sep 30, 2019更新済 Nov 16, 2022
7m

P2Pとは?

コンピュータサイエンスでは、P2Pネットワークは集合的にファイルを保管、共有するデバイスのグループによって構成されています。それぞれの参加者(ノード)は個別のピアとなります。たいてい、全てのノードは同じだけの力を持ち、同じ作業を行います。

フィンテックでは、P2Pという言葉はたいてい分散型ネットワークを通じて、仮想通貨やデジタル資産の取引をすることを指します。P2Pプラットフォームは証券会社のような仲介業者なしで売買することを可能にします。また、ウェブサイトが貸し手と借り手をつなぐ、P2P環境を提供する場合もあります。

P2Pネットワークは様々なユースケースに適していますが、有名になったのは世界初のファイル共有プログラムが発明された1990年代です。現在、P2Pネットワークは大半の仮想通貨のコアとなっており、ブロックチェーン業界においても大きな役割を果たしています。さらに、P2Pネットワークは、検索エンジン、ストリーミングプラットフォーム、オンラインマーケットプレイス、そしてIPFSウェブプロトコルなどのような、他の分散型コンピューティングアプリにも活用されています。


P2Pの仕組み

実質的に、P2Pシステムは分散型ネットワークのユーザーによって維持されています。たいてい、分散型ネットワークでは、それぞれのノードがファイルのコピーを保有し、クライアントと他のノードにとってのサーバの役割を果たすので、アドミニストレーターや集約サーバはありません。そのため、それぞれのノードは他のノードからファイルをダウンロードしたり、それらにファイルをアップロードしたりすることができます。これが、P2Pネットワークとより伝統的な、集約サーバからクライアントデバイスがファイルをダウンロードする、クライアントサーバシステムとの違いです。

P2Pネットワーク上では、接続されたデバイスはハードデバイス上に保管されたファイルを共有します。データの共有を仲介するように設計されたソフトウェアアプリを使用して、ユーザーはネットワーク上の他のデバイスに照会して、ファイルを見つけてダウンロードできます。ユーザーが探しているファイルをダウンロードしたら、それ以後はそのファイルのソースとしての役割を果たすことができます。

言い換えると、ノードがクライアントとして機能する時、ノードは他のネットワークノードからファイルをダウンロードします。しかし、サーバとして機能する時は、他のノードがファイルをダウンロードする時はそのダウンロードソースとなります。実際には、両方の機能は同時に実行することが可能です。(例 ファイルAをダウンロードしながら、ファイルBをアップロードする。)

全てのノードがファイルの保存、転送、受信を行っているため、P2Pネットワークはユーザーベースが大きくなればなるほど、より早く、効率的になりやすいです。また、その分散型構造によって、P2Pシステムはサイバー攻撃に対してとても堅牢です。これまでの伝統的なモデルと違って、P2Pネットワークには単一障害点がありません。

P2Pシステムには、その構造に基づいて、非構造化、構造化、ハイブリッドの3種類に分類できます。


非構造化P2Pネットワーク

非構造型P2Pネットワークは、そのノードの特定の組織を一切開示しません。ネットワークの参加者はランダムに他の参加者と通信します。これらのシステムは、複数のノードが頻繁に参加や脱退を行うような、入れ替わりの激しいネットワークに対して堅牢と考えられています。

構築は簡単ですが、非構造型P2Pネットワークは可能な限り多くの数の検索クエリを送信するため、より多くのCPUとメモリを使用します。このため、特に少数のノードのみが目的のコンテンツを提供している場合、クエリでネットワークが溢れてしまいやすいです。


構造化P2Pネットワーク

構造化P2Pネットワークは対照的に、組織化された構造となっているため、コンテンツが広く流通していなくても、ノードは効率的にファイルの検索が可能となっています。たいていの場合、これはデータベース検索を容易にするハッシュ関数を使うことによって実現しています。

確かに構造化ネットワークはより効率的かもしれませんが、集約化のレベルが高くなる傾向があり、セットアップとメンテナンスのコストが高くなる場合が多いです。それ以外にも、構造化ネットワークは頻繁な入れ替わりに対して、非構造化P2Pネットワークと比べて、堅牢性が低いです。


ハイブリッドP2Pネットワーク

ハイブリッドP2Pネットワークは従来のクライアントサーバモデルにP2P構造の一部要素を組み合わせたものです。ピア間でのコネクションをファシリテートする集約サーバを設計することなどが例として考えられます。

他の2つと比べた時、ハイブリッドモデルは全体的にパフォーマンスが向上します。ハイブリッドP2Pネットワークでは、他の2つのアプローチの主要なアドバンテージの一部を組み合わせて、高度な効率性と分散性を同時に達成しようとする場合が多いです。


分散型 vs 非中央集権

P2Pネットワークは性質上分散型ですが、非中央集権の程度に関しては様々あります。つまり、全てのP2Pネットワークが非中央集権というわけではないです。

実際、多くのシステムは中央集権的な機関に依存してネットワークアクティビティをガイドしているため、ある程度中央集権化しています。例えば、P2Pファイル共有システムの中には、ユーザーは他のユーザーからファイルの検索およびダウンロードが可能ですが、検索クエリの管理など、他のプロセスに参加することはできません。

さらに、同じ目的を共有する限定されたユーザーベースによって制御される小規模ネットワークは、中央集権的なネットワークインフラがなくても、その中央集権の程度は高いと言わざるを得ないです。


ブロックチェーンにおけるP2Pの役割

サトシナカモトはビットコインのホワイトペーパーでビットコインのことを「P2Pの電子キャッシュシステム」と定義しました。ビットコインはデジタル形式の現金として生みだされました。ビットコインは、ブロックチェーンと呼ばれる分散型元帳を管理するP2Pネットワークを介して、1人のユーザーから別のユーザーに移転することができます。
ブロックチェーンテクノロジーに活用されているP2P構造が、仲介業者や集約サーバなしで、世界中に対してビットコインや他の仮想通貨の転送を可能としています。また、ブロックの検証と承認のプロセスに参加したければ、誰でもビットコインのノードを設定することができます。

そのため、ビットコインネットワークにはトランザクションを処理または記録する銀行は存在しません。その代わりに、ブロックチェーンが全ての活動を公開で記録するデジタル元帳としての役割を果たします。基本的に、それぞれのノードはブロックチェーンのコピーを保有し、他のノードが保有しているコピーと比較することで、データの正確性を保証しています。ビットコインネットワークはあらゆる不正な活動や不正確な記録をすぐに排除します。

仮想通貨のブロックチェーンにおいては、ノードは多様、かつ様々な役割を果たします。例えば、フルノードはシステムのコンセンサスルールに反するトランザクションがないかを検証することによって、ネットワークのセキュリティを確保するためのノードです。
フルノードはそれぞれ完全、かつ最新のブロックチェーンのコピーを保有しています。これによって、フルノードは分散元帳の本当の状態を検証する集合作業に参加することができます。ただし、フルバリデートノードが必ずしもマイナーを意味するわけではないです。


アドバンテージ

ブロックチェーンのP2P構造には多くのメリットがあります。その中でも最も重要なものはこれまでのクライアントサーバ方式と比べて、はるかに行動なセキュリティをP2Pネットワークならば実現できることです。ブロックチェーンでは、多数のノードで分散化されているため、サービス拒否(DoS)攻撃の影響をほとんど受けません。
ブロックチェーンにデータを追加する前に、過半数のノードにおける合意が形成されていないといけないため、悪意ある攻撃者がデータを変更することはほぼ不可能です。これは特に、ビットコインのような大規模ネットワークに当てはまります。1人、またはグループによってノードの過半数を支配されてしまう可能性があるため、ブロックチェーンの規模が小さいほど攻撃を受けやすくなります。このような攻撃は51%攻撃と呼ばれています。
結果として、過半数の合意を要件とする分散型P2Pネットワークであるブロックチェーンは悪意ある攻撃に対して、比較的高度な耐性を持っています。このP2Pモデルはビットコイン(とその他のブロックチェーン)がいわゆるビザンチンフォールトトレラントを実現できた理由の1つです。

セキュリティ以外でも、ブロックチェーンでP2P構造を利用することによって、政府などによる検閲耐性も高まります。標準的な銀行口座と違って、仮想通貨ウォレットは政府によって凍結や没収される恐れがないです。また、決済業者やコンテンツプラットフォームによる検閲に対しても耐性があります。第三者によって決済がブロックされるのを回避する方法として、仮想通貨決済を受け入れたコンテンツクリエイターやオンラインショップなどもあります。


課題

多くのメリットもありますが、ブロックチェーン上のP2Pネットワークの利用にはまだいくつかの課題があります。

集約サーバではなく、全てのノードにある分散元帳がアップデートされなければいけないため、ブロックチェーンにトランザクションを追加するには膨大な計算能力を必要とします。これによってセキュリティは強固になりますが、効率性は大きく損なわれ、これがスケーラビリティや普及の大きな障害の1つとなっています。そのため、世界中の暗号学者やブロックチェーン開発者はスケーリングソリューションとして使うことができるかもしれない代替技術の研究を行っています。そういった代替技術の中で有名なものとしては、ライトニングネットワークイーサリウムプラズマ。そしてミンブルウィンブルプロトコルなどがあります。
他の潜在的な課題としては、ハードフォークイベント中に発生する可能性のある攻撃と関係しています。大半のブロックチェーンは分散型でオープンソースのため、ノードのグループは自由にコードをコピーして、修正して、メインチェーンから離脱して、新しいネットワークを作ることができます。ハードフォーク自体は一般的なことで、それ自体は脅威とはなりません。しかし、一定のセキュリティ対策が適切に行われていない場合、両方のチェーンがリプレイ攻撃に対して脆弱になる可能性があります。

さらに、P2Pネットワークの分散された性質により、ブロックチェーンに限らず、P2Pネットワークは管理と制限を行うのは比較的困難です。P2Pアプリと企業の中には違法行為に関わっていたり、知的財産権を侵害してたりするものもあります。


まとめ

P2P構造は、さまざまな方法で開発および使用でき、仮想通貨を実現するブロックチェーンの中核です。ノードの大規模なネットワークにトランザクション台帳を分散することにより、P2P構造はセキュリティ、分散化、および検閲耐性を実現します。

ブロックチェーン技術での有用性に加えて、P2Pシステムは、ファイル共有ネットワークからエネルギー取引プラットフォームまでの幅広い分散コンピューティングアプリケーションにも対応できます。