本連載ではEthereum(イーサリアム)、Ripple、Nem、Bitcoinといったプラットフォームとそれを支えるブロックチェーンについて紹介します。今回は分散アプリケーションプラットフォームEthereum(イーサリアム)の生い立ち、得意とする分野、通貨とその発行方法、合意形成の方法について解説します。
ビットコインから生まれたEthereum
Ethereumの構想は、2013年後半にビットコインコミュニティーの若きプログラマーVitalik Buterin氏の研究成果としてその構想が示され、直後にEthereumプロトコルとスマートコントラクトの技術的なデザインや理論的解釈を記したホワイトペーパーが公開され、2014年1月北アメリカビットコインカンファレンス(The North American Bitcoin Conference)で正式に発表されました。この時期にVitalik氏はGavin Wood博士と研究を始め、Ethereumを共同創業しました。
2014年中旬のEthereumの通貨であるether(イーサ、単位ETH)のプリセール、それに伴うEthereum Foundationの設立を経て、Ethereumの開発は非営利のETH DEVのもとに組織され、2014年から2015年にかけてEthereumの概念を実証するProof of Concept(PoC)をリリースしていきます。Olympicと呼ばれる9番目のPoCは公開の開発環境となり、開発者コミュニティーによってEthereumネットワークの限界が試されました。PoCのリリースが終わると、2015年7月30日にFrontierと呼ばれるベータ版が、続いて2016年3月に最新のHomesteadがローンチされました。
より詳しい歴史はEthereumコミュニティーのHomesteadに関する文書で読むことができます。また、Ethereum Timelineでは、Ethereumの歩みが関連ソフトウェアやEthereumを利用しているサービスを交えてタイムラインで視覚的に紹介されています。
自由度の高いスマートコントラクトが作れるEthereum
Ethereumの特徴として、まず、誰もが自由にスマートコントラクトを記述しEthereumネットワーク上で実行、ブロックチェーン上に履歴を記録できる点が挙げられます。この自由度の高さは、Ethereumネットワーク上のサンドボックス化されたEVM(Ethereum Virtual Machine、Ethereum仮想マシン)と呼ばれる実行環境によって担保されています。ネットワーク上では他のEVMとつながり、他のEVM上のコードを実行可能ながらも、EVMは個々にサンドボックス化されているためで、あるコードが他のEVMやブロックチェーンに深刻な影響を与えることなくセキュアに実行されます。さらにスマートコントラクトを記述するためのプログラミング言語Solidityはチューリング完全で、あらゆるプログラムを記述できるという点もEthereumの特徴と言えるでしょう。
画像: Ethereumネットワーク上でつながるEVM(動画「Ethereum: the World Computer」より)
Ethereum上で動作するアプリケーションは、コマンドライン上で記述、コンパイル、実行できるほか、Ethereumの統合開発環境Mix、Browser-solidity、Visual Studio Codeの拡張などを利用して開発できます。特にEthereumからリリースされているMixでは、すでにウェブ開発で親しんでいる人も多い既存の技術を利用して開発を進めることができます。
画像: 統合開発環境Mix(動画「Ethereum: the World Computer」より)
アプリケーションやサービスの開発の自由度の高さから、Ethereumネットワーク上にはさまざまなサービスが構築されつつあります。連載「ブロックチェーンとシェアリングエコノミー」で紹介した鍵のアクセスコントロールを扱うSlock.it、ライドシェアサービスのLa’ZoozやArcade City、ソーシャルコラボレーションプラットフォームColony、電力シェアプラットフォームTransActive Gridがその一例です。
通貨etherとその発行方法
Ethereumネットワーク上ではetherと呼ばれる通貨が用いられます。プラットフォームの利用者がスマートコントラクトを動かすためにEVM(マシン)のパワーを使う際、その利用料としてehterを支払います。そして、利用料はプログラムの実行量に応じて加算されるため、アプリケーション開発者は効率のよりプログラムを書く必要があります。こういたところから、etherについて書かれたページ「What is Ether – Ethereum」ではetherについて、「分散型アプリケーションプラットフォームEthereumを運用する上で燃料にあたる不可欠な要素です。プラットフォームの利用者がマシンに操作を実行するよう要求する際、支払いに利用されます。別の言い方をすると、開発者がクオリティーの高いアプリケーションを書くインセンティブであり、ネットワークを健全に保ちます。」と説明しています。
画像: What is Ether – Ethereumより
Etherは2014年のプリセールで6000万ETHが販売され、さらに1200万ETHがプロジェクトの初期の貢献者や開発者、Ethereum Foundationに発行されました。現在は5 ETHがマイナーへのブロック報酬(ブロック生成間隔は約15-17秒)として発行されています。また、2-3 ETHが解を見つけたもののブロックチェーンにブロックが取り込まれなかったマイナーに渡ることもあるようです。Etherは無限に発行されることはなく、発行上限は年間1800万ETHとされています。
合意形成の方法
現行のEthereumでは、スマートコントラクトの実行履歴であるブロックをブロックチェーンに記録する際にProof of Workという方法で合意形成がなされています。BitcoinのProof of Workとの違いは、ビットコインは単純な計算を何度も行うアルゴリズムを取っており、ASICと呼ばれる比較的量産しやすいLSIを使えるため、マイニング専用のハードウェアも量産しやすくなっています。それに対し、EthereumのProof of WorkではEthashというメモリーを多く必要にするアルゴリズムを使っており、マイニング専用のハードウェアを作ることを難しくしています。このように、ASICを使ってマイニング専用ハードウェアを作りにくくしていることを「ASIC耐性がある」と表現します。
2017年にリリースが予定されているSerenityでは、合意形成の方法がProof of Workから、保有する通貨の量(stake)に応じてブロックが承認されるProof of Stakeへ移行することが予告されています。このCasperと呼ばれるProof of Stakeの詳細については現在議論が行われている最中ですが、2014年からProof of Stakeのブロックチェーンの分析や仕様策定に携わっているというVlad Zamfir氏の非公式の論考をEthereumのブログで読むことができます。
Introducing Casper “the Friendly Ghost” – Ethereum Blog
今後の展望
2015年3月公開の少し昔の記事で、記事冒頭で「この記事のいくつかの記述には古いものがある」と注意書きがありますが、Ethereumのブログに「The Ethereum Launch Process」という題名で今後の計画が詳細に示されています。イーサリアムの考案者であるVitalik氏が2016年に発表した論考「Opportunities and Challenges for Private and Consortium Blockchains」にある開発ロードマップの概要と合わせて見てみましょう。
Ethereumのバージョンとしては、Frontierがリリースされ、現在はステップ2として挙げられているHomesteadがEthereumの最新版として公開されています。続くリリースとして、Vitalik氏の論文では、2016年夏から秋にかけてMetropolisを、2017年初頭にSerenityのリリースが期待されるとしています。Metropolisでは技術者でないユーザーも対象にユーザーインターフェイスを提供し、Serenityでは合意形成の方法をProof of WorkからProof of Stakeに移行する計画です。
その他、より高速なバーチャルマシンのリリース、スケーラビリティーを考慮したリリースが2017年から2018年にかけて予定されているようです。まだ、Ethereumは実験段階のブロックチェーンで、実証実験を重ねていかないといけないフェーズにあります。Vitalik氏も大きな金額のものはまだ扱わないほうがいいという発言もしており、慎重に実験を重ね、できることを増やしていくことが重要です。この順番を守らないと、the DAOのような失敗が発生してしまいます。しかし、ビットコインの弱点も克服し、自由度の高いスマートコントラクトが記述できるのはとても魅力的です。今後の発展に要注目です。