イーサリアム(ETH)のトークン標準ERC-20とERC-721の違いを解説!
イーサリアムは、スマートコントラクトを実行できる分散型プラットフォームとして、ブロックチェーン技術の可能性を広げています。その上で、イーサリアム上でトークンを発行するための標準規格として、ERC-20とERC-721が広く利用されています。これらの規格は、トークンの作成、管理、取引を容易にし、相互運用性を高める役割を果たしています。本稿では、ERC-20とERC-721の違いについて、技術的な側面から詳細に解説します。
ERC-20とは?
ERC-20は、イーサリアム上で交換可能な(fungible)トークンを作成するための標準規格です。交換可能とは、トークン同士が同一の価値を持ち、区別がつかないことを意味します。例えば、1ETHは他の1ETHと全く同じ価値を持ちます。ERC-20規格に準拠したトークンは、以下の主要な機能を備えています。
- Total Supply (総供給量): トークンの総発行数を定義します。
- BalanceOf (残高照会): 特定のアドレスが保有するトークンの残高を照会します。
- Transfer (送金): トークンを別の住所に送金します。
- Approve (承認): スマートコントラクトが特定の住所からトークンを引き出すことを承認します。
- Allowance (承認残高照会): 特定の住所が引き出すことができるトークンの残高を照会します。
これらの機能は、ERC-20規格で定義されたインターフェースを通じて提供されます。ERC-20トークンは、主に暗号資産やユーティリティトークンとして利用され、取引所での取引や、DeFi(分散型金融)アプリケーションでの利用に適しています。
ERC-721とは?
ERC-721は、イーサリアム上で代替不可能な(non-fungible)トークンを作成するための標準規格です。代替不可能とは、トークン同士がそれぞれ固有の価値を持ち、区別されることを意味します。例えば、デジタルアート作品やゲームアイテムは、それぞれ固有のIDを持ち、他のものと交換することはできません。ERC-721規格に準拠したトークンは、以下の主要な機能を備えています。
- Token ID (トークンID): 各トークンに割り当てられる固有の識別子です。
- OwnerOf (所有者照会): 特定のトークンの所有者を照会します。
- TransferFrom (送金): トークンを別の住所に送金します。
- Approve (承認): スマートコントラクトが特定の住所からトークンを引き出すことを承認します。
- GetApproved (承認者照会): 特定のトークンを引き出すことができる承認者を照会します。
ERC-721トークンは、主にNFT(Non-Fungible Token)として知られ、デジタルアート、コレクティブル、ゲームアイテム、不動産などの所有権を表現するために利用されます。NFTは、デジタル資産の真正性を保証し、所有権の移転を容易にするという点で、大きな可能性を秘めています。
ERC-20とERC-721の主な違い
ERC-20とERC-721の最も大きな違いは、トークンの交換可能性です。ERC-20トークンは交換可能であり、ERC-721トークンは代替不可能です。この違いは、トークンの用途や設計に大きな影響を与えます。
| 特徴 | ERC-20 | ERC-721 |
|---|---|---|
| 交換可能性 | 交換可能 | 代替不可能 |
| トークンID | なし | あり |
| 用途 | 暗号資産、ユーティリティトークン | NFT、デジタルアート、コレクティブル |
| 代表的な例 | Chainlink (LINK), Uniswap (UNI) | CryptoPunks, Bored Ape Yacht Club |
さらに、ERC-20トークンは、通常、大量に発行され、取引所での取引を前提として設計されます。一方、ERC-721トークンは、通常、限定的な数で発行され、個々のトークンの価値を重視します。ERC-721トークンは、所有権の証明やデジタル資産の真正性保証に重点が置かれています。
ERC-20とERC-721の技術的な詳細
ERC-20とERC-721は、どちらもスマートコントラクトとして実装されます。スマートコントラクトは、ブロックチェーン上で実行されるプログラムであり、事前に定義されたルールに従って自動的に処理を実行します。ERC-20とERC-721のスマートコントラクトは、それぞれ定義されたインターフェースを実装し、トークンの機能を提供します。
ERC-20のスマートコントラクトは、通常、トークンの総供給量、残高、送金などの機能を実装します。これらの機能は、Solidityなどのプログラミング言語を使用して記述され、イーサリアム仮想マシン(EVM)上で実行されます。ERC-20のスマートコントラクトは、比較的単純な構造を持ち、実装も容易です。
ERC-721のスマートコントラクトは、ERC-20よりも複雑な構造を持ちます。なぜなら、ERC-721は、各トークンに固有のIDを割り当てる必要があり、所有権の管理やトークンのメタデータ(説明文、画像など)の管理も行う必要があるからです。ERC-721のスマートコントラクトは、通常、トークンID、所有者、メタデータなどの情報を格納するためのデータ構造を持ちます。また、ERC-721のスマートコントラクトは、トークンの送金や承認などの機能を実装するだけでなく、トークンのメタデータの更新や、トークンに関連するイベントの発行も行う必要があります。
ERC-20とERC-721の応用例
ERC-20とERC-721は、様々な分野で応用されています。ERC-20は、主に暗号資産やユーティリティトークンとして利用され、DeFiアプリケーションでの利用が拡大しています。例えば、Uniswapなどの分散型取引所では、ERC-20トークンを取引することができます。また、CompoundやAaveなどのレンディングプラットフォームでは、ERC-20トークンを担保として貸し借りすることができます。
ERC-721は、主にNFTとして利用され、デジタルアート、コレクティブル、ゲームアイテムなどの分野で注目を集めています。例えば、OpenSeaなどのNFTマーケットプレイスでは、ERC-721トークンを売買することができます。また、ゲーム開発者は、ERC-721トークンをゲームアイテムとして発行し、プレイヤーに所有権を与えることができます。さらに、不動産会社は、ERC-721トークンを不動産の所有権を表現するために利用することができます。
今後の展望
ERC-20とERC-721は、イーサリアム上でトークンを発行するための標準規格として、今後も重要な役割を果たしていくと考えられます。特に、NFT市場の拡大に伴い、ERC-721の利用はさらに増加すると予想されます。また、ERC-20とERC-721の機能を組み合わせた新しいトークン規格も登場しており、トークンの可能性はさらに広がっています。
例えば、ERC-1155は、ERC-20とERC-721の機能を組み合わせた規格であり、交換可能なトークンと代替不可能なトークンを同時に扱うことができます。ERC-1155は、ゲームアイテムやコレクティブルなど、複数の種類のトークンを効率的に管理するために利用されます。
また、イーサリアムのアップデートにより、スケーラビリティの問題が解決されれば、ERC-20とERC-721の利用はさらに拡大すると考えられます。イーサリアム2.0では、プルーフ・オブ・ステーク(PoS)コンセンサスアルゴリズムが導入され、トランザクション処理能力が大幅に向上することが期待されています。
まとめ
本稿では、イーサリアムのトークン標準であるERC-20とERC-721の違いについて、技術的な側面から詳細に解説しました。ERC-20は交換可能なトークンを作成するための規格であり、ERC-721は代替不可能なトークンを作成するための規格です。これらの規格は、トークンの作成、管理、取引を容易にし、相互運用性を高める役割を果たしています。ERC-20とERC-721は、それぞれ異なる用途に適しており、今後のブロックチェーン技術の発展において、重要な役割を果たしていくと考えられます。