イーサリアム(ETH)の最新アップグレード内容まとめ
イーサリアムは、分散型アプリケーション(DApps)を構築するための主要なプラットフォームとして、その進化を続けています。その進化の過程において、様々なアップグレードが実施されており、ネットワークの性能、セキュリティ、スケーラビリティの向上を目指しています。本稿では、イーサリアムの主要なアップグレード内容について、詳細に解説します。
1. メトロポリス(Metropolis)アップグレード
メトロポリスは、2017年から2018年にかけて実施されたアップグレードであり、大きく分けて「Byzantium」と「Constantinople」の二段階に分けられます。
1.1 Byzantium
Byzantiumは、2017年10月に実施されたアップグレードであり、主に仮想マシンの改善と、より効率的なスマートコントラクトの実行を目的としていました。主な変更点としては、以下のものが挙げられます。
- EIP-145: Bitwise Shift Instructions: ビットシフト命令の導入により、スマートコントラクトの計算効率が向上しました。
- EIP-161: State Clearing: 不要な状態データを削除することで、ブロックチェーンのサイズを抑制し、ネットワークのパフォーマンスを改善しました。
- EIP-196: Precompiled Contracts: 特定の暗号化処理を高速化するための事前コンパイル済みコントラクトが導入されました。
1.2 Constantinople
Constantinopleは、2019年2月に実施されたアップグレードであり、ガス代の削減と、スマートコントラクトの開発者にとってより使いやすい環境の提供を目的としていました。主な変更点としては、以下のものが挙げられます。
- EIP-128: Revert Reason: スマートコントラクトの実行エラー時に、より詳細なエラーメッセージを返すことができるようになりました。
- EIP-211: Reentrancy Guard: リエントランシー攻撃に対する脆弱性を軽減するためのガードが導入されました。
- EIP-627: Static Call: スマートコントラクト間の静的呼び出しをより効率的に行うことができるようになりました。
2. イスタンブール(Istanbul)アップグレード
イスタンブールは、2019年12月に実施されたアップグレードであり、プライバシーの向上と、より複雑なスマートコントラクトの実行を可能にすることを目的としていました。主な変更点としては、以下のものが挙げられます。
- EIP-1980: Address Reuse: アドレスの再利用を禁止することで、プライバシーを向上させました。
- EIP-2028: Contract Call Data Gas Cost Reduction: スマートコントラクトの呼び出しコストを削減しました。
- EIP-2565: zk-SNARKs in EVM: ゼロ知識証明(zk-SNARKs)をイーサリアム仮想マシン(EVM)に導入するための基盤が整備されました。
3. ベルリン(Berlin)アップグレード
ベルリンは、2021年4月に実施されたアップグレードであり、ガス代の削減と、ネットワークの安定性向上を目的としていました。主な変更点としては、以下のものが挙げられます。
- EIP-2548: ChainID: チェーンIDを導入することで、異なるネットワーク間での誤ったトランザクションの実行を防ぎました。
- EIP-2715: Incrementally Verifiable Data: データ可用性サンプリング(DAS)の基盤となる技術が導入されました。
- EIP-2929: Gas Cost Changes: 特定の操作のガス代を調整することで、ネットワークの効率を改善しました。
4. ロンドン(London)アップグレード
ロンドンは、2021年8月に実施されたアップグレードであり、EIP-1559の導入が最も重要な変更点です。EIP-1559は、トランザクション手数料のメカニズムを大きく変更し、ネットワークの利用状況に応じて手数料が変動するようにしました。これにより、トランザクション手数料の予測可能性が向上し、ネットワークの混雑緩和に貢献することが期待されています。主な変更点としては、以下のものが挙げられます。
- EIP-1559: Fee Market Change: トランザクション手数料のメカニズムを変更し、ベースフィーと優先手数料を導入しました。
- EIP-3153: Warm Storage: スマートコントラクトのストレージアクセスコストを最適化しました。
- EIP-3855: PUSH0 Instruction: PUSH0命令を導入することで、スマートコントラクトのサイズを削減しました。
5. シャンハイ(Shanghai)アップグレード
シャンハイは、2023年4月に実施されたアップグレードであり、ステーキングされたETHの引き出し機能の解放が最大の目的でした。これにより、イーサリアム2.0(現在はコンセンサスレイヤーと呼ばれます)への移行において、ステーキング参加者がETHを引き出すことが可能になりました。主な変更点としては、以下のものが挙げられます。
- EIP-4895: Beacon Chain Push Withdrawals as Operations: Beacon Chainからの引き出しをEVMオペレーションとして処理できるようにしました。
- EIP-3651: Warm COINBASE: COINBASEアドレスへのアクセスコストを削減しました。
- EIP-3860: Limit and Meter Initcode: スマートコントラクトの初期化コードのサイズを制限しました。
6. Cancun アップグレード (Dencun)
Cancun(Dencun)は、2024年3月に実施されたアップグレードであり、Layer 2 スケーリングソリューションのコスト削減に焦点を当てています。特に、データ可用性(DA)レイヤーの改善が重要です。Proto-Dankshardingと呼ばれる技術が導入され、Layer 2ネットワークがイーサリアムメインネットにオフチェーンデータを投稿する際のコストが大幅に削減されました。これにより、Layer 2ネットワークの利用が促進され、イーサリアムのスケーラビリティ問題の解決に貢献することが期待されています。主な変更点としては、以下のものが挙げられます。
- EIP-4844: Proto-Danksharding: データ可用性レイヤーを改善し、Layer 2ネットワークのコストを削減しました。
- EIP-1153: Frame Conditionals: フレーム条件を導入し、スマートコントラクトの柔軟性を向上させました。
まとめ
イーサリアムは、メトロポリス、イスタンブール、ベルリン、ロンドン、シャンハイ、そしてCancun(Dencun)といった一連のアップグレードを通じて、その性能、セキュリティ、スケーラビリティを継続的に向上させてきました。これらのアップグレードは、イーサリアムをより強力で使いやすいプラットフォームへと進化させ、分散型アプリケーションの開発と普及を促進しています。今後のアップグレードにも注目が集まっており、イーサリアムがWeb3の基盤として、ますます重要な役割を担っていくことが期待されます。特に、データ可用性サンプリング(DAS)や、さらなるコンセンサスレイヤーの改善は、イーサリアムの将来にとって重要な要素となるでしょう。