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のやり取りをする機能コンテンツ管理の機能 をマネージドサービスとしてクラウドで用意することもできます。PinataWeb3 storage などが存在します。

IPFSクラウドを使った場合

自前でIPFSサーバを用意する

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

自前でIPFSサーバを用意

機能を分割する

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

IPFSゲートウェイとIPFSサーバを分ける

なぜNFTゲームで使われているのか

理解しやすいようにNFTゲームをアプリを具体例として取り上げて解説していきます。

NFTゲームでは、ゲーム内で生成されるユニークなアセットを所有、売買することができます。よってアセットには高いレベルでデータの不正改ざんや消失を防ぐ仕組みが必要となります。これを満たすために分散型ストレージ(IPFS)が使われます。

まとめ

  • IPFSはHTTPとは違うプロトコル
  • IPFSはファイルを分割して複数のノードに分割して保存される(高可用性)
  • IPFSはファイルの中身を元にハッシュを生成する(不正改ざんに強い)