イーサリアムの「コンスタンティノープル」ハードフォークについて知っておくべきこと
Yuya

2019年初の重要イベントと言っても過言ではないのが、Ripple(リップル)と時価総額2位の座を競い合っているイーサリアムのハードフォークです。
イーサリアムのデベロッパーであるPéter Szilágyi氏によれば、「コンスタンティノープル」と名付けられた同アップデートは第7,080,000ブロック、推定1月16日に導入予定とされています。
#Ethereum Constantinople mainnet hard fork scheduled for block #7080000, estimated around the 16th of January, 2019!
— Péter Szilágyi (@peter_szilagyi) 2018年12月7日
こちらのページでは、今回のハードフォークが追加・変更する機能についてわかりやすく解説していきます。
イーサリアム 2.0

Rocket Pool Mediumより
コンスタンティノープルは、じき完成予定とされている大型アップデート「イーサリアム 2.0」の一段階(マイルストーン)です。
イーサリアム 2.0では、大まかに2つの重要な変更がなされることになっています。
1. コンセンサスメカニズムの変更
ひとつめは、プルーフ・オブ・ワーク(PoW)からプルーフ・オブ・ステーク(PoS)へのコンセンサスメカニズムの移行です。
コンセンサスメカニズムとは、トランザクション(取引内容)が格納されたブロックを「誰が生成するのか」を決めるルールです。
ビットコインや現段階のイーサリアムを含む多くのブロックチェーンでは、特定の条件を満たす数値を探し出す「マイニング」と呼ばれる作業を要するPoWが広く採用されています。
PoWは比較的安全性の高いアルゴリズムとして実証されている上、過去数年で暗号資産の価格が急騰したため、界隈では処理能力のより高い機器を開発・導入し合う「マイニング競争」が起こっています。
しかしPoWは、増え続けるネットワークのボリュームに対応しきれていない(スケーラビリティ問題)点や、無駄な計算に莫大な電力を費やすマイニングが環境破壊に繋がる点などが問題視されてきました。
そこでイーサリアムがPoWを代替するコンセンサスメカニズムとして導入するのが、PoSです。
PoSでは、自身の資産を担保にとる(これを「ステーキング」と呼ぶ)ことでブロック生成者になるチャンスを得ることができます。
ブロックに不正な記録が存在した場合その担保は持ち主から没収されるため、マイニングを行わずに信用度の高いブロック生成者選出ができると考えられています。
2. シャーディングの導入
イーサリアム 2.0のふたつめの変更点は、シャーディングと呼ばれる技術の導入です。
これは、ネットワークの正当性を確認する「ノード」に関する技術で、ブロックチェーンネットワークの処理速度(スケーラビリティ)を改善する技術として期待されているものです。
現在、多くのプラットフォームにおいて、ノードになるためにはブロックチェーンまるまる全てをダウンロードする必要があります。
この手法は、セキュリティに長けている一方で、ブロックチェーンのサイズが大きくなっていくにつれてノードのストレージを圧迫してしまうという欠点があります。
ブロックチェーンのサイズが一般的なコンピューターで管理しきれないレベルになってしまうと、一部のスーパーコンピューターだけがノードになれる、といったような事態になりかねません。
シャーディングとは、ノードの大きさに応じてブロックチェーンを断片的に保存・管理できるようにすることで、より多くのコンピューターがネットワーク維持に参加できるようにするという技術です。
イーサリアムのシャーディングでは、セキュリティとスケーラビリティのトレードオフを最小限に抑えるために、ノードを四段階のレベルに振り分けることになっています。
コンスタンティノープル

コンスタンティノープルは、現在のトルコ・イスタンブールに位置していたローマ/ビザンティン帝国時代の都市の名前。
イーサリアム 2.0について長々と解説してきましたが、コンスタンティノープルとは一体どのような機能を追加するアップデートなのでしょうか?
結論から言うと、コンスタンティノープルは「イーサリアム 2.0の完成にはまだまだ時間がかかるよ」というちょっと残念なアップデートです。
同アップデートでは、以下の5つのイーサリアム改善案(Ethereum Improvement Proposal、通称EIP)が実装されることになっています。
- EIP 1234:「ディフィカルティボム」の延長、マイニング報酬の減少化
- EIP 145: ビット演算変換機能の追加
- EIP 1014: 初期化の済んでいないアドレスとのやり取りを可能に
- EIP 1052: 特定のアドレスハッシュを生成するオペコードの追加
- EIP 1283: ガス計量法の変更
この中で、覚えておくべき項目は一番最初のEIP1234でしょう。
イーサリアムは、PoWからPoSへできる限りスムーズに移行できるように様々な工夫を施しています。その大きな例のひとつが「ディフィカルティボム」の存在です。
ディフィカルティボムとは、マイニングの難易度を徐々に上げていくプログラムのことで、2016年11月にイーサリアムネットワーク上に導入されました。
マイニングの難易度を徐々に高める、つまりマイニングにかかる電力コストを増加していくことで、収益性を低下させ、マイニング撤退を促すというのがディフィカルティボムの役目です。
EIP1234は、このディフィカルティボムにおけるマイニング難易度の上昇速度を遅くし、かつブロック生成報酬を3ETHから2ETHに減少させる、というものです。
この改善案が採用された理由は、ズバリ「PoSの導入が計画開始当初より遅れている」ためです。
現段階のディフィカルティボムは難易度の上昇が速すぎるため、マイニングの収益性が低くなりすぎてPoSの導入前にネットワークの処理能力が大きく低下してしまうことが懸念されています。
そのため、EIP1234ではこの難易度の上昇速度とブロック生成報酬をうまく再調整しているのです。
他の4つの改善案はどれもネットワークの利用手数料にあたる「ガス」を節約する、というDAppsデベロッパー向けのものとなっており、一般的なユーザーにはあまり関わりのないものといえます。
まとめ
まとめると、コンスタンティノープルは「PoSの導入にはまだまだ時間がかかるので、それまでの移行プロセスがスムーズになるようにマイニング難易度などをいろいろ調整するよ」というものです。
イーサリアムのハードフォークは複雑そうに聞こえるものが多い一方、今回のアップデートは調べてみるととてもシンプルで、かつちょっと残念なものでした。
しかし、ビットコインキャッシュなどが大きな論争をもとにフォーク(分岐)した中、イーサリアムのコンスタンティノープルは「ノンコンテンシャス(=みんなが合意する)」なものとなっています。
そのため、同ハードフォーク後、コンスタンティノープル以前のネットワークはほぼ無価値になっていくものとみられています。
コンスタンティノープルが示唆するメッセージを加味すると、イーサリアム 2.0の完成にはまだまだ時間がかかるようです。