IPFSとは?惑星間ファイルシステムが実現する「分散型Web」の仕組みと未来
最新のミーム画像をダウンロードして、完了までじっと待ったと想像してみてください。そのミームはもちろん面白いので、友達にリンクを送ります。友達はあなたの端末からファイルを取得し、さらにその友人たちへと共有していきます。こうしてミームは数十台のデバイス上に存在することになり、新しい誰かがリンクを開くときは、実際には周辺の複数の人々へ同時に接続して、それぞれからファイルの断片を受け取るため、ダウンロードはほぼ瞬時に完了します。
これを現実のものにするのが「InterPlanetary File System(IPFS/惑星間ファイルシステム)」です。非常に現実的で驚くほど使いやすいこの仕組みは、より高速で民主的なインターネットへの鍵となるかもしれません。基本的なアイデアはシンプルで、現在中央集権的なサーバー上にあるデータを、ユーザーのデバイスが保存・索引化・配信するというものです。暗号通貨を連想したなら、それは正解です。プロジェクト創設者のファン・ベネット(Juan Benet)氏は、IPFSを「ある意味で、ウェブサイトに対して、ビットコインがお金に対して行ったことを行うもの」と説明しています。
インタープラネタリー・ファイル・システム(IPFS)とは?
BitTorrentなどのP2P(Peer-to-Peer)技術の仕組みを知っていれば、IPFSが何をしているのかはほぼ理解できたも同然です。IPFSは、ユーザーデバイス間でファイル(ウェブサイトを構成するHTML、CSS、JavaScriptファイルも含まれます)やその断片を送受信します。まるでパブリックドメインの楽曲をトレントで合法的に共有するようなイメージです。
つまり、サイトを閲覧するためにサーバーへ接続する代わりに、近隣にそのページ(またはその一部)を保存している人がいないかを確認し、そちらに接続します。ページをダウンロードすると、あなたのデバイスも一定期間それを保持し、他の人がそこから取得できるようにします。少し複雑に聞こえますが、実際には、単一のサーバー・クライアント経路でHTTPを使ってデータをやり取りする現在の方式よりも、はるかに効率的であることがわかっています。
IPFSが優れている点
IPFSは従来のウェブに比べて、次のような大きな利点を持っています。
- 高速で効率的なコンテンツ配信:地理的に近い多数のソースからファイルの断片をダウンロードでき、通信距離と帯域幅の消費を最小限に抑えられます。
- 分散化:単一の事業者がデータやアクセス権を独占的に管理することができません。
- 情報の永続保存:すべてのデータを一台のサーバーが保持しているわけではないため、かつてのGeoCitiesのようにサービス終了とともにコンテンツが丸ごと消えることはありません。
- 通信環境が悪い地域でも高速・安定:必要なコンテンツがアクセス可能な近くに存在すれば、遠距離との接続は不要です。不安定なネットワーク環境の地域で大きな効果を発揮します。
- 検閲への耐性:完全ではありませんが、中央集権型モデルよりもはるかに強靭です。
仕組み:簡易版
IPFSネットワークは今すぐ誰でも利用でき、かなりユーザーフレンドリーになっています。実際の流れは以下の通りです。
- ファイルの登録:IPFSにファイルを追加すると、ファイルはブロックに分割され、それぞれがアルゴリズムによって処理されて一意のIDが割り当てられます。ブロックID群を含むファイル全体にもIDが付与されます。最初はあなたのマシンだけがファイルの提供元ですが、他のノード(マシン)もそれを取得して配布できるようになります。
- 重複データの排除:ネットワークが、あなたのデータの一部が既存のコンテンツと同一だと検出すれば、コピーを追加せずに既存のデータを参照します。例えば、録音済みアルバムの「デラックス版」をアップロードする場合、10曲は元のアルバムと同じで2曲が新曲なら、システムは重複トラックを認識して既存のIDを使い回し、新曲2曲にだけ新しいIDを割り当てます。
- ノードの役割:ネットワーク上の各ノードは、いくつかのデータ(配信したいデータや最近閲覧したデータなど)と、ネットワーク上のコンテンツの場所を探すためのインデックスの一部を保持しています。
- コンテンツの取得:ファイルを開きたいときは、ネットワークにそのIDを検索させ、所有者へ接続します。「IPNS」と呼ばれる命名システムが、人間が読める名前を、システムが検索できる機械可読なIDへ変換します。
さらに噛み砕くとこうなります。IPFSはすべてのデータに名前を付け、そのデータがいつどこに存在するかの一覧を管理し、デバイス同士が直接データをやり取りできるようにする仕組みなのです。
仕組み:技術版
IPFSを支える中核要素は3つあります。コンテンツアドレッシングがデータに「識別情報」を与え、Merkle-DAGが「構造」を与え、分散ハッシュテーブルが「場所」を教えてくれるのです。
コンテンツアドレッシング:「どこにあるか」ではなく「何であるか」
現在のコンテンツのほとんどは、場所ベースのアドレス(C:/Users/Username/Documents や 192.124.249.3 など)で管理されており、「どこに行けばデータが見つかるか」を示しています。しかし、コンテンツがどこにでも保存され得る分散型システムではこの方式は通用しません。そこでIPFSやBitTorrentは「コンテンツアドレッシング」を採用しています。
コンテンツアドレッシングでは、データをアルゴリズムに通して一意のID(ハッシュ)を生成します。同一内容のファイルは必ず同じIDを持つため、IPFSが検索すれば、ネットワーク上に保存されているすべてのコピーを特定できます。
Merkle-DAG:すべてにCIDがあり、すべてがつながっている
ドイツの政党名のように聞こえますが、Merkle-DAG(有向非巡回グラフ)はデータを整理するための構造です。この体系では、フォルダ、ファイル、ファイル内部のデータブロック——あらゆるデータに固有のコンテンツID(CID)が付与されます。これにより、ファイルを複数の部分に分割し、個別に認証して、再び組み立てることが可能になります。
IPFS公式ドキュメントはこれを「タートルズ・オール・ザ・ウェイ・ダウン(亀のまた亀)」の状態だと説明します。すべてのデータはCIDで識別可能な集合体へ分解でき、フォルダのCIDはファイルやサブフォルダのCID群を指し、それらのCIDはさらに別のCIDを指します。そして、どんなファイルに一点でも変更があれば、そのハッシュと、それを含むフォルダのハッシュも連鎖的に変わります。
重要なのは、Merkle-DAG自体にデータの中身が格納されているわけではない点です。あくまで「全データがどこにあるか」「取得後にどう組み立てればよいか」を示す設計図であり、PCのファイルシステムのように、すべてのIDに階層的な構造を与える役割を担っています。
分散ハッシュテーブル(DHT):IPFSがコンテンツを見つける方法
では、目的のデータを誰が持っているのかは、どうやって見つけるのでしょうか。基本となるのは、コンテンツIDと、そのコンテンツをホストするコンピュータの所在を対応付けた巨大なデータベースです。しかもこのデータベース自体が、ネットワーク参加者全员に分割されて保持されています。
CIDで表されるコンテンツを要求すると、あなたのコンピュータはそのCIDを探索し、保有者の一覧を見つけます。続いてそれらのノードへ接続し、必要な断片をダウンロードして組み立てるわけです。これが分散ハッシュテーブル(DHT)——要するに「誰が何を持っているか」の巨大な台帳です。
IPFSは普及するのか?
IPFSは2015年に登場し、以来急速な進化を遂げてきました。Protocol Labsが開発主体として開発を主導し、ブロックチェーン型ファイルストレージのFilecoinや、GeoCitiesの後継となるNeocitiesをはじめ、数多くのアプリやサイトがIPFS上に構築されています。分散化と使いやすさの絶妙なバランスを実現していることが、Sociall(分散型SNS)やBraveブラウザなど、分散化を目指すプロジェクトの標準選択肢となっている理由でしょう。
Cloudflareが提供するIPFSゲートウェイも大きな話題を呼び、ネットワークへの参加は今や、専用ソフトをダウンロードしてブラウザ拡張機能を入れるだけで可能になっています。もちろん「本当にベストな解決策か」という議論はありますし、同じビジョンを持つプロジェクトは他にも多数存在します。それでもIPFSが勢いを失う兆候はありません。仮にHTTPを完全に置き換えることがなかったとしても、次世代インターネットの重要な一角を担うことは、ほぼ間違いないと言えるでしょう。
-
Windows 10でファイルシステムエラー-2147219196が発生する原因と解決方法
「ファイルシステム エラー -2147219196」というエラーメッセージは、Windows 10で画像を開くとき、ファイルへアクセスするとき、あるいはフォルダを移動するときに発生することがあります。この現象は特にバージョン1803のアップデート以降に多く報告されるようになりました。新規にWindowsをインストールしたユーザーと既存ユーザーの両方で同様のエラーが確認されています。この問題はMicrosoftの開発チームでも認識されており、対策を含む更新プログラムがすでにリリースされています。最新のアップデートを適用しても改善しない場合は、手動での対処やディスクの破損チェックを行う必要がありま
-
Macで「ファイルシステムチェックの終了コードが8」エラーを修正する方法
「ファイルシステムチェックの終了コードが8」エラーとは?macOSには、ディスク・パーティション・ファイルシステムのエラーを修復するためのさまざまなツールが用意されています。その中でも最もよく使われるのが、ディスクユーティリティの「First Aid(応急処置)」です。しかし、First Aidで修復できるのは軽微なエラーのみで、問題がその範囲を超えると「ファイルシステムチェックの終了コードが8」といったエラーメッセージが表示されます。通常、終了コード0はエラーが見つからなかったことを意味しますが、終了コード8はチェック中に破損したファイルシステムが検出されたことを示しています。このエラーはシ