トークン ERC20、ERC223、ERC721とは

ER2
イーサリアムベーストークン「ERC20・ERC223・ERC721」をいまさら学ぶ!「Solidity」を少し学んだだけでも、上記の意味がわかるのがうれしいです。

こんにちはノリヒロです。「Solidity」の学習をしていてふと目についた「ERC721」。ノリヒロは、ERC20トークンのことしか知らなかったのですよ。ということで、今回はERC20以降のトークンのご紹介です。

ERC20・ERC223・ERC721

目次
①ERCってそもそも何なの?

②ERC20とERC223

③ERC721

 

①ERCってそもそも何なの?

そもそも”ERC”ってなんでしょうか。
ETHも他のコイン同様Github等で意見交換、開発が行われています。
Github公式:https://github.com/ethereum

ERCとは”Ethereum Request for Comments”の略だそうです。”Ethereumの新しい技術の提案“という事ですね。この提案がGithub等で認められると、EIP(Ethereum
Improvement Proposal)に追加
され、正式仕様となります。

er3
erc23

これは、ERC-20と、ERC-223の Token Standardの提案書の内容です。
ERC-20のほうは、2015年11月19日作成。提案者は、Vitalik Buterin(ETHの提案者)とVogelsterller(イーサリアムプロジェクトの開発者)が提案していますね。
また、”status”(状態)は、ERC-20:Accepted(可決)されて”EIP20″となってますね。ERC-223:Draft(原案)ということは、可決はされてないのでまだ正式仕様ではないということでしょうかね。
これを見る限り、ERCの後の数字(20とか223)は、単純に企画書を出した順番のようですね。数字にあまり意味はないという…。
ewr
現在はERC912とか出てます。議論が活発な証拠ですね~。

まとめると、ERC-20とは「20番目のERC(提案書)が認められ、Tokenの基本仕様となりました」ということですね。正式には”EIP-20″になるんですかね。トークンの名前だと思っていましたが、実際は違うんですね。

②ERC-20とERC-223

そんなイーサリアム創始者が提唱したERC-20の仕様です。
eee
この仕様を満たせば、ERC-20トークンの基準を満たすということですね。ここでも「Solidity」の勉強の効果が出てます!
function関数が9つ、eventがTransferとApprovalがある。それぞれの関数にはstring からuint8かuint256が使われている。ローカル変数がある…など。これは見ていて楽しくなりそうです。

ともあれ、ERC-20の仕様ですが、致命的な欠陥があります。それは、トークンコントラクト自体にトランザクションを処理する能力がないということです。コントラクトに対応していないトークンが送金された場合、送金自体はできるが対応していないため何も起こらない⇒コントラクトアドレス側ではそのトークンを動かすことができない⇒トークン消失ということになりますね。誤送金が起きてしまうという事ですね。恐ろしい。

そこでこの問題を解決しようとしたのがERC-223です。
erc223
仕様を比較すると「transfer from」「approve」「allowance」がなくなりました。
そのかわり「tokenFallback」が追加されています。この「tokenFallback」で、コントラクトに対応していないトークンが送金された場合に、元の送り主に自動的に返送するということですね。ERC-223は正式に承認されてはいないようです。
参照元:https://qiita.com/Morinikiz/items/d0d095a800394f951fbe

ちなみに採用している通貨としては、

nan
NANJCOIN:https://nanjcoin.com/

まもなく上場の国産通貨NANJコイン。
詐欺通貨5chCoinの救済を行ってくれたところですね。
詐欺通貨5chCoin詳細はこちらからどうぞ。
【悲報?】5chcoin ICO詐欺疑惑 
【続報】5chCoin ICO詐欺疑惑 やっぱり詐欺?

③ERC-721

erc721
165
ERC-721規格も、”status”は”Draft”、正式版ではないんですね。また、前提条件としてERC-165を必要とするということで、ERC-165もあげてみました。
ERC-165は、「スマートコントラクトがどのインタフェースを実装するか公開、発見するためのメソッド作成」だそうです。まだノリヒロには理解できません…。

ERC-721規格ですが、Titleにもあるように「Non-Fungible Token(NFT)」代替不可能なトークンという新しいスタイルが特徴です。少し混乱しますね、、、難しい。
ERC-20系のトークンは、代替え可能なトークン、つまり通貨的な考え方をしているということをまず理解すればよいかもしれません。A君が持っているBトークン100枚はC君が持っているBトークン100枚と等価であり、代替え可能です。

それに対して、ERC-721トークンは、NFT(代替不可能なトークン)です。トークンごとに価値が違うということになりますね。それを可能にしているのがトークンについている「メタデータ」という概念です。メタデータをトークンに付けて、所有者を特定しているというわけですね。ERC-721規格もまだ承認されてはいません。

沢山のサイトで勉強させていただきましたが、ERC-721トークンは、ゲーム分野との相性がいいようです。1つのゲームで使用していたアイテムを、他のゲームで使用できたり売買できたりするようにイーサリアムブロックチェーンでできるようになるかも!ということでした。
ドラクエの「ロトのつるぎ」がFFで使用できたら楽しいですね!強くないとは思いますけど。

ERC-20規格とERC-721規格では、方向性が異なると思いますので、どちらも継続して開発されていけばいいですね。本当に、ほんとうに難しいイーサリアム。まだまだ学習が必要です。

長文お付き合いいただきありがとうございました。
本日も良きCryptoLIfeを。

コメント

  1. nori より:

    dogecoinはEthereumベースではないですよ
    Ethereumがβでまだまともに動かない2013年にリリースされています
    公式サイトにもリンクがある以下のgithubで管理されているコードもC++のものですのでご確認ください
    https://github.com/dogecoin/dogecoin

  2. ノリヒロ より:

    そうですよね…PoW、Scryptだったはず…。Dogeという登録で検索すると、イーサスキャンで4種類出てきてました。たぶんそれと勘違いしていたものだと思われます。ブログ訂正いたします。ご指摘ありがとうございます。感謝いたします。