No233 P2Pネットワークのデメリット

仮想通貨では、サーバにデータを集中させずに利用者間で直接やり
取りを行うことで、データの分散を図っているものが多数あります。

前回に続いて、データの分散を支える方式であるピアツーピアネット
ワーク(以降P2Pネットワークと略記します)について解説します。


1. ピアツーピアとは?(改版のうえ再掲)

ピアツーピア(Peer to Peer)は一般的にP2Pと略記されます。
(以降ではピアツーピアのことをP2Pと書きます)

「ピア(peer)」というのは対等な立場の人のことで、P2Pネット
ワークは二者が平等な立場で通信を行うネットワークのことを
言います。

インターネットで他のコンピュータと通信する際はクライアント・
サーバ方式となるのが通常です。これは各人の端末(パソコン
やスマホ)からサーバに対して要求(リクエスト)を送り、サーバ
はそのリクエストに対して答えを返すというものです。
インターネットでの通信は、ほとんどの場合クライアント・サーバ
方式を用いています。

余談
 ここでのクライアントやサーバというのは役割を示します。
 クライアントはお客さん、つまりサービスを受ける側のコン
 ピュータのことで、サーバは逆にサービスを提供する側の
 コンピュータのことを指します。

これに対し、P2Pネットワークでは端末同士が直接やりとりを
します。

通信方式は異なりますが、昔のガラケーでのIR(赤外線)による
アドレス交換や任天堂の携帯ゲーム機でのすれちがい通信と
いった方式と同様です。

P2Pネットワークというのは、サービスを中継するコンピュータ
なしで端末と端末が直接通信を行う方式であり、双方のコン
ピュータがクライアントとサーバの両方の役割を果たす(相手
からデータ要求がくれば自分がサーバの役割を果たし、自分が
データ要求する時は相手がサーバの役割を果たす)方式なのです。


2. P2Pネットワークのデメリット

前回、P2Pネットワークのメリットについて書きました。

1. データを複数のコンピュータで分散して持つため、
  大量のデータを安価に保持できる
2. 故障によるサービス停止が(事実上)なくなる
3. 故障によるデータ喪失が(事実上)なくなる

こんなメリットがあるのなら、もっと積極的にP2Pネットワークが
使われてもよさそうなものですが、それほど使われていません。
P2Pネットワークにはいくつかやっかいな課題があるのです。

1. 専用のアプリが必要
2. 他の参加者を見つけるのが困難
3. データが適正な保障はない
4. データ取得が不安定

以下にその詳細を述べます。


3. デメリット1:専用のアプリが必要

WindowsであれMacintoshであれ、標準ではP2Pネットワークは使え
ません。P2Pネットワーク用のアプリをインターネット上で見つけた
上で、インストールする必要があります。


4. デメリット2:他の参加者を見つけるのが困難

上でも書いたようにP2Pネットワークでは、相手のコンピュータと
直接のやりとりをします。
そのためには他のP2Pネットワーク参加者を知る必要があります。

これの対策方法はいくつかあるものの、いずれもスマートな解決
とは言いづらい方法です。

これはクライアント・サーバ方式では全く悩む必要のない話です。
なぜなら、サーバには必ずホスト名という全世界で唯一の名前が
割り当てられており、そこにアクセスすれば間違いなく目的の
サービスを受けることができます。
 通信販売の楽天なら www.rakuten.co.jp、
 Googleの検索サービスなら www.google.co.jp
といった具合です。

一方、P2Pネットワークは特定多数のコンピュータの集まりです。
P2Pネットワークを初めて使う時には他の参加者がどこにいるのか?
はわかりません。

相手が見つけられなければ、P2Pネットワークに参加したつもり
でも相手がいないわけですから、参加しているとは言えません。

これは例えば電話番号はわかっているけれど、名前がわからない
人を探すようなものです。タウンページに載っているとわかって
いたとしても、それを探すのは事実上不可能ですよね。

