← PC・IT用語集へ戻る

NFT

Non-Fungible Token
ブロックチェーン技術を用いて、デジタルアートや証明書などの「唯一無二の価値」を証明・管理できるデジタル資産の仕組み。
NFT (Non-Fungible Token)

概要(サマリー)

NFT(エヌエフティー:Non-Fungible Token、非代替性トークン)は、ブロックチェーン技術を用いて、デジタルアート、音楽、ゲーム内のアイテム、各種証明書などのデジタルデータに対して「世界に一つだけの本物であること(唯一無二の価値)」を証明・管理できる仕組みである。

コピーが非常に容易だったデジタルデータの世界において、改ざん不可能な所有権の証明書(シリアルナンバー)を付与することで、現実世界の絵画やサイン入りのカードのようにデータ自体に「希少価値」を持たせることが可能となった。これにより、デジタル上の新しい経済活動の輪が広がっている。

詳細解説

NFTとは何か(「非代替性」の意味)

NFTの正式名称にある「非代替性(Non-Fungible)」とは、「他のもので代わりがきかない、唯一無二の性質」のことである。

日常の取引にたとえると、以下のように整理できる。

  • 代替可能なもの(Fungible):お金やビットコイン。あなたが持っている1万円札と、他人が持っている1万円札は、全く同じ価値であり自由に交換できる。このように個別の区別が必要ないものが「代替性」である。
  • 代替不可能なもの(Non-Fungible):有名画家の直筆絵画や、憧れの選手に直接もらったサインボール。これらは世界に一つしかなく、他人の持つ同じボールや適当な絵画と等価交換することはできない。この「代わりがきかない価値」が「非代替性」である。

NFTは、デジタルデータに対してこの「サインボール」のような世界に1つだけの固有の識別情報をブロックチェーン上で紐付けることで、データの唯一性を証明する。

NFTが動作する仕組み(スマートコントラクトとERC-721)

NFTは、イーサリアム(Ethereum)などのスマートコントラクトが実行できるブロックチェーン上で発行される。

イーサリアムでは、NFTを正しく発行・取引するための世界共通のプログラム規格として「ERC-721(イーアールシー721)」や「ERC-1155」が定められている。この共通ルールに従ってプログラムを書くことで、誰でも世界中で取引可能なNFTを作成(ミント:Mint)できる。

以下は、最も標準的なNFTを発行するためのSolidity(スマートコントラクト用言語)のコード例である。

Solidityの場合

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// OpenZeppelinという信頼性の高いライブラリから標準のERC721規格をインポート
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Counters.sol";

// MyCollectibleという名前でNFTのコントラクトを定義
contract MyCollectible is ERC721 {
    using Counters for Counters.Counter;
    Counters.Counter private _tokenIds;

    // コンストラクタ:NFTの名前(MyCollectible)とシンボル(COLL)を定義
    constructor() ERC721("MyCollectible", "COLL") {}

    // 新しいNFTを発行(ミント)する関数
    // recipient:NFTを受け取るアドレス
    function mintNFT(address recipient) public returns (uint256) {
        _tokenIds.increment(); // 固有のシリアル番号を1増やす

        uint256 newItemId = _tokenIds.current();
        _mint(recipient, newItemId); // 指定のアドレスに新しいシリアル番号のNFTを発行

        return newItemId; // 発行されたNFTのIDを返す
    }
}

このコントラクトがデプロイされると、mintNFT 関数を呼び出すたびに、重複しない一意のID(1, 2, 3...)を持ったNFTが発行され、特定のアドレスに関連付けられる。この所有記録はブロックチェーン上に永久に残るため、改ざんすることはできない。

NFTがもたらす新しい価値

NFTの誕生により、主にクリエイターエコノミーにおいて画期的な変化が起きている。

  • デジタルデータの「本物」証明:これまでは、画像ファイルは簡単に「右クリックしてコピー」されてしまい、オリジナルの証明ができなかった。NFTにより、ブロックチェーン上の記録を照合することで、どれが本物のオリジナルデータで、誰が所有しているかを客観的に証明できる。
  • 二次流通時(転売)のロイヤリティ設計:現実の絵画では、作品が転売されても作者に報酬が入らないことが多い。NFTでは、スマートコントラクトやマーケットプレイス側の仕組みにより、転売時に一定割合のロイヤリティ(製作者報酬)を作者へ還元する設計ができる。ただし、すべてのNFTや取引場所で自動的に保証されるわけではない。

