IPFSとは

IPFS(InterPlanetary File System)とは、アメリカのベンチャー企業「Protocol Labs」により開発が進めれられているP2Pネットワーク上で動作するハイパーメディアプロトコルとその実装です。
簡単にすると、誰でも参加が可能な分散型P2Pストレージシステムです。
(プロトコル:コンピューター同士の通信をする際の手順や規格のこと)

現在主流であるHTTP(Hypertext Transfer Protocol)の課題を解決し、分散型Webのインフラになると言われています。

HTTPの課題とはなんでしょうか。
HTTPとは、Webサーバーと、Webクライアント間でデータの送受信を行う際のプロトコルで、Webページの取得のために利用します。
現在インターネットで情報にアクセスする場合、https://www.xxx.com/index.htmlといったURLを指定してアクセスします。
このURLの意味するところは、「www.xxx.comというWebサーバーにあるindex.htmlというファイル」で、取得したい「場所」を指定しています。
このように、手に入れたい情報の場所を指定して、情報にアクセスする方法は、ロケーション指向と呼ばれ、HTTPはロケーション指向のプロトコルです。

この技術のデメリットとしては、URLのリンク切れにより、データにアクセスできなくなる性質があることです。
インターネットで調べ物をする際に、指定のURLを入力すると、「このサイトにアクセスできません」と表示されることがありますよね。あれです。
サイトが停止をするとデータにアクセスができなくなります。

このような「場所」に依存することなく、欲しいデータそのものにアクセスできればこのようなことになりません。
これを解決するのがIPFSです。

IPFSでは取得したい情報がどこにあるかは考慮に入れておりません。
直接データに紐づく識別子(アドレス)を元に情報にアクセスをする「コンテンツ指向」の仕組みです。

SHAなどの暗号ハッシュ関数を利用してコンテンツのハッシュ値を求め、それをそのコンテンツのIDとして利用する方法を採用しています。

ブラウザで特定のファイルにアクセスをしたい場合、IPFSはネットワーク全体にハッシュに対応をするファイルがあるのか問い合わせをし、該当するIPFSのノードがファイルを返すことでページにアクセスが可能になります。各ノードはすべてのファイルを保管する必要はなく、自分の興味のあるファイルのみを保管します。

これらによって、ファイルは安全でかつ低容量になるなどのメリットがあります。

そして、IPFSはブロックチェーンと非常に相性が良いと期待されています。
ブロックチェーン上に長文テキストや画像など容量の大きいものを保存すると、手数料が非常に高額になるため、サイズが大きなデータの保存には向いておりません。そのため、容量の大きなものはオフチェーンで何らかのストレージサービスが必要になります。IPFSのような分散型のプロトコルは分散型台帳とよばれるブロックチェーンと非常に相性がいいと言われています。

そして、大容量データはIPFSに乗せ、そのデータの紐づくハッシュ値のみをブロックチェーンに保存をすると少ない負荷で実現が可能になります。


IPFSの活用方法などもそのうち調べてみます。

追記
IPFSのサービスが体験できるシステム


実際にpinata使ってみました。(無料です)
ファイルを保存すると出てくるのがこちら。

CIDというのがハッシュ値で、データの識別子のこと。
Nameのgirl(私がファイル名をつけたもの)をクリックすると、、、
以下のようなURLが出てきます。(gateway.pinata.〜)

このままgateway.pinata.〜のURLを使うと、pinataのシステム上にあるデータを検索することになるため、もしもpinataのサイトがなくなると、データを検索することができなくなってしまいます。
そのため、NFTにする時など、ブロックチェーン上に置く時には、ハッシュ値の前に「ipfs://」を入力し、「ipfs://ハッシュ値の番号」とします。

そうすれば、場所に依存することなく、データそのものに紐付けをすることが可能になります。

https://docs.opensea.io/docs/metadata-standards

↑ここにメタデータの取り扱いの説明記載あります。

いいなと思ったら応援しよう!