仮想通貨イーサリアムの技術標準 ERCとは何か?ERC-20,223,721の違い

目次

    ERCとは?なぜ必要?

    市場規模第2位の仮想通貨イーサリアム、そのイーサリアムベースのトークンに関わり始めると、”ERC””ERC-20”といった言葉を耳にする機会が多いかと思います。今回の記事では、このERCやERC-20(ERC-223, ERC-721含む)について解説します。本記事を読めば、ERCとは何なのか?またERC-20/ERC-223/ERC-721のそれぞれの違いは何か?といった点について理解することができるでしょう。

    インターネットの仕様は誰が決めてきたか?IETFとRFC

    ERCについて話す前に、インターネットの技術仕様がどのようにして決められているかについて説明します。インターネットの技術仕様の成り立ちを理解することで、より良くERCについて知識を深められます。

    さて、今、みなさんが使っているインターネットですが、どうして異なるOSのコンピュータを、誰もがどこでも同じように使えて、相互に通信できるのでしょうか。ここから話を進めていきましょう。

    理由の一つに、全員が共通の技術を使っている、ということがあげられます。インターネットは様々な技術の集合体です。しかし、もしもインターネットを構成する一つ一つの技術が、コンピュータや国や地域ごとに異なっていたら、相互接続し利用することは困難でしょう。

    今では考えられませんが、昔は異なるOSのコンピュータ間でのデータ通信はできませんでした。異なるOSのコンピュータは、異なる仕組みや技術で動いていたからです。この問題を解決するために、アメリカのいくつかの大学によって結成されたのが「Networking Working Group」です。それは1969年の夏のことでした。

    そして1986年、この活動はIETF(Internet Enginnering Taks Force)に引き継がれることとなりました。

    インターネットに関連して広く公開されるべき技術は、このIETFへ提唱&議論されることになります。最終的に承認された技術仕様は、RFC(Request For Comments)という名前で文章化され、インターネット上で誰もが参照できるようになります。

    参照:IETF | RFCs

    トークンの技術仕様は誰が決める?EIPとERC

    ここまでIETF/RFCに関して話してきましたが、ここから先はイーサリアムベースのトークンに関する、技術仕様を決定する方法について説明します。

    ERCとは?

    ビットコインやイーサリアムをはじめとするブロックチェーン技術は、まだまだ歴史が浅く、誕生して10年すら経過していません。しかしブロックチェーン技術は日進月歩のスピードで、日々めまぐるしく開発が進められています。

    この状況はまさに、インターネット技術の開発が始まった1960~1980年代と同じと言えるでしょう。ブロックチェーン技術の開発は、インターネット技術の開発から学ぶべきことが多くあり、その一つに技術の標準化があります。

    特にイーサリアムは、ブロックチェーン上で動作するアプリケーションのプラットフォームとなることを目指して開発を続けてきていますので、技術の標準化は重要なテーマです。最近はICOなどを通じて、多くのイーサリアムベースのトークンが発行されています。

    もしこのトークンがイーサリアム上で動作するにも関わらず、それぞれ別々の技術仕様で設計されていたらどうなるでしょう?取引所やウォレットの開発などが困難になることが想像できると思います。共通のトークン仕様を策定し、それに従う方が、イーサリアムコミュニティにとってもユーザーにとっても大きなメリットがあるでしょう。

    実際にイーサリアム・コミュニティは、技術仕様の標準化に対して非常に積極的です。そしてイーサリアム・コミュニティでの標準化の流れによって生み出されたのがERC(Ethereum Request For Comments)です。

    ERCは、イーサリアム上における技術仕様を文章化したもので、これは先ほど述べたIETFにおけるRFCに相当します。ERCもRFCも”Request For Comments”  ということで、広くコメントを集め、オープンに技術を発展させていく姿勢が伺えます。

    EIP採択までの過程

    ERCとして公開された技術仕様に関する文章は、まず単なる問題提起からスタートします。提案された問題や技術が重要であれば議論が進み、最終的にはEIP(Ethereum Improvement Proposals)として採択されます。EIP採択までの過程には、Draft(検討段階)→Accepted(承認済み段階)といったステータス(状態)があります。AcceptedされたEIPは最終的にまとめられ、イーサリアムの仕様として正式に採用(Final)されることになります。

    例えば20番目に提案されたERC文章は、トークン仕様について議論されたもので、 ERC-20と呼ばれています。このERC-20はトークンの共通仕様を決める重要なものであったため、EIP20として採択(Final)されています。

    このEIP20は、Github上にて公開されていますので、興味のある方は覗いてみると良いでしょう。EIP-20-Token-Standard

    またEIP/ERCでは、トークン仕様だけでなく、イーサリアムに関する様々な技術 - 例えば、EIP-669 ディフィカルティボム調整 - が議論されていることもわかるでしょう。

    ERC-20/ERC-223/ERC-721とは

    ここまで読んでいただいた方は、ERCとは何か、また、ERCとERC-20の違いは何か、といった点に関して理解できたと思います。ここからは、数多く存在するトークン仕様の中で、実際に広く使われているERC-20, ERC-223, ERC-721について解説します。

    ERC-20

    ERC-20は、2015年11月19日にERCに提案されたトークン技術仕様です。ERC-20が採択されたことにより、イーサリアム上で発行される多くのトークンはこれに従うようになりました。結果として、異なるトークンでも同一ウォレット上で残高一覧を確認できたり、取引所はトークンのアドレスだけで、トークンを上場させることができるようになりました。

    ERC-20の致命的欠陥

    ERC-20は非常に成功し、広く使われているトークン仕様と言えるのですが、一つ重大な欠点があります。それは、ERC-20準拠のトークンをユーザーの通常のアドレスではなく、コントラクトアドレスに送金してもトランザクションが承認されてしまい、送金したトークンが取り出せなくなってしまう事です。

    誤送金されたトークンは二度と取り出すことができなくなってしまい、事実上消滅することになるので注意が必要です。実際に失われたトークンの例が以下になります。日本円換算で3.6億円程度が失われているようです。

    How much ERC20 tokens are currently lost (27 Dec, 2017):

    1. QTUM, $1,204,273 lost. watch on Etherscan
    2. EOS, $1,015,131 lost. watch on Etherscan
    3. GNT, $249,627 lost. watch on Etherscan
    4. STORJ, $217,477 lost. watch on Etherscan
    5. Tronix , $201,232 lost. watch on Etherscan
    6. DGD, $151,826 lost. watch on Etherscan
    7. OMG, $149,941 lost. watch on Etherscan
    8. STORJ, $102,560 lost. watch on Etherscan

    (引用:https://github.com/ethereum/EIPs/issues/223

    ERC-223

    ERC-223は、ERC-20の問題を解決した上位互換の新規格で、2017年3月5日にERCに提案されました。223番目のERC提案ですので、ERC-223と呼ばれています。ERC-20と同様にGithub上で議論がなされています。現段階ではERC-223は”Draft”のステータスですので、まだEthereumで正式に承認されている訳ではありません。

    参照:ERC 223 token standard

    token Fallbackとは?

    ERC-223の重要な機能の一つが”token Fallback”です。これはERC-20の欠陥であると上述した、誤送金を防ぐために実装されています。具体的には、コントラクトアドレス宛にコントラクトに対応していないトークンの送金がされた場合、元の送り主にトークンを送金し返します。一方で、コントラクトアドレス宛にコントラクトに対応したトークンが送金された場合、通常の処理をします。この機能を実装することで事実上、ERC-20トークンであったような誤送金を無くすことができます。

    ERC-721

    ERC-721は、2017年9月20日に提案された、ERC-20, ERC-223とは異なる方向にトークンを発展させる技術仕様です。注目すべき特徴はNFT(Non-Fungible Token)と呼ばれるトークン仕様を持っている点です。”Fungibility”とは”代替可能性”という意味です。つまり”Non-Fungible Token”とは、”代替不可能なトークン”と言えるでしょう。

    Non-Fungible Tokenとは?

    Non-Fungible Tokenの説明に移る前に、まずは理解を深めるために、身近なFungibleの例を考えてみましょう。一番簡単な例としては、通貨が挙げられます。みなさんのお財布の中の1000円札は、隣の人のお財布の中の1000円札と基本的には同じです(プレミアがついていなければ)。そしてどこでもその1000円を使って、1000円分の買い物をすることができます。このように通貨の果たす機能や価値は同等ですので、”通貨はFungible”であると言えます。

    一方で、Non-Fungibleな例としては、オリジナリティを持ったものが挙げられます。美術作品や、ゲーム内であなたが一生懸命育てたキャラクターなど、それ自体にオリジナリティやアイデンティティがあるものは代替不可能であると言えます。この概念をトークンに拡張すると”代替不可能なトークン”にたどり着くことができます。つまり「それぞれのトークンに独自の価値と保有者が結び付けられている」と言えるでしょう。

    NFTの応用事例

    このERC-721に準拠したトークンを用いて、昨年大ブレイクしたのがCrypto Kittes(クリプトキティーズ)です。Crypto Kittesは、イーサリアム上で「仮想の子猫」を育てるゲームです。ユーザーの育てた一匹、一匹の子猫がそれぞれアイデンティティ(猫の外見や性格など)を持っていて、飼育者に紐づけられています。まさにERC-721のNFTの概念と一致していることがわかるでしょう。

    ERC-721の今後

    ERC-721によって、イーサリアム上では代替不可能な物をトークン化して扱うことができるようになりました。今後は、このNFTを応用した例が増えてくるかと思います。

    例えば、ゲーム内のキャラクターなどは、Crypto Kittesと同じぐオリジナリティを持つ場合が多いため、NFTが活用される機会があるでしょう。しかし、このERC-721はGithub上のERCにおいて議論の真っ最中であり、ERC-223と同じく”Draft”のステータスです。まだイーサリアムに正式に承認された訳ではないことに注意して、今後の動向を見守りましょう。

    ERC: Non-fungible Token Standard

    コメントする

    メールアドレスが公開されることはありません。