イーサリアムの技術
本記事では、イーサリアムの技術的な特徴と課題、またそれを解決する大きな進化である「イーサリアム2.0」の内容にも踏み込んで解説します。
イーサリアムの時価総額は、ビットコインに次いで2位を維持している仮想通貨(暗号資産)ですが、昨年10月には大阪で開発者会議「Devcon 5」が開催され、3000人以上の開発者が集結するなど技術的な進化が止まらないことも大きな特徴となっています。
1.使用言語と開発環境
開発に使われているプログラミング言語
イーサリアムはC++やGoなど様々な言語で開発が行われているオープンソースのプロジェクトです。
これらとは別に、イーサリアム上でのアプリケーション作成専用に特殊なプログラミング言語も用意されています。
イーサリアム上で動くプログラムは一般的に「スマートコントラクト」と呼ばれ、スマートコントラクトを記述するためのプログラミング言語として、最も広く使われていてJavaScriptに似ている「Solidity」、セキュリティにフォーカスしたPythonベースの「Vyper」があります。
イーサリアム上での開発にスマートコントラクト用の言語やブロックチェーンプログラミングに特有の考え方について学ぶ必要がありますが、webベースの統合開発環境 (IDE)など様々な開発者のためのツールが整備されており、開発の敷居はかなり低くなっていると言えるでしょう。
参考:開発者リソース一覧
開発体制
イーサリアムもビットコインと同様に特定の管理者が存在しません。
しかし、イーサリアムの考案者であるVitalik Buterin氏を筆頭としたイーサリアム財団が開発の中心的な役割を担っていると言えます。
去年大阪で開催され、今年の開催は中止が決まったイーサリアム開発者会議「Devcon(デブコン)」もイーサリアム財団が中心となって開催しています。
なお、財団は「中心的な役割を担っている」に過ぎず、イーサリアムに貢献している開発者は世界中・あらゆる組織に広がっています。
2.技術面から見た長所
イーサリアム最大の特徴はイーサリアム上に自由にアプリケーションを作ることができることです。
ブロックチェーン上に作成されたアプリケーション(分散型アプリケーション、dAppsとも)は誰にも改変・管理されることなく常にプログラム通りに動きます。
例えば、ゲームであれば運営会社によって突然キャラクターの能力が下方修正されたり、サービス終了したりすることがありません。
イーサリアムを生み出したVitalikも、中学生の頃に熱中した「World of Warcraft」というオンラインゲームのお気に入りキャラクターが突然修正された経験からビットコインのような分散型の仕組みに興味を持ったようです。
他にも金融や保険、通貨取引など従来は会社が仲介として存在していた領域で、管理者不在のままに動くアプリケーションが数多く作られています。
そもそも、イーサリアムはdAppsを作るためのプラットフォームとして開発されたもので、イーサリアム上に作られたdAppsを適切に動かしていくために仮想通貨「Ether (ETH)」が存在しています。
ビットコインとの比較
イーサリアムはVitalikが生み出しました。
「ビットコインのシステム上でアプリケーションを作りやすくするために汎用的なプログラミング言語が必要だ」というVitalikの提言がビットコインの開発コミュニティに受け入れられなかったため、それを実装したイーサリアムを考案したのです。
しかし、よく「ビットコインは決済用、イーサリアムはプラットフォーム」と言われますが、ビットコインでアプリケーションの作成が不可能なわけではありません。
数年前のビットコイン2.0と呼ばれる潮流においてビットコインのブロックチェーンを利用する「カラードコイン」などはその代表例と言えるでしょう。
また、ビットコインにもプログラムを書き込む領域が存在し、それを使って新たな機能をもったアプリケーションを作ることも可能です。
しかし、ビットコインにおいて使用できるプログラミング言語はループなどが記述できない仕様になっており、自由にプログラムすることが出来ません。
Vitalikはこれを改善するために、あらゆる処理ができる(チューリング完全)コードを書き込み、実行できる新たなブロックチェーンを考案したのです。
3.技術面から見たボトルネック
スケーラビリティ問題
イーサリアムでもビットコインでも、パブリックブロックチェーンのプロジェクトでいつも問題になるのはスケーラビリティです。
スケーラビリティ問題とは、ブロックチェーンが1ブロックに取り込めるデータのサイズと、ブロックの生成時間の間隔が決まっていることから処理できる取引の数・データの量が制限されている問題のことです。
十分な数が処理できていれば問題にならないのですが、ビットコインが1秒間に処理する取引の数は7件、似たような機能を提供するVisaカードは約2000と言われていて、利用者が増えて世界中の人に使われるようなものになるには性能不足と言えるでしょう。
これまでにもdAppsゲーム「クリプトキティーズ」の人気や分散金融(DeFi)の台頭によってイーサリアムのネットワークは混雑してきました。
電力消費
イーサリアムやビットコインなどPoWを採用している仮想通貨へのよくある批判として、「マイニングに無駄な電力が消費されている」といものがあります。
PoWでは一番最初にブロックを生成した勝者一人にのみ報酬が与えられ、敗者が消費したエネルギーに見返りはありません。
上記記事のような反論もありますが、使われているのがクリーンエネルギーというだけで大量に消費されている事実は変わりません。
Vitalikもこの点について問題意識をもっていますが、2018年には「PoWも環境に悪いが、金の採掘はもっと悪い」とTwitter上で述べています。
3. “Money always evolves in the following four stages, collectible -> SoV -> MoE -> UoA” – no, no, no! Seriously, read David Graeber’s Debt. Amazon link for the lazy: https://t.co/UgfNZ9L8ME
— vitalik.eth (@VitalikButerin) April 3, 2018
4.Ethereum 2.0へのアップグレード
イーサリアムを語る上で外せないのが、大型アップデートイーサリアム2.0の存在です。
イーサリアムでは現在、前章で挙げたボトルネックを解消すべく大幅なアップグレードのプロジェクトが進行中です。
構造が大きく変わるため2.0と呼ばれていますが、注意点として、元のイーサリアム(1.0)が無くなったり、フォーク(分岐)するわけではありません。
アップグレードのスケジュールにあるように、フェーズ1.5において元のイーサリアムはイーサリアム2.0に統合されます。それまでは並列して存続することになります。
イーサリアム2.0での大きな変更点は以下の2つです。
- PoWからPoSへ
- シャーディングの導入
それぞれ見ていきましょう。
PoWからPoSへ
PoSへ移行するメリットは大きく以下の2点です。
- エネルギー効率が良い(環境にやさしい)
- マイニングASICによるマイニングの寡占化の解消
ビットコインではProof of Workという仕組みでコンピュータで10分ほど掛かる計算を各々が行い、一番早く計算を終えた人が新たなブロックを作成し報酬を得ていました。
Proof of Stakeではそのブロックチェーンの通貨をステークした(賭けた)量に応じて新たなブロックを作成し報酬を受け取ることができる可能性が変化します。
PoWの計算には膨大な量の電気が消費されていましたが、PoSには計算競争が無いため大量の電力消費はありません。
PoWであれば計算、PoSであれば通貨の保有が該当します。