はじめに
本記事では、NFTプロジェクトにおいてなぜOpenSeaの共有コントラクトを避けるべきかについて、独自コントラクトとの違いや共有コントラクトが潜在的に抱えるリスクを紹介します。
そもそもコントラクトというのは、スマートコントラクト(Smart Contract)の略称であり、ブロックチェーン上で動作するプログラムのことを指します。
「スマートコントラクト」とは、単にイーサリアムブロックチェーン上で動作するプログラムのことです。 イーサリアムブロックチェーン上の特定のアドレスに存在するコード(その機能)とデータ(その状態)の集合です。
イーサリアム財団による定義
そしてNFTはスマートコントラクトによって発行されており、皆さんの所有状態やメタデータはこのスマートコントラクト上に記録されているわけです。つまり純粋に表現すれば、NFTはスマートコントラクトに始まり、スマートコントラクトに終わります。
そんなNFTの源であるスマートコントラクトには、「(独自)コントラクト」や「共有コントラクト」という概念が存在しています。
まずは、一般的なコントラクトとコレクションの関係性について整理しましょう。
コントラクトとコレクション
NFTを発行したり購入したりするときに、コレクションという単位を意識すると思います。コレクションには大体複数種類のNFTが大量にパッケージされており、中には比較的レア度の高いNFTもあればcommonも存在しているでしょう。
このコレクションという単位が、先ほど説明したコントラクトに相当するというのが一般的な概念になります。
また、一般的に、コレクションにはトークンIDが存在し、その全てが1つのコントラクトによって発行されています。一般的に、あなたがNFTを1000枚発行すればトークンIDは1番から1000番まで連続して存在し、それぞれのNFTを1つのアカウントが所有することになります。
そして、このコントラクトを操作するためのオーナー権は当然あなたに帰属しています。
Openseaの共用コントラクトについて
OpenSeaには、OpenSea Shared Storefrontと呼ばれるコントラクトがあり、共有コントラクトや共用コントラクトと呼ばれています。
共有コントラクトは、複数のプロジェクトやユーザーが利用できるNFT専用のコントラクトであり、NFTを作成するコストや開発時間を削減できる利点があります。
NFTが一般に話題になる前からマーケットプレイスとしてポジションをとっていたOpenSeaからすれば、アーティストやクリエイターがガス代を負担することなくNFTを作成できることは非常に重要な価値を担っていたと考えられます。
コントラクトと共有コントラクトの違い
では、共有コントラクトは何が違うのでしょうか?先程の要点をまとめると以下のようになります。
コレクションはコントラクトに相当する
コレクション内のNFTのトークンIDは連続する(1,2,3,…,N)
コントラクトのオーナー権は発行者に帰属する
しかし、共有コントラクトは全く別の特性を持っています。
コレクションはコントラクトに相当せず、共有コントラクトで発行されたトークンの部分集合として表現されます
そのため、仮にAlexが2つのコレクションで交互にNFTを作成した場合、コレクション内のNFTのトークンIDが連続しない場合があります
そして、これらのコレクションの本当の意味でのオーナー権は、OpenSeaに帰属しています
共用コントラクトが抱えるリスク
以上のような性質を持っているため、共有コントラクトには以下のリスクが考えられます。
OpenSea以外ではコレクションとして認識されない
OpenSeaがコントラクトのオーナー権を持っているため、意図しない操作を行われる気がある
NFTauthやTokenProof、Colab.landやGuild.xyzのようなトークンゲートアプリケーションで利用できない場合がある
それぞれ見ていきましょう。
1. OpenSea以外ではコレクションとして認識されない
ERC721のインターフェース定義上、OpenSeaを除くほとんどのフロントエンドはコントラクトをコレクションの単位として認識しています。そのため、OpenSeaの共有コントラクトを使用して発行されたNFTは、全て同じコレクションとして認識されてしまいます。
以下の画像は、RaribleというNFTマーケットプレイスでOpenSeaの共有コントラクトで作成されたコレクションを表示しています。
OpenSeaではそれぞれ異なるコレクションとして認識されているNFTが、Raribleでは同一の「OpenSea Shared Storefront」というコレクションとして認識されていることがわかります。
例えば、企業がNFTコレクションを作成する際に共有コントラクトを使用すると、OpenSea以外のマーケットプレイスでは、他の作品も混じったコレクションとして流通することになってしまいます。
試験的な取り組みならまだしも、製品としてユーザーに購入してもらうコレクションや、ブランディング施策の1つとしてコレクションを企画する際には致命傷になり得るので注意が必要です。
2. OpenSeaがコントラクトのオーナー権を持っているため、意図しない操作が行われる可能性がある
コレクション情報の編集権限やNFTの作成・削除(非表示)の権限はコレクションを作成しているクリエイターに帰属していますが、共有コントラクト自体のオーナー権はOpenSeaが保有しています。
そのため、クリエイターが意図しない仕様変更が行われる可能性があります。
例えば、ロイヤリティ論争の中で生まれたロイヤリティを支払わないマーケットプレイスでの流通を禁止させるツール「Operator Filter Registry」があります。本ツールは、OpenSeaの共有コントラクトにも導入されています。しかし、いわゆる禁止リストの管理はOpenSeaが行なっているため、クリエイターの意図しないところで流通できないマーケットプレイスが現れてしまう可能性があります。
そのため、企業として共有コントラクトを使ってNFTを発行してしまうと、本来流通チャネルとして見ていたマーケットプレイスでの取引が禁止される可能性があります。
3. トークンゲートアプリケーションで利用できない場合がある
また、①で説明したように、共有コントラクトで作成したコレクションという単位は、OpenSea以外では通用しません。そのため、コレクションのホルダー限定でDiscordのロールを付与したり、限定コンテンツを配信したい場合に、意図しない動作をする可能性があります。
具体的には、自分が共有コントラクトで作成したNFTコレクションのホルダー限定でコンテンツを配信する意図でトークンゲートを利用した場合、同じく共有コントラクトで作成された別のNFTコレクションのホルダーもコンテンツにアクセスすることができてしまいます。
今後、NFTチケットを用いたイベントや、NFTホルダー限定でコンテンツを公開したいと考えている企業にとっては最大限に注意したいポイントです。一度共有コントラクト向けにコンテンツやアクセス権限を許可した場合、意図しないユーザーにコンテンツが流出する可能性が非常に高いです。
おわりに
このように、OpenSeaの共有コントラクトは、クリエイターが気軽にNFTを発行することができる一方で、OpenSea側に委譲している権限があり、かつ一般的にNFTコレクションとして処理される単位とは異なる実装内容になっている点に注意する必要があります。
企業がNFTに取り組む場合、一番知られている手軽な作成方法であることから共有コントラクトが選択肢に上がりやすいと感じます。しかし、上記のリスクがあるということをしっかりと理解した上で、独自コントラクトの活用を検討することが必要です。
シンシズモ株式会社では、NFT発行・流通・認証を含むトークンライフサイクルに向けたソリューションを展開しております。事業にNFTを取り入れたい企業や、業界動向に関するリサーチを深めたい企業様は、ぜひ弊社へお問い合わせください。
弊社ではNFTの企画から運用まで一気通貫でサポートさせていただいております。NFTの利活用に少しでもご興味ある事業者様は、ぜひご連絡ください。
当メディアでは、NFTやブロックチェーンに関する正しい理解が身に付くように引き続き発信していきますので登録お願いします。