FEATURE
特集・インタビュー

2018.08.24 196PV

Ethereumの意思決定の仕組みとEIP ERC

Techブログでは、技術的な話題を採り上げていきます。当面は、Ethereumチェーンを中心に解説をしてく予定です。

Ethereumとは

Ethereum (イーサリアム) は、2013年に Vitalik Buterin によって考案され、スイスの非営利団体である Ethereum Foundation によって開発されたスマートコントラクト (ブロックチェーン上のプログラム) を実行するための分散プラットフォームです。2014年7、8月にクラウドセールで資金を集めて開始され、2015年7月にリリースされました。2016年のDAOプロジェクトの崩壊により、Ethereumは2つのブロックチェーンに分かれ、新しいチェーンはEthereum(ETH)になり、元のチェーンは Ethereum Classic(ETC)として継続されています。内部通貨は Ether で、マイニングによる採掘の報酬として Ether が発行される仕組みになっています。書籍やネット情報も多く、開発者にとっても手が出しやすいブロックチェーンと言えます。

EIPとは

EIP とは Ethereum Improvement Proposal の略で、コアプロトコルの仕様やクライアント用のAPI、コントラクトの標準など、Ethereumの標準を改善提案するためのものです。次の公式サイトは、https://eips.ethereum.org/になります。ちなみに、EIPは、e ^ i * pi = -1 (e = -1) にちなんでいるという話もあるようです。なかなか知的なウィットネスに富んでいますね。

EIPのステータスは、次の4つになります。

  • Draft: 検討するために公開されているもの
  • Accepted: コア/コンセンサスレイヤEIPの場合に、すぐに採用される予定のEIPで、次のハードフォークに含まれる予定のもの
  • Final: コア/コンセンサスレイヤEIPの場合で、既にハードフォークで採用されたもの
  • Deferred: すぐに採用されずに先送りされていて、将来的に再考されるかもしれないもの

EIPは、タイプとして、コアな内容を含む Standards Track (標準トラック)と all other EIPs (その他のEIP)に分けられ、更に標準のトラックのカテゴリとして、Core (コア)、Networking (ネットワーキング)、Interface (インターフェース)、ERCInformation (情報)、Meta (メタ) に分類されています。上記サイトによれば、EIPには2018年8月18日現在で108の提案があります。コアに関するものが50件と最多で、Vitalik Buterin 氏を始めとしてコア開発者の方々の提案が多く上がっていて、興味深いです。Ethereum の将来像を決めていくディスカッションがされています。そのうちに、気になるものを少しずつ採り上げいこうと思います。次に多いのがERCの46件で、こちらはアプリケーションレベルの標準や規約ですので、実際にアプリケーション開発者には身近でかつ重要なEIPになります。著名なERC20やERC721がFinalになっています。過去に話題に上っていた ERC223やERC827などは、ここには上がっていません。この辺りについては、おいおい考察していきます。

ERCについて

ERCは、Ethereum Request for Comments の略で、IETF (Internet Engineering Task Force) のRFC (Request for Comments) のようなものです。RFCは、そのまま訳すと「コメント募集」ということになりますが、オープンソース技術として、公開の場で議論するための手法としてよく使われています。例えば、JavaはJSR (Java Specification Request)、Pythonにも PEP (Python Enhancement Proposal) があります。ERCの内容は、スマートコントラクトにより実現される機能の実装に関する標準仕様の提案で、EIPの一部になっていて、将来的には Ethereum Standard (ESD)になる可能性があります。最も著名で、暗号通貨のトークンとして利用されている ERC20 は、Fabian Vogelsteller氏, Vitalik Buterin氏が著者になっていて、2015年11月19日に作成されています。ERC20は、トークンの標準インターフェースで、Ethereumブロックチェーン上でのプログラムであるスマートコントラクトでトークンとして使うための標準APIが決められています。実際には、トークンの転送やトークンの承認により第三者が使うことができるようにするものです。ERCについては、今後のシリーズで少しずつ採り上げて解説していきます。