HTTPとは違うIPFSというプロトコル。
Web3の分野でよく使われています。
今回はIPFSについて解説していきます。
IPFSとはなにか
IPFSとはプロトコルです。ただ、実際にはIPFSというソフトウェアという意味でも分散ネットワークと言う意味でも、分散ストレージという意味でも使われています。
一般向けの説明としては 通常のHTTPとアクセスの方法が違う ということです。
一般的なインターネットは ブラウザで http://xxxx もしくは https://xxxx でアクセスしますが、IPFSは ipfs://xxxx でアクセスします。
IPFSの特徴
IPFSは、HTTPプロトコルに代わる次世代のWebプロトコルとして位置付けられ、分散型のファイル共有や分散型アプリケーションの構築に利用されています。
IPFSはファイルをハッシュ値で識別するため、重複しているファイルは1つのインスタンスとして扱われ、効率的にデータを保存することができます。またIPFSはファイルをネットワーク上の複数のノードに分散して保存するため、耐障害性が高く、セキュリティも確保されます。
HTTPとIPFSの違い
HTTPとIPFSは別物です。現在、僕らが使っているインターネットは一般的にHTTPが使われています。HTTPとIPFSの大きな違いは、ファイルの取得方法とファイルの保存場所が違う ということです
ファイルの保存場所
IPFSの場合、ファイルは分割され、複数のノードに保存されます。
HTTPの場合、ファイルは1つのサーバに保存されます。
ファイルの取得方法
IPFSの場合、ファイルはハッシュ値を使用して取得します。
HTTPの場合、場所を示したURLを使用して取得します。
IPFSのアーキテクチャ
全体の仕組み
IPFSを使うにはHTTPとIPFSのやり取りをする機能や、コンテンツをIPFSに登録したりするコンテンツ管理の機能が必要です。

IPFSクラウドを使用する
HTTPとIPFSのやり取りをする機能 やコンテンツ管理の機能 をマネージドサービスとしてクラウドで用意することもできます。Pinata や Web3 storage などが存在します。

自前でIPFSサーバを用意する
マネージドサービスではなく、Kubo というソフトウェアを使用して、自前で構築することもできます。

機能を分割する
またIPFSゲートウェイ(HTTPとIPFSのやり取りをする機能)とコンテンツ管理の機能は分割することもできます。

なぜNFTゲームで使われているのか
理解しやすいようにNFTゲームをアプリを具体例として取り上げて解説していきます。
NFTゲームでは、ゲーム内で生成されるユニークなアセットを所有、売買することができます。よってアセットには高いレベルでデータの不正改ざんや消失を防ぐ仕組みが必要となります。これを満たすために分散型ストレージ(IPFS)が使われます。
まとめ
- IPFSはHTTPとは違うプロトコル
- IPFSはファイルを分割して複数のノードに分割して保存される(高可用性)
- IPFSはファイルの中身を元にハッシュを生成する(不正改ざんに強い)