Ethereumの大型アップデート『コンスタンチノープル』が来る!

Ethereum-constantinople

こんにちは、ダーフクです。

2018年は2017年に比べ、ハッキング事件などによりブロックチェーンに対するネガティブな印象を持つ方も増えたと感じます。しかしまだブロックチェーン技術は開発段階であるため、安定して使えるまでにはあと5年はかかるものと私は考えています。

それまでにできる限り情報をキャッチアップしていきたいですね。

さて今回は、ブロックチェーンとして現在(2019年1月12日)時点で時価総額第3位を誇るEthereumの次期アップデート「コンスタンチノープル」についてお伝えします!

Ethereumのアップデートのステップ

Ethereumはステップとして4段階あります。

今回は4段階を計画している中での3段階目のアップデート「メトロポリス」の2回目となります。

  • 第1段階
    フロンティア(2015年7月)
    • 開発者がスマートコントラクトの開発に参加できるようにした、実証実験の段階
    • バグが見つかった場合は巻き戻しができるようにしていた
  • 第2段階
    ホームステッド(2016年3月)
    • マイニングの難易度を調整し、一般ユーザーも使えるようにアップデートした
    • 15秒程度でマイニングされるように調整した
  • 第3段階
    メトロポリス

    1. ビザンチウム(2017年10月)

    • 匿名性通貨Zcashが利用しているzk-SNARKsを導入することによる匿名性の向上
    • マイニング報酬の減少(5 Ether から 3 Etherへ)、採掘難易度の調整

    2. コンスタンチノープル(2018年1月)

    • 今回のアップデート
  • 第4段階
    セレニティ(実施時期未定)
    • PoSへの移行の完成

アップデートの次期

EthereumのチームリーダーのPéter Szilágyiによると、ブロック番号#7080000, 日にちでいうと1月16日になる予定です。

https://twitter.com/peter_szilagyi/status/1071052095535628288

現時点(1月9日)では、Ethereumのテストネットワークの1つであるRinkebyでコンスタンチノープルのアップデートが正常に完了したとのことです!

今回のアップデートで新しい通貨は生まれない

今回のアップデートでは新しい通貨は生まれません。このようなアップデートはハードフォークと呼ばれています。

ハードフォークとは、ブロックチェーンのプログラムがアップデートされ、新しいプログラムを使用したチェーンがアップデート前に使われていたチェーンと互換性を保てなくなり、チェーンが2つに分岐してしまうことを言います。

そして、どちらのチェーンも残る場合、2つのブロックチェーンに分岐することになります。

旧・新チェーンの違い

ただし、Ethereumの場合はアップデートを前提としたブロックチェーンであるため、今回のアップデートでは2つのチェーンに分岐することはありません。

もし仮にアップデート前のブロックチェーンを使うユーザーがいた場合、ディフィカルティボムという機能が働きます。これによりマイニングの難易度が上がることでブロック生成の間隔が長くなるため、そのブロックチェーンは徐々に機能しなくなっていきます。

よって、 全てのユーザーはアップデートをしていく形になります。

5つの変更点

今回の変更点は大きく5点あります。
EIPとはEthereum Improvement Proposalsの略で、改善提案のことです。様々な提案がされています。

参考 Ethereum EIPEthereum Improvement Proposals

EIP-145: Bitwise shifting instructions in EVM

他の算術演算と同等のコストでネイティブのビット単位のシフトを提供します。

これまでビットシフトは他の算術演算子を元に計算していたため、コストが高くかかりました。このEIPを導入することで、そのコストを大幅に下げることができます。

EIP-1014: Skinny CREATE2

state channelで用いられるopcodeであり、ユーザはまだEthereum chain上にdeployされていないContractにcommitしてoff-chainのやり取りを行えるようになります。

この説明を聞いても理解しずらい部分が多いと思います。簡単にいうと、State channelと呼ばれるセカンドレイヤーで正しくコントラクトが動作するのか検証できるようにする機能です。

この実装は将来的なイーサリアムのスケーリング問題解決策の大事な要素になります。

EIP-1052: EXTCODEHASH opcode

このEIPは、スマートコントラクトのコードのハッシュを返す機能(opcode)を追加します。

スマートコントラクトが別のコントラクトの正当性を検証をする際に、今まではコントラクトのコード自体を用いていました。そのため、複雑なコントラクトであればあるほどコード量が多くなるため、ガスコストがかかってしまっていました。このEIPを導入することで、コード量に依存しなくなるため、効率的にコントラクトの検証ができるようになります。

EIP-1283: Net gas metering for SSTORE without dirty maps

このEIPはEVMのSSTORE命令におけるGAS計算方式を変更します。

これによって、1つのトランザクションで複数のストレージを扱うようなスマートコントラクトのGAS代を節約することができます。

EIP 1234: Constantinople Difficulty Bomb Delay and Block Reward Adjustment

このEIPはディフィカルティボムの12ヶ月の延期と、ブロック報酬の減少(3 Ether → 2 Ether)を行います。

ディフィカルティボム延期の理由は、セレニティアップデートの遅れが原因です。この遅れに対応する形でこのEIPによりディフィカルティボムを再調整しています。

ディフィカルティボムとは

Ethereumは将来的にPoWからPoSへコンセンサスアルゴリズムを変更する予定です。しかし、このアップデート後にPoWでマイニングを続けたいユーザーが古いPoWのEthereumチェーンを使い続けると、チェーンが2つに分岐してしまいます。

それを防ぐために、ある期間が過ぎるとマイニング難易度を自動的に上げるプログラムが組まれています。これがディフィカルティボムです。

まとめ

今回のアップデートはPoSへの移行のための調整的な要素が大きく、そこまで大きなアップデートではなかったですね。

このアップデートは、「最終形態になるためにはまだ時間がかかるよ」ということを暗に示しているのかもしれませんね。

残すところ、最後のアップデート「Serenity」のみとなりました。Ethereumはコミュニティが大きく、世界の優秀な研究者が総出で開発に取り組んでいます。そのため、最終目標を実現する難易度は相当高いと思いますが、協力していけばきっと成功すると信じています!

今後の動きにも目が離れませんね!