イーサリアム

イーサリアムクライアント(Geth / Parity / cpp-ethereum / ethereumj)の中で代表的なものを整理する。

はじめに

本記事では、イーサリアムブロックチェーンを動かす上で必要となる代表的なイーサリアムクライアントについて整理した上で、簡単な解説を行います。

[memo title=”MEMO”]

イーサリアムクライアントとは、イーサリアムの分散型ネットワークに参加するためのソフトウェアのことを指す。

[/memo]

イーサリアムクライアント

代表的なイーサリアムクライアントを以下に整理します。

Geth(Go-ethereum)

まずはGeth。公式から推奨されているイーサリアムクライアントです。

Geth(Go-ethereum)の基本的な情報については以下の通り。

  • プログラミング言語:GO言語
  • 開発者:イーサリアム財団
  • インストール方法:macOSであれば、Homebrewでインストール可能
  • Github:go-ethereum

[box class=”box28″ title=”イーサリアム財団”]

  • 2014年にスイスで設立された非営利財団。
  • 開発者が次世代分散アプリケーション(Dapps)を作成するための、分散型プロトコルとツールを世界にもたらすためのイーサリアムプラットフォームとベースレイヤの研究、開発、教育を促進し、サポートすることを使命とする
  • Foundation Councilのメンバーは、Vitalik Butterin /Patrick Storchenegger
  • 日本ブロックチェーン業界の創設者であり、Omise Goのアドバイザーも務める宮口礼子氏(@mi_ayako)がイーサリアム財団の執行役員
  • 公式サイト / Twitter アカウント

[/box]

また、最近、Gethについては、セキュリティ上の脆弱性が発見されたことも押さえておくべきです(緊急アップデートにより、現在では、脆弱性の問題は解消されています)。

[memo title=”MEMO(2017/2/13 追記)”]

  • 2017年10月、イーサリアムクライアントのGethにセキュリティ上の脆弱性が発見され、緊急アップデートが実施された
  • 具体的には、スマートコントラクトの実行環境であるEVM(Ethereum Virtual Machine)にDoSの脆弱性が発見された

参考:Urgent Update

[/memo]

parity

続いて紹介するParityは、Gethに次いでメジャーなイーサリアムクライアントとして知られています。

parityの基本的な情報については以下の通り。

  • プログラミング言語:Rust
  • 開発者:Ethcore
  • Github:parity

[memo title=”MEMO”]

  • 2017年7月、イーサリアムクライアントのParityが提供するウォレットのマルチシグ機能に致命的なバグが発見され、Parity Technologyによってセキュリティアラートが発表される
  • 公式アナウンスの2時間後、Gavin Wood(ギャビン・ウッド)氏によって、問題のコードは修正されたが、Githubのコードを確認すると、internalの付け忘れが発生したことが明らかに
  • 結果、35億円分のETHがハッキングされ、流出。

[/memo]

[box class=”box28″ title=”Gavin Wood(ギャビン・ウッド)”]

  • Parity Technology社の創業者。イーサリアムの共同提案者の一人でもある。
  • イーサリアムの構想自体は、2013年にヴィタリック・ブテリンによって示された後、Gavin Wood(ギャビン・ウッド)氏によって、学術的な整理が行われたとされている。
  • Omise Goのアドバイザーも務めている。

[/box]

cpp-ethereum

cpp-ethereumの基本的な情報については以下の通り。

  • GethとParityに次ぐ人気を誇る
  • プログラミング言語:C++
  • 開発者:イーサリアム財団
  • GIthub:cpp-ethereum
  • イーサリアムマイニングには適していない

ethereumj

ethereumjの基本的な情報については以下の通り。

  • プログラミング言語:Java
  • 開発者:ether.camp
  • Github:ethereumj

pyethapp

pyethappの基本的な情報については以下の通り。

  • プログラミング言語:Python
  • 開発者:イーサリアム財団
  • GIthub:pyethapp

おわりに

今回は、イーサリアムクライアントの中で代表的なものについて紹介させて頂きました。

上記のイーサリアムクライアントの中でも、Geth(Go-ethereum)が最もメジャーで開発人口も多いので、まずはGeth(Go-ethereum)の使い方をマスターするのが良いかと思います。

実際に、Gethのインストールから丁寧に解説してくれている書籍もありますので、そちらも参考になるかと思います。

参考:ブロックチェーン技術を勉強する(学ぶ)上でおすすめの本(書籍)を整理する。

また、Tech Academyのブロックチェーンコースでは、Gethを使った送金やマイニングを実施することができますので、講師の方に教わりつつ、学びたい方は無料説明会に参加するのも良いかと思います。

Tech Academy以外でも、ブロックチェーンを学ぶことができるプログラミングスクールが出てきていますので、チェックしてみると良いかもしれません。

参考:ブロックチェーン技術を勉強する(学ぶ)上でおすすめのプログラミングスクールを整理する。