ERC-777
要約: ERC-777 は、ERC-20から派生した取引可能なトークンの規格です。後方互換性を保ちながら新しい機能を追加しているため、ERC-20向けに作られたウォレットやアプリも、…
ERC-777は、ERC-20から派生した取引可能なトークンの規格です。後方互換性を保ちながら新しい機能を追加しているため、ERC-20向けに作られたウォレットやアプリも、ERC-777のトークンコントラクトに接続して通常どおり利用できます。
重要な理由
ERC-777は、ERC-20の使いにくい点をいくつか解消するために設計されました。保有者が自分に代わってトークンを送ることを許可したアドレスである「オペレーター」と、トークンの送信時や受信時に実行される関数である「フック」が導入されています。フックを使うと、受け取り側のコントラクトは、届いた送付に同じトランザクションの中で反応したり、不要なトークンを拒否したりできます。送付には、支払いの参照情報などの追加データを付けることもできます。フックは、各アドレスが自分のトークンをどのコントラクトで扱うかを登録する共有のオンチェーンレジストリ、ERC-1820に依存しています。その代償となるのが複雑さです。フックは送付の途中で外部のコードを実行するため、これを想定していなかったプロトコルがリエントランシー攻撃の被害を受けてきました。その結果、ERC-777は通常のERC-20に比べてはるかに普及していません。
具体例
あるオンラインショップがERC-777トークンでの支払いを受け付けています。顧客は注文番号をデータとして添付してトークンを送ります。ショップのコントラクトはフックを通じて送付を受け取り、注文番号を読み取って注文を支払い済みにします。これらはすべて一回のトランザクションで完了します。通常のERC-20トークンでは、ショップに追加の承認手順が必要になるか、後から支払いと注文を照合しなければなりません。