AIコーディングとの関係

NFT関連の開発において、AIは非常に有用なツールとなる。NFTのミントページ(WebサイトからユーザーがNFTを購入して発行するシステム)を作る際、AIに指示を出すことで、バックエンドの Solidity コントラクトの記述から、フロントエンドでブロックチェーンウォレット(MetaMaskなど)と接続するための JavaScript(ethers.jsweb3.js)のコードまで一貫して自動生成させることができる。

例えば、AIに「OpenZeppelinのライブラリを使って、発行上限数が1000個までのNFTコントラクトをSolidityで書いて。さらに、ミント価格を0.05ETHに設定して」と要求すれば、過不足のないプログラムが即座に出力される。

ただし、スマートコントラクトの脆弱性は直接的な資産(仮想通貨)の盗難に繋がる。AIにNFTのコードを書かせた後は、「このコントラクトで、管理者が不当に購入手数料を変更できてしまうような権限の脆弱性はないか」「関数実行時のガス代を最小限にするための最適化案を提示して」と追加で検証させることが重要である。

よくある勘違い

NFTを購入すれば、デジタルデータの著作権も手に入る?

これは非常に多くの人が誤解しているポイントである。一般的なNFTの購入で手に入るのは、ブロックチェーンに記録された「そのデータに対する所有権(本物の所有者であるという証明書)」だけであり、作品の「著作権」や「商用利用権」はクリエイター側に残ったままであることがほとんどである。

現実世界の絵画にたとえるなら、美術館や個人がゴッホの原画を大金で「購入」して自宅に飾る権利はあっても、その絵を勝手にポスターにして大量販売したり、グッズにして商売したりする「著作権(独占権)」は得られないのと同じである。NFTを購入したからといって、その画像を自由に商用利用できるわけではないため、規約の確認が必要である。

NFTの画像は「右クリック保存」でコピーできない?

NFT化されたデジタルデータ(画像や音楽など)そのものは、インターネット上に公開されているため、通常通り右クリックで簡単にダウンロードしたり、スクリーンショットを撮って保存したりできる。

しかし、その保存した画像ファイルは「本物の証明書(ブロックチェーン上のNFT)」と紐付いていないため、単なる「カラーコピー(複製品)」にすぎない。現実のサインボールでたとえるなら、本物のサインボールの写真や複製品をどれだけ大量に作っても、本物の所有者としての価値(市場での売買価値)は複製品には一切宿らないのと同じ原理である。

NFTはすべて高値で売れて絶対に儲かる?

一時期、デジタルアートが数十億円で落札されたニュースなどが話題になったが、すべてのNFTに高い価値がつくわけではない。

NFTは「価値を証明する技術」であって、データそのものの美しさや実用性、コミュニティの魅力など、作品自体の価値(ブランド力)がなければ買い手はつかない。実質的に無価値なNFTも市場には無数に存在しており、投機的な目的だけで購入すると大損するリスクがある。

まとめ

  • NFTは、デジタルデータに対して唯一無二の所有証明書をブロックチェーン上で付与する仕組みである。
  • 代わりがきく「代替性(お金など)」に対し、代わりがきかない「非代替性(直筆サインなど)」の特性を持つ。
  • ERC-721などの共通規格を利用して発行され、設計や取引場所によっては転売時のロイヤリティ還元も組み込める。
  • 所有権が手に入っても、基本的には著作権や商用利用権まで譲渡されるわけではない。
  • AIを使うことで、NFTの発行プログラムから、Webサイトでの販売・接続システムまで高速に開発できる。

情報ソース

より詳しくAIに聞いてみよう

  • 暗号資産(ビットコインなど)とNFT(非代替性トークン)の技術的な違いを、初心者向けにわかりやすく説明してください。
  • NFTの標準規格である「ERC-721」と、複数の種類をまとめて扱える「ERC-1155」の違い、使い分けの基準を教えてください。
  • NFTアートの画像データ自体は、ブロックチェーン以外の場所(IPFSなど)にどのように保存され、NFTと紐付けられているのか仕組みを教えてください。
  • AIを使って、Webページから「MetaMask」ウォレットに接続し、NFTの所有状況をチェックするJavaScriptプログラムの書き方を教えてください。
  • NFTを購入する際に発生する、偽ブランド(なりすましNFT)やハッキング詐欺などのセキュリティリスクと、その見分け方を教えてください。