時々見かけるあの【ERC◯◯】とは?わかりやすく解説!

▼おすすめの取引所ランキング

ホワイトペーパーや、公式HPを見ていると、

ERC20

という文字をよく見かけませんか?

基本的に見て見ぬ振りをする方も多いかもしれないですが、

今日はそんなERC◯◯を、解説していきます!

そもそもERCとは?

ERCとは、Ethereum Request for Commentsの頭文字をとったものです。

Ethereum Request for Commentsは、Ethereumに関連する技術仕様の提案書を指します。

ERC20は「Ethereum Request for Comments : Token Standard #20」のことであり、

Ethereumベースで発行できるトークンの仕様を決めているものになります。

この提案が可決すると、EIPと呼ばれる(Ethereum Improvement Proposal)に追加され、
正式な仕様となります。

ERC20の仕様(※技術よりの話になります)

トークン名の指定 function name() constant returns (string name)
単位の指定 function symbol() constant returns (string symbol)
小数点以下の指定 function decimals() constant returns (uint8 decimals)
トークンの総量確認 function totalSupply() constant returns (uint256 totalSupply)
トークンの残高確認 function balanceOf(address _owner) constant returns (uint256 balance)
トークンの移動 function transfer(address _to, uint256 _value) returns (bool success)
トークンの引き出し function transferFrom(address _from, address _to, uint256 _value) returns (bool success)
引き出せるトークン量の承認 function approve(address _spender, uint256 _value) returns (bool success)
引き出せるトークン残高の確認 function allowance(address _owner, address _spender) constant returns (uint256 remaining)
トークンを移動させたログの追跡 event Transfer(address indexed _from, address indexed _to, uint256 _value)
承認したログの追跡 event Approval(address indexed _owner, address indexed _spender, uint256 _value)という感じになっており、誰でもERC20トークンを作成することができるようになっています。参考(https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md)

ERC20のメリット、デメリット

メリット

ERC20の仕様に従ってトークンを実装した場合、同じようにERC20に沿って実装された、アプリケーションや、分散取引所、ウォレットなどで使えるようになります。

もし仕様に従わず、トークンを独自に開発すると、ウォレットなども自前で開発しなければなりません。

かなり面倒くさいことになるので、ERC20を採用する事が多く、結果的に20000以上のトークンがERC20に準拠しているとのことです。

デメリット

ERC20は完璧かというと、そうとも言えません。

「送金するアドレスを間違えた!」

という経験をしたことはありませんか?

ERC20では、送金するアドレスを間違ってしまうと、二度と引き出せなくなってしまいます。

これを解決しようと、新しく出てきたのが、ERC223です。

ERC223はERC20の課題を補完しており、今後の基準になるのではないかと見られています。

ERC223の仕様(※また技術よりの話になります)

function name() constant returns (string name)
function symbol() constant returns (string symbol)
function decimals() constant returns (uint8 decimals)
function totalSupply() constant returns (uint256 totalSupply)
function balanceOf(address _owner) constant returns (uint256 balance)
function transfer(address _to, uint256 _value) returns (bool)
function transfer(address _to, uint _value, bytes _data) returns (bool)
function tokenFallback(address _from, uint _value, bytes _data)
event Transfer(address indexed _from, address indexed _to, uint256 indexed _value, bytes _data)※ERC20との違いは、approve、allowance、transferFrom」が削除され、新たに 「tokenFallback」が追加、「transfer」が2つに増えています。

参考:(https://github.com/Dexaran/ERC223-token-standard)

他のERC◯◯

ERC721

ERC721は、ERC20と後方互換性を持ちつつ、NFT(Non-Fungible Token = 代替不可能なトークン)という特徴があります。

ERC20は、通貨のように代替可能な物をトークン化していました。

一方のERC721では、各トークンが、その所有者の名前などの、メタデータを含ませることができるようになりました。

ERC721が使われた例として、最近有名になった「Crypto Kitties(クリプトキティーズ)」があります。
(Crypto Kitties(クリプトキティーズ)の記事はこちら

オリジナルの猫を育成するゲームなのですが、このオリジナルの猫が、実はトークンそのものなのです。

ERC777

こちらも、ERC20と互換性を持ちつつ、新機能として、運営者管理機能、トークン生成・破棄、データ付与ができるようになっています。

しかしまだ情報が少ないのが現状です。

結局どれが良いの?

いまのところ、これ!と呼べるものはないと思います。(実績で言えば圧倒的にERC20ですが。)

どんどんアップデートされているということは確実であり、今後もEthereumの動きに注目したいです。

まとめ

今回は、ERCを解説しました。

ICOのときにホワイトペーパーを読むことは、必須ですが、

やはり技術面も読まなければ、痛い目にあう可能性は上がります。

ERC周りも技術的にどうか?の判断軸となる1つの基準でもありますので、

これを機に理解していただければ幸いです。


ICO イーサリアム その他 用語解説