IPFS(InterPlanetary File System)とは、米Protocol Labs社が主導して開発が進められている分散型のオープンソースファイルシステムです。IPFSではデータをチャンク(chunk)と呼ばれる塊に分割し、P2Pのネットワークで結ばれた複数のサーバに分散させて管理します。
一般的なファイルシステムでは、保存されたデータを取得する際にそのデータの場所を指定する必要があります。例えば、Windowsで標準的に使用されているNTFS(NT File System)ではファイルパスを用いてデータの保存場所や参照ファイルを指定します。(例:C:\Users\Public\Documents\README.txt)
IPFSの場合、データにひもづく識別子であるCID(コンテンツID)を用いることで、データがどこに保存されているか(どのサーバに保存されているか)を意識することなくデータを取得できます。データを保存する際に同じ内容のデータに対しては同じCIDが付与され、少しでもデータの内容の違うと異なるCIDが付与される仕組みとなっています。このため、一度保存したデータは変更できません。このように、データの「場所」ではなく「データの内容(コンテンツ)」を元にデータにアクセスする、コンテンツ志向型のファイルシステムであることがIPFSの特徴です。
IPFSはNFTと合わせて使用されることが多いです。多くのNFTでは、デジタルアートなどのNFTにひもづくデータはブロックチェーン外のストレージで保存され、NFTにはデータの保存場所に関する情報のみが記録されています。これにはいくつかの理由があります。ブロックチェーンに保存できるデータのサイズが限られており大きなデータを保存できなかったり、ブロックチェーンに保存するデータが大きくなるとトランザクションに係る手数料が高くなったりするためです。
データの保存場所の情報のみを記録する場合、ブロックチェーン内に記録されたデータは改ざん不能ですが、ブロックチェーンの外にあるストレージのデータは改ざんできてしまいます。また、そのデータを保存しているストレージが停止してアクセスできなくなるとデータを参照できなくなってしまいます。このようなデータの改ざんリスクや消失リスクを抑えるために、多くのNFTではブロックチェーン外のデータの保存場所として分散型のファイルシステムであるIPFSが利用されています。
参考文献
IPFS Documentation
https://docs.ipfs.tech/