目次

  • 導入

  • ERC-20規格とは何ですか?

  • イーサリアムトークンの概要

  • ERC-20 トークンはどのように生成されますか?

  • ERC-20にはどのような機能があるのですか?

    • ステーブルコイン

    • セキュリティトークン

    • ユーティリティトークン

  • ERC-20トークンマイニングに参加できますか?

  • ERC-20 トークンの長所と短所

    • ERC-20トークンの利点

    • ERC-20 トークンの欠点

  • ERC-20、ERC-1155、ERC-223、ERC-721の違いは何ですか?

  • 要約する


導入

イーサリアムは2014年にヴィタリック・ブテリンによって設立され、分散型アプリケーション(DApps)を起動するためのオープンソースプラットフォームとして位置付けられています。ブテリン氏がこの新しいブロックチェーンを作成しようとした動機は、主にビットコイン プロトコルの柔軟性の欠如に起因していました。

イーサリアム ブロックチェーンはその誕生以来、多くの開発者、企業、起業家を魅了し、ユーザー起動のスマート コントラクトと分散型アプリケーションの新興産業を生み出しました。

この記事では、トークンを作成するための重要なフレームワークである ERC-20 標準について見ていきます。これはイーサリアム ネットワークにのみ適用されますが、Binance Chain の BEP-2 などの他のブロックチェーン標準のインスピレーションとなっています。


ERC-20規格とは何ですか?

イーサリアムでは、ERC の正式名称は Ethereum Request for Comments、つまりイーサリアム コメント リクエストです。これらの技術文書は、イーサリアムのプログラミング標準の概要を示しています。これを、ビットコインの BIP に似たプロトコル自体の改善提案であるイーサリアム改善提案 (EIP) と混同しないでください。 ERC の目標は、アプリケーションとコントラクト間の対話を容易にするプロトコルを確立することです。

2015 年に Vitalik Buterin と Fabian Vogelsteller によって開発および記述された ERC-20 は、イーサリアム ベースのトークンの別の比較的単純な形式を提案しています。概要に従っている限り、開発者は車輪を再発明する必要はなく、業界全体で起こっていることに直接基づいて構築することができます。

新しい ERC-20 トークンが作成されると、ERC-20 標準をサポートするサービスおよびソフトウェア (ソフトウェア ウォレット、ハードウェア ウォレット、取引プラットフォームなど) と自動的に相互運用されます。

ERC-20 標準は EIP (具体的には EIP-20) に進化したことに注意することが重要です。この時点では、当初の広く流布された提案から数年が経過していましたが、数年が経過しても「ERC-20」という名前は残りました。


イーサリアムトークンの概要

ETH (イーサリアムのネイティブ暗号通貨) とは異なり、ERC-20 トークンはアカウントに入金されず、独立したデータベースのようにコントラクト内にのみ存在します。トークンのルール (つまり、名前、シンボル、分割可能性) を指定し、ユーザーの残高をマッピングするイーサリアム アドレスのリストを維持します。

トークンを転送するには、ユーザーはトランザクションをスマート コントラクトに送信し、残高の一部を他の場所に割り当てるようにコントラクトに要求する必要があります。たとえば、アリスが 5,000 バイナンス アカデミー トークンをボブに送信したい場合、対応するスマート コントラクト内の関数を呼び出して命令を実行します。


Users interacting with a smart contract


彼女の通話には、一見通常のイーサリアム トランザクションが含まれており、トークン コントラクトに対して 0 ETH が支払われました。この呼び出しはトランザクションの他のフィールドに含まれており、アリスの意図を指定します。この場合、アリスはトークンをボブに転送したいと考えています。

イーサを送信しなくても、トランザクションをブロックに追加するには、指定された料金を支払わなければなりません。 ETH をお持ちでない場合は、トークンを転送する前に ETH を事前にデポジットする必要があります。

以下は Etherscan での実際の例です。誰かが BUSD コントラクトを呼び出します。トークンが転送され、手数料が支払われたことがわかりますが、値フィールドには 0 ETH が送信されたことが示されています。

次に、ペースを上げて、典型的な ERC-20 契約構造を詳しく見ていきます。


ERC-20 トークンはどのように生成されますか?


Illustration of an ERC-20 token being created


