イーサリアムがハードフォーク、Metropolisバージョンへ

Ethreum(イーサリアム)が、現行のHomestead(ホームステッド)からMetropolis(メトロポリス)バージョンにアップデートされるにあたり、ハードフォークが実行されることが決まりました。アップデート前後でどのように変わるのかについて、見ていきたいと思います。

PoS導入は見送り

まずはじめに一番注目されていたProof of Stakeの導入についてですが、イーサリアムコミュニティ内でコンセンサスをとった結果、次回の「Serenity」バージョンまで持ち越されるようです。

今回のMetropolisアップデートに伴うByzantineハードフォークにより分岐し、Byzantineが今後のメインチェーンとして機能する見込みです。また、Metropolisアップデートには2段階目のハードフォークであるConstantinopleハードフォークも計画されているものの、こちらについては内容、日時など詳細については現時点では不明です。Byzantineハードフォークは、4,370,000番目のブロックが生成されたタイミングにアクティベートされる予定で、2017年10月17日に起きる見込みです。Byzantine ハードフォークにより、EIP(Ethereum Improvement Proposal、イーサリアム改善提案)649が導入され、マイニング難易度向上のプログラムが18か月間、停止されるそうです。これにより、かねてより懸念されていたイーサリアムの氷河期(マイニング難易度向上による、、イーサリアムネットワークの停滞期)の到来が18カ月間先伸ばしされたかたちになります。また、ブロック生成報酬の少ないProof of Stakeの導入を見越して、マイニング報酬が現行の5ETHから3ETHへと減額されるそうです。

ハードフォークで何が変わる?

Byzantineハードフォークでは、5つの項目が改善されるようです。

1.パフォーマンス

EIP98の導入により、state root情報がブロックから削除されます。これによって、マイニングに必要なエネルギー(GPUの消費電力)が大幅に低下する見込みです。

2.ライトクライアントのユーザビリティ

EIP658の導入により、ユーザーはコントラクトが実行されたかどうかを判別することが可能になります。従来のイーサリアムにおいてコントラクトの実行状況を確認するためには、ユーザーがイーサリアムブロックチェーン上の全情報を手元にダウンロードして最新情報をアップデートする、あるいはイーサリアム専用のブロックチェーンエクスプローラー(ブロックチェーン内部のデータを参照する外部サービス)のような第三者機関を参照する必要がありました。Metropolisバージョンのイーサリアムでは、これらの大きなユーザー負担が解消され、手軽にコントラクトの実行状況を確認できるようです。

3.マイニング

EIP100の導入により、ブロックの同時生成で得られる報酬額に調整が入りました。ブロックチェーンでは、複数のマイナーがほぼ同時のタイミングでマイニングに成功した場合、チェーンが一時的に分岐することがあります。最終的には一番長いチェーンに正当性が認められ、他のチェーンは消滅するのですが、これらの分岐したブロックを生成した際にも、マイナーは報酬を得ることができます。(このようなチェーンは、bitcoinブロックチェーンでは親なしチェーン、ethereumブロックチェーンでは従兄弟チェーンと呼ばれるようです。)

従来のイーサリアムブロックチェーンでは、ここの報酬設定に問題がありました。同時生成時に得られる従兄弟チェーンのマイニング報酬を総額すると、本チェーンを生成した人のマイニング報酬である5ETHよりも高くなってしまうケースがあったそうです。今回のEIP100は、ここのバランス調整の目的で行われるようです。

4.プライバシー

Metropolisバージョンの目玉となりそうです。EIP198、EIP212、EIP213により、zk-SNARKsがイーサリアムに導入される見込みです。zk-SNARKsとは、匿名性暗号通貨で有名なZCASH(ジーキャッシュ)のチームが開発した技術です。これにより、ユーザーは自身のトランザクションの詳細や、ステートの変化を非公開にすることができるようになるそうです。ただし、この匿名機能を利用するには、通常のコントラクトやトランザクジョンにかかるGas(ガス、取引手数料)よりも高くなるとのことです。

5.コントラクト

まずはじめに、EIP214の導入により、コントラクトのセキュリティが強化されます。従来は、コントラクトのなかにコントラクトが含まれているコントラクトといったような、入れ子構造になった複雑なコントラクトについては、最も中心に含まれているコントラクトから順番に実行されて、各コントラクトのステートもそれに応じて変化していくという仕組みでした。しかしイーサリアムは、このステート変化の複雑性がもたらす脆弱性を突かれて、DAO事件という未曽有の匿名サイバー攻撃の被害にあい、イーサリアムとイーサリアムクラシックの2つへと分岐するハードフォークを起こしています。今回のMetropolisバージョンへのアップデートにより、ステート変化を起こさずに入れ子上のコントラクトを処理できるようになったことで、脆弱性が低下し、安全性が向上したようです。

また、EIP211が導入されました。RETURNDATASIZERETURNDATACOPYという機能が実装されたことにより、ユーザーは自分の管理するコントラクト内の任意データを取得できるようになったようです。さらに、EIP206でREVERT機能が実装されたことにより、ユーザーはコントラクトを停止して元に戻したいという場合に、自由に実行することができるようになりました。

Serenityに向けて駆け上がる

Metropolisバージョンへとアップデートすることによって、イーサリアムのユーザビリティは改善することが見込まれます。特に、コントラクトやトランザクションに匿名性を持たせられるようになることによってイーサリアムの利用方法にどのような変化が生まれるかについて、今後引き続き注目していく必要があるでしょう。

この記事をシェアする:
BBC編集部
About BBC編集部 238 Articles
ブロックチェーンビジネス研究会(略称:BBC)編集部です。海外の業界ニュースや、ブロックチェーンや暗号通貨について基礎的な内容を発信していきます。