ホーム仮想通貨初心者向け仮想通貨に使用されているP2Pとはいったいどんな仕組み?細かい所まで分析!
  • このエントリーをはてなブックマークに追加
2018.08.27 最終更新
研修生

仮想通貨に使用されているP2Pとはいったいどんな仕組み?細かい所まで分析!

仮想通貨,P2P

仮想通貨はビットコインなどで有名になっていますが、仮想通貨の中にもP2P技術が採用されています。
P2Pの詳しい内容を細かく解説して初心者にも分かるように徹底解説しました。

記事上「ランキングここを押してください」
記事上「コメントボタン」

クライアントサーバー方式がサーバーを介してデータの相互移管するのに対して、P2P方式はクライアント(Peer)同士が直接データ移管を行ないます。

P2Pの技術は1970年代から存在しましたが、LineやSkypeなどに使用され、現在は、私たちにとって身近な技術です。ここ10年では仮想通貨を通して、より世の中に必要とされる技術となりました。

仮想通貨を取り扱ったり、仮想通貨について話すとき「仮想通過はP2Pの技術を使っている」なんて良く耳にしますね。

しかし専門家でもない限り、いまいちP2Pという言葉を理解できないのではないでしょうか。

そこで、今回はP2Pの仕組みから問題点まで徹底解説いたします。ぜひ最後までお読み頂き、しっかりと仕組みを理解した上で、仮想通貨と付き合ってください。

P2Pってどんな仕組み?

仮想通貨,P2P
P2Pとは、ネットワークサービスにおいて、Serverを必要とせずPear同士が直接通信しあうことでサービスを提供仕組みのことです。

P2PのPとは「Peer = 同等の、同格の」と言う意味で、P2PとはPeer to Peerを略して書いたものです。つまりP2Pとは「同格のものから同格のものへ」という意味のことなのです。

ここでのPeerとは普段私たちが使っているPC(端末)のことを表していて、複数のPeerがそれぞれ相互協力して作るネットワークのことをP2Pと読んでいます。

P2Pと対比するネットワークサービスのことをクライアントサーバー型といったりします。P2Pにはネットワーク上にPeerしか存在していませんが、クライアントサーバー型は「クライアント(依頼者)」と「サーバー(サービス提供者)」が存在しています。

サーバーという言葉も普段どこかしらで耳にする言葉ではないでしょうか。「サーバー」とは多くの情報を保存し、サービスを提供してくれるパソコンのことです。

「クライアント」とはサーバーとは反対で、サーバーと通信し、サービスを提供してもらう側のことです。ひとつの巨大なサーバーに無数のパソコンがアクセスするネットワークがクライアントサーバー型のイメージです。

ひとつの巨大なサーバーに複数のパソコンがアクセスするので、この方式を中央集権型とも言われています。

この仕組みを普段の生活の中で考えると、銀行とその顧客のようなものです。

銀行に加入者みんなのお金が集まり、必要に応じて顧客は銀行からお金を引き出したり、振込みのときも、一度銀行を通して、相手の口座に振り込みますね。クライアントサーバー型の仕組みのイメージはこのようなものです。

インターネットで普段私たちが見るホームページやブログなどwww(=ワールドワイドウェブ)のつくURLアドレスを持つものも全てこのタイプです。また、普段使うフリーメールもこのタイプの様式をつかっています。

それでは、P2Pの仕組みはどのようなものなのでしょうか。クライアントサーバー型がサーバーを必要とするのに対し、P2Pはクライアント同士だけでの取り引きをする仕組みです。

ネットワーク上に複雑にPeerと呼ばれる端末同士が相互に通信しあい、相互にサービスを提供しあいます。

P2P方式をプログラムしたソフトウェアをユーザのローカルなPCにインストールすれば、ユーザは他のPCから要求に応答することができます。

ユーザは直接それらのPCからコンテンツをダウンロードすることもできます。従来のように、ファイルをダウンロードする際に、サーバーを経由しなくて良いのです。

また、P2Pを利用した場合、巨大なサーバーを必要としないのでサーバーにアクセスが集中して負担がかかり回線がパンクすることがなくなり、ダウンロードに時間がかかることもなくなります。

