仮想通貨の議論でよく聞く「Non-Fungible Token (NFT)」とは?特徴や使われ方などをわかりやすく解説

4923

編集部ピックアップ

仮想通貨の議論でよく聞く「Non-Fungible Token (NFT)」とは?特徴や具体例などをわかりやすく解説

五月雨まくら(@samidare_makura)です。

みなさんは「NFT (Non-Fungible Token)」というコトバを聞いたことありますか?「知ってるよ〜」という方も多いかと思います。ただ細かいところの理解が曖昧だったり、その具体例をもっと知りたいという声もあるかと思いますので、一度わかりやすく整理しますね。

そもそも”Fungible”であるとはどういうことか?

NFT (Non-Fungible Token)の説明よりも前に、そもそも”Fungible”であるとはどういうことかについて解説したいと思います。”Fungible”は日本語で「代替可能な」という意味で、主に経済学の文脈で使われるコトバです。ただ日本語に訳すと意味がぼやける印象があるので、英語の定義を引用しますね。

(of goods contracted for without an individual specimen being specified) replaceable by another identical item; mutually interchangeable

引用:oxforddictionaries

“Fungible”であるモノの例としてもっともわかりやすいのが「お金」です。例えば1万円札について考えてみてください。1万円札をそれぞれ区別することはしませんよね?駅の券売機から出てきたお札もスーパーのレジから受け取ったお札も同じ「1万円」という価値を保有しているはずです。つまり法定通貨は”Fungible”であるといえます。

それでは仮想通貨は”Fungible”でしょうか?これはなかなか微妙な問題です。例えば過去に犯罪に利用されたビットコインは、他のビットコインよりも価値が低いと考えることができます。つまり”Fungible”ではない”Non-fungible”である可能性があります。

しかしDASHやZcashのような匿名通貨はその性質上、過去にどのように使われたか判別することができません。そのためビットコインの場合のように、ある匿名通貨が他の匿名通貨と価値が異なるコトが起こらないと考えられるため、”Fungible”であるといえそうです。

NFT (Non-Fungible Token)とERC721規格

それではいよいよNFT (Non-Fungible Token)について説明します。ただ”Fungible”の意味を理解していればすぐにイメージすることができると思います。NFT(Non-Fungible Token)は”Fungible”ではないトークン、すなわちお互いに代替することができないトークンのことです。

そしてNFTを取り扱うことができる規格にERC721があります。ERC721を用いるとイーサリアムのブロックチェーンの上でNFTの所有権や取引履歴を記録することが可能になります。ちなみにERCとは”Ethereum Request for Comments”のことで、イーサリアムに関連する技術仕様の提案書のことです。その中でも特にERC20が有名で、聞いたことがある方も多いと思います。

ERC721が広く知られるようになったきっかけは、イーサリアムのDAppsのCryptoKittiesが一時、大流行したことが大きいと思います。CryptoKittiesは、ユーザが世界に1匹しか存在しないさまざまな種類の猫を所有することができるゲームです。そしてこの「世界に1匹しか存在しない」というルールを実装するのに、ERC721がうってつけなのです。

関連:ブロックチェーンで仮想ペット?CryptoKittiesが話題に!(2017/12/6)

CryptoKittiesでは、トークンに固有の値を持たせ、特定の値に希少性があるように調整されています。つまり希少性のある変数(パラメータ)を持ち、生み出されたERC721トークン(それぞれの猫をあらわす)は価値が高く、高値で取引されるという仕組みです。具体的な変数(パラメータ)がどのように定義されているかは、Githubをみればわかります。

    struct Kitty {
        // The Kitty's genetic code is packed into these 256-bits, the format is
        // sooper-sekret! A cat's genes never change.
        uint256 genes;

        // The timestamp from the block when this cat came into existence.
        uint64 birthTime;

        // The minimum timestamp after which this cat can engage in breeding
        // activities again. This same timestamp is used for the pregnancy
        // timer (for matrons) as well as the siring cooldown.
        uint64 cooldownEndBlock;

        // The ID of the parents of this kitty, set to 0 for gen0 cats.
        // Note that using 32-bit unsigned integers limits us to a "mere"
        // 4 billion cats. This number might seem small until you realize
        // that Ethereum currently has a limit of about 500 million
        // transactions per year! So, this definitely won't be a problem
        // for several years (even as Ethereum learns to scale).
        uint32 matronId;
        uint32 sireId;

        // Set to the ID of the sire cat for matrons that are pregnant,
        // zero otherwise. A non-zero value here is how we know a cat
        // is pregnant. Used to retrieve the genetic material for the new
        // kitten when the birth transpires.
        uint32 siringWithId;

        // Set to the index in the cooldown array (see below) that represents
        // the current cooldown duration for this Kitty. This starts at zero
        // for gen0 cats, and is initialized to floor(generation/2) for others.
        // Incremented by one for each successful breeding action, regardless
        // of whether this cat is acting as matron or sire.
        uint16 cooldownIndex;

        // The "generation number" of this cat. Cats minted by the CK contract
        // for sale are called "gen0" and have a generation number of 0. The
        // generation number of all other cats is the larger of the two generation
        // numbers of their parents, plus one.
        // (i.e. max(matron.generation, sire.generation) + 1)
        uint16 generation;
    }

出典:github

NFT(Non-Fungible Token)の具体例

世の中にはさまざまな”Fungible”ではない資産が存在します。もしそれらの資産をトークンにしようと考える場合、NFTならびにERC721が非常に重要な役割を担います。ここでは個人的に面白いと思うNFTの利用例を3つあげます。

利用例①:ゲーム

ゲームで利用されるアイテムにNFTを用いることによって、その希少性を担保することができます。これによって取引市場においてアイテムを適当な価格で売買する正当性を保証することになります。現在のDAppsはゲームがとても多いので「NFT × ゲーム」のトレンドはこれからも持続するでしょう。

利用例②:知的財産権の保護

NFTは、さまざまなソフトウェアの知的財産権の保護に大きく貢献する可能性があります。なぜならNFTによってソフトウェアのライセンスを証明することができるので、現在のインターネットで蔓延しているような不正コピーによる知的財産権の侵害を防ぐことができるからです。

利用例③:コレクション

コレクションは、金銭的なインセンティブで資産を収集するだけではなく、しばしば感情的なインセンティブが働きます。例えば切符コレクターの方は、これらを将来的に高値で売るために、切符を収集するわけではありませんよね。ただ「希少性の保証」はとても重要です。NFTが「希少性の保証」に大きく役に立つのは、ここまで述べてきた通りです。

五月雨の結論と考察

ここまでNFT(Non-fungible Token)について具体的に説明してきました。利用例をみても、これらのトークンが果たす役割というのはとても大きいことがわかるかと思います。仮想通貨の議論ではたびたび”Fungible”というコトバが登場するので、ここでしっかり押さえておくと役にたつかもしれません。

関連
イーサリアムDappsの急激な成長と開発、ERC-1155が変えるゲーム
仮想通貨イーサリアムで取引可能:Dapps活用のブロックチェーンゲーム「くりぷ豚」

参考
Medium①
Mesium②

編集部ピックアップ

マルチシグ管理の安心・安全ウォレット