NFTのスマートコントラクトを解説|仕組み・確認方法・注意点

NFTのスマートコントラクトの仕組み・確認方法・注意点を表したアイキャッチ画像

NFTについて調べていると、「スマートコントラクト」という言葉をよく目にします。

NFTの発行や送付、所有者の管理などにはスマートコントラクトが深く関わっていますが、初心者にとっては「NFTそのものと何が違うの?」「コントラクトアドレスとは別物?」とわかりにくい部分でもあります。

Ethereumでは、スマートコントラクトはブロックチェーン上で実行されるプログラムとして説明されており、コードとデータを持つ特定のアドレスに配置されます。

この記事では、NFTにおけるスマートコントラクトの役割から、Etherscanでの確認方法、利用時の注意点まで初心者向けに解説します。

💡 この記事でわかること

  • NFTのスマートコントラクトとは何か
  • NFTの発行や送付でどのような役割を持つのか
  • コントラクトアドレスやERC-721・ERC-1155との違い
  • Etherscanでスマートコントラクトを確認する方法
  • スマートコントラクトを見るときの注意点

NFTのスマートコントラクトとは

スマートコントラクトとは、ブロックチェーン上で決められた処理を実行するプログラムです。

Ethereumの場合、ユーザーがトランザクションを送信すると、スマートコントラクトに書かれた処理が実行されます。スマートコントラクトは人がその都度操作して処理するのではなく、あらかじめ設定されたコードに従って動きます。

NFTでは、このスマートコントラクトを利用して、NFTの発行や所有者の管理、ウォレット間の移動などを行います。

NFTそのものとは違う

スマートコントラクトとNFTは同じものではありません。

簡単に分けると、

  • スマートコントラクト:NFTを管理する仕組み・プログラム
  • NFT:そのスマートコントラクトによって管理されるトークン

という関係です。

たとえばERC-721では、スマートコントラクトがToken IDごとの所有者を管理し、NFTを別のウォレットへ移動するための機能を提供します。ERC-721はNFTを追跡・移転するための標準インターフェースとして定義されています。

NFTでスマートコントラクトが担う役割

NFTのスマートコントラクトには、さまざまな役割があります。

代表的なものを整理すると次のようになります。

役割 内容
NFTの発行 新しいNFTを作成する
所有者の管理 どのウォレットがNFTを保有しているか管理する
Token IDの管理 コントラクト内のNFTを識別する
NFTの送付 ウォレット間でNFTを移動する
承認 他のウォレットやサービスにNFT操作の権限を与える
メタデータとの連携 NFTの名前や画像、属性情報などにつながる情報を持つ
NFTのスマートコントラクトが発行・所有者管理・Token ID・送付・メタデータ連携を担う仕組みを示した図解

すべてのNFTがまったく同じ機能を持つわけではなく、実際の機能は使われているトークン規格やスマートコントラクトの設計によって変わります。

コントラクトアドレスとの違い

「スマートコントラクト」と「コントラクトアドレス」は混同されやすい言葉ですが、意味は異なります。

スマートコントラクトはプログラムそのもの、コントラクトアドレスはそのスマートコントラクトを識別するアドレスです。

Ethereum上にスマートコントラクトを配置すると、そのコントラクトにはアドレスが割り当てられます。Etherscanなどのブロックチェーンエクスプローラーでは、このアドレスを検索することでコントラクトの情報を確認できます。

NFTを確認するときに表示される、

0x...

から始まる長い文字列がコントラクトアドレスです。

詳しくはNFTのコントラクトアドレスを解説も参考になります。

ERC-721・ERC-1155との関係

NFTではERC-721やERC-1155という言葉もよく登場します。

これらはスマートコントラクトそのものではなく、トークンをどのようなルールで扱うかを定めた規格です。

スマートコントラクト・コントラクトアドレス・ERC-721とERC-1155の違いを整理した図解

ERC-721はNFTを扱うための標準インターフェースで、Token IDごとに非代替トークンを管理できます。

一方、ERC-1155では1つのスマートコントラクトで複数種類のトークンを扱うことができ、NFTだけでなく代替可能なトークンなどを組み合わせることもできます。

つまり、

