イーサリアムのトークン規格ERC-20とERC-721の違い
イーサリアムは、スマートコントラクトを実行できる分散型プラットフォームであり、様々なトークンを発行・管理するための基盤を提供しています。その中でも、ERC-20とERC-721は、最も広く利用されているトークン規格です。本稿では、これらの規格の違いについて、技術的な側面から詳細に解説します。
ERC-20規格について
ERC-20は、イーサリアム上で交換可能な(fungible)トークンを作成するための標準規格です。交換可能とは、各トークンが同一の価値を持ち、互いに代替可能なことを意味します。例えば、1イーサリアム(ETH)は、他の1イーサリアムと全く同じ価値を持ちます。ERC-20規格は、トークンの発行、譲渡、残高確認などの基本的な機能を定義しており、多くの暗号資産やユーティリティトークンがこの規格に基づいて発行されています。
ERC-20規格の主要な機能
- totalSupply: トークンの総発行量を返します。
- balanceOf: 特定のアドレスが保有するトークンの残高を返します。
- transfer: 特定のアドレスにトークンを譲渡します。
- approve: 特定のアドレスが、自身のトークンを特定の金額まで使用することを許可します。
- allowance: 特定のアドレスが、自身のトークンをどれだけの金額まで使用できるかを返します。
- transferFrom: 特定のアドレスから、自身のトークンを譲渡します。
これらの機能は、スマートコントラクトを通じて実装され、トークンの管理を自動化します。ERC-20規格に準拠することで、様々なウォレットや取引所との互換性が確保され、トークンの流通が促進されます。
ERC-721規格について
ERC-721は、イーサリアム上で非交換可能な(non-fungible)トークンを作成するための標準規格です。非交換可能とは、各トークンが固有の価値を持ち、互いに代替不可能なことを意味します。例えば、デジタルアート作品やゲームアイテムなどが該当します。ERC-721規格は、各トークンに一意の識別子(ID)を付与し、そのIDに基づいてトークンの所有権を管理します。これにより、デジタル資産の真正性や希少性を保証することができます。
ERC-721規格の主要な機能
- balanceOf: 特定のアドレスが保有するトークンの数を返します。
- ownerOf: 特定のトークンの所有者アドレスを返します。
- transferFrom: 特定のアドレスから、特定のトークンを譲渡します。
- approve: 特定のアドレスが、特定のトークンを譲渡することを許可します。
- getApproved: 特定のトークンを譲渡する許可を与えられたアドレスを返します。
- setApprovalForAll: 特定のアドレスが、自身の全てのトークンを譲渡することを許可します。
- isApprovedForAll: 特定のアドレスが、自身の全てのトークンを譲渡する許可を与えられているかどうかを返します。
ERC-721規格は、NFT(Non-Fungible Token)と呼ばれるデジタル資産の作成に広く利用されています。NFTは、デジタルアート、ゲームアイテム、コレクティブルなど、様々な分野で活用されており、新たな経済圏を創出しています。
ERC-20とERC-721の主な違い
ERC-20とERC-721の最も大きな違いは、トークンの交換可能性です。ERC-20トークンは交換可能であり、各トークンが同一の価値を持ちます。一方、ERC-721トークンは非交換可能であり、各トークンが固有の価値を持ちます。この違いは、トークンの用途に大きく影響します。
| 特徴 | ERC-20 | ERC-721 |
|---|---|---|
| 交換可能性 | 交換可能 | 非交換可能 |
| トークンID | なし | あり(一意) |
| 用途 | 暗号資産、ユーティリティトークン | デジタルアート、ゲームアイテム、コレクティブル |
| 分割可能性 | 可能(通常は小数点以下の桁数まで) | 不可能(通常は1トークン単位) |
また、ERC-20トークンは、通常、小数点以下の桁数まで分割可能です。例えば、1 ETHを0.1 ETHに分割することができます。一方、ERC-721トークンは、通常、1トークン単位でしか譲渡できません。これは、各トークンが固有の価値を持つため、分割するとその価値が失われてしまうためです。
ERC-721の派生規格
ERC-721規格は、NFTの普及に伴い、様々な派生規格が開発されています。その中でも、ERC-1155は、ERC-20とERC-721の機能を組み合わせた規格であり、複数の種類のトークンを効率的に管理することができます。ERC-1155は、ゲームアイテムやメタバースなどの分野で活用されており、NFTの応用範囲を広げています。
ERC-1155規格の特徴
- 複数の種類のトークンを1つのコントラクトで管理可能
- ERC-20とERC-721の両方の機能をサポート
- ガス代の削減
- 効率的なトークン管理
ERC-20とERC-721のセキュリティに関する考慮事項
ERC-20とERC-721トークンを開発する際には、セキュリティに関する十分な考慮が必要です。スマートコントラクトの脆弱性を悪用されると、トークンが盗まれたり、不正な取引が行われたりする可能性があります。そのため、コントラクトのコードレビューや監査を実施し、セキュリティ上のリスクを最小限に抑える必要があります。
セキュリティ対策の例
- コントラクトのコードレビュー
- 第三者機関による監査
- アクセス制御の強化
- 入力値の検証
- 再入攻撃対策
まとめ
ERC-20とERC-721は、イーサリアム上でトークンを発行・管理するための重要な規格です。ERC-20は交換可能なトークンに適しており、ERC-721は非交換可能なトークンに適しています。それぞれの規格の特徴を理解し、用途に応じて適切な規格を選択することが重要です。また、トークンを開発する際には、セキュリティに関する十分な考慮が必要です。これらの点を踏まえることで、安全で信頼性の高いトークンエコシステムを構築することができます。