トークンとスマートコントラクトの実験方法
ここまで、トークンとスマートコントラクトを一般論として解説しましたが、より理解を深めるためには、ぜひ実際に自分でトークンのコードを書いて、ブロックチェーン上で動かしてみてください。以下、やり方のひとつを手短にご紹介します。
ブロックチェーンを実装したプロダクトはさまざまありますが、現在、スマートコントラクトの実行プラットフォームとして一般に広く使え、かつ主流なのはEthereumです。前述したようにトークンの機能は一般化(生成、所有、転送の機能といったように)できるので、Ethereumの開発コミュニティーではトークンの共通インターフェース仕様を策定しており、仕様に則ったトークンを開発するのが通常です。具体的には、FTの仕様としてERC20、NFTの仕様としてERC721、さらに最近では、FTとNFTのハイブリッド仕様としてERC1155があります(表2)。
| トークンタイプ | 仕様 | 仕様書の参照先 |
|---|---|---|
| FT | ERC-20 | EIP-20: Token Standard |
| NFT | ERC-721 | EIP-721: Non-Fungible Token Standard |
| ハイブリッド | ERC-1155 | EIP-1155: Multi Token Standard |
トークンの実装はゼロから行うこともできますが、実績のあるオープンソースライブラリのひな形から始めるのが早道です。そのようなライブラリのひとつにOpenZeppelinがあります。OpenZeppelin のドキュメントには、ライブラリを使ったトークンの作り方が解説されていますので、これを参考しながら自分のトークンを作ることができます。
トークンのスマートコントラクトが作れたら、次はEthereumを動かしてテスト用のブロックチェーンを作り、トークンをそのブロックチェーンにデプロイして実験してみる番です。例えば、オープンソースのGO-Ethereumなどが利用できます。GO-Ethereumは公式サイトからインストーラーをダウンロードでき、公式ドキュメントをはじめとして、ちょっと動かしてみるときに参考となる情報がWeb上に多数あります。
より本格的に実験するには、無料で自由に使えるEthereumのテスト用ブロックチェーンネットワークを利用することもできます。テストネットワークにはいくつか種類があり、それらはEthereumの公式サイトに記載があります。なお、テスト用途であれば、どのネットワークを選択しても問題ないはずです。
まとめ
ここ最近、NFTとブロックチェーンが盛り上がっています。NFTはトークンと呼ばれるデジタル世界で何らかの価値を表現する仕組みの一種です。NFTはNon-Fungible Token(=NFT:代替不可能なトークン)の略称で、分類上、対となるトークンにFungible Token (=FT:代替可能なトークン)があります。FTとNFTの具体例として、お金やポイントカードのポイントなどの数量や単位で表されるようなものはFT、美術品や土地といった一点もので替わりがないものはNFTにそれぞれ対応します。
トークンを使うと、ブロックチェーン上で価値交換のサービスを実現することができます。トークンをはじめとしたブロックチェーン上のサービスは、スマートコントラクトによって実現します。スマートコントラクトの実体は、サービスのロジックをプログラムコードとして書き記したものです。スマートコントラクトを実行するプラットフォームがブロックチェーンであり、スマートコントラクトが提供するサービスを従来型システムのサービスと差別化するポイントは、ブロックチェーンの特徴から生み出されます。
現在主流のブロックチェーンプロダクトであるEthereumはスマートコントラクトの機能を持っており、オープンソースのライブラリなどを利用して、個人でもトークンのスマートコントラクトを作ることができます。Ethereumでは、トークンのスマートコントラクトの標準仕様が策定されており、FTの仕様はERC-20、NFTの仕様はERC-721、FTとNFTのハイブリッド仕様はERC-1155です。Ethereum上でのトークンは、これらの仕様に従って開発します。
次回は、従来型システムと比較したときの差別化ポイントとなる、スマートコントラクトの実行プラットフォームとしてのブロックチェーンの特徴を解説する予定です。
