IPFSとは

公式HPを元にまとめていきます。

公式HP

IPFS:分散型WEBの実現

IPFS(InterPlanetary File System: 直訳で「惑星間ファイルシステム」) はかつてのWEBに比べ拡張性・弾力性に富み、よりオープンであることで人類の知恵を保存・促進することを目的としたP2P型のハイパーメディアプロトコルです。

現行のWEBの主流プロトコルであるHTTPを補完または置換するプロトコルとして位置付けられており、現在も開発が進んでいます。

未来のWEBを創造する

より良いWEBを構築するベく、IPFSはHTTPを超えることを目指しています。

Image in a image block
今のWEBは非効率で高価

HTTPは1つのサーバーから複数ファイルを同時にダウンロードしますが、P2P型であるIPFSは複数ノードから一度にファイルを取得するため、大幅に帯域幅を節約することが可能です。例えば動画ファイルでは、HTTPに比べ最大60%もの帯域幅が節約できます。つまりは、IPFSは大容量のデータを重複なく効率的に配信することを可能とします。

Image in a image block

今のWEBでは人類の歴史を保存できない

WEBページの寿命は平均で100日と言われており、寿命を迎えたWEBページは永久に消えてしまいます。私たちの時代を語り継ぐ役目は、このような壊れやすいものには果たせません。IPFSではデータのミラーリングが可能な弾力性に富んだネットワークを簡単に構築することができます。また、「コンテンツアドレッシング」技術により、IPFSに保存されたファイルは自動的にバージョン管理されます。

Image in a image block
今のWEBは中央集権的で機会が限られる

インターネットは人類史上偉大な「平等装置」のひとつであり、イノベーションの促進に寄与してきました。IPFSは「オープンでフラットなWEB」という当初のビジョンに忠実であり、その実現のための技術を提供します。

Image in a image block
今のWEBはバックボーン回線に依存している

IPFSはインターネットのバックボーン接続の有無に関わりません。持続的な可用性と多様な回復力を持つネットワークの構築をサポートします。これは発展途上国や自然災害時、カフェでのWi-Fi利用時まで、幅広いシーンでの接続性の向上に役立ちます。

ロケーション指向とコンテンツ指向

従前のWEB、HTTPでは「ロケーション指向型プロトコル」と呼ばれる方式でデータ共有をしています。例えば、WEB上で何らかのコンテンツにアクセスする際、HTTP通信ではURLを指定してコンテンツを取得します。この時、URLはコンテンツの保管場所、ないし「住所」を示しています。HTTPは「住所」=「ロケーション」を指定してコンテンツを取得するプロトコルです。

対してIPFSでは住所ではなくコンテンツそのもの、「品番」を指定します。ロケーションではなくコンテンツそのものを指定するので、これは「コンテンツ指向型プロトコル」と呼ばれます。各ファイルには品番が割り振られ、同じファイルには同じ品番が振られます。

IPFSでコンテンツにアクセスするにはこの「品番」を指定しアクセスします。そのコンテンツがどこにあるのかは関係ありません。ただコンテンツを指定し、どこかしらのコンテンツにアクセスします。同一の内容であれば、そのコンテンツはどのサーバーから来たのか、どのような名前で保存されていたのかはほとんどの場合で重要ではありません。「こういう内容の情報」という、情報の本質とも言える部分こそが重要なのです。

HTTPとIPFS

現行のHTTPにはデメリットが存在します。それはサーバーへの依存が大きいことです。24時間365日サーバーを稼働させ続けることが必要であり、アクセス増加へ耐えうる冗長性を確保する必要があります。また改ざんや不正アクセスを防ぐには強固なセキュリティを構築する必要があり、謝って削除や変更の内容に細心の注意を払う必要があります。

また、サーバーに管理者が存在することで中央集権的であることもデメリットとなることがあります。とある一社が膨大なデータを蓄積管理し、個人の情報へのアクセス権を持つことになります。その一社が決して不正アクセスしない、といった保証はどこにもありません。不正など「ないだろう」と信じて預けるほかありません。また、国家による情報統制も、ロケーション指向型であれば容易に可能です。特定ロケーションへのアクセスを遮断するだけで簡単に市民のアクセス権を奪うことができます。

インターネットが発明され数十年、ローケーション指向型の情報アクセスはうまく動作してきたように思えます。しかし、現代の発展により、非中央集権への関心は高まり、従前の方式によるリスクや弊害が顕在化してきているのも事実です。

それらを解決すべくIPFSではコンテンツ指向型プロトコルが採用されています。それにより、次のような利点がIPFSにはあります。

耐障害性

IPFSはコンテンツのハッシュ値を指定するのでコンテンツのローケーションをすることはありません。例えオリジナルのサーバーがダウンしようとも、どこか他のノードがコンテンツを持っていれば同じコンテンツを取得することが可能です。例えば本で考えると、書店Aで売り切れていても、書店Bで手に入ればユーザーは何の不満も覚えません。

耐検閲性

