仮想通貨|P2Pネットワークの仕組みを理解しよう

ビットコインにおけるブロックチェーン技術を理解する上で、P2Pネットワークについて知らないわけにはいきません。今回は、P2Pネットワークについて書いてみようと思います。

スポンサーリンク

P2Pネットワーク

P2Pとは、Peer to Peerの略語で複数のコンピュータで通信を行う際のアーキテクチャの一つです。これはネットワークに参加するコンピュータ(Peer)が対等な立場で情報をやりとりする方式です。これまで多くのネットワークでは、殆どサービス提供者が利用者に対して情報を提供していました。このサイトも同様の仕組みになっており、読者がページに対してリクエストを送り、それに答える形でサーバーからデータが返却されています。

クライアント・サーバー型

従来の通信方式として、クライアント・サーバー型があります。これは前述したように、「読者がページに対してリクエストを送り、それに答える形でサーバーからデータが返却される」という仕組みのことです。本サイトのようなウェブサイトや、メールサーバー、SNS、オンラインゲームなど色々なWEBサービスがこの仕組を利用しています。このような仕組みでは、全ての通信がサーバーに対して行われているので利用者同士が直接繋がるということはありません。

クライアント・サーバー型の利点として、例えばyoutubeのようなサービスで、一度サーバーに対して動画をアップロードすれば、自分のパソコンがオフラインだとしてもサーバーが動いている限り様々な人に動画を見てもらうことができるという利点があります。ただ逆にサービス元のサーバーが停止するようなことがあれば、全利用者がサービスを利用できなくなってしまうというデメリットもあります。アクセスが集中しすぎたサービスにおいて、サーバーが落ちて繋がらないという経験をした人は多いのではないでしょうか。

P2P

P2Pはクライアントサーバーと異なり、Peerと呼ばれる端末のみで構成されています。Peerは、サービス利用を行うクライアントと提供を行うサーバーの両方の性質を持っています。P2Pを介してサービスを利用する場合、必然的にサービス提供者として参加していることにもなります。そのためクライアント・サーバー型と違い、P2Pでは一般的に複数台のコンピュータと同時に接続しているような状態になります。

複数のPeerそれぞれがサービス提供者であり、利用者なのでアップデートや変更を行う場合は、参加者の同意を得てから更新する必要があります。参加者それぞれが平等な立場で、あることからP2Pは非中央集権的な仕組みだと言えるでしょう。実はP2Pのような仕組みはいまに始まったことではありません。古くはWinnyやBitTorrentなどの匿名性のファイル共有サービスで使われていましたし、最近でも使われているサービスとしては、SkypeやGoogleハングアウトなどがあります。

フルノードサーバー

もう少しビットコインやブロックチェーンなどと、P2Pについて関連つけて考えてみましょう。ビットコインのブロックチェーンでは、P2Pネットワークにおける全ブロックデータを保有・検証している参加者のことをフルノードサーバーと呼びます。部分的に、フルノードサーバーからデータを送ってもらうSPVクライアントなどもありますが、ブロックチェーンのP2Pネットワークを構成する上で参加者と呼べるのは、全ブロックデータを保有し、ブロックやトランザクションの検証を行っているフルノードサーバーのみになります。

Bitcoin Coreに接続しよう

理屈では理解したけど、実際にどうすればP2Pネットワークに参加することができるのかな?と思った人もいるかもしれません。そういった方は、Bitcoin Coreなどをインストールしてみると良いでしょう。

Bitcoin Coreをテスト環境で導入しよう

テスト環境でも良いので実際に繋げてみると、よりP2Pの仕組みが理解できるかもしれません。よかったら試してみて下さい。

おわりに

今回は、P2Pネットワークについて書いてみました。クライアント・サーバー型との違いが理解できれば嬉しく思います。ビットコインのブロックチェーン技術について、調べてみないとわからないことが多いです。このサイトでも、少しづつブロックチェーン技術についてお伝えしていこうと思います。

スポンサーリンク