ERC20対ERC223対ERC777:イーサリアムトークン標準間の比較
あなたは暗号プロジェクトに取り組んでいるイーサリアム開発者ですか? ERC20標準を使用して新しいトークンを開発している可能性がありますが、改善の取り組みを知る必要があります。これは、使用するERCトークン標準について正しい決定を下すのに役立ちます。したがって、この記事では、ERC777とERC223とERC20の比較について説明します。.
ERC 20の説明から比較を開始し、その後、その欠点について説明します。次に、ERC777およびERC223を介して、イーサリアムコミュニティが実施した改善の取り組みについて説明します。.
ERC20とERC223とERC777の比較
ERC20とは?
ERC20とERC223とERC777を比較する前に、ERCとは何か、ERC20は何を表しているのかを説明する必要があります。イーサリアムの開発者は、「イーサリアム改善提案」(EIP)を提出することがよくあります。イーサリアムコミュニティはEIPをレビューし、コメントを作成します。.
イーサリアムコミュニティがEIPを受け入れた後、それは標準になり、それを「Ethereum Request forComments」(ERC)と呼びました。 ERC 20は、Ethreumトークンのそのような標準の1つです。.
ERC 20は最も有名なイーサリアムトークン標準であり、イーサリアムプラットフォームを使用したほとんどすべてのICOがそれを使用しています。開発者はデフォルトでこれを使用して新しいトークンを作成しますが、ウォレットとエクスチェンジはERC20トークンを簡単に受け入れます.
ERC 20より前は、イーサリアムの開発者はトークンが従うルールを具体的に設定する必要があり、このアプローチには標準化が欠けていました。現在ERC20を使用することで、イーサリアムの開発者はERC20標準を使用するだけでよいことを知っています。この標準化は、2017年以降に見られたICOブームを煽るのに大きな役割を果たしました.
ERC 20標準の詳細については、「初心者向けガイド:ERC20とは」をご覧ください。.
ERC20の標準機能とは?
ERC 20標準では、イーサリアムトークンを開発する際に次の機能が規定されています。
- トークンの総供給量を取得する:「totalSupply」関数を使用する必要があります.
- 別の所有者アカウントのトークン残高を取得する.
- 別の所有者アカウントにトークンを送信する:「転送」機能を使用する必要があります。これらのアカウントはEOAアカウントです.
- あるトークンアドレスから別のトークンアドレスにトークンを送信します。トークンアドレスは契約アドレスであり、「transferFrom」機能を使用する必要があります.
- 指定された制限内で、別のアカウントがアカウントから繰り返し資金を引き出すことを許可します。これには「承認」機能を使用する必要があります.
- 支出者は、「手当」機能を使用して、未使用のトークンを所有者に返すことができます.
トークンを燃やすERC20のバグ
全体的に非常によく文書化され実装されていますが、ERC 20標準にはバグがあり、これはすでに数百万米ドル相当のトークンを燃やしています。 「転送」機能では、トークンを別の所有者、つまりEOAアカウントにのみ送信できます。.
スマートコントラクトアカウント、つまり他の形式のイーサリアムアカウントに資金を送金する場合は、「承認」と「転送元」の組み合わせを使用する必要があります。 「転送」機能を使用してスマートコントラクトにトークンを送信すると、トランザクションは成功しますが、コントラクトがトークンを受け取ることはありません。.
これにより、これらのトークンが永久に焼き付けられ、取得できなくなります。何人かのユーザーが間違った機能を使用してトークンをスマートコントラクトに送信し、トークンを永久に失いました!
イーサリアム財団はバグについて知っていますが、ERC20標準を推進し続けています。彼らがそうする理由はわかりません。彼らはおそらく問題の重要性を認識していないか、変更への抵抗があります.
ERC223トークン標準:ERC20バグの解決策案
Redditのユーザー名「Dexaran」を使用するEthereum開発者は、このERC20バグの解決策を備えたEIP223を提案しました。 ERC20とERC223とERC777を比較する前に、まず彼の提案について説明します。.
ERC223トークン標準はまだドラフトであり、Ethereumコミュニティはまだそれを実装していません。次の解決策を提案します。
- イーサリアムブロックチェーン上のトランザクションをイベントと見なし、「イベント処理」の概念を使用します.
- ユーザーが「転送」機能を使用してトークンをスマートコントラクトに送信すると、エラーがスローされ、その後トランザクションがキャンセルされます.
- ユーザーはイーサリアムの「ガス価格」を支払いますが、トークンを失うことはありません.
- この提案では、受信アドレスが契約アカウントであるかどうかを確認するために、「転送」機能に追加のパラメーターを追加します.
- 受信者のアドレスがEOAアカウントではなく契約アカウントであることが判明した場合、その契約は「tokenFallback」を実装していると見なされます。.
- 「tokenFallback」関数を使用すると、トークンをコールバックできるため、トランザクションでトークンが書き込まれることはありません。.
ERC223はERC20のバグを大幅に解決しますが、この提案には弱点があります。受信者のスマートコントラクトに「tokanFallback」関数がない場合、「Fallback」関数が実行され、トークンが失われます.
ERC 223を使用しているプロジェクトはごくわずかです。例として、 AmigoCoinプロジェクト. ERC 223提案の詳細については、 GitHub EIP223リポジトリ. この規格はERC23とも呼ばれます.
ERC777標準:ERC20バグを解決するための改善された提案
ERC 20バグによるトークンの損失を防ぐための改善された提案は、ERC777提案です。これには次のものが含まれます。
- 新機能:「転送」の代わりに「送信」、「承認」の代わりに「authoriseOperator」、「tokenFallback」の代わりに「tokensReceived」.
- 開発者がスマートコントラクトが実装する機能を特定できなかったため、イーサリアムプラットフォームには欠点がありました。 ERC 820、つまり別の標準では、ネットワーク上に契約の中央レジストリが実装されているため、スマートコントラクトの機能とインターフェースを知ることができるようになりました。 ERC777はこれを使用して、スマートコントラクトが使用するインターフェースを識別します。これで、開発者は、特定の関数を介して送信されたトークンを受信するために必要な関数がコントラクトにあるかどうかを事前に知ることができます。.
- ERC 777はオペレーターの「ホワイトリスト」を有効にするため、イーサリアムネットワークユーザーはブラックリストに登録されたアドレスからの支払いを拒否できるようになります。アドレスは、次のような多くの理由でブラックリストに登録される可能性があります。ネットワークをハッキングしようとする、違法行為の履歴.
ERC777とERC20とERC223の比較では、ERC777が開発者に複数のオプションを提供して、トークンの損失を防ぐ方法を確認できます。ただし、ERC777標準には、次のようないくつかのリスクも伴います。
- 一部のイーサリアム開発者は、「authoriseOperator」関数は非推奨であると考えているため、開発者はそれを使用しないでください。この機能はまた、より多くの「ガス」を必要とし、ネットワークに追加の負担をかけます.
- スマートコントラクトの中央レジストリを使用して、コントラクトが使用するインターフェイスを検索するのは危険です。中央レジストリにはバグがある可能性があり、それに依存するものはすべて悪影響を及ぼします.
ERC777はまだドラフトですが、 ORCA トークンはそれを使用します。の提案を読む EIP 777GitHubリポジトリ.
ERC 777 vs ERC 20 vs ERC 223:資金の保護は重要です
イーサリアムエコシステムが「ゴールドスタンダード」としてどのスタンダードを受け入れるかは時が経てばわかりますが、開発者としてのあなたは、トレーダーと投資家の資金を保護する責任があることを覚えておく必要があります。あなたがそのような責任ある立場をとるなら、あなたはおそらく、複雑さにもかかわらず、ERC777標準が実装され採用されるべきであることに同意するでしょう。.
注:いくつかの主要なERC標準について詳しく知りたい場合は、「知っておく必要のあるERC標準の究極のリスト」をお読みください。.