イーサリアムハードフォーク 『メトロポリス』10月17日に実行
- 当初の試行予定日が延期されたが、問題が発生しているわけではない
- イーサリアムは、その第三ステージに当たるメトロポリスに移行しようとしています。このメトロポリスの第一段階として、ビザンチウムテストが10月17日に実行延期予定です。
- ビザンチウムテストでは、ハードフォークを行い、主に7つの大きな変更点がある
- 安全性、報酬の修正、匿名化の向上など技術の変更点があります。
先日、第一段階のメトロポリスハードフォークがイーサリアムのRopstenテストネット上で行われました。そして、10月17日にハードフォークはメインネットで実際に実行される予定です。
ネットワークに継続して参加したいのであれば、全てのユーザー・取引所などは新しくなったネットワークに対応しているクライアント(仲介者)を更新しなければならないこともあり変更することがありますが、メトロポリスは実際どのような変更を実施するのでしょうか。
このハードフォークは、期待に沿えるものとなるのでしょうか、それとも人々の期待を裏切ってしまうのでしょうか。
10月17日、イーサリアムはあらかじめ定められている四つのステージの内の第三ステージに突入します。
第一ステージのフロンティア、第二ステージのホームステッドを経て、新たなハードフォークが第三ステージのメトロポリスで起きようとしています。
第三ステージ内の第一段階であるハードフォークは、長期的に見れば、イーサリアムに多大な影響を与えるものの、短期的には、期待されるほどの変更はなく、わずかな変更で抑えています。
Ropstenテストネット上では、9月25日に既にハードフォークは実施されました。
一方メインネットでは、4,370,000個のブロックが作成され次第アップグレードされる予定です。
これは、10月17日の午前中だと予想されていて、実行され次第、ネットワークから疎外されないために全クライアントは対応のためにアップグレードを行う必要があります。
当初の予定では、イーサリアムをプルーフオブワーク(PoW)からプルーフオブステーク(PoS)のブロック承認システムへ変更する予定でした。
そして、その変更は、ブロック承認の際に、グラフィックカード(マイニングの計算の効率性をあげるもの)などを持つマイナー(マイニングの計算量が多ければ多いほど報酬がもらえて、そのためには高性能なチップが必要で大量の電力を使いマイニングする)たちではなく、彼らの資産保有量を元に報酬がもらえる投資家たちを受け入れる予定でした。
しかし、このようなイーサリアムの基盤の大きな変更はメトロポリスでは起きません。メトロポリスでのハードフォークをより確実に成功させるために、開発者たちはこれを第四ステージであるセレニティまで延期させました。
さらに、フォークをうまくチェーン上に調和させるため、ビザンチウムとコンスタンティノープルの2段階に分けました。
ちなみに、10月17日に起ころうとしているのがビザンチウムです。
しかし、内容はどんなものなのでしょう。その変更点を一つずつ見て、紐解いていきましょう。
EIP 649: アイスエイジの終わり
現在の”アイスエイジアルゴリズム”は未だマイニングの難易度を飛躍的に高めています。
これは、新しいイーサリアムのマイニング量は減っていて、ブロック承認の時間は増えているというネットワーク内のデータにも現れています。
そして、遠くない未来に、イーサリアムは遅延し、使い勝手の悪いものとなってしまうでしょう。
アイスエイジアルゴリズムには、ハードフォークが適用され新しいネットワークに移行する調整を促す作用がありました。
よって、ビザンチウムで最低限やるべきことは、ハードフォークを実行し、そのアイスエイジ(調整)となりつつある承認システムを改善させることなのです。
これは、EIP 649 の適用によって、アイスエイジ(承認の調整)を18ヶ月先延ばしにし、ブロック承認の報酬を5イーサから3イーサに減額することによって解消されるでしょう。
そして、これはプルーフオブステークをシステムに採用し、報酬をさらに減額するための布石でもあるのです。
しかし、もちろんEIP 649の適用はハードフォークの最大の目的ではありません。
ハードフォークには、開発者が議論を重ね、導き出した7つの大きな変更点が含まれています。
これは、とても技術的な話で、イーサリアムやユーザーがこの変更から得られる利益は明確ではありません。
ビザンチウムでのハードフォークは、パフォーマンス、クライアント負担容量、マイニング、プライバシー、そして、契約の5つの観点に影響を与えます。
パフォーマンス
EIP 98: 少量のステイトルート計算によるより多くの並列化
イーサリアムでは”ステイトルート”と呼ばれる全てのステイト(ブロックチェーンに現存する全アカウントの状態)の承認を行う特別なハッシュ木というデータ構造が存在しています。
イーサリアムのステイトとして、全てのアクティブアカウントと契約を含み、ステイトルートを使うと、ステイトへの登録を承認することができます。
ステイトルートは、普通、各取引ごとに再計算されますが、EIP 98はその再計算を省くことができます。
これは、ステイトルートの計算を並列化させ、ハッシュ木計算を減少させることができ、コンピュータ電力の削減にも繋がるのです。
将来的には、EIP 98はステイトルート計算を並列化させるだけでなく、取引のプロセスにも関与することができるようになります。そして、これはさらなるコンピュータ電力の削減に繋がるでしょう。
EIP 98の弱点としては、ライトクライアントが取引を承認できる詐欺の防止を担うものがブロック全体で構成されている必要があることです。
しかし、イーサリアムに使用されるブロックは比較的小さいので、この点に関しては対処可能であると言えます。
軽量クライアント
EIP 658:軽量クライアントは契約が実行されたかの確認ができます
EIP 658では、既存の分野でなく、契約が正式に正確に実行されたかどうかの情報を別の分野に保存するので、EIP 98 を使った取引では、ステイトルートを含む必要性がなくなります。
全てのステイトやブロックチェーンを丸々ロードできない軽量クライアント自身が展開または関与したオペレーションが成功したか否かを突き止めることができるようになるのです。
これは、現時点では、軽量クライアントは他人の力を借りないとできません。
よって、EIP 658の変更により、信頼性の高い第三者を必要とせずに、軽量クライアントが契約の相互運用性を高めることができるのです。
マイニング
EIP 100:アンクルへの報酬の適正化
EIP 649がマイニングの報酬を減額しますが、さらにEIP 100もマイニングに影響を与えます。
ビットコインでも起きることですが、イーサリアムネットワーク上の二人のマイナーがほぼ同時にブロックを承認することがあり、これを”アンクル”と呼びます。
この場合、ネットワークが一方のブロックを不適正であると判断するまで、二つのブロックが一定時間共存してしまうことになります。
一方が不適正であると判断されると、そのブロックから派生したチェーンも不適正とされ、無効になります。
この無効にされたブロックをビットコインでは”オーファン”と呼び、イーサリアムでは”アンクル”と呼び、イーサリアムではこの”アンクル”と呼ばれるブロックでのマイニングに対し、少量の報酬が支払われます。
これは、マイニングをより公正にするためです。
しかし、アンクルへの報酬は予期せぬ副作用をもたらしていました。
ある状況下では、多くのアンクルが作られたため、実際の報酬が規定の5イーサよりも高くなってしまうことがあったのです。
これを解決するため、新しく適用されるEIP 100では、アンクルへの報酬を残しつつ、バグを修正します。
プライバシー
EIP 198、212、213:zk-SNARKs(ゼロ知識証明) がイーサリアムに適用されます
恐らくメトロポリスでのハードフォークで最も大切となるのが三つのEIP 198、212、213です。
この三つのEIPは、契約内のRSAや、特定の楕円曲線上のプリコンパイルされた契約の展開のような複雑な暗号化されたオペレーション行うことができます。
これらの変更は、zk-SNARKゼロ知識証明を使用して有効化できます。
zk-SNARKはZcashのチームによって開発されました。
これは、取引の詳細や契約状態の変更を非公開にすることができます。その取引の受容者は契約自体(取引)に間違いがないかを照会することができますが、その契約自体(取引)は公共に公開する必要はありません。
また第三者がその内容を照会することもできないのです。zk-SNARKは既存の取引に比べ、より多くの費用がかかりますが、長期的に見てプライバシーを守るという強みを得ることができます。
契約
ビザンチウムでのハードフォークは、特に契約に関して多大な影響を与えます。
契約は、イーサリアム上でも最も重要なオペレーションの一つであるので、エコシステム全体にも多大な影響を与えることになります。
EIP 214: 契約内での新しくより安全な契約
スマートコントラクトのタスク最中に新たなスマートコントラクトが生成される可能性もあります。例えば、他の契約の情報を受け取りたいときなどです。
今までは、内的な契約と呼ばれるものには優先権があり、外的な契約の状態を変更することも可能でした。
しかし、これは、契約の取引を複雑化させ、時に不安定にさせました。これは、有名ではありませんがDAOハッキングの原因にもなりました。
新たに採用されるSTATICCALL EIP 214と呼ばれるオペレーションコードはこのような問題を回避することができます。
新しいコードは、契約中に新たな契約を呼び出す際、ステイトの変更を許可せず呼び出すことができます。
これは、よりスマートコントラクトの構成をより複雑化し、より安全にします。
EIP 211: 契約における任意データ返却の向上
もう一つの問題となっているのが、データの返却です。
契約自体のデータ量があらかじめ分かっていれば良いのですが、分かっていないがために、返却データがとても複雑で高くついてしまう場合があります。
しかし、EIP 211の新しいオペレーションコードである RETURNDATASIZE及びRETURNDATACOPYは任意のデータ返却をより柔軟に対応できるようにしました。
EIP 206: より安価になるステイト復帰
EIP 206では、さらに REVERT と呼ばれる新しいオペレーションコードを採用します。
これは、契約の実行を中止させ、元の状態に戻す方法を提供します。このコードがないと、契約の実行を中止するため複雑で高コストな方法を取らなければなりません。
さらに、この新しい方法は低コストなだけでなく、ある理由とともに返却することもできます。
EIP 206は、この記事で説明するビザンチウムハードフォークでの最後の変更点になります。この変更点は技術的で、素人の方には、とても難しいかもしれませんが、下記で説明していきます。
zk-SNARKは技術面から見ると、最も複雑な分野ではありますが、何ができるのかを理解するのは、さほど難しくありません。
イーサリアムは、Zcashと同様に取引だけでなく、契約やトークンのプライバシーを保護することができます。これは、非常に大きなニュースです。
さらに、フォーク後はステイトルートの計算が早くなり、ライトウォレットとの契約も容易になり、新しいオペレーションコードによりさらに複雑で安全性のある契約を結ぶこともできます。
永久的なチェーンやコミュニティの分離などを起こす、いわゆる悪質なハードフォークとされるものはメトロポリスでは起きないとされます。
イーサリアムクラシックの分離を産んだDAOハードフォークは別として、コミュニティは今回のメトロポリスに対して合意してるようです。
なぜなら、このハードフォークは、何か予期せぬ事態に対してのアクションではなく、当初から計画されていたからです。
しかし、どちらにせよ、アイスエイジ時代に突入した時点でハードフォークは避けられぬものと位置付けられていました。
Metropolis: Byzantine, the First Part of Ethereum’s Planned Hard Fork, Activates October 17
September 28, 2017 by Christoph Bergmann
参考記事はこちらから
画像はShutterstockのライセンス許諾により使用
「仮想通貨」とは「暗号資産」のことを指します