ソフトウェア

中央主権的なHTTPから脱却し新しいインターネットの世界を生み出す壮大な分散型システム「IPFS」とは?


インターネットの世界は通信プロトコルの「HTTP」によって成り立っていますが、情報(データ)を管理するサーバーが存在するシステム設計上、そのサーバーがオフラインになるとウェブから情報が失われるという欠点を抱えています。このような構造的な欠点を抱える中央集権型のHTTPと違い、分散型のファイルシステム「Interplanetary File System(IPFS)」が考案され、新しいインターネットの世界の構築に向けてプロジェクトが動き始めています。

The InterPlanetary File System (IPFS) | Simply Explained & Illustrated
https://achainofblocks.com/2018/10/05/ipfs-interplanetary-file-system-simply-explained/

◆HTTPによるインターネット
インターネットを通じて家族や友達とコミュニケーションをとったり、ニュースを閲覧したり、学習したり、映画を見たりと、インターネットは生活に欠かせない存在になっています。しかし、現在のインターネットには「情報が集中した形で存在する」という構造的な欠陥があります。具体的には、インターネットに存在する情報は、すべて情報を管理する企業のサーバーに保存されているため、何らかの事情によりサーバーがネットワークから切り離されると、情報はインターネット上から失われてしまうことになります。

このような構造的な欠点ゆえに、サーバーの問題で通信障害が起こることは、情報へのアクセスを望まない者にとって情報を遮断することを許す結果にもなってます。トルコ政府は国家安全保障上の脅威にあたるとしてWikipediaなど特定のサイトをブロックすることでトルコ国民の情報へのアクセスを奪ったのはわかりやすい例です。

トルコでソーシャルメディアが大規模に遮断される事態が発生、当局による規制との見方も - GIGAZINE


HTTPには情報を高速に伝送できるという大きなメリットがあるため、依然として通信プロトコルとして使われていますが、HTTPを使い続ける大きな理由は「HTTP以外に本当に良い選択肢がないから」だという指摘があります。それならばと、コンピューターエンジニアのフアン・ベネット氏が考案したのが「Interplanetary File System(IPFS)」と呼ばれるHTTPに代わる分散型のインターネットファイルシステムです。簡単に言うと、IPFSはインターネットをHTTPからP2P方式に切り替えようというものです。


◆Interplanetary File System(IPFS)とは?
当初、スタンフォード大学でコンピューターサイエンスを研究していたベネット氏は、大きなファイルをインターネット経由で素早く送信するシステムを開発していました。大量のデータを効率よく分散的に転送するプロトコルである「BitTorrent」に、データのバージョン管理ができる「Git」の仕組みを取り入れる形でデータ送信システムを構築したそうです。データ送信システムを作り上げたベネット氏は、このシステムが単なるデータ転送ツールとしてだけでなく、インターネットの仕組みを変えるシステムとしても機能することに気づきました。そうして考え出されたのがIPFSです。


・IPFSとHTTPの違い
IPFSについて理解するには、既存のインターネットを作り上げているHTTPの仕組みを理解して対比するとわかりやすいとベネット氏は述べています。

インターネットから画像をダウンロードする場合、HTTPシステムでは通常、写真を保存している会社のドメイン名を含むURLという表記でダウンロードしたいファイルを指定します。例えば、GIGAZINEの画像ファイルは「https://i.gzn.jp/img/2018/12/10/anker-eufy-robovac-30c/00_m.jpg」のように、GIGAZINEのURLに画像ファイル形式(.jpg)が含まれる形で指定されます。HTTPではコンピューターが情報を取得する場所をURLで指定してアクセスさせる「Location Based Addressing(ロケーションベースのアクセス)」という方法で行われており、もしも指定した場所(サーバー)がオフライン状態であれば、必要な情報を取得できないことになります。


Location Based Addressingでは、あるサーバーが停止している場合、そのサーバーに含まれるすべての情報がインターネットからはアクセス不能になります。しかし、たとえサーバーが正常に稼働しているときにダウンロードしたデータやキャッシュデータを保持するコンピューターが世界のどこかに存在しているとしても、他のユーザーはその情報へアクセスすることはできず、インターネット上から情報が消える状態が生じます。

この問題を解決するために、IPFSでは「Content-Based Addressing(コンテンツベースのアクセス)」という概念が導入されています。つまり、IPFSではネットワーク上のファイルは個々のファイルを識別できる「指紋」のような機能を果たす「ハッシュ」値を伴う形でネットワーク上で分散的に「共有」されています。ハッシュを指定して特定のファイルを手に入れた人は、ハッシュを指定してファイルにアクセスしようとする人にファイルを提供できるようになります。このような分散型のシステムでは、リクエストの多いファイルほどノードの大きなグループに置かれて共有されるので、よりアクセスしやすい状態になるとのこと。

さらに、ファイル受信時にハッシュ値を照らし合わせることで、ファイルがユーザーやノードから改変されていないことを確かめることが可能です。具体的には、ファイルを受信するために特定のハッシュを要求すると、受信するファイルのハッシュが一致しない場合は受信を拒否されます。「これはAmazonで購入した商品のチェックと同じです。緑色の靴下を注文したのに赤色の靴下が届けば、受け取りを拒否して緑色の靴下を待つことができるようなものです」とベネット氏はたとえています。


なお、IPFSでは重複排除の仕組みが取り入れられており、複数のユーザーから同じファイルの共有があった場合でも、ネットワーク上にファイルが作られるのは1度だけで、ネットワークの効率的な利用が行われます。

・IPFSの仕組み
分散型のIPFSを構築する方法についても、ベネット氏は解説しています。

