NFTとは(非代替性トークンとは)-ERC721とともにわかりやすく基本確認

User avatar placeholder
Written by TACOS14

November 10, 2021

NFTとは(非代替性トークンとは)-ERC721とともにわかりやすく基本確認

ERC721によって確立されているNFT (Non-Fungible Tokens)

NFTとは(非代替性トークンとは)

NFT(Non-Fungible Tokens)は、スマートコントラクトの分野で注目を集めている新進気鋭のトークンです。 2020年がDeFiの年だった場合、少なくとも2021年の初めはNFTに属するのではないでしょうか。
NFTとは言葉で言えば英語は「Non Fungible Token」日本語では非代替性トークンの事でその名の通りに変えの利かないトークンそのものということでありブロックチェーン技術の上に基づいている。暗号資産(仮想通貨)のある通貨をしめすのにトークンという$というようなものではなくそのものがトークンとなる。たとえば逆に代替可能とは、「交換可能」を意味します。どのドル紙幣を使用しても、1ドル紙幣の価値は1ドルになります。ドル紙幣のシリアル番号は異なる場合がありますが、何があっても1ドルの価値があるため、紙幣は交換可能です。

これは、代替可能なERC20とはまったく異なり、ERC20に加えていくつかの特徴があります。
MKR、AAVE、SNXなどのERC20はたくさんありますがNFT(またはERC721)はまだまだこれからも増えていくでしょう。実際、それぞれが1つしかないため、その独自性があります。これらは、通常のスマートコントラクトと同じように、好きなことを実行するように構築およびプログラムできますが、展開の履歴が常に保証されるため、暗号で証明された信頼性が付属しています。これにより、芸術作品の信憑性を解読することで、特にアートの世界の人々にとって、多くの問題が解決されます。これにより、ロイヤリティの問題を解決したり、デジタルステータスシンボルを作成したり、ゲームアプリケーションを相互運用できるようにしたりすることもできます。

ERC721によって確立されている基準

前述したように、NFTはERC721トークン標準で始まります。ではERC-721とは何でしょう?まずERCはEthereumRequest for Commentの略で、721は提案ID番号です。

ERC-721規格は、イーサリアムの非代替トークン(NFT)市場を生み出したもととなります。 ERC-721は、「ユニークなアイテム」の複雑な言い方であるNFTを作成するための標準でユニークなものはすべてNFTにすることができます。家、野球カード、芸術作品など。しかし、NFTとしての価値は単にユニークでデジタル化されたアイテムの中にあるわけではなく、NFTとして検証可能なものでなければいけません。そこでERC-721規格が重要なカギとなります。

OpenSea(人気のあるNFTマーケットプレイス)に行くと、たくさんの画像を見ることができます。 NFTはブロックチェーン上にあるので、すべてのデータはオンチェーンである必要があるのでしょうか?完全にオンチェーンではありません。そのまま画像をアップロードしている人もいます、私もそれでした、がブロックチェーンは、大量のデータを格納するのには適していないので。なぜならデータをチェーンに保存すると非常にコストがかかる可能性があり芸術につかわれるデータは小さく収まることは少なくはないと思います。。イーサリアムとスマートコントラクトの開発者は、1 MBの画像をアップロードしても銀行口座が破損する可能性があることに気づき、画像全体をアップロードせずにアートを表示する方法を考え出したようです。ERC-721トークンの作成に関する問題は、オリジナルのデジタル資産の保管に起因します。

2017年、Jamila Omarは、1GBのデータをイーサリアムに保存するコストは400万ドルを超えると見積もっています。

In general, the cost to store data on Ethereum works out to approximately 17,500 ETH/GB, or around $4,672,500 at today’s prices.

2017 Jamila Omar

では、NFTに関連付けられた資産を保存するコストが高すぎてブロックチェーンを使用できないことがわかっている場合、代替手段は何になるのでしょうか?従来のクラウドストレージを使用して資産を保存できます。 AmazonのS3とMicrosoftのAzureは、安価なストレージソリューションを提供します。しかし、私たちが知っている従来のクラウドストレージには大きな欠陥があります。
暗号で検証することはできません。暗号で検証することがNFTのポイントとなります。

検証可能

回避策として、ERC721トークン標準は、ERC20と同様の構文を持っていますが、いくつかの調整が加えられていて、tokenURI変数があり、tokenIdの所有者へのマッピングがあり、各トークンには独自の「所有者」があります。これは、アドレスから天びんへのマッピングしかないERC20とは異なります。 ERC721を使用すると、トークンの転送、トークンへのアクセス許可の設定などを行うことができます。これは慣例により軽量の標準であるため、必要なものを使用して構築できます。ほとんどのNFTにはtokenURIと呼ばれるものがあります。これは、NFTのすべての画像の側面に対してグローバルに一意の識別子です。これにより、NFTにビジュアルを与えるのが簡単になります。 URIはUniformResource Identifierであり、HTTPS API呼び出し、IPFSを介したもの、またはその他の種類の一意の識別子である可能性があります。このメタデータは次のようになります。

