イーサリアム(ETH)で使われるトークン標準ERC-20とERC-721の違い
イーサリアムは、スマートコントラクトを実行できる分散型プラットフォームであり、様々なトークンを発行・管理するための基盤を提供しています。その中でも、ERC-20とERC-721は、最も広く利用されているトークン標準です。本稿では、これらの標準の違いについて、技術的な側面を含めて詳細に解説します。
1. トークン標準とは
トークン標準とは、イーサリアム上でトークンを作成する際に従うべき共通のルールセットです。これにより、異なるトークンが互換性を持ち、ウォレットや取引所などのアプリケーションで容易に扱えるようになります。標準化されたインターフェースを持つことで、開発者は特定のトークンに依存することなく、汎用的なアプリケーションを構築できます。
2. ERC-20トークン
2.1 ERC-20トークンの特徴
ERC-20は、ファングジブル(fungible)トークン、つまり代替可能なトークンを定義するための標準です。これは、各トークンが他のトークンと区別がつかないことを意味します。例えば、1ETHは他の1ETHと全く同じ価値を持ち、交換可能です。ERC-20トークンは、主に以下の特徴を持ちます。
- 代替可能性: 各トークンは同一であり、交換可能です。
- 分割可能性: トークンは細かく分割できます(例:0.5 ETH)。
- 総供給量: トークンの総発行枚数は事前に定義されます。
2.2 ERC-20トークンの主要な関数
ERC-20標準では、以下の主要な関数が定義されています。
- totalSupply(): トークンの総発行枚数を返します。
- balanceOf(address _owner): 特定のアドレスが保有するトークンの枚数を返します。
- transfer(address _to, uint256 _value): トークンを別の宛先アドレスに送信します。
- approve(address _spender, uint256 _value): 特定のアドレス(spender)に、自身のトークンを一定量まで使用する許可を与えます。
- allowance(address _owner, address _spender): 特定のアドレス(owner)が、別の宛先アドレス(spender)に対して許可しているトークンの使用量を返します。
- transferFrom(address _from, address _to, uint256 _value): 他のアドレス(from)からトークンを別の宛先アドレス(to)に送信します(approve関数で許可されている必要があります)。
2.3 ERC-20トークンの用途
ERC-20トークンは、様々な用途に利用されています。
- ユーティリティトークン: 特定のプラットフォームやサービスを利用するための権利を表します。
- セキュリティトークン: 企業の株式や債券などの金融商品をトークン化します。
- ステーブルコイン: 法定通貨や他の資産に価値を固定したトークンです。
3. ERC-721トークン
3.1 ERC-721トークンの特徴
ERC-721は、ノンファンジブル(non-fungible)トークン、つまり非代替可能なトークンを定義するための標準です。これは、各トークンが固有の識別子を持ち、他のトークンと区別されることを意味します。例えば、デジタルアート作品やゲーム内のアイテムなどが該当します。ERC-721トークンは、主に以下の特徴を持ちます。
- 非代替可能性: 各トークンは固有であり、交換できません。
- 固有の識別子: 各トークンはユニークなIDを持ちます。
- 所有権: トークンの所有権は明確に定義されます。
3.2 ERC-721トークンの主要な関数
ERC-721標準では、以下の主要な関数が定義されています。
- balanceOf(address _owner): 特定のアドレスが保有するトークンの枚数を返します。
- ownerOf(uint256 _tokenId): 特定のトークンIDの所有者アドレスを返します。
- transferFrom(address _from, address _to, uint256 _tokenId): トークンを別の宛先アドレスに送信します。
- approve(address _approved, uint256 _tokenId): 特定のアドレスに、自身のトークンを使用する許可を与えます。
- getApproved(uint256 _tokenId): 特定のトークンIDに対して承認されているアドレスを返します。
3.3 ERC-721トークンの用途
ERC-721トークンは、主に以下の用途に利用されています。
- デジタルアート: デジタルアート作品の所有権を証明します(NFT)。
- ゲームアイテム: ゲーム内のアイテムの所有権を証明します(NFT)。
- コレクティブル: トレーディングカードや限定版アイテムなどの所有権を証明します(NFT)。
- 不動産: 不動産の所有権をトークン化します。
4. ERC-20とERC-721の比較
以下の表に、ERC-20とERC-721の主な違いをまとめます。
| 特徴 | ERC-20 | ERC-721 |
|---|---|---|
| 代替可能性 | 代替可能 | 非代替可能 |
| 分割可能性 | 分割可能 | 分割不可能 |
| 固有の識別子 | なし | あり |
| 主な用途 | ユーティリティトークン、セキュリティトークン、ステーブルコイン | デジタルアート、ゲームアイテム、コレクティブル |
5. その他のトークン標準
ERC-20とERC-721以外にも、様々なトークン標準が存在します。例えば、ERC-1155は、ファンジブルトークンとノンファンジブルトークンを組み合わせた標準であり、複数の種類のトークンを1つのコントラクトで管理できます。また、ERC-165は、コントラクトが特定のインターフェースを実装しているかどうかを判断するための標準です。
6. まとめ
ERC-20とERC-721は、イーサリアム上でトークンを作成するための重要な標準です。ERC-20は、代替可能なトークンを定義し、主にユーティリティトークンやセキュリティトークンなどに利用されます。一方、ERC-721は、非代替可能なトークンを定義し、主にデジタルアートやゲームアイテムなどの固有の資産を表現するために利用されます。これらの標準を理解することで、イーサリアムエコシステムにおけるトークンの多様性と可能性をより深く理解することができます。トークン標準の選択は、トークンの用途や目的に応じて慎重に行う必要があります。