Web2からWeb3へと移行が叫ばれる近年ですが、Webのあり方を根本から変えようとするプロジェクトが生まれてきています。それがIPFS(InterPlanetary File System:アイピーエフエス)という分散型プロトコルです。
これまで、インターネットの根本を支えてきたHTTP(Hypertext Transfer Protocol)に変わる通信規格を目指しているプロジェクトです。この記事ではIPFS(InterPlanetary File System)という分散型プロトコルについて徹底解説していきます。
また忙しい人向けにこの記事をまとめると以下のようになります。
- IPFSは、既存のインターネットの通信プロトコルであるHTTPに代わる分散型プロトコル
- 「ノード」と呼ばれるコンピューターが、ネットワークを形成し、ノード間でデータを保存したり、アクセスを可能にする
この記事は、経済オタクで仮想通貨にハマっている資本主義の奴隷編集部が執筆しています。
分散型サーバーIPFSとは?
創設者と運営企業
IPFSは、2014年に設立されたProtocol Labs(プロトコル ラボ:リンク)によって開発されています。CEOはジュアン・ベネット(Juan・Benet:@juanbenet)Protocol Labは、現行のインターネットを根本的に改善することを目指した企業で、File Coinという似たようなプロジェクトも同時並行で進めています。
インターネットを根本的に改善するためのプロトコル、ツール、およびサービスを構築します。当社の製品は、数千の組織と数百万の人々にサービスを提供しています。
公式サイト
分散型プロトコル:IPFS(Inter Planetary File System)
IPFS(Inter Planetary File System)は、直訳すると「惑星間のファイルシステム」です。「ノード」と呼ばれるコンピューターが、ネットワークを形成し、ノード間でデータを保存したり、アクセスできるようにしたりします。
これにより、現在の主要なプロトコルである「HTTP」に代わるプロトコルになることを目指しているプロジェクトです。
現在使われている通信規格のHTTPが、中央集権的な企業が運営するサーバーによって成立していますが、分散型サーバーIPFSの登場によって、分散的にユーザー同士が直接ファイルを通信することができるのです。
IPFSとHTTPの違い
ここでは、IPFSとHTTPの違いについて解説していきます。
また、HTTPについて理解するためには、Webとは何かを理解している必要があります。別の記事でWebとは何か解説していますのであわせてお読みください。
HTTP(Hypertext Transfer Protocol)
HTTPはHypertext Transfer Protocol(ハイパー・トランスファー・プロトコル)の略で、私たちが利用しているインターネットで、情報へアクセスするときに使われているルールのようなものです。
HTTPでは、クライアントサーバーシステムを前提としており、サーバーに格納されている情報をクライアント(見る側の人)が参照する形式をとっています。
その際、サーバーは企業などの組織が運営しています。そのため、どうしても中央集権的な性格を帯びてしまいます。情報は全て企業側に集約され、膨大なアクセスに耐えうる設備投資が必要になります。さらに情報の改竄に対する対策も必要になります。
IPFS(Inter Planetary File System)
一方で、IPFSはサーバーという概念がそもそもありません。IPFS(Inter Planetary File System)は、ノードと呼ばれるコンピューターが、ネットワークを形成しノード間でデータを保存したり、アクセスできるようにしたりします。
そのため、HTTPのようにノードによる分散型の運営が可能になります。さらに、大規模な設備投資も不要になります。さらに、ノードがそれぞれ通信を支えるので、膨大なアクセスを効率的に捌くことが可能となります。
コンテンツ志向とロケーション志向という違い
HTTPとIPFSの違いは中央集権的かそうでないかという点については押さえていただけたかと思います。ただ、もっと根本的な違いとしてIPFSはコンテンツ志向であり、HTTPはロケーション志向であるという違いがあります。
HTTPは、ロケーション志向でありネット上のコンテンツを「場所」を軸に整理しています。それを具現化しているのがURI(URL)で、コンテンツの意味に関係なく情報を階層ごとに整理しています。以下のURLは、「https://」という通信方法で、「example.com」という場所の中の「aaa」にある「bbb」というように、場所を軸に情報を整理しています。
https://example.com/aaa/bbb.html
それに対してIPFSは、コンテンツ志向を採用しています。コンテンツ志向はコンテンツの「内容」を軸に情報を整理しています。例えば、以下のように「ipfs://」という通信方法で、コンテンツの内容を示した「AJOqlzV2N0Kz_rYdTk3Yn-TUrp2GmXENQQ」という暗号化されたハッシュ値で指定しに行っています。
ipfs://AJOqlzV2N0Kz_rYdTk3Yn-TUrp2GmXENQQ/
このように、情報の整理の仕方がIPFSとHTTPで全く違うことが分かったのではないでしょうか?
IPFSを使用するメリット
続いて、IPFSを使用するメリットについてお伝えいたします。
障害に耐性がある
IPFSではコンテンツのハッシュ値を指定し、そのコンテンツが存在する場所(サーバ等)を指定しません。
そのため、たとえオリジナルのサーバが何らかの原因でダウンしていても、同じハッシュ値(=コンテンツ)のデータを持っているどこか他の場所から同じ情報を取得することが可能になります。
サーバーの負荷を分散できる
コンテンツの場所を指定しないIPFSでは、同じコンテンツを複数のサーバから取得できる場合、より近いサーバから取得することになります。一つのサーバーに負荷が集中することを防ぐことが可能になります。
改竄に耐性がある
データのハッシュ値をキーにデータにアクセスするということはデータの改ざんを不可能にします。データを取得した人はアクセスしたデータのIDであるハッシュ値と、そのコンテンツから得られるハッシュ値を比較することで容易にコンテンツの正当性を検証することができるからです。
検閲に耐性がある
ロケーション指向ネットワークでは、その情報のある場所(サーバ)へのアクセスを遮断するだけで検閲が可能でした。
一方、コンテンツ指向ネットワークでは同じコンテンツは無数のサーバで保持されることが可能であり、どこかのサーバがアクセスを遮断されても、代理の他のどこかの別のサーバから同一の情報が取得可能になり、検閲を難しくします。
IPFSをブラウザで閲覧する方法
【Chrome/Fire Fox】IPFS Companion
まず、基本的にはIPFSは現時点で、一般的なブラウザで閲覧することができません。しかし、拡張機能を使用することで、IPFSを通常のブラウザで閲覧することができます。それがIPFSが提供している「IPFS Companion」です。
GoogleChrome
FireFox
Brave(ブレイブ)
続いて、Brave(ブレイブ)という分散型ブラウザでも利用することができます。ぜひご利用ください。
さいごに
この記事ではIPFS(InterPlanetary File System)という分散型プロトコルについて徹底解説してきました。
この記事の内容をまとめると以下のようになります。
- IPFSは、既存のインターネットの通信プロトコルであるHTTPに代わる分散型プロトコル
- 「ノード」と呼ばれるコンピューターが、ネットワークを形成し、ノード間でデータを保存したり、アクセスを可能にする