ERC-20 は Ethereum 上で fungible token(代替可能トークン)を発行・管理するための標準規格。
1. 基本概要
- ERC = Ethereum Request for Comments の略。提案番号 20。
- Fungible(代替可能) = 1トークンと他の同額トークンに差がない。例:USDT, DAI, LINK。
- スマートコントラクトの共通ルールを定め、ウォレットや取引所との互換性を保証する。
2. 主な関数(必須)
ERC-20 規格では、以下の関数・イベントを実装する必要がある。
関数
totalSupply()
:発行済み総供給量を返すbalanceOf(address account)
:指定アドレスの残高を返すtransfer(address to, uint256 amount)
:トークンを送金approve(address spender, uint256 amount)
:第三者に利用許可を与えるallowance(address owner, address spender)
:許可残高を確認transferFrom(address from, address to, uint256 amount)
:許可を受けた第三者が送金
イベント
Transfer
:送金が発生したときにログを出すApproval
:利用許可が設定されたときにログを出す
3. ERC-20 トークンの仕組み
- トークンは Ethereum のネイティブ資産(ETH)ではなく スマートコントラクトの記録。
- ユーザーの「残高」はスマートコントラクトの内部マッピングに保存される。
transfer
で残高が減少/増加し、イベントでウォレットやブロックチェーンエクスプローラに反映される。
4. 実例
- ステーブルコイン:USDT, USDC, DAI
- ガバナンストークン:UNI(Uniswap), COMP(Compound)
- ユーティリティトークン:LINK(Chainlink)
5. 注意点
- セキュリティリスク:approve の使い方を誤ると資産流出リスクがある
- 規格外拡張:ERC-777 や ERC-1155 など新しい規格も登場している
- ガス代:送金や承認は ETH でガスを支払う必要がある
まとめ
ERC-20 は Ethereum のトークン標準規格で、互換性と流通を支える基礎。
最低限の関数とイベントを備えたスマートコントラクトで実装され、DeFiやICOの基盤となっている。