仮想マシン EVM と WASM の比較: 速度、プリコンパイル、柔軟性、相互運用性

最初のレベルのタイトル
イーサリアム仮想マシン (EVM) とは何ですか?
イーサリアム仮想マシンは、イーサリアム ネットワーク上でさまざまなスマート コントラクトを実行するために使用される軽量の仮想マシンです。 EVM は、一度に 1 台のマシンでしか実行できない Windows などの従来のオペレーティング システムとは機能が異なります。 EVM は、物理マシンをエミュレートするためにネイティブ オペレーティング システム上に構築された高レベルの抽象化です。
EVM を使用すると、同じプラットフォームをさまざまなオペレーティング システムやハードウェア アーキテクチャで実行できます。この機能により、仮想マシンはイーサリアムなどのネットワークに適しており、世界中に分散されたさまざまなマシン上のさまざまなクライアントからアクセスできます。 EVM は物理 CPU 上で実行される機能をエミュレートでき、イーサリアム ネットワーク上のほとんどの機能を担当します。
EVM には次の特徴があります。
確実
決定的プログラムは、同じコードを実行する回数に関係なく、同じ入力セットに対して同じ出力を提供します。 dApps が一度に数百万ドルを処理するイーサリアムでは、さまざまなユーザーが実行の各段階でコードがどのように反応するかを知る必要があります。
隔離できる
スマート コントラクトは、完全に分離された環境で実行する必要があります。これにより、スマート コントラクトでハッキングやバグが発生した場合でも、基礎となるプロトコルの他の部分に影響を与えることができなくなります。
イーサリアムのスマートコントラクトはチューリング完成です。したがって、十分な時間とリソースがあれば、何でも修正できるはずです。契約が規定された期限内にすべての操作を完了することを保証するのは難しいため、スマート コントラクトには終了メカニズムが必要です。イーサリアムは、「ガス」制限を使用して、実行制限を超えたスマートコントラクトを終了します。
最初のレベルのタイトル
EVMの機能
これは、イーサリアムネットワークの分散型処理装置です。すべてのインタラクション、トランザクション、スマートコントラクトの実行はここでのみ行われます。
命令をフェッチして実行し、指定された命令ディスパッチャを通じてオペランドをデコードします。
オペランド、データ処理、命令などのすべてのデータ構造を担当します。
イーサリアムネットワーク上のさまざまなスマートコントラクトのランタイム環境の作成を担当します。
最初のレベルのタイトル
EVMの課題
進化できないということは、言語にも限界があるということを意味します。
WebAssembly (WASM) とは何ですか?
WebAssembly (WASM) は、最新のブラウザーで効率的に実行できる新しいタイプのコードです。この新しいコードは、World Wide Web Consortium (W3C) によって作成および定義されました。 WASM は、Google、Mozilla、Apple のエンジニアが参加して Web 用に構築されました。基本的に、WASM (イーサリアム 2.0 とも呼ばれます) には、EVM のすべての機能と追加機能が備わっています。
最初のレベルのタイトル
前述したように、開発チームには Google、Microsoft、Apple などの大手テクノロジー企業のエンジニアが参加しています。したがって、これらのエンジニアは、WASM が自社のエンジンおよびプロトコルと互換性があることを確認します。
文章
特定の目標を念頭に置いて設計されている
WASM は、高速、効率的、移植性を考慮して作成されました。 WASM は、共通のハードウェア機能を活用して「ネイティブに近い速度」で実行します。
ご安全に。これは、ホスト ブラウザのアクセス許可ポリシーを強制し、下位互換性を維持することによって行われます。
EVM と WASM
スピード
スピード
簡単に言えば、EVM は何でも知っていますが、何も知りません。 EVM がコンパイルを処理する方法は、この良い例です。ネイティブ エンジンは、特定の操作を実行するための最適なパスを見つけるのに苦労し、最終的に EVM の全体的なスループットに影響を与えます。
EVM は 256 ビットのバイトコードのみを処理できます。つまり、256 ビットより小さいバイトコードは、EVM に送信する前に 256 ビット形式に変換する必要があります。 EVM が 1 秒あたり 25 トランザクションしか処理しないため、EVM のスケーラビリティの問題は明らかです。
WASM はコンパイルされたコードに直接変換されるため、ブロックごとに処理されるトランザクションの数を増やしながらロードを高速化できます。
プリコンパイル済み
EVM はプリコンパイル (プリコンパイルされたコントラクト) に依存します。プリコンパイルされた呼び出しが行われると、EVM は事前定義されたネイティブ コードを実行し、結果を表示します。これらのプリコンパイルは、署名スキームやハッシュなどの基本操作に使用される特定のプロトコルに固有です。
プリコンパイルにより、ガスを大量に消費することなく暗号計算が効率化されますが、問題も引き起こします。新しいプリコンパイラを導入するには、通常、ネットワークでシステム全体のハード フォークが必要になります。
WASM は、イーサリアムのプリコンパイルされたコントラクトへの依存を排除します。 WASM は非常に効率的であるため、開発者はハード フォークの可能性を心配することなく、効率的かつ高速なスマート コントラクトを作成できます。
最初のレベルのタイトル
まとめ
まとめ
Source:https://medium.com/momentum6/the-war-on-virtual-machines-wasm-vs-evm-8e68f9d53ef4