クライアントサーバー型が、銀行と顧客の取り引きに似ているのに対し、こちらは当事者同士の現金での精算にちかいイメージです。

また、仮想通貨とはインターネット上での現金の交換のようなもので、インターネット上であるからこそ、遠くの相手とも直接の交換ができる仕組みです。

P2Pには大きく分けて二つの技術があります。一つはHybridP2P、もう一つはPureP2Pです。

前者のP2Pモデルはサーバーを常には必要としませんが、ただ、いくつかの管理的なことをさせるためのサーバー機能がこのP2Pモデルには存在します。

ただし、モデルのサーバーの役割とは、新規参入したPeerに、すでに接続されているPeerの名前を提供する機能に限られています。

サーバー機能は、Peerに接続する相手のリストを提供し、接続開始時からジョブ実行時まで接続処理を行うことだけに限定されていいます。

しかし、このP2Pモデルは、ネットワークにすでに接続されているより多くのPeerをみつけるチャンスを増やすためのリストを提供できるという点で優れています。

リソースをダウンロードする際には、Peerは接続された他のPeerにそれぞれ接続してリクエストを送る必要があるため、その分CPUの処理時間を消費することになります。

このモデルにいては、サーバー自体に全ての要求内容が保存されるので、リソースを検索するために、Peer自身が他の接続されているPeerを探し回る必要がありません。

後者のPureP2PはPeerのPCに完全に依存します。古典的なクライアント/Serverキテクチャのいずれのネットワークモデルにおいても、PCはサーバーにもクライアントにもなりうるので、このことは矛盾しているように聞こえるかもしれません。

しかし、PureP2Pでは中央に配置されたServerには頼らずに作動しますので、いったんマシンのメモリー上にP2Pアプリケーションが読み込まれると、それぞれのPeerは、ネットワーク上に接続されたPeerをダイナミックに探しはじめます。

通信はすべて、サーバーによるサポートなしに、接続されたPeer間でおこなわれるのです。

ここで要る通信とは、ファイルのアップロードおよびダウンロードによるデータの転送、オンライン状態の通知、リクエストの送信、レスポンスの受信、などのことを指します。

PureP2Pモデルの機能は、クライアントサーバー型におけるクライアントとサーバー間のすべの通信プロセスが、サーバーセットがおかれている場所のルールに基づくという、従来の通信方法を打ち砕きました。

PureP2Pモデルにおいては、自分たちのルールやネットワーク環境はユーザ自身できめることができるのです。このP2Pモデルでは、インターネットを利用する場合に頭痛のタネであった、サーバーやISPの一部となることからは完全に解放されることになり、完全に関係者のみのプライベート空間でのやり取りとなります。

PureP2Pにおいての唯一の問題は、ネットワーク上のPeerを見つけなければならない事です。ネットワークにログイしてきたPeerの参入を登録する中央集権的なものが存在しないため、ユーザ自身で他のPeerの位置を探し出す必要があるのです。

hybridP2Pは、クライアントサーバー方とP2Pを組み合わせたもので仕組みは簡単ですが、サーバーを必要とします。一方PureP2Pは、サーバーを必要としませんが仕組みが複雑になります。

また、P2Pを導入したアプリケーションを大きく分けると次の4つに分類できます。

  • 一対一通信型
  • 放送型
  • オンデマンド型
  • 分散型データ管理

現在世の中に出ているP2Pアプリケーションはこれら4つのうちどれかもしくは、複数の機能を併せ持ったものです。

一対一通信型はIP電話、LINE電話やSkypeに代表されるような、端末間で一対一のコミュニケーションを行う使い方です。

相手のIPアドレスを、電話番号やニックネームなどから見つけ出し(=IPアドレス解決と呼ぶ)、その後、PeerとPeerが対等の立場で通信を行います。

音声データであれば電話となり、映像データであればテレビ電話となります。インスタントメッセージやオンラインチャットでも使われます。

通常、アプリケーションの背後に特定の利用者が居ることが想定されていて、その人物に対して接続を行うような使い方が多いです。この種のアプリケーションのほとんどには、相手がオンラインかどうかを認識する機能が取り入れられています。

