ERC-20標準とは何ですか?それは何を定義していますか?
はい、承知いたしました。これは非常に重要な概念なので、ざっくりとわかりやすい言葉で解説します。
ERC-20標準とは何か?それが定義するもの
いい質問ですね。これはイーサリアムの世界に足を踏み入れる上で、必ず知っておくべき概念です。
ERC-20は、「トークンの共通インターフェース」、あるいは**「トークン製造マニュアル」**のようなものだと想像してみてください。
ERC-20が登場する前は、誰もがイーサリアム上で独自のトークンを作成できました。しかし問題は、トークンを作成する方法、機能名、コードロジックが多種多様でバラバラだったことです。これは大きな問題を引き起こしました。
まるで、すべての電化製品が独自のプラグを持っているようなものです。自宅にたくさんの変換アダプターを用意しなければならず、非常に面倒でした。
デジタルウォレット(MetaMaskなど)や取引所(Uniswapなど)にとって、新しいトークンをサポートしようとすると、そのトークン専用の新しいコードを書いて連携させる必要がありました。この作業量は膨大で、まさに災難だったのです。
その時、ERC-20が登場して、「もう勝手なことはやめよう。今後、イーサリアムで発行されるトークンは、すべてこの基本的な機能を備え、機能名やパラメータも私のルールに従うこと。」と言いました。
こうすることで、ERC-20標準に則って作られたすべてのトークンは、統一されたUSB-Cインターフェースを使っているかのようになりました。ウォレットや取引所は一度開発するだけで、この標準に準拠するすべてのトークンをサポートできるようになったのです。
ERC-20は具体的にどんな「ルール」を定義しているのか?
この「マニュアル」は、すべてのトークンが備えるべきコア機能のセットを規定しています。コードレベルでは複雑に見えるかもしれませんが、機能面から理解すると非常にシンプルで、主に誰もが最も関心を持つ以下の事柄が定義されています。
-
totalSupply()
- トークンの総供給量はいくつ?- この機能は、このトークンが全部で何個発行されたかを照会するために使われます。例えば、あるトークンの総量が1億個である、といった情報です。
-
balanceOf(address)
- 誰がどれくらいのトークンを持っているか?- この機能は、特定のウォレットアドレスにこのトークンがどれくらいあるかを照会するために使われます。例えば、「私のウォレット」にいくらUSDTがあるかを確認する、といった具合です。
-
transfer(to, amount)
- あなたに送金します- これは最も基本的な機能で、自分のアカウントから指定された数量のトークンを相手のアカウントに送金します。
-
approve(spender, amount)
- あなた(または特定のアプリケーション)が私の資金を使うことを承認します- これは少し特殊で、非常に重要な機能です。これは直接送金するのではなく、私が別のアドレス(例えば分散型取引所のスマートコントラクト)に対して、私の口座から指定された数量のトークンを移動させることを承認する機能です。
- 例を挙げると:UniswapでAトークンをBトークンに交換したい場合、まずUniswapのコントラクトがあなたのウォレットから売りたいAトークンを取り出せるように、
approve
(承認)する必要があります。これは、あなたが子供に100円の限度額がある銀行の追加カードを渡し、子供はその100円の範囲内で使えるが、親のメインカードにある他の資金には触れられない、というようなものです。
-
transferFrom(from, to, amount)
- 承認された送金を実行する- 上記の「承認」に続いて、承認されたアドレス(Uniswapのコントラクトなど)が実際に交換操作を実行する際に、この機能を呼び出して、トークンをあなたのアカウントから必要な場所に移動させます。
-
allowance(owner, spender)
- 承認された限度額はあとどれくらい残っているか?- これは、あなたが特定のアドレスにどれくらいの金額を承認しているかを照会するために使われます。例えば、あなたの子供の追加カードであといくら使えるかを確認する、といった具合です。
なぜこの標準はこれほど重要なのか?
簡単に言えば、互換性と相互運用性があるからです。
ERC-20という統一された標準があることで:
- ウォレットの互換性:MetaMaskやその他のイーサリアムウォレットは、何万種類もの異なるERC-20トークンのために個別に機能を開発する必要がありません。トークンがERC-20標準に準拠していれば、ウォレットはそれを自動的に認識し、残高を表示し、送金を行うことができます。
- 取引所の利便性:分散型取引所(Uniswapなど)や中央集権型取引所(Binanceなど)は、新しいERC-20トークンを非常に簡単に上場させることができます。なぜなら、やり取りの方法がすべて同じであるため、開発コストと連携コストが大幅に削減されるからです。
- DApps (分散型アプリケーション) の構成可能性:様々なDeFiアプリケーション(レンディング、資産運用など)は、あらゆるERC-20トークンをシームレスに統合でき、ユーザーは多様な資産でやり取りができます。これはレゴブロックのように、自由に組み合わせて無限の可能性を生み出すことができます。
まとめ
したがって、ERC-20は本質的に、イーサリアムブロックチェーン上の**「ファンジブルトークン」のコントラクト標準**です。「ファンジブル(同質性)」とは、各トークン間に違いがないことを意味します。私が持っているUSDTとあなたが持っているUSDTはまったく同じで、互換性があります。
これはソフトウェアでも企業でもなく、誰もが遵守することに同意した公開の技術仕様です。この統一された仕様があったからこそ、私たちが後に目にするような繁栄したDeFiや様々なトークンエコシステムが誕生したのです。