CodeZine(コードジン)

特集ページ一覧

最近流行りのNFTとは? NFTからブロックチェーンの仕組みを理解する

開発者のためのブロックチェーン活用ガイド 第1回

  • LINEで送る
  • このエントリーをはてなブックマークに追加

目次

トークンと代替可能性

 ここで、NFTのFとT、つまりFungible(代替可能性)とToken(トークン)の概念について解説します。概念を知ることで、NFTやブロックチェーンが使われる目的を明確にし、例えばどのようにビジネスに活用したらよいのかなどを考える上での助けになると思います。

 まず先にT(トークン)の方からです。ブロックチェーンの世界におけるトークンとは、ほぼ英単語の意味そのままに、デジタル上で何らかの価値を表現したものといったように考えてください。実のところ、ビットコインやイーサリアムなどの暗号通貨もトークンの一種といえ、トークンとはそのような価値表現を広く一般的に指す用語と考えればよいわけです。次に説明するように、NFTもトークンというカテゴリの一部に属する概念なので、トークンの方が基礎となる広い概念に位置します。

 トークンは価値表現のタイプによっていくつかの分類軸を考えることができ、このひとつがNFTのF(代替可能性)です。代替可能性の分類では、Fungible Token(=FT:代替可能なトークン、以降FTと略記します)とNon-Fungible Token(=NFT:代替不可能なトークン、引き続きNFTと略記します)という、2つのタイプのトークンに分けられます。代替可能性は具体例とともに考えると分かりやすく、FTはお金やポイントカードのポイントなどの数量や単位で表されるようなもの、NFTは美術品や土地といった一点もので替わりがなく、数量や単位で表せないものにそれぞれ対応します(表1)。

表1 代替可能性で分類される2つのトークンタイプ
トークンタイプ FT(Fungible Token) NFT(Non-Fungible Token)
価値の対象 対象が数量や単位で表されるようなもので、交換可能なもの 対象自体が唯一無二のもので、交換できないもの
具体例 お金、ポイントカードのポイント、株式など 美術品、土地、コレクターズアイテムなど

 ただし、FT/NFTの分類は価値の対象に対して絶対的ではありません。例えば、お金を考えたとき、銀行口座の残高のようなものなら金額の数字を交換しても価値は変わりませんのでFTですが、お札に振られたシリアル番号を厳密に踏まえたモノとして扱うと、2つのお札の額面は同じでも、2つの異なるモノとして単純交換できないのでNFTです。もうひとつの例として土地を取り上げてみると、2つの異なる場所にある土地は単純に交換できないのでNFTですが、あるひとつの土地の敷地権の割合といったようなことなら数量的に管理できるのでFTかもしれません。つまり、FT/NFTのどちらのトークンを使えばよいのかは、トークンで表したいことの都合次第です。

トークンとブロックチェーン

 トークンとはデジタル上での何らかの価値表現で、トークンの具体例のひとつがビットコインをはじめとする暗号資産です。ビットコインのシステム基盤技術として登場したのがブロックチェーンだったということを言い換えると、そもそもブロックチェーンはトークンのためのシステムであるとも言えます。当然、このようなシステムはブロックチェーンでなくても実現することができます。例えば、従来型のクライアント・サーバー型システムを使った場合、中央のデータベースサーバーにトークンのデジタルデータを配置し、そのデータをアプリケーションサーバーで処理して、Webサーバー経由でクライアントにサービスを提供するといった方式が考えられます。

 しかし、ブロックチェーンには従来型システムとは違った優位性があります。優位性をもたらす差別化要因として、2つの観点を順に考えていきます。1つめは、トークンの機能が生み出すシステムとしてのサービスの観点、2つめは、サービスを実行するシステム基盤としてのプラットフォームの観点です。最初のサービスの観点では、従来型システムでもブロックチェーンでも、実はトークンの機能を実現するためのプログラムを開発するという点ではあまり変わりませんが、ブロックチェーンではスマートコントラクトと呼ばれる要素が登場してきます。次に、スマートコントラクトについて解説します。

トークンとブロックチェーンのスマートコントラクト

 ブロックチェーンで何らかのサービスを実現するための要素がスマートコントラクトです。ブロックチェーンのスマートコントラクトは、何らかのプログラミング言語によって書かれたプログラムコードで、コードで表現できる処理ならなんでも実行させることができます。

 実は、スマートコントラクトの概念自体はブロックチェーンよりもかなり前に登場したもの(英語版ウィキペディア Smart contractなどを参照)で、ブロックチェーンの世界に輸入されたものです。概念の提唱当初のスマートコントラクトは、英単語での「Smart Contract」のそのままに、コンピューターシステムによる「契約」の自動執行を表していたのですが、ブロックチェーンでのスマートコントラクトは、契約だけにとらわれないブロックチェーン上での処理全般のことを表します。

 トークンはスマートコントラクトにより実現されます。トークンはデジタルな価値交換を扱うサービスなので、基本機能として何が提供できればよさそうでしょうか。改めて考えてみるとどこから手を付けたらよいかよく分からないかもしれませんが、こういうときにはデジタル世界の対象は現実世界の映しとして、現実世界の価値交換サービス(お金や株式など)から機能を考えてみるのが一策です。

 そう考えると、基本機能として必要なのは価値の発行(お札を刷る)、所有(財布や銀行口座に価値を保管する)、移転(お金を送金する)などです。そのため、トークンのスマートコントラクトなら、発行にあたっての上限量のルールや、トークンの所有状態を管理する口座のようなデータ型の定義と口座データに対する処理のプログラムなどを書けばよいわけです。

 このように、スマートコントラクトで何をどのように処理するのかは、プログラムの開発者が自由に決めることができます。トークンのスマートコントラクトなら、どのような価値を定義し、どのようなルールで発行したり流通させたりするのかも、すべて開発者次第です。

 スマートコントラクトのコードを書いたら、あとはブロックチェーン上で実行できる形式にコンパイルし、その実行形式をブロックチェーンにインストールすると実行できるようになります(一般に、デプロイするといいます)。ブロックチェーンは、スマートコントラクトを実行するプラットフォームです。スマートコントラクトを従来型システムのサーバー上での処理と差別化する要因は、実行プラットフォーム観点でのブロックチェーンの特徴から生まれます。これは連載の次回で解説します。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 木下 学(NTTデータ先端技術株式会社)(キノシタ マナブ)

     ソフトウェアソリューション事業本部 AIソリューション事業部 ビッグデータ基盤担当  2014年入社。2017年からブロックチェーンを担当。  現在、NTTデータグループにおける全世界横断のブロックチェーンチームの一員として、ブロックチェーンを用いたシステム開発や技術検証を中心に、教育プログラ...

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5