IPFSとは何か?

IPFS(InterPlanetary File System)はProtocol Labsにより開発が進めれられているP2Pネットワーク上で動作するハイパーメディアプロトコルとその実装です。

現在のインターネットで主要なプロトコルであるHTTP(Hyper Text Transfer Protocol)を補完または置換するプロトコルとして位置付けられ、コンテンツ指向型1のプロトコルであるところに大きな特徴があります。

HTTPはロケーション指向型プロトコル

例えば現在のインターネットで情報にアクセスする場合https://hogehoge.com/aaa/hello.htmlといったURLを指定してアクセスします。このURLの意味するところは、「hogehoge.comというホストサーバにあるaaaというディレクトリの中のhello.htmlというファイル」ということであり、つまりは取得したい情報がある「場所」(サーバの名前、ディレクトリの名前、ファイル名)を指定しているものです。このように欲しい情報が存在する「場所」を指定して情報にアクセスする方法は「ロケーション指向」と呼ばれ、HTTPはロケーション指向のプロトコルです2

ロケーション指向の弊害

このようなロケーション指向での情報へのアクセスは直感的にわかりやすいものです。しかし多くの弊害もあります。まず一つは「情報へのアクセス可能性を保つために管理者に大きな責任(負担)が生じる」というものです。例えば上記例でのhello.html内の情報へのアクセスは「hogehoge.com」のホストサーバの管理状態に依存してしまうことがわかります。hello.html内の情報に全ての人が恒常的にアクセスすることを可能にするために、サーバ管理者には、

  • 24時間365日サーバーを安定稼働させなければならない。
  • アクセスの数が増えた場合にも遅延なく応答するためのインフラを準備しないといけない。
  • hello.html内の情報を改ざんされないように、不正アクセスを防ぐための対策を継続しないといけない。
  • hello.htmlをサーバから削除しない、またはファイル名を変更しないようにしないといけない。

といった責務が生じ、その負担は小さくありません。

このような責任(負担)の裏返しで、サーバ管理者に情報へのアクセスに関する全権力が集中するという弊害もあります。サーバ管理者は

  • 情報へのアクセスを自由に禁止/制限できる。
  • 情報へのアクセスに自由に課金できる。
  • 情報を自由に削除できる。
  • 情報を自由に改ざんできる。

というように、情報へのアクセスに関する全ての権力がサーバ管理者に集中してしまいます。

もちろん、情報の所有者がその情報へのアクセスを管理できることは、多くの場合で有意義なものです。しかし一方で、インターネットが発明されて以来、徐々にあらゆる情報はごく少数の巨大サービスに集中し始めています。例えば個人間の社会的繋がりや日々の行動などはfacebookに莫大なデータ量が蓄積され管理されています。facebookは私的企業であり、彼らのサービス規定に則りアクセス制限を自由にかけることが可能であり、さらにはサービス規定はfacebook自身が決めることができるものです。ユーザーは自分自身の生み出した情報/データ/コンテンツが、改ざんやアクセス制限、不正利用などをfacebook社はしない「だろう」と信じて預けるほかにありません3

また情報アクセスへの制限は、サービス(サーバ)管理者だけでなく例えば国家によってもなされる場合があります。2017年4月29日トルコ政府はトルコ国内からの全ての言語のWikipediaへのアクセスの禁止しました。当初は制限に至る理由も公表されることなく4、突如禁止され、現在もアクセスが禁止され続けています。インターネットでの情報アクセスがロケーション指向であるため、Wikipediaのサーバへのアクセスを禁止するだけで容易に市民の情報へのアクセスが制限することが可能になるのです。

インターネットが発明されて以来数十年の間、ロケーション指向の情報アクセスはうまく動作してきたように見えます。しかしインターネットの発展と共に、上記のようにロケーション指向による弊害やリスクといったものが少しずつ顕在化してきています。

IPFSはコンテンツ指向型プロトコル

そのような弊害やリスクを根本的に解決するためにIPFSではコンテンツ指向型のプロトコルを採用しています。

