NFT周りの用語整理
用語
NFT
Non-Fungible Tokenの略です。ERC20に基づく仮想通貨は同じ単位の通貨を区別しません。日本円も1円ならどの1円でも持つ価値は同じですよね。
そこに色をつけたのがNFTです。全てのトークンは識別子と呼ばれる番号などが割り振られ、全てが唯一の価値を持ちます。筆者のイメージでは、遊戯王のカードナンバーがNFTによく似ているなと思います。というのも、共通した画像をもとにNFTが100個作られた場合、各トークン番号は1~100だとして異なるとしても画像は同じ画像です。遊戯王でも同じように、イラストは同じだけど右下に書いてあるカードナンバーは異なっています。
NFTには、トークン番号ごとにイラストや写真が異なるNFTコレクションもあったりします。
もっと詳しく知りたい方は以下の記事が参考になります。
識別子
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の識別子はコントラクトのアドレスとペアになっており、変わらないものという説明がされています。
contract tekitouNFT {
uint256 tokenId;
function safeMint(address _address) public {
uint256 tekitou;
}
}
URI
NFTでは、URIというものが重要になります。その理由としてはURIがNFTの実態であるデータを指し示すからです。
上記の記事が非常にわかりやすいのですが、URIとは"NFTに関連付けられた画像や動画などのメタデータへのリンク"です。そして、URIを取得すると、NFTのデータがjson形式で見れるようになっています。
オフチェーン、オンチェーン
ブロックチェーン上にデータが載っていることをオンチェーンと言います。ブロックチェーンに情報が載っていない場合は「オフチェーンに情報がある」と言ったり、ブロックチェーンの外側のサービスを使って何かデータを処理する場合は「オフチェーンで処理する」などと言う方が多い印象です。
Discussion