放送型はノード間接続を、カスケード状に多段階層化して、配信ツリーを形成することで、放送型のサービスが実現できます。

ツリーの根元のノードが、放送局となり、上流ノードから下流ノードへ、データをバケツリレーさせることで、全参加ノードに、ほぼ同時に同じデータを配信することが出来るのです。

これにより、リアルタイムのストリーミング中継が可能となります。上流ノードが脱退してしまったときは、ストリームが途切れるが、内部にバッファを持つことで、一定時間は再生が途絶えないようにして、その間に、別の上流ノードを探し出して、再接続を行うことができます。

再接続の処理には時間がかかるため、通常、予備の上流ノードを用意してあります。再接続先候補のノードを、効率的に準備しておくために、様々な創意工夫が考案されています。

オンデマンド型は動画コンテンツの配信などでは、コンテンツを欲するノードが、当該コンテンツを持っているノードを探し出して、そこへデータを要求することで、保持ノードがそれに応じてデータを送信する(オンデマンド)、という一方向型の通信が行われます。

言い換えると、持っている者から欲する者へ、という通信です。送信元は、持っている端末が複数ある場合、どれからでも良くて、不特定多数の中からアプリケーションまかせで選ばれます。

送信元のIPアドレスは、コンテンツのタイトルなどを手がかりに、インデックスを検索して見つけ出し、コンテンツ保持ノードにデータ送信を要求することで、データ転送が開始されます。

オンデマンド型のP2Pアプリケーションでは、データ全体を、一旦リクエストした端末までは持ってきてから利用する「ダウンロード方式」の実装がほとんどです。

分散型データ管理はビットコイン、Ripple (支払いシステム)など使われています。これらは通貨の取引履歴情報を、各ノードで分散して持つことによって、通常はサーバで管理する台帳データの不正な改竄を防ぐことができるので、P2Pを利用しています。

これにより自分のノードの台帳データを改ざんしたとしても、他の多数のノードが正しいデータを保持していることにより、比較した際に改竄を検知することができるのです。

P2Pの歴史

P2Pの技術は仮想通貨とともに出現した技術ではなく、ずっと以前から存在していました。P2Pが最初に実現されたのはノースカロライナの2人の大学院生、Tom Truscott とJim Ellisによって、2つのコンピュータ間で情報の交換する手段として作られました。

これは1979年のことです。この2人の大学院生のシステムが発展して、今日のような堂々たるP2Pのシステムになったのです。

PC同士をLANで接続し、データの送受信は80年代も普通に行なわれていました、当時、AppleのアプリケーションでLocal Tolk やEthertalkといったものが使われていました。そして少し前までは、主にLAN,BBS,FTPという、既知のユーザ同士の閉じられた世界でファイルを共有する目的で同様なシステムが使われていました。

そして、1999年から2000年ごろ、インターネットを通じて個人間で音楽データの交換を行なうアプリケーションソフト「Napster」がインターネット上で音楽共有する方法で革命をおこし、人々はP2Pの本当の可能性を理解しはじめました。

このソフトはNapster社が管理する中央サーバーに接続し、ユーザのパソコンに保存されているMP3形式の音声ファイルのリストを送信するものでした。これを、世界中のユーザが共有することにより、互いに他のユーザの所持する音楽ファイルを検索し、ダウンロードすることができました。

中央サーバーはファイル検索データベースの提供とユーザの接続管理のみを行っており、音楽データ自体のやり取りはユーザ間の直接接続によって行われていました。

このNapster事態はダウンロードされる音楽の著作権が守られていなかったため、運営会社が音楽業界によって訴えされてしまったため、閉鎖されましたが、ここで開発された技術はその後他のアプリケーションによってうけつがれました。

Napsterが閉鎖された後、Gnutellaというアプリケーションが開発されました。Gnutellaユーザはインターネットを通じて相互に接続され、互いに自分の持っているファイルのうち、他のユーザと共有してもよいファイルのリストを公開します。

