smacon.dev logo

EVM と WASM の違い | Web3 プログラミング, スマートコントラクト入門

この記事はこんな人にぴったり

  • EVM と WASM の特徴を理解したい
  • スマートコントラクト開発を始めたい
  • Web3 エンジニアになりたい

EVM と WASM の特徴

EVM (Ethereum Virtual Machine)WASM (Web Assembly) はどちらもブロックチェーン上のスマートコントラクトを実行するための環境として使われています。

iPhone と Android に喩えるとわかりやすいかもしれません。

どちらで Dapps を開発することもできますが、それぞれのメリット・デメリットを考慮する必要があります。

代表的なブロックチェーン

EVM

WASM

開発言語

EVM のスマートコントラクトは Solidity を使って開発します。

WASM はいろんなプログラミング言語を WASM にコンパイルすることができますが、代表的なものは Rust と C (C++) です。

誕生背景

EVM は名前の通り、Ethereum 上でスマートコントラクトを動かすために開発されました。

EVM と Solidity は Ethereum とともに開発されてきたので、ブロックチェーンやスマートコントラクトを実装するために最適化されています。

一方で、WASM はもともとブラウザで実行するプログラムのフォーマットとして設計されています。

互換性と拡張性

EVM は互換性が高いので、Ethereum 用に開発した Solidity のスマートコントラクトやライブラリ、開発ツールをほとんどそのまま他のチェーンでも使うことができます。

互換性が高いことはメリットにもなりますが、それが制約になってしまうというデメリットにつながります。

たとえばウォレットの機能やアカウントの権限を拡張したいと思っても EVM の仕様以外のことはできません。

そういった EVM のチェーンにできないことをできるようにしたチェーンの多くが採用しているのが WASM です。

こちらもおすすめ