IPFS(InterPlanetary File System)とは?仕組みや技術をわかりやすく解説

IPFSアイキャッチ

インターネットの歴史を大きく変えることになるかもしれないと期待されているIPFS。

この記事にたどり着いた方は…

  • IPFSとは何か?
  • IPFSで活用されている仕組みについて知りたい!

…とお考えの方が多いのでは。

そこでこの記事では、現在のインターネットの仕組みを抜本的に変えると期待されているIPFSの概要や分散型ファイルストレージとは何か、更にIPFSで活用されている仕組み(技術)についてご紹介します。

IPFS(InterPlanetary File System)とは何か?概要をわかりやすく解説

IPFSとは、分散型ファイルストレージ(以下、「分散型ストレージ」)構築のための規格のことで、Protocol Labsにより開発が進めれられています。

ちなみに、IPFSとは「InterPlanetary File System」の略称で、日本語で惑星間ファイルシステムと呼ばれています。

※分散型ファイルストレージとは何かは後述します。

現在皆さんが使っている、インターネットの主要なプロトコルであるHTTP(Hyper Text Transfer Protocol)には以下のような課題がありました。

HTTPが抱える懸念点

  1. サーバー管理者への依存が強い

不正アクセスの防止や24時間365日サーバーを起動させる必要があるなど、サーバー管理者への依存が強いです。例えばハッキングやアクセス集中によりサーバーがダウンしてしまったら、データへのアクセスができなくなってしまうのです。

  1. サーバー管理者による不正リスクがある

サーバー管理者がデータを一括管理しているので、開示する情報の制限や情報の改竄などをサーバー管理者ができてしまうという懸念があります。

従来のHTTPを活用した場合、サーバーを稼働させる中央管理者が存在し、情報を一括管理しているため、アクセス集中によるサーバーダウンや、管理者による不正リスクという懸念が存在しました。

しかし、IPFSでは以下の技術(仕組み)を活用することで、従来のHTTPの課題を解決したネットワークの構築を試みています。

IPFSに使用されている主な技術
P2Pネットワークの活用
コンテンツ指向型の採用
ハッシュ関数

これらの仕組みの詳細は後述します。

つまり、IPFSとはP2Pネットワークやコンテンツ指向型を採用することで、既存のHTTPネットワークの課題を解決した、分散型ストレージ構築のためのシステムということです。

ここまでで、IPFSとは何か、IPFSを支える仕組みの大枠について理解していただけたのではないでしょうか。

次の章からは、いま紹介した、「分散型ファイルストレージ」や「P2Pネットワーク」について解説していきます。

IPFSで構築される分散型ファイルストレージとは

分散型ファルストレージ(以下「分散型ストレージ」)について説明する前に、ストレージについて簡単にご説明します。

ストレージとは、PCやスマホのデータを長期保管するための補助記憶装置のことで、ハードディスクやDVDなどもストレージの一つです。

Google DriveやDropboxなどはクラウドストレージサービスといわれており、ある特定の企業が管理するサーバーにデータ管理を委託するという中央集権的ストレージサービスといえます。

そして、分散型ストレージとは、企業などの中央管理者が一括してデータを管理するのではなく、ネットワーク参加者のPCやスマホの空き容量にデータを保存し、保存したファイルを互いに共有するストレージサービスのことです

データを分散して保存しているので、「分散型ストレージ」と呼ばれています。

従来の中央集権型ストレージでは、管理者による不正や、アクセス集中によるシステムダウンなどの課題がありました。

しかし、IPFSで実現が期待される分散型ストレージではP2Pネットワークを活用してデータを参加者で分散管理しているので、今説明した課題を解決することが期待されています。

つまり、IPFSでよく聞く分散型ストレージとは、P2Pネットワークを活用したファイルシステムのことで、中央集権型ストレージが抱えていたシステムダウンなどの懸念点の解決が期待されているシステムということです

参考:分散型ストレージと中央集権型ストレージの比較図
分散型ストレージ 中央集権型ストレージ
管理者 なし 企業
コスト 安価 高価
データの管理方法 ネットワーク参加者で分散管理 企業などの中央管理者が一括管理
懸念点 安全性が乏しい システムダウン
利用事例 Winny
BitTorrent
Google
Drive/Dropbox

IPFSでよく聞く分散型ストレージについて知りたい方は、「IPFSでよく聞く分散型ストレージとは?特徴やブロックチェーン との関係を解説」の記事をご覧ください。

IPFSで活用される仕組み(技術)とは?

IPFSで活用されている仕組みを整理すると下記の通りです。

  • P2Pネットワーク
  • コンテンツ指向型
  • ハッシュ関数
  • マークルDAG
  • 分散型ハッシュテーブル(DHT)
  • IPNS(独自の命名システム)

そして、この記事ではこれらの中でもよりIPFSの根幹的な技術である「P2Pネットワーク」、「コンテンツ指向型」、「ハッシュ関数」の3つの仕組みにについてご紹介します。

他の3つの仕組みが気になる方は、英文になりますがIPFSの公式ドキュメントをご覧になるのがオススメです。URL:IPFSの公式ドキュメント

IPFSの仕組み①P2Pネットワークとは

そもそもP2Pとは、Peer to Peerの略称です。

Peerとは、個人や企業の携帯やPCなどの端末を指し、それが複数接続されて構築されるネットワークがP2Pネットワークです。