ERC-20 標準によれば、契約では totalSupply、balanceOf、transfer、transferFrom、approve、allowance の 6 つの必須関数を設定する必要があります。さらに、名前、記号、10 進数などのオプションの関数を指定できます。関数の機能は名前から理解できます。以下で 1 つずつ分析していきますのでご安心ください。

以下は、イーサリアム固有の Solidity 言語を介して提供される機能です。


総供給量

関数 totalSupply() パブリックビューは (uint256) を返します。

ユーザーが上記の関数を呼び出した後、コントラクトによって保持されているトークンの総供給量が返されます。


バランス

関数balanceOf(address _owner) パブリックビューは (uint256 balance) を返します。

totalSupply とは異なり、balanceOf はパラメータとしてアドレスを使用します。呼び出し後、システムはアドレスのトークン保持残高を返します。イーサリアム ネットワーク内のアカウントは公開されており、透過的であることを忘れないでください。住所さえわかれば、どのユーザーでも残高を確認できます。


移行

関数 transfer(address _to, uint256 _value) public は (bool success) を返します。

転送機能は、ユーザーが相互にトークンを転送できるようにします。トークンの受信アドレスと送金金額を指定する必要があります。

transfer が呼び出されると、イベント (この場合は「transfer」イベント) が起動されます。その基本機能は、ブロックチェーンにこの関数への参照を含めるよう指示することです。


からの転送

関数 transferFrom(address _from, address _to, uint256 _value) public は (bool success) を返します。

transferFrom 関数は、transfer 関数の便利な代替手段であり、分散アプリケーションのプログラマビリティを効果的に向上させます。転送関数と同様に、トークンを移動するために使用されますが、これらのトークンはコントラクトを呼び出すユーザーに属しているとは限りません。

言い換えれば、あなたは他の人または別の契約者に、あなたに代わって資金を移動する権限を与えることができます。たとえば、サブスクリプション サービスの料金を日次、週次、月次ベースで手動で支払いたくない場合は、プログラムに処理を任せることができます。

この関数によってトリガーされるイベントは転送と同じです。


承認する

関数はapprove(address _spender, uint256 _value) publicで、(bool success)を返します。

プログラミングの観点から見ると、approve は、スマート コントラクトが残高から引き出すことができるトークンの数を制限する、もう 1 つの非常に便利な機能です。これがないと、実行中の契約が無効になり(または悪用され)、すべての資金が盗まれる危険にさらされる可能性があります。

もう一度、サブスクリプション モデルを例に挙げます。あなたが大量の Binance Academy トークンを保有しており、ストリーミング DApp に対して定期的な毎週の支払いを設定したいとします。私は Binance Academy の記事を読むのに忙しすぎて、毎週手動でトレードを作成する時間を費やすことができません。

保有されているバイナンス アカデミー トークンの多額の残高は、サブスクリプションの支払いに必要な料金をはるかに超えています。 DApp がすべての資産を支払わないようにするには、承認を使用して制限を設定します。サブスクリプションの費用が 1 週間あたり 1 Binance Academy トークンであると仮定すると、承認制限が 20 トークンの場合、サブスクリプションは 5 か月にわたって自動的に支払われます。

プログラムが失敗し、DApp がすべての資金を引き出そうとした場合でも、失うのは最大 20 トークンだけです。トークンを失うことは動揺しますが、すべての資産を失うよりははるかに良い結果が得られます。

この関数を呼び出した後、approve は転送関数と同様に承認イベントをトリガーし、データをブロックチェーンに書き込みます。


手当

関数 allowance(address _owner, address _spender) パブリックビューは (uint256 残り) を返します。

許可は承認と組み合わせて使用​​できます。コントラクトにトークン管理権限が付与されている場合は、コントラクトを通じてトークンの出金可能残高を確認できます。たとえば、サブスクリプション サービスが 20 個の承認されたトークンのうち 12 個を使用すると仮定すると、allow 関数を呼び出すと合計 8 個のトークンが返されます。


その他のオプション機能

上記で説明したものはすべて必須の機能です。一方、名前、記号、および 10 進数はオプションの機能ですが、ERC-20 をより完全なものにすることができます。これらの関数はそれぞれ、人間が判読できる名前の追加、シンボル (ETH、BTC、BNB など) の設定、トークンを分割できる小数点以下の桁数の指定をサポートします。たとえば、通貨として使用されるトークンは、財産の所有権を表すために使用されるトークンよりも分割可能であるため、より有益です。