Gnutellaで検索を行なうと自分以外のユーザの持っているファイルの中から条件に合うものを探し出し、そのユーザのコンピュータから直接ダウンロードすることができます。

Gnutellaにおいてもやり取りをされるファイルの著作権の侵害の問題は解決されず、違法と思われるやり取りは、存在していますが、P2PというPeerとPeer間のやり取りのみで取り引きが完了してしまう性質をもっているがために、捜査、発見、逮捕するのが難しいのです。

Gnutellaが登場したのちも多くのアプリケーションが開発、発信されました。そして、この P2Pの技術を導入したビットコインが誕生したのは2009年のことでした。

P2Pを使ったサービス

ところで、現在私たち、スマホやPCを普段使う中で、仮想通以外にもP2Pを使ったアプリケーションを使用しています。どんなものがあるでしょうか。

例えば、LINE、SkypeなんかがこのP2Pを利用しています。
どこの誰とでも無料で連絡できるってことで、とても普及しましたが、なぜ無料で使えるのかというとこのP2Pのおかげなのです。今までのメールサービスは「このメッセージをあの人に送りたい」という要望を巨大なサーバーに手数料を払ってお願いして、やり取りが可能になっていました。

それがP2Pは巨大なサーバーが必要ない=手数料がいらないのでLINEは無料で使えているのです。
他にも身近なものだとwinnyやwinmxなどのファイル共有ソフトもP2Pを利用してます。

P2Pと仮想通貨

仮想通貨もP2Pを使い中央集権的なサーバーを使わないことで従来の円やドルなどの法定通貨よりも手数料をとても少なくし、送金スピードを短縮することが可能になりました。

仮想通貨を取り扱う際にかかる手数料はP2Pネットワークの仕組みを使ってるだけでは取引データを不正なく正しく保存すること自体に非常に難しく、不正の防止等を維持する為に、ブロックチェーンの仕組みが採用されていています。

このブロックチェーンを導入する為に手数料を少しだけですが発生させています。

ブロックチェーンのデータはどこに保存されている?

仮想通貨,P2P
ここまでにお話したようにビットコインをはじめとする仮想通貨にP2Pの技術が使われています。

しかし、日々多くのやり取りが行なわれる仮想通過は、それらの取り引きの記録を残していく必要があるように思われますが、P2Pの技術を使っているということは、個対個間のみで取り引きが完了しているはずで、他人はその情報を知り、保管することは難しいように思われます。いったいどのような仕組みになっているのでしょうか。

ビットコインでよく聞くフレーズに「採掘(マイニング)」という物があります。これは、ビットコインネットワークの一つとして自分でコンピュータを立ち上げ、支払い処理の承認をするための競争に参加して勝つと、新規発行されるビットコインを報酬として得られる仕組みを指します。実際にどこかでコインを掘っているわけではありません。

オリジナルのブロックチェーンであるビットコインでは、上述の通り支払い承認の競争を10分毎に催す事によって、取り消せない勘定データをブロックという単位で追加していく仕組みで「Proof of Work」という概念を採用しています。

ビットコインのブロックチェーンでは、アドレス(口座番号のような物)間の支払いは全て公開された状態で勘定(元帳)データに保存されています。これは、過去9年分全てが誰でもダウンロードして閲覧可能であると言うことです。

ビットコインという1種類のトークン残高を保存するデータベースの機能を持っていますが、実際にはそれだけにとどまりません。

ワンストップソリューションとして、各ユーザーの二重払いを防ぎながら、支払いデータの整合性を保ったまま記録できる立派な「勘定アプリケーション」の機能を有しています。

では、これらのデータはどこに保存されているのかと言う問題ですが、先にマイナーによって、日々マイニングされているとお話しましたが、このマイニングの当初からのプログラミングにより、10分毎にブロックが生成させるようになっています。

そしてマイナーにはマイニングに参加するにあたり、「ビットコイン・コアの初期同期には長時間かかります。

完全なブロックチェーン・サイズ (65GB以上)に十分な帯域幅とストレージがあることを確認してください。」と言うようにBitcoin Coreのようなマイナーに求められるノードソフトウェアのダウンロードページには注意文が載っています。

