🙌

NFT周りの用語整理

2023/09/14に公開

用語

NFT

Non-Fungible Tokenの略です。ERC20に基づく仮想通貨は同じ単位の通貨を区別しません。日本円も1円ならどの1円でも持つ価値は同じですよね。

そこに色をつけたのがNFTです。全てのトークンは識別子と呼ばれる番号などが割り振られ、全てが唯一の価値を持ちます。筆者のイメージでは、遊戯王のカードナンバーがNFTによく似ているなと思います。というのも、共通した画像をもとにNFTが100個作られた場合、各トークン番号は1~100だとして異なるとしても画像は同じ画像です。遊戯王でも同じように、イラストは同じだけど右下に書いてあるカードナンバーは異なっています。

NFTには、トークン番号ごとにイラストや写真が異なるNFTコレクションもあったりします。

もっと詳しく知りたい方は以下の記事が参考になります。
https://gaiax-blockchain.com/erc721

識別子

https://eips.ethereum.org/EIPS/eip-721
NFTを発行する場合、ERC721という規格に準拠して発行することが多いです。

EIP721のドキュメントを読んでみると、以下のような文章が書かれていました。

NFT Identifiers

Every NFT is identified by a unique uint256 ID inside the ERC-721 smart contract. This identifying number SHALL NOT change for the life of the contract. The pair (contract address, uint256 tokenId) will then be a globally unique and fully-qualified identifier for a specific asset on an Ethereum chain. While some ERC-721 smart contracts may find it convenient to start with ID 0 and simply increment by one for each new NFT, callers SHALL NOT assume that ID numbers have any specific pattern to them, and MUST treat the ID as a “black box”. Also note that NFTs MAY become invalid (be destroyed). Please see the enumeration functions for a supported enumeration interface.
The choice of uint256 allows a wide variety of applications because UUIDs and sha3 hashes are directly convertible to uint256.

NFTには識別子と呼ばれるものがあり、その識別子をもとに各NFTを判別できるようになっています。そしてEIP721のドキュメントによると、NFTの識別子はコントラクトのアドレスとペアになっており、変わらないものという説明がされています。

example.sol
contract tekitouNFT {
  uint256 tokenId;
  
  function safeMint(address _address) public {
    uint256 tekitou;
  }
  
}

URI

NFTでは、URIというものが重要になります。その理由としてはURIがNFTの実態であるデータを指し示すからです。
https://gaiax-blockchain.com/full-onchain-nft
上記の記事が非常にわかりやすいのですが、URIとは"NFTに関連付けられた画像や動画などのメタデータへのリンク"です。

そして、URIを取得すると、NFTのデータがjson形式で見れるようになっています。

オフチェーン、オンチェーン

ブロックチェーン上にデータが載っていることをオンチェーンと言います。ブロックチェーンに情報が載っていない場合は「オフチェーンに情報がある」と言ったり、ブロックチェーンの外側のサービスを使って何かデータを処理する場合は「オフチェーンで処理する」などと言う方が多い印象です。

Discussion