2022年7月11日に開催された「Non Fungible Tokyo 2022」のセッション “Filecoin”をレポートします。
Jonathan Victor (ジョナサン・ヴィクター) 氏
NFTs / ゲーミング担当責任者 @ Protocol Labs
Protocol LabsでNFTs / ゲーミング担当責任者を務め、NFT.Storageを率いる。IPFSとFilecoinを基盤とするNFT.Storageには、OpenSea、Magic Eden、Makersplaceなどのマーケットプレイス向けに2,000を超えるユーザーの4,500万以上のNFTを収容している。
Jonathan氏:こんにちは。Protocol LabsでNFTやゲームプロトコルの普及推進を担当しているジョナサン・ヴィクターと申します。本日は分散型ファイルシステムIPFS/Filecoinを利用するためのツールの紹介と使い方について解説します。
まず2つの実例から入りたいと思います。左はラグについて、右はフキダシについて示しています。2つともNFT通の方々にはお馴染みかも知れません。
左については@neitherconfirmさんの投稿から引用しました。基本的に、この方はクリプト界隈の著名人のNFTを沢山作り、その後彼の別プロジェクトで塗り替えてしまいました。
上に示している画像をただのラグの絵と差し替えたのです。
右の方はフルネームは出しませんが、なんとかBubblesというプロジェクトであるアーティストが、愉快でふざけたセリフを入れてフキダシを沢山作りました。そして後になってすり替えをしたのです。アーティストによるのちのちのプロジェクトを宣伝するために。
なぜこんなことが出来てしまったのか不思議に思われるかも知れません。NFTは変更不可能で静的であると捉えられがちなため、これらのプロジェクトがコンテンツを変更できたことに驚く人もいるでしょう。
しかし実はユーザーの許可も不要でした。一体何が起こって、なぜ起こり得たのでしょうか。
実際のところNFTとは何なのかをさらに理解するために、裏側を見てみましょう。
ネットワークによって内容は少し異なりますが、ここではERC-721の仕様を見てみましょう。
まず、左に示しているのはERC-721コントラクトが実装しなければならないインターフェースそのものです。ご覧のように、3つの主なプロパティが必須となっています。nameとsymbolとtokenURIです。
興味深いのは最後のプロパティで、tokenURIは単なるリンクなのです。ご覧の通り、単なる文字列を返します。リンクを返しますが、そのリンクはJSON blobと呼ばれるメタデータを示しています。その具体例を右に挙げています。
さて、このメタデータには説明や特徴があります。さらに重要なのは、こちらに強調していますが、画像URLもあります。この画像URLはまた別のリンクで実際に表示する画像へ繋がっています。
つまり、これがERC-721の裏側の様子なのです。イーサリアムをはじめとした大半のブロックチェーン上にあるのは、実際はメタデータを示すリンクだけで、メタデータの中には別の表現で画像が指し示されているという具合です。
以上を考慮すれば、辻褄が合ってきますね。特にHTTPのような旧来のリンクを使う場合、参照しているのはNFTではなく、実際には『このURLは特定のサーバーを示していて、そこに行けば求めているコンテンツがあるよ』ということです。
もちろん、先ほどご紹介した例のように上手くいかないこともあります。サーバーの持ち主がコンテンツを変更してしまえば、NFTも変更されるからです。
では、NFTが特定のサーバーではなくコンテンツを示すようにするには、どうすればよいのでしょうか。
ここで分散型ファイルシステムIPFS(Inter-Planetary File System)の出番となります。
IPFSプロトコルによりコンテンツの保管と取得が可能になるのですが、その際によりどころとなるのはコンテンツの所在ではなくコンテンツそのものなのです。
例えば上図左下の猫の絵を私が持っているとして、この絵はコンテンツIDやCIDと呼ばれる指紋のようなものを生成することができます。この絵のCIDはbafy…cmjです。そこで、私のコンピューターはIPFSに『bafy…cmjはどこにありますか?』と問い合わせることが出来ます。
これに対して、IPFSネットワークはAmazonサーバーや他のコンピューターに問い合わせます。該当コンテンツがそこにあればbafy…cmjをこの絵に変換し、送り返してくれ、私のコンピューターに表示されます。
したがって、IPFSが問題を解決してくれます。何故なら、この絵はこれらのコンピューターのうち1つだけにあるとは限らず、これらのコンピューターのいずれかに在ればIPFSネットワークがコンテンツを見つけ、サーバーに送り返してくれるからです。
しかし、まだ問題は残っています。ネットワーク上のどのコンピューターもデータを持っていない場合はどうなるでしょうか。誰も持っていなければ、『誰か私の絵のこと知ってる?』と聞いても、誰も答えられず何も返ってこないでしょう。
そこでFilecoinが活用できます。FilecoinはIPFSの補完と位置付けることが出来ると思っており、Airbnbの公開市場ストレージ版と考えてもらうと良いかもしれません。そこでは、ハードドライブスペースを持つ人なら誰でも容量をネットワークに追加できます。
ハードドライブスペースを購入したい人は、誰でも無許可でレンタルできますが、一定の確証がネットワークによって保障されます。Filecoinの仕組みは、オンチェーンのSLA(サービス品質保証)であるといえます。つまり暗号学によって規定されています。
簡素化していうと、ストレージプロバイダーが容量をネットワークに提供するにはお金をたくさん預ける必要があります。そのお金を失わないためには、約束した期間に渡ってストレージプロバイダーはネットワークに対してデータを持っていることを証明しなければなりません。つまり飴と鞭ですね。
何故なら、彼らマイナーが証明を提出する際はコンセンサスネットワークに参加しており、魅力的なブロック報酬を獲得できます。これは、データを保持してネットワークに居続けるインセンティブになっています。同時に、証明を提出しなければロックアップしたお金を失うことになります。正常な振る舞いをしてもらうための、ちょっとした鞭のようなものですね。これにより、データが安全に守られていることが保証されます。
Filecoinネットワークにはかなりの規模があることも特徴の1つです。現在、約17EiBのストレージ容量があります。イメージとしてはNetflixのアーカイブ17個分、あるいは素粒子物理研究所CERNであれば170個分に相当します。凄まじい容量ですね。Googleでいえば2014年半ばから2015年くらいのサイズでしょうか。
そして、驚異的なことに、Filecoinのクリプト経済によってストレージ価格の平均は拍子抜けするほど安価です。これは、クリプト経済と市場ダイナミクス、両方を合わせて得られるものですが、ストレージ価格の平均は大体TiB1年あたり指数表記するほどの額となります。
これらを合わせると、NFTの問題の多くをIPFSとFilecoinが解決できるのではないでしょうか。
IPFSを使えばデータの問合せにおいてレジリエンスを確保できます。特定のサーバーに問い合わせる必要はなく、インターネットに問い合わせればいいのです。
一方Filecoinでは、誰かがデータを保持し続けているということに強い確信を持てます。
価格も非常に安価で、現在のクラウドに匹敵する規模のスケーラビリティもあります。
これはNFTがどんなもので、どう変貌しうるかを考えた時、非常に重要となります。
個人的な予測として、インターネット上で実際に表すものという観点で、NFTは莫大な成長を遂げます。
私はNFTについて話すとき、特定のアセット、例えば絵などではなく単なるデジタルオブジェクトと捉えるようにしています。ユーザーが特定のアドレスの所有権を証明することでオブジェクトをプラットフォームに持ち込むということです。これはWebにおいて極めて斬新であるため、この単なるデジタルオブジェクトの様々な使い道について考え方から見直す必要があります。
議論に上がっているアイデアを幾つか上の画像の左部分に示しています。
チケット、ゲームアセット、音楽、ビデオ、AR/VRセット、文書、出席証明プロトコルです。今はまだ黎明期で、クリプトもまだ大衆化しきったとは言えません。今は限られたユーザーベースが、何百万というNFTを扱っていますが、大衆化が進むことで、それも急成長を遂げるはずです。
これらの理由で、どのようにIPFSとFilecoinを利用するか考える際にNFT.Storageをお勧めします。これはNFTのインターネットアーカイブを目指しているものです。NFT.StorageはMagic EdenやOpenSeaに対応しており、両社ともNFT.Storageを利用しています。
裏側では、NFT.StorageはパブリックなIPFSノードがコンテンツを取得可能にしています。
Filecoin上でコンテンツをレジリエンスを持って保管しています。NFT.Storageで得られる機能を見てみましょう。仕組みとしては、署名済みのアップロードにFissionのUCANを利用しています。
開発者目線では、ユーザーのためにプロキシを用意する必要がなくなります。ユーザーはコンテンツを直接NFT.Storageにアップロードして分散型ストレージネットワークに配置できます。誰かが変更することを心配する必要はありません。
IPFSのCARファイルを利用していますから、ピン留めするデータをユーザーがインターネットを相手に指定することが可能になります。
ゲートウェイもあって、パブリックに共有されたNFTデータを活用しており、パブリックIPFSゲートウェイの取得性能を調整できます。特に開発者の方は、NFT.Storageゲートウェイも見てみてください。平均的なパブリックゲートウェイに比べて取得速度が2.5〜5倍向上することがわかっています。
変更可能なNFTも到来します。最初にご紹介した例とは異なり、これらの変更可能なNFTには検証可能な参照があり、いつでも追跡可能です。
例えば、ヒトカゲ、リザード、リザードンと進化するポケモンがいれば、変更可能なNFTならその変遷を見ることができます。これはIPNSというプロトコルを使えば可能です。
IPNSはこれまでのお話より複雑ですが、注目されている用途を色々と可能にすると思いますので、是非動向を追ってもらえれば幸いです。
また、平均的なコンテンツクリエイターにも簡単に使えるように、NFTUpでファイルのドラッグアンドドロップも可能になっています。ファイルもフォルダもサポートされています。そして分散型Webへ全て自動的にバッチでアップロードしてくれます。
もしこれらのご紹介に興味をお持ちいただき、Filecoin、IPFS、NFT.Storageについてご質問がありましたら、私たちの日本語コミュニティに是非ともご参加ください。
Telegramも是非チェックしてみてください。
ありがとうございました。
おすすめのブロックチェーンエンジニアの求人
Web掲載のない非公開求人もございます。詳細は以下の転職相談よりお問い合わせください。