ロケーション指向型ではそのロケーションへのアクセスを遮断するだけで検閲が可能でしたが、コンテンツ指向型ではそうはいきません。同一コンテンツは無数のノードで共有される可能性があり、どこかのノードが遮断されようともコンテンツを保持する他のノードからコンテンツを取得することができます。

耐改竄性

データのハッシュ値をキーとしてコンテンツにアクセスするということは、データの改竄を不可能にします。仮に改竄されたデータがアップロードされたとしても、CIDの比較によりそれらの正当性の検証は容易に行えます。

独占防止

同一のコンテンツが無数のノードに存在しうることは、独占所有の困難性を示すことと同義となります。

負荷分散・高速化

同じコンテンツを複数のノードから取得できる場合、より近いノードから取得することになります。一つのサーバーにアクセスが集中し、負荷が処理性の異常に高まる状況を回避することができます。また同様に、近くのノードから取得する際、従前のサーバーよりも距離が近ければ必然的に高速化も図れます。

IPFSの弱さ

HTTPに比べた利点がある一方、IPFSにはいくつかの弱点があります。

機密情報の保管に向かない

機密性の高い情報は上げられません。P2Pである以上、一度でもアップロードされたコンテンツはIPFSネットワーク全体に共有される可能性があり、他ノードに渡ったファイルの削除はほとんどの場合で不可能です。

人気の無いファイルは自然消滅する可能性がある

IPFSにはキャッシュが存在します。人気のないコンテンツはキャッシュされるサーバーが少なくなり、いずれは自然消滅してしまいます。それを回避するために、「ピン」という機能も用意されています。

IPFSの仕組み

ここではIPFSにファイルを追加した時、IPFSはどのように作動するのかを説明します。

Image in a image block

IPFSにファイルを追加すると、ファイルは小さな「チャンク」に分割され、暗号学なハッシュ化の後コンテンツID(CID)が与えられます。これは各ファイルで固有であり、その時点でのファイルの永久的な記録として機能します。分割された後にはIPLDと呼ばれる分散型データ構造により管理されます。またこの過程でマークルツリーがP2P間で存在する状態をマークルフォレストと呼びます。

Image in a image block

他ノードがあなたのファイルを検索する時、ファイルのCIDから現在どのノードがファイルを保持しているのか、隣接ノードに問い合わせます。他のノードがあなたのファイルをダウンロードすると、そのノード内でコピーがキャッシュされ、クリアされるまでは新たなひとつのプロバイダとして機能します。

Image in a image block

ノードはコンテンツを永久に保持するために、コンテンツを固定(ピン)したり、スペースを確保したり、しばらくアクセスのないコンテンツを破棄することができます。つまり各ノードは必要なコンテンツのみを保存します。また、どのノードが何を保存しているのかを把握するためのインデックス情報(ルーティングテーブル、特に分散ハッシュテーブルを用いる)もノードで保存します。

Image in a image block

先に追加したファイルを更新して再度IPFSにアップロードしたとしても、ファイルには新たなCIDが与えられます。IPFSに保存されたファイルは耐改竄性や耐検閲性を備えます。ファイルに変更が加えられたとしても、既存ファイルが上書きされることはありません。しかしその際、ファイルに共通するチャンクは再利用され、ストレージコストを最小限に抑えることができます。

Image in a image block

長いCIDをいちいち覚えるわけにはいきません。IPFSではIPNSを用いてファイルの最新バージョンを見つけることができ、また、DNSLinkを使ってCIDを人間が読めるDNS名にマッピングすることも可能です。

IPFSの活用方法

WEBで何をするにしても、IPFSはきっとあなたの役立ちます。

Image in a image block
Archivists

IPFSを使ってデータを保存することで、重複の排除やクラスター化された永続性、高いパフォーマンス性を実現できます。世界中の情報をより確度高く将来の世代へ届けることができるようになるでしょう。

Image in a image block
サービスプロバイダー

大量のデータをユーザーに提供する際、IPFSならセキュアなP2Pコンテンツ配信が可能です。また、帯域幅コストの削減にも繋がります。

Image in a image block
研究者

大規模なデータセットを扱ったり配布したりする際、IPFSを利用すればパフォーマンスの向上や分散型アーカイブの構築が可能です。

Image in a image block
ブロックチェーン技術者

IPFSのコンテンツアドレッシング技術により、コンテンツを直接チェーン上に置くことなくタイムスタンピングやセキュリティを確保できます。トランザクションにIPFSアドレスを付加することによりコンテンツを示すことができます。

Image in a image block
クリエイター

IPFSはクリエイターが分散WEB上で創作・共有することも可能にします。これは仲介のないコンテンツ配信や永続性に長けるNFTの発行に役立ちます。

Image in a image block
オフライン

遅延の大きなネットワークは、インターネットインフラの整っていない地域の人々にとっては大きな障害となります。P2P型であるIPFSなら、遅延やバックボーン回線に依存しない、強力なデータアクセスが手に入ります。

参考