NFTの要点は、デジタル検証とコントロールができる物理的またはデジタル資産であるということです。資産を表すトークンの所有権を検証するのと同じような方法で原資産自体を検証できない場合、最終的な目的をが達成できなくなってしまいます。

両方の問題の解決策はIPFSです。 IPFSは分散ストレージネットワークです。クラウドストレージと同じように機能します。コンテンツをリクエストすると、そのコンテンツが返されます。ただし、大きな違いは、コンテンツがストレージプロバイダーのグローバルネットワークを利用して保存されることです。
IPFSは、コンテンツのアドレス指定可能性と呼ばれるツールをレバレッジします。

すなわち、固定の箇所のデータセンターにコンテンツの一部をリクエストしていく代わりに、コンテンツ自体をリクエストすることになります。そのコンテンツはその個所ににあるかより近くにある可能性もあります。コンテンツのアドレス指定機能により、コンテンツの取得に単一の場所に依存する必要がなくなりました。これは、グローバルブロックチェーンにとってはるかに効率的です。

ERC721の内容とERC721の中にあるERC20の部分

ERC721の中にあるERC20

name:トークンの名前を定義するために使用されます。他のコントラクトやアプリケーションが識別できます。

シンボル:トークンの省略名またはシンボルを定義するために使用されます。

totalSupply:この関数は、ブロックチェーン上のトークンの総数を定義するために使用されます。供給は一定である必要はありません。

balanceOf:アドレスが所有するNFTの数を返します。

所有権機能

ownerOf:この関数は、トークンの所有者のアドレスを返します。各ERC-721トークンは一意で代替可能ではないため、ブロックチェーン上でIDで表されます。他のユーザー、契約、アプリは、このIDを使用してトークンの所有者を判別できます。

approve:この関数は、所有者に代わってトークンを転送する許可を別のエンティティに付与または承認します。

takeOwnership:これは、外部の関係者が別のユーザーのアカウントからトークンを取得するために呼び出すことができるため、撤回関数のように機能するオプションの関数です。したがって、takeOwnershipは、ユーザーが一定量のトークンを所有することを承認され、そのトークンを別のユーザーの残高から引き出したい場合に使用できます。

伝達:これは別のタイプの伝達関数です。他のデジタルトークン/コインと同じように、所有者はトークンを別のユーザーに転送できます。

tokenOfOwnerByIndex:これはオプションですが、推奨される関数です。各所有者は、同時に複数のNFTを所有できます。その一意のIDはすべてのNFTを識別し、最終的にはIDの追跡が困難になる可能性があります。したがって、コントラクトはこれらのIDを配列に格納し、tokenOfOwnerByIndex関数を使用して配列からこの情報を取得できます。

メタデータ機能

tokenMetadata:このオプション機能は、トークンのメタデータまたはそのデータへのリンクを検出できるようにするインターフェースです。

イベント

transfer:このイベントは、トークンの所有権が個人から別の個人に変更されたときに発生します。どのアカウントがトークンを転送したか、どのアカウントがトークンを受信したか、どのトークンが(IDで)転送されたかに関する情報を送信します。

approve:このイベントは、ユーザーが別のユーザーにトークンの所有権を取得することを承認したときに発生します。つまり、承認機能が実行されるたびに発生します。現在トークンを所有しているアカウント、将来トークンの所有権を取得することが承認されているアカウント、および所有権を譲渡することが承認されているトークン(IDによる)に関する情報を送信します。

NFTコンタクト

NFTコントラクトはリポジトリ―でありNFTを格納する場所である。A repository-like contract, where you can store your NFTs

NFTの作成、ミンティング(Minting)

ミンティングによって新しいNFTをNFTコントラクトから作ることである。

NFTトランスファー(Transfer)

NFTを他のオーナーにエクスチェンジすること。

NFTバーニング(Burning)

存在しているNFTをバーニングすること

やってみる

NFTのようなデジタル資産を検証しようとするときに、これがどのように役立つかを理解し始めることができると思います。それを念頭に置いて、契約がNFTと見なされるようにERC721の基準に従い、標準を契約にインポートしてできるだけ簡単にしましょう。また新しいものを再作成するたびコードする必要がなくなります。では標準を探してインポートして作成していきましょう。NFTを作成し、関連するアセットをIPFSに保存する方法を見てみましょう。

OpenSeaで登録に挑戦!

TACOS14に協力を得て実際の流れを記録させていもらう。

OpenSeaで登録を開始

簡単⁉OpenSeaでNFT公開の仕方を追求Part1

結論

Non-fungible tokens 非代替性トークン NFT というだけあって簡単に登録、アップロードすればそれで完成というわけではない、ERC721もしくはERC1155を用いてNFTとしなければならない。

その他関連

NFTゲームの中での14のNFT高額取引の歴史

Image placeholder

Lorem ipsum amet elit morbi dolor tortor. Vivamus eget mollis nostra ullam corper. Pharetra torquent auctor metus felis nibh velit. Natoque tellus semper taciti nostra. Semper pharetra montes habitant congue integer magnis.

Leave a Comment