まず、IPFSではファイルは「IPFSオブジェクト」に格納されます。各オブジェクトは256KBのデータのみ格納でき、別のIPFSオブジェクトへのリンクを含めることができます。リンクすることで、256KBを超えるデータを格納できるとのこと。


例えば画像ファイルを保存する場合、ファイルは最大256KBの複数のオブジェクトに分割されます。IPFSは画像を構成するすべてのオブジェクトにリンクする「空のオブジェクト」を作成するとのこと。こうすることで、アーキテクチャはIPFSを本当のファイルシステムとして使うことができるとベネット氏は述べています。


例えば、ディレクトリ構造を持つ以下のデータ(フォルダ)は……


IPFSでは以下のようなオブジェクトとして組み立てられます。IPFSはContent-Based Addressingを採用しているため、各ファイルは不変であることが担保されており、改ざんを予防できる点は「ブロックチェーン」によく似ています。


改ざんを予防できるIPFSですが、データを更新することももちろん可能です。Gitの仕組みによってデータの更新情報はすべて記録され、変更内容を確認できるところもIPFSの大きなメリットです。

例えば、「Important Document-v1.doc」というテキストファイルを作成し、IPFSネットワークで共有する場合を考えてみます。この場合、「Commitオブジェクト」という新しいオブジェクトが作られて、Important Document-v1.docが格納されます。


時間が経過してImportant Document-v1.docに重要なアップデートが必要になった場合、IPFSでは単に新しいファイル「Important Document-v2.doc」を追加するだけでOKです。ソフトウェアによって更新されたファイルの新しいCommitオブジェクトが作られ、以前のバージョンとのリンクが作られ自動的に紐づけられます。更新のたびに紐づけ作業が繰り返され、管理履歴全体にすべてのノードからアクセスできるようになっています。


・IPFSネットワーク運用の課題
IPFSのネットワーク上のノードはダウンロードしたファイルのキャッシュを保持し、他のユーザーが必要とするときに利用できるようにすることが求められます。あるドキュメントが4つのノードでホストされている場合に、もしもそのノードすべてがオフライン状態になると、そのドキュメントにアクセスできないというHTTPと同様の問題が起こります。そこで、ノードをどのようにして維持し続けるのかという課題が出てきます。

一つの解決策は、ネットワークにノードを提供するインセンティブを与えるという方法です。具体的には、コンピューター・ストレージの空いたスペースをネットワークに提供することで、報酬が得られる仕組みを構築することが検討されています。報酬は「Filecoin」と呼ばれる仮想通貨で支払われるとのこと。この仕組みについては、「Airbnbのようなもので、空いている家(ストレージ)を貸し出すことで利益を得る仕組み」だとベネット氏は表現しています。Filecoinのおかげで、ノードには、なるべくオンライン状態を保とうとするインセンティブが働くとのこと。


また、「コンテンツハッシュ」を使ったアドレス指定は、仮想通貨のブロックチェーンやコード・バックアップのコミットなど広く活用されていますが、いまだにこれらの基礎となるデータ構造を相互運用することはできていない状況だとのこと。そのため、ハッシュに由来するすべてのプロトコルに共通した「InterPlanetary Linked Data(IPDL)」というデータモデルが考案されているとのこと。IPDLがデータをツール間やプロトコル間で相互運用可能にするライブラリを提供することで、ハッシュを用いたすべてのデータモデルを統一することができるため、IPFSの実現にも重要だそうです。

なお、FilecoinとIPDLについては今後、ブログ上でより詳細な説明を行う予定だとベネット氏は述べています。

◆IPFSの目指す未来
インターネット(Internet)の前身である「Arpanet」の創設者のJ・C・R・リックライダー氏は、「銀河間のネットワークを構築する」という壮大な目標を掲げていました。つまり、「Internet」という呼称は、実は「Intergalactic Network」の略称だったとのこと。このようなInternetの成り立ちを踏まえて、ベネット氏は、HTTPでのインターネットを、P2Pネットワークに切り替える新しいネットワークを「Interplanetary File System」と名付けたそうです。


中央集権的な現在のインターネットに対して、地方分権的なインターネットを新たに作り出すというIPFSは非常に野心的なプロジェクトです。地方分権的な仕組みづくりについてはすでに仮想通貨や金融で取り入れられていますが、新たにインターネットにも地方分権的思想を取り組もうというわけです。

ベネット氏はIPFSの登場によってすぐにHTTPがフェードアウトするものではなく、HTTPは依然として非常に有用なプロトコルとして残る見込みだとのこと。しかし、HTTPは誕生から25年を過ぎた比較的古い技術であることも確かで、IPFSはテクノロジーの進化によって利用場面が拡大し続け、最終的にはHTTPを置き換えるようになるとベネット氏は予想しています。

この記事のタイトルとURLをコピーする

・関連記事
ハイパーテキストの生みの親テッド・ネルソンが語る「パーソナルコンピューティング」の歴史 - GIGAZINE

「今後は中国とそれ以外の2つのインターネットが存在するようになる」と元Google CEOのエリック・シュミットが語る - GIGAZINE

ブロックチェーンとは何か、なぜインターネットに匹敵する発明だといえるのか? - GIGAZINE

インターネットにまつわるさまざまな数字で世界と日本の差がわかる「Digital in 2018」が公開 - GIGAZINE

インターネットの今までとこれからが詰まっているレポート「2017 Internet Trends」公開 - GIGAZINE

Googleが単なるサービスを超えてネットインフラの域に達することで直面する検索結果の不都合 - GIGAZINE

AIを用いてネットニュースの信頼性や政治的な偏りを判断するという研究報告 - GIGAZINE

インターネットチャットのIRCが生誕30周年を迎える - GIGAZINE

in ソフトウェア,   ネットサービス, Posted by darkhorse_log

You can read the machine translated English article here.