要点
仮想マシン(VM)を使うと、追加のハードウェアなしで同じデバイス上に別のOSやアプリケーションを動かせます。
VMは、新しいソフトウェアを安全にテストしたり、別のOSを試したり、危険性のある可能性があるプログラムを隔離したりするのに役立ちます。
イーサリアム・バーチャル・マシン(EVM)のようなブロックチェーンVMは、スマートコントラクトや分散型アプリケーション(DApps)が、コンピュータのグローバルなネットワーク全体にわたって確実に動作することを可能にします。
VMは柔軟性と制御を提供しますが、パフォーマンス、リソース使用量、複雑さといった面でトレードオフが伴うことがあります。
はじめに
MacBookでWindowsを動かしてみたいと思ったことはありませんか?または、OSを変えたり別のコンピュータを買ったりせずにLinuxアプリを試してみたいと思ったことはありませんか?VMは、異なるOSやアプリケーションが安全に動作できる隔離された環境を作ることで、それを可能にします。
VMはブロックチェーンネットワークでも広く使われており、スマートコントラクトや分散型アプリケーション(DApps)を支えています。仕組みを理解することで、あなたがやり取りするアプリやネットワークが、実際に裏側でどのように機能しているのかをより理解しやすくなります。
VMとは何ですか?
VMは、追加のハードウェアなしで数クリックでセットアップできる「コンピュータ」のようなものです。OSをインストールしたり、ファイルを保存したり、アプリを動かしたり、インターネットに接続したりできますが、それらはすべて、既存のコンピュータ(ホスト)の中で動作します。
ホストシステムが裏側で重い処理を担当し、そのメモリ、処理能力、ストレージをVMに貸し出して、VMがスムーズに動作できるようにします。これは、別のOSでしか利用できないソフトウェアを使う必要がある場合に特に便利です。
VMは実際にどう動くのですか?
裏側では、ハイパーバイザーと呼ばれるソフトウェアがこれらをすべて管理しています。ハイパーバイザーはCPU、RAM、ストレージのようなコンピュータの物理リソースを取り分け、複数のVMが同時に使えるようにします。
ハイパーバイザーには主に2種類あります:
タイプ1(ベアメタル):ハードウェアに直接インストールされ、データセンターやクラウドプラットフォームでよく使われます。パフォーマンスと効率のために作られています。
タイプ2(ホスト型):通常のOSの上で動作し、ふつうのアプリのように扱えます。テストや開発に向いています。
VMをセットアップすると、実際のコンピュータのように起動して、ソフトウェアをインストールしたり、Webを閲覧したり、アプリケーションを作ったりできます。
なぜVMを使うのですか?
VMは、個人用途から大規模なエンタープライズのアプリケーションまで、さまざまな実用的な目的に使われます。
新しいOSを試す
VMなら、メインのコンピュータに変更を加えずに、さまざまなOSを試すことができます。安全で隔離された空間で新しいシステムをテストするようなものです。
危険性のあるソフトウェアを隔離する
よく分からないファイルを開く必要がある、または見慣れないアプリをテストしたいですか?VM上で実行すれば、メインのコンピュータは保護されます。VM内でマルウェアやクラッシュに遭遇しても、主要なシステムには影響しません。
レガシー(旧来)のソフトウェアを実行する
一部のプログラムは、Windows XPやWindows 7のような古いシステムでしか動きません。VMなら、その環境を再現できるため、新しいデバイスで動かないソフトウェアでも使い続けられます。
プラットフォームをまたいだ開発・テスト
VMを使うと、開発者は異なるOS上でコードをテストしやすくなり、リリース前にアプリがさまざまな環境でどう振る舞うかを疑似的に確認できます。
クラウドサービスを活用
多くのクラウドサービスはVMの上に構築されています。Webサイト、アプリ、またはデータベースをホストするためにクラウドインスタンスを起動すると、通常はリモートのデータセンター上で動作するVMを立ち上げることになります。
ブロックチェーンネットワークはVMをどう使うか
従来のVMは単一のマシン上で動作する隔離されたサンドボックスですが、ブロックチェーンVMは、ネットワーク全体でスマートコントラクトを実行するためのエンジンです。イーサリアム・バーチャル・マシン(EVM)により、開発者はSolidityやVyperのような言語でスマートコントラクトを書き、イーサリアムや他のEVM互換ネットワークにデプロイできます。EVMは、スマートコントラクトを実行するときに、ネットワーク上のすべてのノードが同じルールに従うことを保証します。
2025年5月、イーサリアムのPectraアップグレードによってEIP-7702が導入され、通常のユーザーアカウントが一時的にスマートコントラクトのように振る舞えるようになりました。2025年12月にはFusakaアップグレードによって、ガス推定とコントラクト実行の改善を含むさらなる改良がEVMに加えられました。
これらのアップグレードは、EVMをより柔軟で開発者にとって使いやすいものにしていくという、より大きな流れを反映しています。EVM互換ネットワーク上で構築できるアプリケーションの種類が広がります。
注:Yulは、SolidityやVyperと並んで挙げられることもありますが、これは(ほとんどの開発者が直接書く言語ではなく)Solidityコンパイラ内部で使われる中間言語(IR)です。
ブロックチェーンネットワークは、自らの目標に基づいて独自のVM設計を実装しています。NEARのようなネットワークはWebAssembly(WASM)ベースのVMを使い、複数のプログラミング言語で書かれたスマートコントラクトをサポートします。
CosmosベースのチェーンでCosmWasmを実装しているものもWASMを使います。Solanaは、トランザクションを並列処理し、高いネットワーク負荷に対応するために設計されたカスタムのランタイム(しばしばSolana Virtual Machine(SVM)と呼ばれます)を採用しています。SuiはMoveVMを使い、Move言語で書かれたスマートコントラクトを実行します。
VMが活躍する場面
分散型アプリケーション(dApps)に触れるたびに、裏側ではVMが動いています:
DeFiのトークン交換アプリを使うと、あなたのトランザクションはEVMの中で動作するスマートコントラクトによって処理されます。
NFTをミントすると、VMは所有権を追跡するコードを実行します。購入や譲渡のたびに記録が更新されるため、所有権は正確な状態に保たれます。
レイヤー2ロールアップを利用する場合、トランザクションはzkEVMのような専用のVMによって処理されることがあります。zk-RollupsはzkEVMを使ってスマートコントラクトを実行し、効率とセキュリティのためのゼロ知識証明を生成します。
VMの制限
VMは強力ですが、理解しておく価値のあるトレードオフがあります。
パフォーマンス面のオーバーヘッド:VMは、ハードウェアと実行されるコードの間に追加の層を挟みます。そのため、処理が遅くなったり、物理ハードウェアに直接アプリを動かす場合より多くの計算リソースが必要になったりする可能性があります。
運用の複雑さ:VMのセットアップや維持管理は大変で、とりわけクラウド基盤やブロックチェーンネットワークにまたがる場合は労力がかかり、専用のツールや知識が必要になることが多いです。
互換性:スマートコントラクトは、多くの場合、特定のVM環境向けに設計されています。イーサリアム向けに書かれたコードは、一般にSolanaのような互換性のないブロックチェーンで動かすには書き換えまたは適応が必要です。つまり、複数の環境をターゲットにする開発者は、追加の時間と手間がかかります。
よくある質問
仮想マシンとは、簡単に言うと何ですか?
仮想マシンとは、実際のコンピュータの中で動作するソフトウェアベースのコンピュータです。デバイスのハードウェア資源を使って別のマシンを疑似的に作り、隔離された環境の中で異なるOSやアプリケーションを実行できるようにします。
イーサリアム・バーチャル・マシン(EVM)とは?
EVMは、イーサリアムや他の互換ネットワーク上でスマートコントラクトを実行するランタイム環境です。ネットワーク上のすべてのノードが同じコードを実行し、同じ結果に到達することを保証します。これは、信頼不要で分散型のシステムにとって不可欠です。
2025年5月のPectraアップグレードと、2025年12月のFusakaアップグレードは、EVMを開発者にとってより柔軟にする新しい機能を導入しました。
ハイパーバイザーとは何ですか?
ハイパーバイザーは、仮想マシンを作成・管理するソフトウェアです。CPU、RAM、ストレージをホストマシンから割り当て、1つ以上のVMがその上で動作できるようにします。タイプ1のハイパーバイザーはハードウェアに直接動作し、データセンターで使われます。一方、タイプ2のハイパーバイザーは、個人利用や開発用途のために既存のOSの上で動作します。
ブロックチェーンVMは通常のVMと同じですか?
隔離された実行環境という考え方は共通していますが、目的は異なります。通常のVMは、1人のユーザーまたはチーム向けに、コンピュータ全体を疑似的に再現します。ブロックチェーンVMは何千ものノードで同時に動作し、すべての参加者がまったく同じ方法でコードを実行し、同じ結果に到達することを保証します。これが、スマートコントラクトを信頼不要にする要因です。
仮想マシンにはどのような制限がありますか?
VMは追加の処理層があるため、ネイティブにソフトウェアを動かすより遅くなることがあります。また、メモリやストレージなど、ベアメタルの対応物より多くのリソースを消費します。ブロックチェーンの文脈では、あるVM環境向けに作られたスマートコントラクトは、書き換えなしには別のブロックチェーンで動かせないことがよくあります。
最後に
VMは、通常のコンピューティングとブロックチェーンのインフラの両方で重要な役割を果たしています。従来のコンピューティングでは、複数のOSを同時に動かしたり、安全にソフトウェアをテストしたり、同じハードウェアを多くの作業でまとめて使ったりできます。ブロックチェーンネットワークでは、Web3を可能にするスマートコントラクトと分散型アプリケーションを支えています。
開発者でなくても、VMが何をしているのかを理解すると、あなたが使っているプラットフォームが裏側で実際にどのように動いているのかをより深く理解できます。
さらに読む
スマートコントラクトとは?仕組みは?
イーサリアムとは?仕組みは?
分散型アプリケーション(DApps)とは?
ブロックチェーンのレイヤー1とレイヤー2:スケーリングの解決策
ZK-Rollupsとは?レイヤー2のスケーラビリティ手法
免責事項:本コンテンツは「現状有姿」の形で、一般的な情報および教育目的のためにのみ提供されるものであり、いかなる種類の表明または保証もありません。投資、法律、その他の専門的助言として解釈されるべきではなく、特定の製品またはサービスの購入を推奨する意図もありません。適切な専門家アドバイザーからご自身の判断で助言を求めてください。第三者の協力により作成された場合、その見解は当該第三者に属し、Binance Academyの見解を必ずしも反映するものではありません。デジタル資産の価格は変動する可能性があります。投資価値は上がることも下がることもあり、投資した金額がそのまま回収できるとは限りません。投資判断の責任はご自身にあり、Binance Academyは、発生しうる損失について一切の責任を負いません。詳細は、利用規約、リスク警告、およびBinance Academyの規約をご確認ください。
