ERC20とは?
Ethereum Request for Comments : Token Standard #20の略で、Ethereumで発行できるトークンの仕様を決めているものになります。
ERC20の仕様に沿ってトークンを実装するとERC20に準拠したサードパーティ製のアプリケーションや分散取引所、ウォレットなどで使用できるようになります。なので独自に実装してしまうとこの経済圏に入れませんし、ウォレットすらもトークンにあったものを自前で実装しなくてはいけなくなります。
ERC20の問題点
ERC20についてはこちらから読んでみてください。
ERC20にはトークンをユーザーのアドレスではなくコントラクトのアドレスに間違って送ってもトランザクションが承認されてしまい送金したトークンが二度と引き出すことができなくなるという問題があります。
これは実際に発生してお2017年12月27日現在、約325万ドル以上のトークンが引き出し不可能なものとなっています。ERC20が使われ続ける限りこの額はどんどん大きくなっていくと思います。実際に取り出せなくなったトークンはこちらです。詳細はこちらに記載されています。
- QTUM, $1,204,273 lost. watch on Etherscan
- EOS, $1,015,131 lost. watch on Etherscan
- GNT, $249,627 lost. watch on Etherscan
- STORJ, $217,477 lost. watch on Etherscan
- Tronix , $201,232 lost. watch on Etherscan
- DGD, $151,826 lost. watch on Etherscan
- OMG, $149,941 lost. watch on Etherscan
- STORJ, $102,560 lost. watch on Etherscan
現状取引所に上場しているEthereumのトークンはほとんどがERC20規格のものなので今後も気をつけなければいけません。
誤送金を防ぐためのERC223
上記問題を解決するために考えられたのが新しい規格のERC223です。
ERC223は送金を行った際にトークンを受け取れることのできるアドレスか確認して問題なければ送金処理を実行してトランザクションが承認されます。
間違ってコントラクトアドレスに送金した場合は元のアドレスに送り返される仕組みとなっているのでERC20のように二度と引き出せないトークンが出てしまうことをプログラムで制御することができます。
ERC20とERC223での実装の違い
ERC20のインターフェースはこちらの記事で紹介しているので読んでみてください。ERC223では2つのメソッドが追加され、1つのメソッドとイベントが削除されました。
追加されたメソッド
ERC20との後方互換を保つために既存のtransfer()メソッドは残しつつ、引数を追加したtransfer()メソッドが追加されました。
一番重要なのがtokenFallback()メソッドとなります。このメソッドにより間違って送られたトークンは送金元に返されるようになります。
transfer | ERC20で既に存在したtransferにトランザクションデータを引数に追加した関数 |
tokenFallback | 送金したトークンが間違っていないか確認し、間違っていた場合は送金元に返す関数 |
削除されたメソッド
approve | 引出限度額を設定する関数 |
削除されたイベント
approval | approve関数が呼ばれたら実行されるイベント |
まとめ
Ethereumのトークンエコノミーはこのように日々改善されており今後ももっと有用なトークンの実装方法が出てくるかと思います。
また、2018年はPoWからPoSへの移行するハードフォークが予定されているのでEthereumから目が離せない年になりそうです。
おすすめ書籍
Ethereumを使ったDApps開発を学びたいなら今だとこの1冊が1番良いです!開発環境の構築から使うべきツール、フレームワーク、実装方法・注意点まで網羅的に解説されている書籍なのでおすすめです。出版も2018年1月ということでかなり新しい本で、DMM Bitcoinを作っているネクストカレンシー所属の方が書いているので信頼できます。
ビットコインとブロックチェーンの詳細をしっかりと学びたい方にはこちらの書籍が非常におすすめです。ウォレットの仕組み、楕円曲線暗号、P2Pプロトコル、公開鍵暗号などビットコインを支える技術について詳細に解説されています。また、サンプルコードを通して実際に手を動かして学べるので非常に濃い内容となっています。
髙妻智一
最新記事 by 髙妻智一 (全て見る)
- Polkadot(Substrate)のアドレスとトランザクションについて - 2023-03-09
- 【無料公開】「Goで始めるBitcoin」3章 Bitcoinノードとの通信 技術書典8 - 2020-03-08
- エンジニアがゼロから技術ブログを書くための方法をまとめました - 2019-05-25
コメントを残す