IPFSは分散型ファイルシステムを構築するためのP2Pネットワークプロトコル。 提唱者はJuanBenet(フアン・ベネット),開発元はアメリカのスタートアップ企業ProtocolLabsである。
IPFSは、モジュール型の設計とコンテンツ指向のアドレス体系に基づく、P2P通信プロトコルである。従来の集中型データ管理と異なり、IPFSはデータの永続性、耐障害性、検閲耐性、高速なアクセスを実現する。
IPFSでは、ファイルは小さなブロックに分割され、それぞれにCIDと呼ばれるハッシュ値が割り当てられる。CIDはファイルの内容を識別する固有な値であり、ファイルの変更を検知するのに役立つ。
IPFSは、MerkleDAGと呼ばれるデータ構造を採用している。MerkleDAGは、暗号学的に認証可能な非巡回有効グラフであり、ファイルのバージョン管理や差分更新を効率的に行うことができる。
ファイルが大きく、小さなブロックが大量に生成された場合、IPFSはUnixFSと呼ばれるプロトコルバッファーを用いてそれぞれのデータの関連性を管理し、メタデータを保存する。
さらに、このプロトコルには以下の特徴がある。
IPFSは、分散型アプリケーション、Webサイト、ファイル共有、データ保存など、さまざまな用途に活用できる。