スマートコントラクトがERC-721やERC-1155のルールを実装してNFTを管理する

と考えるとわかりやすいでしょう。

両者の違いについては、NFTのERC-721・ERC-1155を解説で詳しく解説しています。

NFTの画像やメタデータもスマートコントラクトに保存される?

NFTのスマートコントラクトに、画像そのものが必ず保存されているわけではありません。

一般的なNFTでは、スマートコントラクト側から「メタデータがどこにあるか」を示すURIを取得し、その先にNFTの名前、説明、画像、属性などの情報があります。

その情報がIPFSなどの外部ストレージに保存されている場合もあれば、ブロックチェーン上に直接保存されているNFTもあります。

そのため、NFT=画像データがそのままブロックチェーンに保存されているとは限りません。

NFTのメタデータについては、NFTのメタデータを解説も参考になります。

スマートコントラクトはどこで確認できる?

Ethereum上のスマートコントラクトは、Etherscanなどのブロックチェーンエクスプローラーで確認できます。

Etherscanでコントラクトアドレスを検索すると、そのアドレスに関連する取引履歴やNFT Transfers、Contractなどの情報を表示できます。

ブロックチェーンエクスプローラー自体の使い方については、NFTのブロックチェーンエクスプローラーの使い方も参考になります。

Contractタブを見る

Etherscanのコントラクトページには「Contract」という項目があります。

現在のEtherscanでは、Contract内に主に「Code」「Read Contract」「Write Contract」などの項目が用意されています。

Codeでは、ソースコードが公開・検証されているコントラクトであれば、そのコードやコンパイル情報などを確認できます。

Read Contractとは

Read Contractは、スマートコントラクトに保存されている情報を読み取るための機能です。

たとえばコントラクトによっては、NFTの名称や所有者、総発行数などを確認できます。Etherscanでは、Read Contractを使ってコントラクト内に用意された読み取り用の関数を実行できます。

基本的に情報を読み取るだけの操作であれば、ブロックチェーン上へ新しい取引を送信する必要はありません。

Write Contractとは

Write Contractは、スマートコントラクトの処理を実際に実行するための機能です。

内容によってはウォレットを接続し、トランザクションを送信する必要があります。NFTの発行や設定変更など、コントラクトによってさまざまな関数が用意されている場合があります。

初心者の場合、意味がわからないWrite Contractの操作は実行しない方が安全です。

「Verified」なら安全なスマートコントラクト?

Etherscanでスマートコントラクトを見ると、「Source Code Verified」などの表示が付いている場合があります。

これは、公開されたソースコードとブロックチェーン上に配置されたコードの対応関係がEtherscan上で確認されていることを示すものです。

EtherscanでContract・Read Contract・Write Contract・Verifiedを確認するときのポイントを示した図解

ただし、

Verified=安全なプロジェクト
Verified=公式NFT
Verified=詐欺ではない

という意味ではありません。

偽物のNFTや悪意のあるスマートコントラクトでも、ソースコードを公開・検証すること自体は可能です。

NFTの真偽を確認するときは、Verified表示だけではなく、公式サイトなどで案内されているコントラクトアドレスと一致しているかを確認することが重要です。

偽物NFTについては、偽物NFT・詐欺の見分け方も参考になります。

スマートコントラクトは変更できる?

一度Ethereum上の特定アドレスへ配置されたスマートコントラクトのコードは、基本的にそのまま書き換えることはできません。Ethereum公式でも、デプロイされたプログラム自体は変更できないと説明されています。

ただし、すべてのスマートコントラクトが将来一切変化しないという意味ではありません。

アップグレード可能なスマートコントラクトもある

「プロキシ」と呼ばれる仕組みを利用し、同じコントラクトアドレスを使いながら、実際に処理を担当する別のコントラクトを変更できる設計があります。

Ethereum公式でも、プロキシコントラクトから別のロジックコントラクトへ処理を転送することで、利用するロジックを更新する方法が紹介されています。

Etherscanでもプロキシコントラクトが検出された場合、実装先のコントラクトを確認できることがあります。

そのため、NFTを見るときは「コントラクトアドレスが同じだから機能も永久に変わらない」とは限らない点を覚えておくとよいでしょう。

