IPFSとは何か?

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社によって改ざんやアクセス制限、不正利用などされない「だろう」と信じて預けるほかにありません。しかし実際にはそのような信用は裏切られ、アメリカ大統領選挙の際にfacebook社が不正に約8,000万人分のユーザーデータをトランプ陣営側のデータ分析会社に提供する 事件が発生しています。

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

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

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

このような問題を根本的に解決するためにIPFSではコンテンツ指向型のプロトコルを採用しています。

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

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

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

耐障害性 #

IPFSではコンテンツのハッシュ値を指定し、そのコンテンツが存在する場所(サーバ等)を指定しません。そのため、たとえオリジナルのサーバが何らかの原因でダウンしていても、同じハッシュ値(=コンテンツ)のデータを持っているどこか他の場所から同じ情報を取得することが可能になります。(読みたい本がある書店で売り切れていたら他の書店で買い求めるのと同様の動作です。前述のとおり内容が同じであればどの書店から購入しようがユーザーは気にしないのです。)

負荷分散 #

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

耐検閲性 #

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

耐改ざん性 #

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

Filecoin #

以上のようにHTTPに比べて様々な利点があるIPFSですが、1つ問題が残っています。それはIPFSのP2Pネットワークのノードがコンテンツを保持する動機となるもの(インセンティブ)がないことです。

HTTPの世界でビジネスを行う事業者自身が自身のビジネスのためにデータを保持してきていました。例えばFacebookはSNSサービスを充実させてユーザーを確保し収入を得るということをインセンティブに、膨大なテキストや画像さらには動画コンテンツデータを自身のサーバに保存します。しかしIPFSではP2Pネットワークがコンテンツをシェアしあいながら保存する形式を行っており、コンテンツを保持する者とそのコンテンツをもとにビジネスを行う者が必ずしも一致しません。そのためIPFSに参加しているノードにデータを保持するインセンティブが存在しないのです。

そこで生み出されたのが Filecoinです。Filecoinは一種の仮想通貨です。FilecoinはProof-of-Spacetimeという仕組みによりIPFS上にストレージを提供した時間や量に応じて仮想通貨Filecoinが与えられることでIPFS参加ノードがコンテンツを保持するインセンティブが加わることになるのです。

普及が始まったIPFS #

このように従来のHTTPプロトコルにはないメリットを有したIPFSは、以下のように実際のサービスでの利用が続々と始まっています。

  • 個人用のホームページのホスティングの草分けであるNeoCitiesがそのホスティングにIPFSを採用( 公式ブログ)。
  • ブロックチェーンプロトコルEthereumがそのメインサイト ethereum.orgをIPFSでホスティングすることを創始者のVitalikが 発表
  • Webブラウザ「Brave」がIPFSをサポート。”ipfs://” で始まるURIを指定することでIPFSコンテンツにアクセスが可能に( 公式アナウンス)。

また、Filecoinについても着実に開発が進められ2020年10月に本番ネットワーク(Mainnet)が 稼働し始めました

またP2Pの分散型ファイルシステムという特徴から、IPFSはEthereumなどのブロックチェーン技術との相性がよく、それらを組み合わせて構築される様々なサービスが 開発され始めています

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

脚注 #


  1. 同様のことを示す用語として、「コンテンツアドレス」や「情報指向」とも呼ばれることがありますが、本書ではコンテンツ指向と名称を統一します。 ↩︎

  2. 従来のファイルシステムも同様です。例えばWindowsPC上で特定のファイルを取得する場合は「¥¥C:Documents¥hello.txt」のように指定されますが、これはCドライブにあるDocumentsというフォルダの中のhello.txtという「場所」を指定していることになります。 ↩︎

  3. 後に、トルコ政府は「トルコ政府がシリア内戦を支援しているとしてトルコを批判する2つの英語のページが削除されなかったこと」との理由を公表している。 ↩︎