標準が必要な理由
スマートコントラクト(それは何ですか?)の中に、トークンの独自のメカニズムを書くことができます。それは機能しますが、他の開発者(およびスマートコントラクト)は一般的なロジックでそれにアクセスすることはできません。
例:ゲームアイテムのトークンを作成し(分散型ゲームは現在活発に開発されています)、マーケットプレイスでゲーム内アイテム(そのようなもの)と交換できるようにしたいとします。しかし、マーケットプレイスは契約内の機能にアクセスする方法を知らないため、トークンをサポートするための個別のスマート契約が必要です。
標準が助けになります。それらと対話する方法を知っている他のdAppの作成者は、特定の標準のトークンを操作するために必要なすべてのものをコードに入れています。
標準がどのように生まれるのか
Ethereumはオープンソースプロジェクトであるため(ちなみに、ERCはEthereum Request for Commentsです)、すべてのユーザーが新しいトークン標準を提案できるのは当然です。標準がいくつかの重要な問題を解決する場合、それは公式のEthereum標準になることができます(つまり、このリストに載ります)。
ファンジブルトークンと非ファンジブルトークン
トークン標準を分類するための出発点は、それらの互換性またはその欠如です。Fungible(fungible)トークンは互いに等しく、通貨として使用できます。セミファンジブル(ハーフファンジブル)トークンは、互いにほとんど区別できませんが、それでも一意です(たとえば、映画館のチケット、コストは同じかもしれませんが、それぞれに固有の場所があります)。非ファンジブル(非ファンジブル)トークンは完全に一意であり、トークン化されたオブジェクトが1つのコピーに含まれます(例:著作権オブジェクト)。
あなたが子猫を認識しない場合、これはEthereum(およびERC-721標準)の最初のゲームの1つであるCryptoKittiesです。
ERC-20
ファンジブルトークンの最も有名な標準はERC20で、これは2015年にEthereumのアイデアVitalik Buterinの作成者によって提案されました。このトークンは、さまざまなタイプの初期提供(最初の提案)に広く使用されています。ICOとIEOという用語は避けています。これは、これらがトークンの公開提供を行う唯一の方法ではないためです(ただし、この記事ではそれについては説明していません)。
特異性:交換可能な標準であり、交換用のティッカーがあり、分割可能(小数点以下の桁数はスマート契約の作成者によって決定されます)であり、必然的に総供給量(これ以上発行できないトークンの数)があります。
ERC-20(habr)についてはすでに多くのことが書かれていますが、私は他の標準に移行しています。
ERC-721
この標準は、一意のトークンを作成するために広く使用されています。Decentralandの土地、Binance Collectibles、ここにERC-721の例があります。
ERC-721は、2017年にDieter ShirleyによってEIP(Ethereum Improvement Proposal)として提案され、2018年に正式になり
ました。
ERC-20と同様にERC-721も普及しているので、ここでは詳しく説明しません。
ERC-777
このフォーマットは、おなじみのERC-20の「改良」です。ERC-20と下位互換性がありますが、いくつかの利点があります。
- トークンを交換する場合、ERC-20では2つではなく1つのトランザクションを使用します。
- 互換性のない契約のトランザクションを自動的にキャンセルします。
- 信頼できないアドレスをマークする機能。
- オペレーター(別のアドレスからトークンを送信する権利を持つアドレス)を任命する機能。
- 加速されたトランザクション。
ERC-223
また、ERC-20の「拡張」であり、ランダムな契約へのトランザクションの送信を防ぎます。スマートコントラクトにトークンを操作する機能がない場合、トークンは送信者に返されます。
ERC-1155
この規格のアイデアは、2018年にEnjinプロジェクトの開発者によって提案されました。Enjinは、Ethereumでのゲームの作成を簡素化することを目的としたプロジェクトです。したがって、その適用はこれに限定されませんが、彼らによって提案された標準は、最初にゲーム標準と見なされるべきです。
特異性:
- 1つの契約で複数のトークンを発行できます。
- 1つの契約のトークンは、同時にファンジブルと非ファンジブルになる可能性があります。
- アトミックスワップをサポートします。
- 「バッチ」トランザクションをサポートします。
- すべてのトランザクションがブロックの終了を待つ必要はありません。
最初の2つのポイントが明確な場合、3番目と4番目は疑問を投げかける可能性があります。まず、アトミックスワップを見てみましょう。
アトミックスワップ
あらゆる場所でブロックチェーンが拒否される理由の1つは、あるトークンを別のトークンに迅速かつ効率的に(料金の観点から)交換できないことです(そして、異なるトークンの数は常に増加しています)。この問題の解決策はすでに作成されています。これらはアトミックスワップです。通常、アトミックスワップは、異なる独立したブロックチェーンの暗号通貨間の分散交換のテクノロジーとして理解されています(これについてはBitcoinWikiに詳しく書かれています)。しかし、スマートコントラクト内のトークンの交換のコンテキストでアトミックスワップを検討することも価値があります。Enjinブログ
の画像は、 ERC-1155標準を使用した複数トークンの交換を示しています。
また、バッチトランザクションは、時間を節約しませんが、複数のトランザクションを1つとしてネットワークに書き込むことにより、ガスを節約します(これは何ですか?)。
ERC-1155はより普及しましたが、数か月前に登場したERC875から多くを借りたことは言及する価値があります。ERC-875は、ファンジブルトークンをサポートする以外に同じ機能を提供しました。
ERC-865
ERC-20に似た標準ですが、コミッションにガスを使用せず、トークン自体を使用します。複雑なガスコミッション支払いシステム(ガス価格は個別に選択されます)、およびコミッションサイズの予測不可能性のため、このような改善は、Ethereumでトークンを受け入れるのに非常に役立ちます。
リンク
私はすべての標準を検討していませんが、すべてのERCについて話すと、それらはほとんど互いに類似しており、ERC-20の問題の解決策、またはいくつかの別のニッチでのアプリケーションのいずれかを提供します。コードを詳細に読みたい場合:Github EIPs、GithubOpenZeppelin。Ethereum.org。