今回は、ブロックチェーン界隈では頻繁に出てくる『ERC20』と『ERC721』の特徴や仕様、実用例について比較します。
よくICOやトークン発行の際に『ERC20』というワードが出てきます。おそらくはなにかの仕様だろう、ということは想像がつくかと思いますが、一体何を表しているのかご存知ですか?
前提:ERCとは?
そもそも、ERCって何かご存知ですか?
ERCは、Ethereum Request for Commentsの略で、イーサリアムで発行されるトークンの技術仕様についてのドキュメントのことです。要は仕様書です。
オープンソースで開発されているイーサリアムでは、日々その用途や仕様につき開発者から提案がなされています。提案はGithub(世界の開発者が使用するソフトウェア開発のプラットフォーム)上で行われますが、その順番を番号として『ERCXXX』と呼んでいます。つまり、ERC20であれば20番目のドキュメント、ということになります。
仕様書を作ることにより、当然ですが仕様が標準化されます。各開発者は目的に合わせ、一から仕様を考えたりしなくても仕様書に沿って開発を進めれば良くなります。すると、開発や技術発展がよりスムーズになります。
ERC20とは?
簡単に言うと、個人/企業や取引所との間でやり取りをしやすくするようなトークンの仕様として定義されたのがERC20です。要は通貨が通貨たる特性である「価値の保存」「価値の尺度」「交換の手段」を担保することにより、トークン同士を代替可能にしたことから、FT(Fungible Token・代替トークン)と呼ばれます。その歴史は古く、提案されたのは2015年までさかのぼりますが、今では14万以上のトークンがこのERC20に準拠した仕様で作られています。
過去に紹介したWavesのように、代替トークンを発行する仕様は他にもあるのですが、ここまで広まったのは以下の3つの理由によると言われています。

開発者の目線:インターフェースの単純化
ERC20の特徴の1つに、発行に必要なインターフェースを単純化したことがあります。具体的には、以下の点を定義できればトークンを発行でき、送金などのやり取りも可能になります。
6つの関数
totalSupply:総発行量を返す関数
balanceOf:あるアドレスが保有している残高を返す関数
transfer:トークンを送信する関数
transferFrom:トークンを転送する関数
approve:送金を承認する関数
allowance:引き出し額を定義する関数
2つのイベント
Transfer:送金
Approval:承認
開発者目線では、満たせば良い水準が明確でシンプルだったことが扱いやすさにつながったと考えられます。
取引所の目線:様々なトークンの運用の共通化
ERC20に準拠して発行されたトークンは、違うトークンであっても共通化して扱うことができます。特に取引所目線では、都度受け入れるための開発等がほぼなくたくさんのトークンを受け入れられる、つまりより少ない運用負荷で取扱トークン数を増やすことができます。
ユーザーの目線:ウォレット管理の簡易化
トークンを受け取り売買するユーザーにとっても、1つの取引所やウォレットで複数のトークンを管理できるのは楽です。
よって、開発者、取引所、ユーザーそれぞれにとってメリットが明確だったことが、取扱が増えた要因だったと思われます。
このように、ERC20は代替可能なトークンの仕様を標準化することにより、技術発展・活用・流通の各側面からブロックチェーン実用の可能性を大きく広げたと言えます。
ERC721とは?
ERC20は異なる取引所やユーザー間でのやり取りを簡易にするための標準仕様でした。これに対し、代替できないトークンを発行するための標準仕様がERC721で、2018年の初頭に提案されました。代替できないトークンということでNFT(Non Fungible Token・非代替トークン)と呼ばれていますが、具体的には以下の特徴によりトークンの非代替性を担保しています。
トークンに対する固有のID付与
ERC721で発行されたトークンには、それぞれに固有のIDが付与されています。これにより、根本的にトークン同士を識別することが可能です。ERC20にはそのような機能はありません。
トークンの所有権や取引履歴の記録
ERC721では、トークン内にそのトークンの保有者や取引履歴のデータも記録できるような仕様があります。ERC20の場合、各アドレスごとに残高はわかりますが、各トークンを誰が保有しているか、はトークン内にデータがありません。現金が無記名なのと同じ理屈です。
ERC20とERC721の主な違い
上記の通りトークンが代替可能か不可能か、が大きな違いですが、これにより両者のユースケースに違いが生まれています。
ERC20の実用例:ICO
ERC20は上記の通り流通させやすいことから、ICOで発行するトークンに活用される例が非常に多く見受けられます。特に多いのは、『調達はERC20トークン&開発は独自』というパターンです。理論上はERC20トークンをそのまま活かしてアプリケーションを作ることは当然可能ですが、ERC20トークンはあくまでICOやその後の取引所への上場についてのみ用い、調達した資金で独自のプロダクトを作るというものです。
Omisego、EOS、BNBなど有名プロジェクトのICOも、ERC20トークンを使って行われています。大体は各プロダクト独自のブロックチェーンができたら、トークンもそちらに移行と明記しており、EOSは実際に移行が完了しています。
https://cdn.omise.co/omg/JPNcrowdsaledoc.pdf

https://www.binance.com/resources/ico/Binance_WhitePaper_en.pdf
ERC721の実用例:ブロックチェーンゲーム
ERC721の実例が最も多いのは、CryptoKittiesやMyCryptoHeroesのようなブロックチェーンゲームです。


ERC721はその特性上、アイテムやキャラクターのトークン化との相性が良いと言われてきました。普通のゲームであればゲームの中でアイテムを集めたり、キャラクターを育成してもゲームの中で終わりで、アイテムやキャラクターを取引するような仕掛けはあまり見られませんでした。ERC721を使うことにより、集めたアイテムやキャラクターを付加価値を付けてやり取りしたり、そういうマーケットを作りやすくなります。
例えばCryptoKittiesでは、猫の遺伝情報(顔の形や体の色などを決定する)がERC721を用いてトークン化されブロックチェーンに乗っています。これにより、単に猫を育成するだけでなくレアなキャラクターを作って高値で取引する、というような新しい楽しみ方が可能になります。
同じような話で、マイクリの「ゲームにかけた 時間も お金も 情熱も、あなたの資産となる世界」というキャッチコピーは、まさに言い得て妙といえます。
他にもERC721は、不動産や絵画のような実体資産のトークン化との相性が良いと言われており、そのようなプロジェクトの開発も一部で進んでいます。
まとめ
いかがでしたか?
ERCにはERC20やERC721以外にも様々な提案が行われています。今後もブロックチェーンの実用化と並行する形で進化することが期待されています。