つまり、ブロックを生成した際、そのブロックはマイナーのマシンに保存され、それは他のユーザーからいつでも閲覧、ダウンロードできる形になっているのです。

P2Pのメリットとデメリット

仮想通貨,P2P
P2Pのメリットは、拡張性の高いネットワークを構築できることでしょう。たとえば、P2Pを利用したインターネット電話ソフトの「Skype」は、昨年末の発表でユーザー数が1290万人を超え、100万ユーザーまで同時接続可能な体制を整えたと発表しました。

このような多数のユーザーを抱えるシステムをクライアント/サーバー型のネットワークで構築しようとすれば、非常に処理能力の高いサーバーと広い帯域を持った回線を用意しなければなりません。そうでなければ、アクセスの集中によって、あっという間にサーバーや回線がダウンしてしまうでしょう。

しかし、P2Pであれば、接続されているユーザー間でバケツリレーのようにデータを送信する上、ユーザーごとにその経路を分けることができるため、多くのユーザーが利用したとしてもアクセスの集中を避けられます。

データや通信経路を分散させることで、高い拡張性を持ったネットワークを構築できるのです。

また、万が一の障害に対しても高い耐性を発揮します。クライアントサーバー型のシステムの場合、サーバーの障害によってサービス全体が停止してしまいますが、P2Pではネットワーク上のどれか1台のPCに障害が発生しても、それが全体に影響を与えることはありません。
たとえ、ネットワーク上のPCが起動していなかったとしても、別の経路を選択して通信を行なえば済むからです。
データに関しても、ネットワーク上の複数台のPCに分散して配置されているため、特定のPCに障害が発生しても、別のPCから転送すれば済みます。

さらに、スケーラビリティの高さからくる特長でありますが、コストを低く抑えることができます。クライアントサーバ方式に比べて要求されるサーバ装置性能が低くなり、通信回線も通信帯域幅の細い安価な回線で済むのです。

このコスト差は端末数が増えれば増えるほど顕著となります。一般的にクライアントサーバシステムを運用する際に一番コストがかかるのがサーバの回線費用ですが、これを格段に安くすることができます。

そして、仮想通貨にP2Pを導入している意義を占めているP2Pの特徴としては匿名性を維持できるということではないでしょうか。

P2P方式で、ピア間の通信を暗号化したりデータの中継転送の回数を多くなるようにすれば、大元のデータを誰が公開したか、誰がそのデータを手に入れたか、を解析することが難しくなります。

仮想通貨だけでなく、Winnyなどのファイル共有ソフトの違法利用においては、著作権を無視したコンテンツの利用を誰が行ったかを隠蔽するために匿名性が喜ばれました。

しかし時に管理者側からするとデメリットにもなりうります。最近は念入りにトラフィック解析を行うことで犯人を確定することができるようになってきており、匿名性は薄れてきているのが現状です。

逆に商用のP2Pシステムでは「誰がいつ、どういうデータを送受信したか」までトレースできるような、匿名性を排除したシステムも模索されています。

また言論の自由という観点から、匿名性を持たせたP2P掲示板システム(新月など)も存在します。

もちろん、デメリットもあります。P2Pのネットワークでは、データが分散していることなどから、そこで流通するデータの著作権を保護したり、課金を行なうことが難しいという点があります。

ユーザーの管理や追跡なども課題の1つで、いったんネットワーク上に流出したデータを回収したり、削除することも難しいでしょう。

このため、ファイル交換ソフトのように不正な利用が後を絶たず、ウィルスなどの流行に歯止めをかけることも難しい状況になっています。

技術的には注目すべき点が多く、今後の発展も期待できる分野であるのも事実ですので、P2Pのネットワーク上でどのように秩序を作っていくかといった課題に取り組んでいく必要があるでしょう。

また、そもそもP2P方式は実装の難易度が高いのです。特に、エンドユーザの端末がPCである場合には、その電源オン期間が不確定な場合が多く、端末の頻繁な脱退や長期の不在期間を考慮したアルゴリズムが必要になるます。