これらの要素が実際のコントラクトでどのように見えるかを確認するには、GitHub のこの例を確認してください。


ERC-20にはどのような機能があるのですか?


Illustration of various uses of ERC-20 tokens


上記の機能をすべてまとめると、ERC-20 契約が得られます。私たちは総供給量を照会し、残高を表示し、資金を送金し、他の DApps に私たちに代わってトークンを管理する権限を与えることができます。

ERC-20 トークンの柔軟性は大きな利点です。確立された契約は開発を制限するものではなく、各当事者は必要に応じて他の機能を起動したり、特定のパラメーターを設定したりできます。


ステーブルコイン

ステーブルコイン (法定通貨に固定されたトークン) は通常、ERC-20 トークン標準を使用します。上記のBUSD契約取引は典型的な例であり、ほとんどのステーブルコインもこの形式を使用しています。

主流の法定通貨に裏付けされたステーブルコインの場合、発行者はユーロや米ドルなどで準備金を保有し、準備金内の単位ごとにトークンを発行できます。これは、10,000 ドルがボールトに入金された場合、発行者は 1 ドルの価値を持つ 10,000 個のトークンを作成できることを意味します。

技術的な観点から見ると、イーサリアムでの実装は簡単です。発行者は単純に 10,000 トークンの契約を開始し、そのトークンをユーザーに配布し、将来的にそのトークンを一定割合の法定通貨と交換できることを約束します。

ユーザーはトークンを使用して、商品やサービスの購入、DApps への申し込みなど、さまざまなアクションを実行できます。あるいは、発行者にこれらのトークンを直ちに引き換えるよう要求することもできます。この場合、発行者は返されたトークンを破棄し(期限切れにし)、リザーブから同額の法定通貨を引き出すこともできます。

前述したように、このシステムを管理する契約は比較的単純です。ただし、ステーブルコインを開始するには、他の多くの外部要因 (物流、コンプライアンスなど) に注意し、多大な労力を費やす必要があります。


セキュリティトークン

セキュリティ トークンはステーブルコインに似ており、どちらも同じように動作するため、契約レベルで完全に同一であることもあります。違いは発行者にあります。セキュリティ トークンは株式、債券、実物資産などの有価証券を表します。常にではありませんが、通常、所有者に事業または商品の株式を付与します。


ユーティリティトークン

ユーティリティ トークンは、おそらく現在最も一般的なタイプのトークンです。前の 2 つのトークンとは異なり、ユーティリティ トークンは実物資産によって裏付けられていません。航空会社の株式が資産担保トークンを表す場合、ユーティリティ トークンはマイレージ プログラムのようなものです。これらにはある程度の機能がありますが、外部の価値はありません。ユーティリティ トークンは、ゲーム内通貨、分散型アプリケーションの燃料、ロイヤルティ ポイントとしての使用など、さまざまなニーズに対応できます。


➠ 暗号通貨の旅を始めてみませんか?イーサリアムを購入するためにバイナンスへようこそ!


ERC-20トークンマイニングに参加できますか?

イーサリアム (ETH) マイニングに参加することはできますが、トークンをマイニングすることはできません。新しいトークンの作成をミントと呼びます。契約が開始されると、開発者は計画とロードマップに従って供給を割り当てます。

これは通常、Initial Coin Offering (ICO)、Initial Exchange Offering (IEO)、または Security Token Offering (STO) を通じて行われます。これらの頭字語にはいくつかのバリエーションがあるかもしれませんが、概念は非常に似ています。投資家は契約アドレスにイーサを送信し、代わりに新しいトークンを受け取ります。集まった資金は、今後のプロジェクトの開発資金として使用されます。ユーザーは、自分のトークンを (即時または後で) 使用したり、プロジェクトが成長するにつれて利益を得て再​​販したりできることを期待します。

トークンの発行は必ずしも自動化されているわけではありません。多くのクラウドファンディング キャンペーンでは、ユーザーがさまざまなデジタル通貨 (BNB、BTC、ETH、USDT など) を使用して支払いを完了し、対応する残高をユーザーが指定したアドレスに配布することがサポートされています。


ERC-20 トークンの長所と短所

ERC-20トークンの利点

互換性

ERC-20 トークンは代替可能であり、すべてのユニットを相互に交換できます。 Binance Academy トークンに関しては、どの特定のコインを保有しているかに関係なく、同じです。他の人と取引することもでき、トークンは現金や金と同じように機能します。

