シャドウフォークとは?
執筆者 Alchemy
シャドウフォークとは
シャドウフォークはdevnetに似ていますが、独自の状態を持つ代わりに、別のネットワーク(devnetまたはmainnet)の状態をコピーします。
例えば、Ethereumのメインネットワークのシャドウフォークは、mainnetに送られるすべてのトランザクションを引き続き受け入れます。
このブランチはProof-of-Stakeに切り替わることができますが、mainnetのトランザクションやその他の状態・履歴データはそのまま保持します。
シャドウフォーク上でマージが成功すると、Proof-of-Stakeチェーンへ進み、mainnetに追加されたProof-of-Workブロックは無視されます。
シャドウフォークと通常のフォークの違いは何か
シャドウフォークが、元のチェーンの既存の状態データを使ってネットワークアップグレードをテストするために意図的に作られるのに対し、通常のフォークは開発コミュニティがプロトコルを変更したり、ハッキングの影響を受けたりした際に発生します。フォークが起こると、ブロックチェーンは分岐し、最初のチェーンと同じ履歴を持ちながら異なる経路をたどる2つ目(新規)のブロックチェーンが生まれます。
コア開発者によるブロックチェーンのアップグレードがフォークを引き起こす例の一つが、Ethereumのトランザクション手数料構造を最適化するEIP-1559を導入したLondon Hard Forkです。
BitcoinとEthereumはどちらもブロックチェーン技術に基づいており、オープンソースソフトウェア上で動作します。これらが「ブロックチェーン」と呼ばれるのは、ネットワーク上の最初のトランザクションまで遡って連結できるデータのブロックで構成されているためです。
オープンソースであるため、そのコミュニティがソースコードの保守・改善を担っています。その結果、ブロックチェーンをより安全にするため、新機能を追加するため、あるいは2016年のThe DAOハッキング後に発生したような被害を軽減するために、フォークが起こることがあります。
2016年、Ethereumブロックチェーンは、盗まれた360万ETHを反映した正確な台帳を維持するEthereum Classicと、ハッキングを取り消すためにフォークしたEthereumに分岐しました。
ソフトフォークとハードフォークの違いは何か
ソフトフォークとハードフォークの違いは、ソフトフォークが既存のブロックチェーンのコードを変更するのに対し、ハードフォークはブロックチェーンを2つの別個のブロックチェーンに分けるという点です。
ソフトフォーク
ソフトフォークは、ブロックチェーンを動かすソフトウェアへのアップデートと考えることができます。全員がそれを使い続ける限り、それがネットワークの新しいルールセットになります。
ソフトフォークは、通常コードベースとクライアントソフトウェアを変更することで、Ethereumに新しい機能や機能性を追加するために使われてきました。最終的な結果が単一のブロックチェーンになるため、この変更はフォーク以前に作られたブロックとも整合します。
ハードフォーク
コードの変更が大きすぎて、新しいバージョンが古いブロックと共に使えなくなる場合、これは「ハードフォーク」と呼ばれます。この場合、ブロックチェーンは2つの部分に分裂します。
- 古いルールに従う古いブロックチェーン
- 新しいルールに従う新しいブロックチェーン
これによって全く新しい暗号資産が生まれ、多くの有名な通貨がここから誕生しました。ハードフォークによって、元のBitcoinブロックチェーンからBitcoin Cashが、Ethereum(ETH)からEthereum Classic(ETC)が作られました。
なぜシャドウフォークが重要なのか
シャドウフォークは、web3開発者にとって重要なツールです。なぜなら、mainnetの本番環境における最新の状態に対して、ネットワークの今後のアップグレードに関する前提をテストできるからです。
Kilnテストネットワークは、Ethereumの実行レイヤーをProof-of-WorkからProof-of-Stakeに変更するThe Mergeに向けて開発者がテストを行う最後のテストネットです。
シャドウフォークは、ネットワーク上で稼働している既存のアプリに有害な移行をもたらすことなくMergeが実現することを示す上で重要です。
これらのシャドウフォークを持つテストネットは、円滑なマージ移行を確実にするためのテストの場となり、ノードオペレーターやビルダーの信頼構築にも役立ちます。
シャドウフォークはどのように機能するのか