参加脱退が激しいノードが居ることに対してどう対処するかは「Churn問題」という呼び方をしています。P2P方式はクライアントサーバ方式に比べて信頼性が劣るイメージがあるますが、これに関しては、逆にこのChurn問題への対応策を取らざるを得ないことにより、自ずから耐障害性が高いシステムが出来上がるという側面もあります。

端末がPCである場合は各PCの処理能力、転送能力、保存容量などの条件が千差万別であり、できるだけ多くの種類のPCで動くようにするには注意深い実装が必要になります。

また、実装を組んだ際の動作確認、評価の難易度も非常に高いのが現状です。設計段階ではシミュレータなどを用いての動作確認が可能なのですが、最終的には多数のノードを実際に並べて動作確認を取る必要があります。これが技術的、経済的に難しく、実環境でシステム評価を行って確実に動くシステムに仕上げるには多大な手間と費用がかかり、これまでクライアントサーバ方式でやってきた配信業者がP2P方式に乗り換えようとする際の参入障壁となっています。

実際には10000ノードレベルになると開発者や開発業者がこれを自前で揃えるのは現実的ではなく、一般人から有償・無償でモニターを募って実証実験を行うケースが多いようです。

さらに、P2PのデメリットとしてはP2Pはサーバ回線負荷を軽減する代わりに各ノードの回線負荷を高めてしまうということです。

クライアントサーバ方式では一般的に、Webサイトなど送信専用サーバが集約されているサイトで、代理サーバによってバックボーン回線の帯域を使用しないように負荷分散されています。

しかし、P2Pによるファイル共有ソフトでは、基本的にクライアント間で行われる1対1の通信が基本となるため、通信の集約や負荷分散ができずバックボーン回線の帯域を大幅に使用します。

2000年代の初頭にはファイル共有ソフトによるバックボーン回線の帯域の使用率が75%を超える場合すら出てきて、ファイル共有ソフトを使用していない他の利用者の通信速度にまで影響が出てくるようになったため、ISP各社は約款でファイル共有ソフトなどによる回線当たりの平均帯域を上回る極端な通信量のユーザの帯域を制限するようになっています。

これには2006年に通信の秘密に関連してISPによる「Winny」通信の遮断は行き過ぎであると総務省が違法性を指摘したことが関連していいます。

ISPとしてはバックボーン回線維持のコストが増えることは言うまでもなく、プロバイダ責任制限法による通信監視の都合もあり、ファイル共有ソフトによる通信を完全に遮断したかったのでうが、この総務省の指摘を受けて特定通信サービスの遮断ではなく特定ユーザが使用する帯域を制限することで落ち着いています。

比較をしてきた結果!今後の動きとは

仮想通貨,P2P
いかがでしたでしょうか。P2P方式は仮想通貨の説明によくでてきますが、実際には他の身近なアプリケーションにも多用されています。

クライアントサーバー方式に比べれば、P2P方式は後進的に発展してきたので著作権のあるデータの保護や犯罪防止のための匿名性の排除など秩序の整備をはじめ、技術的な改良も含め、まだまだ課題はあります。

P2P方式はブロックチェーンとともにこれからが期待されている技術です。日々改良され、発信される新しい技術についてくのはなかなか大変ですが、仮想通貨のみをとっても、これから、日本でも人口減少がすすみ、外国人の流入が増えることで、海外送金に便利な仮想通貨の使用がますます一般的になります。

いままで取り扱っていなかった人も、より多くの人が仮想通貨市場に参入していくことになるでしょう。ぜひ、今回の記事を参考にして、より便利に新しい技術を活用して下さい。

最終更新日:2018年08月27日

【この記事を書いた女子会メンバー】

研修生
研修生の他の記事を読む

フォローする

  • このエントリーをはてなブックマークに追加

ランキングも応援してね♡

関連記事

SPサイド「ランキングここを押してください」

人気記事ランキング

  • Weekly
  • Monthly
  • Total

コインガールズ記事も配信中!

サイド「NEWS APP」

ランキングに参加してね♡

PCサイド「ブログランキング」 PCサイド「ブログ村」

マーケットレポート:市況記事

マーケットレポート:市況記事