皆さんが普段使っているのは、中央管理者が存在するネットワークはクライアントサーバー型ネットワークと呼ばれており、P2Pネットワークと比較すると以下の様な違いがあります。

P2Pとクライアントサーバー比較図
P2Pとクライアントサーバー比較図
P2Pネットワーク クライアントサーバー型
管理者 なし(存在することもあり) あり
コスト 安価 高価
データの管理方法 ネットワーク参加者で分散管理 企業などの中央管理者が一括管理

IPFSでは、このP2Pネットワークを活用することで先ほど紹介した、分散型ストレージを実現しようとしているのです。

なおIPFSのP2Pネットワークに参加することは簡単なので、気になる方は「IPFSの使い方をわかりやすく解説~環境構築からファイルのダウンロード方法まで~」の記事をご覧ください。

次に、IPFSを理解する上で、最も重要なコンテンツ指向型についてHTTPで活用されているローケーション指向型と比較して解説していきます。

IPFSの仕組み②コンテンツ指向型とは?

コンテンツ指向型について理解するために、まずはHTTPで活用されているロケーション指向型について理解しましょう。

従来のロケーション指向型とは

ロケーション指向型
車と家の情報が欲しい時:ロケーション指向型

HTTPがのロケーション指向型のネットワークで情報にアクセスしようとした場合、https://docs.ipfs.io/introductionというURLを指定します。

このURLを指定することで、「docs.ipfs.ioというサーバにあるintroductionという場所に存在する情報にアクセスが可能です。

つまりHTTPでは、閲覧したい情報があるロケーション(場所)を指定することで、情報にアクセスしているのです。

しかし、ロケーション指向型では、最初に紹介した様に特定のサーバー、つまり特定の管理者への依存が強いため、管理者による不正やアクセス集中によるサーバーダウンなどの懸念が存在しました。

そこで、IPFSではコンテンツ指向型を採用してます。

最新のコンテンツ指向方とは

コンテンツ指向型
車と家の情報が欲しい時:コンテンツ指向型

例えば、「漫画キングダム」を読みたい際、キングダムが読めればTSUTAYAやBOOK-OFFなどの本屋さんやAmazonや楽天で買っても同じ内容を読むことができますよね。

インターネットでもこれは同様で、同一の内容(コンテンツ)であれば、どこの場所から内容を取得したかは重要ではありません

つまりコンテンツ指向型とは、簡単にいうと「サーバーという場所」ではなく「情報というコンテンツ」を指定することでデータにアクセスする仕組みです。

またIPFSで採用しているコンテンツ指向型では、同じコンテンツを複数のサーバー(ネットワーク参加者)が保持していることがほとんどです。そして、あるコンテンツを取得する場合、自分から近いサーバーから取得します。

そのため、特定のサーバーに負荷が集中しシステムダウンするといった事態を、回避することが期待されるのです。

そして、IPFSでは次に紹介する「ハッシュ(関数)」と「コンテンツ指向型」を採用することで、改ざん耐性も兼ね備えています。

IPFSの仕組み③ハッシュ(関数)とは?

ハッシュ関数(以下、「ハッシュ」)とは、簡単にいうと暗号化技術のことで、以下の特徴を持ちます。

【ハッシュの特徴】
・元のデータが一文字でも変われば、暗号化後の値(ハッシュ値と呼ぶ)も変わる
・不可逆性(ハッシュ値から元のデータを逆算することが困難)
・元のデータサイズに限らず、ハッシュ値のデータサイズは常に一定

実際に見てみるのが早いでしょう。

下記は「IPFS」と「iPFS」をハッシュ関数で暗号化したものです。

IPFS
0448df491ba45aba21ad62b3e3d0a4265aaab7f1ff18f1f6d2677765a1bcba19

iPFS
ee9943bb053e207c368c14679b7e1b61fd56e93914aaadbc0aec917672060c7f

これを見ても分かるとおり、同じ意味の文字列でも大文字か小文字か変わるだけでハッシュ値はこれほど変わってしまうのです。

IPFSでは、このハッシュ関数を利用してコンテンツのハッシュ値を求め、求めたハッシュ値をコンテンツのID(キー)として利用しています。

そのため、ネットワーク参加者は取得したデータのIDとコンテンツのハッシュ値を比較することで、データの改ざんが行われていないか確認することが可能です。

つまり、ハッシュ関数とコンテンツ指向型を活用しているIPFSでは、誰かがデータを改竄してもすぐにデータの正当性を検証することができるのです。

IPFSはインターネットの規格であるHTTPを置換するのか

この記事では、現在のインターネットの規格であるHTTPと比較してIPFSについて解説しましたが、まとめると以下の通りです。

  • IPFSとは、分散型ファイルストレージ構築のための規格
  • P2Pネットワークやコンテンツ指向型、ハッシュ関数を活用することで、耐障害性や改ざん耐性がある

IPFSを活用したサービスは既に約80ほど開発されており、今後HTTPを置換していくのかその動向に注目していきたいと思います。

□参考文献

ちなみにIPFSについては、別の連載でも解説していますので、参考にしてみてください。

またこの記事は、下記サイトを参考にしながら執筆しています。

About 中井剛 98 Articles
ひろぴーが運営するCXR のメンバー。 これまでに、FXや仮想通貨関係の営業、メディア運営、新規サービス立上げ、広告運用、バイヤー業務、ウォレット営業、Webライティングなど、幅広く活動を行う。趣味はラジオ体操とジム、ラジオを聴くこと。