NFT購入時にスマートコントラクトを見る必要はある?

NFTを購入するたびに、スマートコントラクトのソースコードを読めるようになる必要はありません。

初心者の場合は、まず次のような情報を確認できれば十分です。

  • コントラクトアドレスが公式情報と一致しているか
  • 対応チェーンが正しいか
  • ERC-721・ERC-1155のどちらか
  • Token IDが正しいか
  • 不審なApproveや署名を求められていないか

特に重要なのはコントラクトアドレスの確認です。

同じ名前や画像を使った偽物NFTでも、正規NFTとは別のスマートコントラクトから発行することができます。

見た目だけで判断せず、必要に応じてエクスプローラーで確認する習慣を付けると安心です。

スマートコントラクトを見るときの注意点

スマートコントラクトはNFTの重要な仕組みですが、表示されている情報だけで安全性を判断しないことが大切です。

NFTのスマートコントラクトを確認するときのコントラクトアドレスやチェーン、Token ID、Approveなどの注意点をまとめた図解

コントラクトが存在するだけでは安全とは限らない

ブロックチェーン上には誰でもスマートコントラクトを配置できます。

そのため、「Etherscanでコントラクトが表示された」というだけでは、そのNFTやサービスが安全である証明にはなりません。

Write Contractをむやみに操作しない

Write Contractでは、ウォレットを接続してブロックチェーン上の処理を実行できる場合があります。

操作内容を理解せずに実行すると、意図しない権限を与えたり、トランザクションを実行したりする可能性があります。

Approveや署名の内容を確認する

NFTマーケットプレイスやWeb3サービスでは、スマートコントラクトへNFTの操作権限を与える「Approve」を求められることがあります。

すべてのApproveが危険というわけではありませんが、接続先や権限の内容を確認せず承認するのは避けましょう。

詳しくはNFTのApproveと署名の違いも参考になります。

よくある質問

スマートコントラクト=NFT?

同じものではありません。スマートコントラクトはNFTの発行や所有者、送付などを管理するプログラムで、NFTはその仕組みによって管理されるトークンです。

コントラクトアドレスとスマートコントラクトは同じ?

違います。スマートコントラクトはブロックチェーン上で動くプログラムで、コントラクトアドレスはそのスマートコントラクトを識別するためのアドレスです。

ERC-721もスマートコントラクト?

ERC-721はスマートコントラクトそのものではなく、NFTを扱うための標準的なインターフェースです。スマートコントラクトがERC-721の仕様を実装することでNFTを管理します。

Verifiedなら安全?

Verifiedだけでは安全とは判断できません。ソースコードが検証されていることと、NFTやプロジェクトが公式・安全であることは別です。

スマートコントラクトは後から変更できる?

特定のアドレスへ配置されたコード自体は基本的に変更できませんが、プロキシなどを使ったアップグレード可能な設計では、実際に実行される処理が後から変更される場合があります。

まとめ:スマートコントラクトはNFTを動かす仕組み

NFTのスマートコントラクトは、NFTの発行や所有者の管理、送付、Token IDの管理などを行うブロックチェーン上のプログラムです。

NFTそのものやコントラクトアドレス、ERC-721・ERC-1155とは意味が異なります。

初心者がNFTを利用するうえでスマートコントラクトのコードを読める必要はありませんが、

「NFTがどのスマートコントラクトから発行されているか」

を確認できるようになると、偽物の判別や取引状況の確認に役立ちます。

特にコントラクトアドレス、Token ID、トークン規格、対応チェーンなどは、Etherscanなどのブロックチェーンエクスプローラーを使って確認できます。

また、Verified表示だけで安全性を判断せず、不明なWrite ContractやApproveを安易に実行しないことも重要です。

スマートコントラクトの基本を理解しておくと、NFTの仕組み全体がかなりわかりやすくなります。

執筆者情報:エヌエフトリウム

エヌエフトリウムは、NFTやブロックチェーンに関する情報を初心者にもわかりやすく発信するメディアです。NFTの購入代行・販売代行・出品代行・ミント代行などのサービス提供に加え、市場動向や技術の基礎知識もブログでわかりやすく解説しています。