上の画像において、一番上の行のGoerliブロックは、シャドウフォークについて何も知らない正規(つまり、オリジナル)のブロックチェーン上のノードを示しています。
真ん中の行のGoerliブロックは、terminal total difficulty(TTD)、つまりクライアントがマイニングを停止しPoSへ移行するトリガーとして使われる合計マイニング難易度に達した際に分岐するよう指示する、異なる設定を持つシャドウフォークチェーン上のノードを表しています。 最後の行には、このシャドウフォーク専用に作られたBeacon Chainの画像があります。TTDに達すると、正規チェーン上のノードは何事もなかったかのようにブロックを作り続ける一方、設定が変更されたノードは分岐してMergeを経ます。
その後、次のバリデーターがMerge後のBeacon Chainの最初のブロックを作成します。
シャドウフォーキングは、公開テストネットやmainnetに影響を与えることなく、フォークとマージのプロセスがどれだけうまく機能するかをテストできるため、これを行うための最良の方法です。
このシャドウフォーク作業を繰り返し行うことで、開発者はさまざまな状況下でのマージ移行をテストできます。
よく知られているシャドウフォークにはどのようなものがあるか
2つのテストネットが、特によく知られたシャドウフォークを持つものとして際立っています。Goerliはこれまでに3回のシャドウフォークを経ており、mainnetは6回のシャドウフォークを経ています。 2回のmainnetシャドウフォークの主な違いは、すべてのクライアントの組み合わせがシャドウフォークの移行を乗り越え、同期状態を保ったことでした。
このシャドウフォークでは、各クライアントのdevelop/unstableブランチも使用されています。つまり、開発者はブランチをマージする必要がなくなったということです。mainnetでは、デポジットコントラクトが別のフォークIDで再度使用されました。
これは、シャドウフォーク上では、すべてのmainnetのデポジットを処理し、無効としてマークする必要があることを意味します。この計算負荷の高い処理により、一部のクライアントでいくつかのエッジケースが発生しましたが、ネットワーク自体は問題なく機能しました。
Ethereumをシャドウフォークする方法
Ethereumのフォークに関心があるなら、Alchemyが提供するEthereum mainnetをフォークする方法についてのステップバイステップガイドを、無料のAlchemyアカウント、HardHat、コマンドラインインターフェース(CLI)を使って参照できます。
シャドウフォークはEthereum開発者にとって重要なツールである
シャドウフォークは、Ethereumブロックチェーンの継続的な開発とスケーリングの改善において重要な役割を果たしています。シャドウフォークによって、コアEthereum開発者、ノードプロバイダー、独立したステーカーは、Ethereumアプリケーションエコシステムが中断されないよう、今後のネットワーク全体の変更に備えることができます。
関連する概要
Ethereum2026年7月28日
Robinhood Chainでミームコインをローンチする
FoundryとAlchemy RPCを使ってRobinhood Chainメインネットに固定供給のERC20を書いてデプロイする、またはAlchemy CLIでローンチ全体をコーディングエージェントに任せる。
Ethereum2025年11月18日
Ethereum Fusakaアップグレードとは?12個のEIPを解説する開発者向けガイド
Fusakaアップグレードの実践的な解説。12個の主要EIPと、それらがEthereumスタック全体のデータ可用性、暗号技術、ガスコスト、バリデーター運用に与える変化について説明する。
Ethereum2025年5月19日
EIP-7702:Pectra後のEthereum開発者向けクイック統合ガイド
EthereumはEIP-7702という重要なアップグレードを目前に控えている。すべての開発者向けに、統合時の考慮点をまとめたクイックガイド。

ブロックチェーンで魔法を生み出す
Alchemyは、最も強力なweb3開発者向けプロダクトとツールを、豊富なリソース、コミュニティ、そして卓越したサポートと組み合わせて提供します。