例えばあなたが書籍、例えば養老孟司の「バカの壁」を読みたいと思ったとき、その書籍が読めればそれがどこから入手したものかを気にすることはほとんどありません。近所の本屋さんで買っても、Amazonで買っても、図書館から借りても同じ内容を読むことができます。

インターネット上の情報も同様です。同一の内容であればどのサーバ上から取得したか?どの名前のファイルから取得したかなどという入手先はほとんどの場合で重要ではありません。そのためその情報の「場所」ではなく、「こういう内容の情報」というコンテンツの内容自体を直接指定して情報にアクセスする仕組みを考えることができます。これが「コンテンツ指向」になります。

コンテンツ指向プロトコルの仕組みは古くから研究されており様々な実装方法が提案されています。その中でもIPFSではSHAなどの暗号ハッシュ関数を利用してコンテンツのハッシュ値を求め、それをそのコンテンツのIDとして利用する方法を採用しています。ハッシュ関数により得られるハッシュ値は、同じデータであれば必ず同じハッシュ値が得られる一方、少しでも異なるデータからはまったく異なるハッシュ値が得られる特徴があります。そのためこのハッシュ値をキーにアクセスするIPFSには、ロケーション指向であるHTTPプロトコルでは得られない様々なメリットが発生します。

耐障害性

IPFSでは、コンテンツのハッシュ値を指定しそのコンテンツがある場所(サーバ等)は指定しません。そのため、たとえオリジナルのサーバが何らかの原因でダウンしていても、同じハッシュ値(=コンテンツ)のデータを持っているどこか他の場所から同じ情報を取得することが可能になります。

負荷分散

コンテンツの場所を指定しないIPFSでは、同じコンテンツを複数のサーバから取得できる場合、より近いサーバから取得することになります。一つのサーバーに負荷が集中することを防ぐことが可能になります。

耐検閲性

先のトルコの例に見るようにロケーション指向ネットワークでは、その情報のある場所(サーバ)へのアクセスを遮断するだけで検閲が可能でした。一方、コンテンツ指向ネットワークでは同じコンテンツは無数のサーバで保持されることが可能であり、どこかのサーバがアクセスを遮断されても、代理の他のどこかの別のサーバから同一の情報が取得可能になり、検閲を難しくします。

耐改ざん性

データのハッシュ値をキーにデータにアクセスするということはデータの改ざんを不可能にします。データを取得した人はアクセスしたデータのIDであるハッシュ値と、そのコンテンツから得られるハッシュ値を比較することで容易にコンテンツの正当性を検証することができるからです。

普及が始まったIPFS

このように従来のHTTPプロトコルにはないメリットを有したIPFSは、まだ実験段階にも関わらず実際のサービスでの利用が始まっています。個人用のホームページのホスティングの草分けであるNeoCitiesはそのホスティングにIPFSを利用することを発表しました。 またP2Pの分散型ファイルシステムという特徴から、IPFSはEthereumなどのブロックチェーン技術との相性がよく、それらを組み合わせて構築される様々なサービスが開発され始めています

次章よりIPFSに実際に触れながら、それがどのようなものか、どのように利用できるのかを見て行きましょう。

脚注


  1. 同様のことを示す用語として、「コンテンツアドレス」や「情報指向」とも呼ばれることがありますが、本書ではコンテンツ指向と名称を統一します。 [return]
  2. 従来のファイルシステムも同様です。例えばWindowsPC上で特定のファイルを取得する場合は「¥¥C:Documents¥hello.txt」のように指定されますが、これはCドライブにあるDocumentsというフォルダの中のhello.txtという「場所」を指定していることになります。 [return]
  3. 実際にそのような信用は裏切られ、facebookに蓄積されたユーザーデータ約8,000万人分が、アメリカ大統領選挙の際に不正にトランプ陣営側のデータ分析会社に利用された事件が発生しています。 [return]
  4. 後に、トルコ政府は「トルコ政府がシリア内戦を支援しているとしてトルコを批判する2つの英語のページが削除されなかったこと」との理由を公表している。 [return]