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はファイルの中身を元にハッシュを生成する(不正改ざんに強い)