ERC-20はイーサリアムブロックチェーンで代替可能なトークンを発行するための標準インターフェースです。USDT、LINK、UNIなど数万種のトークンがこの標準を基盤にしており、DeFiエコシステムの核心技術です。
1. ERC-20とは何か?
ERC-20はEthereum Request for Comments #20の略で、2015年11月にFabian VogelstellerとVitalik Buterinが提案したトークン標準(EIP-20)です。この標準が登場する前は各トークンが異なるインターフェースを使用していたため、取引所やウォレットで新しいトークンをサポートするには個別の統合作業が必要でした。
1.2 代替可能トークンの概念
- ERC-20:通貨、ユーティリティトークン、ガバナンストークン(例:USDT、UNI、AAVE)
- ERC-721:デジタルアート、ゲームアイテム、証明書(例:CryptoPunks、BAYC)
- ERC-1155:代替可能トークンと代替不可能トークンを1つのコントラクトで管理
2. Solidity実装
本番環境では独自実装ではなく、数千回の監査を経たOpenZeppelinライブラリを使用することが標準的な慣行です。
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract FitToken is ERC20, Ownable {
constructor() ERC20("Fit Token", "FIT") Ownable(msg.sender) {
_mint(msg.sender, 100_000_000 * 10**18);
}
}
3. セキュリティ監査
確認が必要な主な脆弱性:再入攻撃(Re-entrancy)、整数オーバーフロー/アンダーフロー、approveのレースコンディションによるフロントランニング、無限承認のリスク。