あなたが保有するトークンが何らかの通貨に発展することを望んでいる場合、これは理想的です。明確な特性を持つトークンは代替可能性を失い、要件を満たさなくなります。これにより、特定のトークンの価値が同様のトークンよりも低くなったり、高くなったりして、本来の目的が果たせなくなる可能性があります。


フレキシブル

前の章で説明したように、ERC-20 トークンは非常にカスタマイズ可能であり、さまざまなアプリケーションに合わせてソリューションを調整できます。例としては、ゲーム内通貨、プログラムのロイヤルティ ポイント、デジタル コレクションとしての使用、さらには芸術作品や財産の所有権の表現などがあります。


非常に人気のある

ERC-20は暗号通貨分野で人気を集めており、それをベースにした青写真は非常に説得力があります。多数の取引所、ウォレット、スマート コントラクトが、新たに開始されたさまざまなトークンと互換性を持つようになりました。さらに、開発者のサポートとドキュメントは非常に包括的です。


ERC-20 トークンの欠点

スケーラビリティが低い

これは多くの暗号通貨ネットワークに共通する問題であり、イーサリアムもこの問題を免れないわけではありません。現在の形式では、うまく拡張できません。ピーク時にトランザクションを送信すると、高額な手数料と長い遅延が発生します。 ERC-20 トークンが使用されてネットワークの輻輳が発生した場合、その可用性も影響を受けます。

これはイーサリアムに特有の問題ではなく、すべての安全な分散システムが考慮しなければならないトレードオフです。コミュニティは、イーサリアム 2.0 への移行後にこれらの問題を解決し、イーサリアム プラズマやイーサリアム キャスパーなどのアップグレードを実装することを計画しています。

スケーラビリティの問題の詳細については、「ブロックチェーンのスケーラビリティ: サイドチェーンと支払いチャネル」をお読みください。


詐欺

テクノロジー自体には何の問題もありませんが、トークンの発行が簡単であることが、ある意味では欠点になる可能性があります。シンプルな ERC-20 トークンは作成が簡単なので、誰でも作成できますが、意図は複雑です。

したがって、慎重に投資する必要があります。ブロックチェーンプロジェクトを装ったねずみ講やポンジスキームは数多くありますが、投資する前に自分で調査して、投資機会が合法かどうかを確認する必要があります。

 

ERC-20、ERC-1155、ERC-223、ERC-721の違いは何ですか?

ERC-20 は最初の (そしてこれまでで最も人気のある) イーサリアム トークン規格ですが、それだけではありません。長年にわたって、他にも多くの標準が開発されてきました。それらのほとんどは ERC-20 の改良された標準ですが、完全に異なる目標を達成しようとするものもあります。

非代替トークン (NFT) には、いくつかの珍しい標準が適用されます。場合によっては、さまざまな特性を持つ固有のトークンが受益者になる可能性があります。ユニークなアートワークやゲーム内アセットなどをトークン化したい場合は、これらのタイプの契約のいずれかがより魅力的である可能性があります。

たとえば、ERC-721 標準は、非常に人気のある CryptoKitties DApp で使用されています。このコントラクトは、ユーザーが独自の代替不可能なトークンを生成し、メタデータ (画像、説明など) をエンコードするための API を提供します。

ERC-1155 標準は、ERC-721 および ERC-20 を改良したものと見ることができます。単一のコントラクトで代替可能なトークン標準と代替不可能なトークン標準の両方をサポートします。

ERC-223 や ERC-621 などの他のオプションは、使いやすさを向上させるように設計されています。前者は、トークンの誤った転送を防ぐための保護措置を実装します。後者は、トークンの供給を増減するための追加機能を提供します。

NFT の詳細については、CryptoCollectibles および非代替トークン (NFT) のガイドをお読みください。


要約する

ERC-20 標準は、長年にわたって暗号資産分野で主要なプレーヤーであり続けています。理由は明らかです。標準が比較的シンプルであり、さまざまなニーズ (ユーティリティ トークン、ステーブルコインなど) に合わせて誰でも簡単なコントラクトを展開できるからです。それにもかかわらず、ERC-20 には他の標準のいくつかの機能が欠けていますが、他の契約タイプがそれに代わることができるかどうかはまだわかりません。