イーサリアム、再度のハードフォークとその影響についてまとめ

レポート「ビットコインキャッシュの取り出し方&送金方法」を配信。画面付きで丁寧に解説ビットコイン研究所

レポート「アルトコイン図鑑」では30種類以上のコインの概要と見通しを解説レポート内容へ

ダウンロード

イーサリアムが再びハードフォークを行います。

DAO問題でのハードフォークが話題になったのは記憶にあたらしいですが、再度のハードフォークとなります。

<背景>

ここ数週間に渡り、イーサリアムネットワークへのDDOS攻撃が繰り返されています。これは、ネットワークの機能を麻痺させるもので、イーサリアムのクライアントであるgethがこの攻撃をうけるとクラッシュしたり、処理に大幅な時間がかかったりします。

その影響で、ノードの数が減ったり、送金・コントラクトの実行の確認が遅れます。実際に、取引所へのETHや、トークンの入出金が遅れたり、一時停止したりなどの影響が出ています。

<原因>

原因としては、一部のOPコードのgas priceが低すぎることです。

噛み砕いて言うと、イーサリアム上で動かすプログラムは、その命令の内容に応じて手数料を支払う必要があります。イーサリアムの命令は、OPコードという形で定義されており、何十かの命令のセットがあって、それぞれを実行すると幾らという価格がついています。

しかしながら、一部の命令は、非常に安い手数料で実行できる割には実行時にメモリなどのコンピュータリソースを食うのです。この仕様を悪用します。

この命令を大量に含んだ悪意のあるプログラムをイーサリアム上で動かすことによって、イーサリアムネットワークを、僅かなコストで麻痺させることができてしまいます。

一説によれば、1回の攻撃にかかるのは、600ドル程度のコストと言われています。イーサリアムの空売りを仕掛けながら、この攻撃を繰り返せば、濡れ手に泡で儲かるため、その筋の攻撃という意見もささやかれています。

<テクニカル>

問題のOPコードは、EXTCODESIZEというものです。ブロックの承認にかかる時間が20-60秒もかかるようになりその間に、~50,000回ものディスクアクセスがされるとのこと。これにより、ブロックの生成に通常の2-3倍の時間がかかるほどネットワークが遅延しています(公式ブログより

<対策>

対策としては、問題となってる命令に対する実行価格を引き上げるとともに価格計算ロジックを改定することです。価格やロジックはイーサリアムのソフトウェアにハードコードされているため、変更に際しては、ハードフォークが必要になります。

<何時行われるのか?>

ブロックナンバー246300で実行されます。現在のブロックナンバーはこちらで確認ください。およそ18日の火曜日の23時頃と予測されています。

<続く5回めのハードフォークについて>

さて、このハードフォークのあと程なくして、再びハードフォークが予定されています。これは、悪意あるコントラクトコードをネットワーク上から検閲するもので、DAOのときのように、問題のコードをなかったものにするということのようです(詳細はまだ検討中とのこと)

<ハードフォークの影響>

今回のハードフォークでは、イーサリアムクラシックのようなことが起こるのでしょうか?

正確に言えば、分派するオリジナルのチェーンは残ります。つまり、ふたたび2つのコインが生成されます。

ただし、クラシックのように、古いチェーンを支持してマイニングする人は居ないでしょう。ネットワークが機能不全を起こしているのですから、そのネットワークのコインを保持したところで価値は殆どありません。

このようにハードフォークといっても、ほぼ全員一致で、利害の一致する問題を解決するためのフォークであれば、問題は起こりにくいといえます。DAOの場合は、意見が割れました。ですので、反対派がクラシックとなって分派したわけです。

取引所も、すべてこのハードフォークを支持しています。取引所に入金されているイーサリアムはすべてハードフォーク後のコインだけが有効になり、古いコインの方は無視されます。

<隠れたリスク>

しかしながら、このハードフォークに対しては、リスクも指摘されています。コードの実行の価格の変更やロジックをいじったことにより、既に存在するコントラクトにおいて、問題が起こる場合があるとの内容がredditで指摘されています。

コントラクトがガス不足で止まってしまったり、最悪の場合は、コントラクトが途中で止まることで、資金がロックされて取り出せなくなったりという危険性があります。コントラクトはアップデートできないため、こうしたコントラクトを知らずに利用してしまうとそのような問題が起こります。

今回のハードフォークも拙速で、十分なテストがおこなわれているわけではないようだとの批判があります。こちらのブログ記事でこの問題がフォローされています。

イーサリアムEIP150ガスプライスのハードフォークの問題点

<イーサリアム・クラシックへの影響>

同じ仕様に基づいているイーサリアム・クラシックも同様の脆弱性を抱えています。そのため、イーサリアム・クラシックも、同じ問題を修正するためにハードフォークを行います。

ETCのハードフォークは25日頃が予定されているようです。なおETCのフォークは1回のみで、つづくフォークは予定されていません。

<豆知識>

ちなみに今回のハードフォークを2回めのハードフォークと言っている記事があるようですが、私の記憶と理解が正しければ4回めに当たります。

1回めは、リリース直後2週間後に行われたもので、Thawingというものでした。利用できるGASのリミッターを外すためのフォークでした。これによりコントラクトが利用できるようになりました。

2回めは、Homesteadへの移行時です。緊急時にVitalikがネットワークを止めることができるチェックポイントを廃し、完全にDecentralizedに移行するものです。その他、重要なプロトコル改良も含めてのメジャーアップデートで、ハードフォークとなりました。

3回めは、ご存知のDAOのフォークです。このときに、EthereumとEthereum Classicにネットワークが分岐しました。

4回めが今回。さらに次のフォークも予定されているので、イーサリアムは計5回のハードフォークを行うことになろうかとおもいます。

※ちなみにディフィカルティボムの問題というのがあり、Ethereumは来年初頭に6回めのハードフォークの予想がささやかれています。(ETCは来年にこの問題で次のフォークをすることを発表済みです)

詳細日本語マニュアル付きTrezorの購入はコインギフトから

初心者向け「使って勉強!ビットコイン」DMMオンラインサロン