これを解決するための方法はいくつかあるのですが、どれもあまり
スマートではありません。

一つ目は、ピュアP2Pと呼ばれる方式で、P2Pネットワークのアプリ
にあらかじめ数台のコンピュータの接続情報を登録しておき、アプリ
の初回起動時に、必ずそのどれか繋ぎ、そこから他の参加者の情報
を入手する方式です。
当然ながら、アプリに登録されているコンピュータが動いていないと、
P2Pネットワークには参加できません。

二つ目は、ハイブリッドP2Pと呼ばれる方式で、参加者(コンピュータ)
リストをサーバに管理させる方法です。参加者は最初にサーバに接続
し、参加者リストから適切な通信相手を見つけます。
この場合も、サーバが落ちていると参加できないのは同様です。

いずれの方法も最初に通信するコンピュータが動作していないと参加
できないという点で、クライアント・サーバ方式と同じデメリットが
あります。

もっとも、この課題は最初にP2Pネットワークに参加する時だけの
話です。二回目以降は参加者情報を既に入手済ですから、問題にはなり
ません。


5. デメリット3:データが適正な保障はない

P2Pネットワークでは提供されているデータが適正であることを誰も
保証できません。

参加者に悪意のある者がいれば、わざとマルウェア(ウイルスなどの
悪意のあるソフトウェア)を仕込んだデータを提供することが可能
で、それを防ぐことは基本的にできません。

また、著作権違反などの他者の権利を侵害したデータが提供された
としても、それが権利侵害しているかどうかなど判断のしようが
ありません。

これが、クライアント・サーバ方式ならサービスの提供元がいて、
利用者はその組織と使用許諾契約を結ぶことになります。
上述のような不正利用に対しては、利用制限などのペナルティを
与えることで、適正な状態のデータが維持できます。

ですが、P2Pネットワークではサービスの提供元もなければ、契約
も存在しません。ペナルティを与えることが非常に難しいため、
上記のような不正利用が横行しやすいのです。

このデータが適正であることを保証できない点は、P2Pネットワーク
が一般化しなかった最大の理由ではないかと筆者は思います。

なお、次回以降で解説するブロックチェーン方式は非常にユニーク
な方法でこの課題を解決しています。


6. デメリット4:データ取得が不安定

P2Pネットワークでは、データがどこにあるのか(探し始めるまで)
わかりません。

そのため、いざファイルを入手しようとしても、そのファイルを
持っている参加者が(ネットワーク的に)遠い場所にいる場合、
取得にひどく時間がかかる可能性があります。

クライアント・サーバ方式では、データは全て同じ場所にあります
から、取得データによって時間が異なるといったことは起きません。


7. まとめ

P2Pネットワークは特定多数の参加者によるネットワークであり、
通常のクライアント・サーバ方式と異なり、中心となるサーバが
なく、参加者全員がサーバの役割を少しづつ担います。

この方式では、データを安価に保持できる、故障やデータ喪失の
リスクが事実上ゼロになるなど、多くのメリットがあります。

一方で、最初に参加する方法が面倒だったり、提供されているデータ
がマルウェアを含んでいたり箸作権違反の場合がある、データ取得
に時間を要する場合がある、といったデメリットもあります。

そのため、秘めたパワーのすごさにも関わらずあまり利用が
進んでいない技術でした。仮想通貨ではブロックチェーン方式を
用いることでP2Pネットワークのデメリット(の一部)を解消して
います。

次回からは、ブロックチェーンの仕組みについて解説します。
次回もお楽しみに。

(本稿は 2021年11月に作成しました)

このNoteは私が主宰するメルマガ「がんばりすぎないセキュリティ」からの転載です。
誰もが気になるセキュリティに関連するトピックを毎週月曜日の早朝に配信しています。
無料ですので、是非ご登録ください。
https://www.mag2.com/m/0001678731.html


この記事が気に入ったらサポートをしてみませんか?