Ethereum / イーサリアム

Ethereumは、スマートコントラクト・分散型アプリケーション(DApps)の構築プラットフォームです。ビットコインや他の総合プラットフォーム型ビットコイン2.0プロジェクトの多くは、開発チームのみがスマートコントラクトコードを記述・実装可能であったり、ブロックチェーン上でのスマートコントラクトプログラムの実行に何らかの制限があるのに対し、Ethereumではユーザーが誰でも自由にスマートコントラクトの記述・実行ができ、そのプログラミング言語がチューリング完全(あらゆるプログラムを記述可能という意味)であるのが特徴です。

2014年にはEthereumネットワーク内の基軸仮想通貨であるETH(Ether, イーサー, エーテル)のプレセールにより、当時の価格で約15億円もの資金調達が行われました。(Ethereumは日本語だと、「イーサリアム」、「イーサリウム」、「エセリウム」などと表記されることがあります。)

仕様・仕組み

名称 Ethereum(Ether)
公開日 2015-7-30
システム Proof of Work/Proof of Stake
アルゴリズム Ethash/Casper
初期発行量 72,000,000 ETH
ブロック報酬 5 ETH
ブロック生成間隔 約15秒

Ethereumは2015年にリリースされ、大きく4つの段階に分けてバージョンアップを行う構想を掲げています。1段階目は2015年7月にリリースされたFrontierです。Frontierは、問題があれば開発チームによりブロックチェーンのロールバック(巻き戻し)が行われる可能性があるという、開発者用の実験段階でした。

2段階目は2016年3月にリリースされたHomesteadです。Homesteadは、開発者・技術者向けの安定版バージョンですが、引き続きベータ版であり、ネットワークの利用手数料(ETH)の引き上げ、ブロックチェーンの分岐(フォーク)を防ぐためのdifficulty(採掘難易度)調整方法の修正などが行われました。

その後の詳細な仕様等は決定されていないものの、3段階目は、公式GUI(グラフィカルユーザインタフェース、直観的に操作できる)ウォレットmistの安定版のリリース等を予定した非技術者の一般ユーザー向けの正式版となるMetropolis、4段階目はProof of WorkからProof of Stake(一般的には、保有している基軸仮想通貨の量が多いほど採掘の成功確率が上昇するブロックの承認方式)への移行が行われるSerenityとされています。

Ethereumの初期では、ビットコインと同様のProof of Workが採用され、マイニング・採掘により不特定多数のユーザーが取引(ブロック)の承認を行うことで、採掘に成功したマイナーは取引手数料及び一定の採掘報酬(現在は1ブロック5ETH)を得ることができます。ビットコインのPoWアルゴリズムであるSHA-256とは異なり、EthereumではASIC(採掘専用端末)の開発が困難であるとされるEthashというアルゴリズムが使用されており、マイニング・マイナーの集中化の問題を防ぐとしています。

基軸通貨であるETHの初期の発行量は7,200万ETHであり、その内6,000万ETHが一般向けに販売され、1,200万ETHが開発チームの開発資金として保有されることとなりました。その後はPoWの採掘により、徐々にETH発行量が増えていく予定ですが、将来のETH新規発行量の変更やProof of StakeのアルゴリズムCasperの詳細等も不透明な状況であり、発行上限がどのくらいか、あるいは上限があるのかは未決定です。

アカウントとスマートコントラクト

ビットコインのブロックチェーンは、純粋な取引履歴の集合でありアカウントの概念はありません(全取引履歴から各アカウント・アドレスの残高を計算します)。しかし、EthereumではETHの残高情報等がブロックチェーンに直接記録されるアカウントがベースになったシステムとなっています。このアカウントには、通常の送金用途などに使用される「EOA(Externally Owned Account,外部所有アカウント)」と呼ばれる人間の手(秘密鍵)で管理できる従来のビットコイン等の仮想通貨のアドレスと同様のアカウントと、「コントラクトアカウント(Contract Account)」と呼ばれるプログラムコードによって管理されるスマートコントラクト実行用のアカウントの二種類が存在します。

コントラクトアカウントには、ETHの残高の他にもコードを保管する領域とデータを保存する領域(Storage)があります。EOAからコントラクトアカウントへはメッセージ(message)を送ることができ、コントラクトアカウントはメッセージを受け取るとアカウント内のコードを自動実行し、そのコードによってアカウント内の自身のデータ保存領域に書き込んだり、他のコントラクトアカウントへメッセージを送信することが可能です。Ethereumネットワーク内で「スマートコントラクト」というときは、一般的にこのコントラクトアカウント内のコードのことを指します。

EVM(Ethereum Virtual Machine, イーサリアム仮想マシン)

Ethereumネットワーク内のスマートコントラクトコードの実行環境はEVM(イーサリアム仮想マシン)と呼ばれます。一つ一つのEVMはサンドボックス化(他の領域から保護・隔離されているという意味)されており、ネットワークや他のスマートコントラクトへのアクセスには制限がかかっているため、あるコントラクトアカウント内のコードのバグにより、Ethereumのブロックチェーン本体やその他のスマートコントラクトに悪影響を与えるということは基本的にありません。EVMはブロックチェーン上で動作するため、ブロックチェーンを共有するノード全体により実行されることになります。

このEVMのシステムによりユーザー誰もが自由にプログラムコードを記述・実行することが可能となっています。誰もが自由にブロックチェーン上の仮想マシンを動かすことが出来ることから、Ethereumは「ワールドコンピュータ」と呼ばれることもあります。

Gas

Ethereumにおける取引手数料やスマートコントラクトの実行手数料は、燃料に例えられGasと呼ばれます。Gasは基軸通貨のETHで支払われ、作業によって使用手数料が定められています。このGasは取引の送信者が設定することができ、ビットコインにおける取引手数料と同様に、Gasが大きいほどその取引・スマートコントラクトがマイナーにより優先して承認される可能性が高くなります。

また、スマートコントラクトの実行の際にはGas limitという使用可能な最大のGas量を設定することができます。このGas limitはスマートコントラクトへの外部からの攻撃やコードのバグにより、コントラクトアカウント内のETHが無限に消費されるのを防ぐために用いられ、Gas limitに達すると自動的にプログラムコードが停止することになります。

送信者が設定するGas limitだけではなく、ブロックチェーンにおいて1ブロックあたりのGas limitも設定されています。このブロックのGas limitはマイナーによる投票形式で決定され、動的に変化するものです。ビットコインにおいては1ブロックのサイズ制限がなされていますが、Ethereumでは特に設定されておらず、Gas limitの影響を受けることによりブロックのサイズが直接的に変化します。

標準ウォレット(mist)に実装済みの主な機能

スマートコントラクト記述

Ethereum独自のプログラミング言語Solidityを用いて、スマートコントラクトのプログラミング及びコード実行を行うことが可能です。

Ethereumを利用した主なプロジェクト

  • Augur - 分散型予測市場
  • Swarm - クラウドファンディングプラットフォーム(当サイト解説)(Counterparty上でクラウドファンディング後Ethereumへ移行,Ethereum上の同名のファイル保管プラットフォームSwarmとは異なる)

関連リンク

最終更新日: 2016年03月30日

コメント欄

ゲスト(匿名)としての投稿の場合は、任意のメールアドレス(非公開、123@456.com等ランダムな文字列でも可)の入力も可能です。SNS等を利用してログインした場合には、自分の投稿を編集することができます。

現在、情報提供のコメントや間違いのご指摘コメントに対して独自トークンをお送りする実験企画を実施中です。企画に参加したい場合は、コメントの最後に送付を希望するCounterpartyなどのアドレスを書いてください。(プライバシー保護のため送付後にコメント内のアドレスは削除させていただきます。)

comments powered by Disqus