EVM adalah lapisan abstraksi antara kode dan host yang berfungsi sebagai jaminan untuk menjaga kelancaran operasi Ethereum. Apa itu EVM? Apa prinsip dan kasus penggunaan khas EVM? Mari selami lebih dalam.
Sebagai blockchain paling populer saat ini, Ethereum menyediakan berbagai aplikasi terdesentralisasi kepada pengguna. Ini adalah istilah yang paling sering disebutkan ketika orang merujuk ke DeFi, NFT, dll. Dan EVM, sebagai bagian inti dari Ethereum, juga menarik perhatian banyak orang. Lalu apa hubungan antara EVM dan Ethereum?
EVM adalah singkatan dari mesin virtual Ethereum. Seperti yang didefinisikan oleh Ethereum, EVM adalah lingkungan runtime di mana semua akun Ethereum dan kontrak pintar berada di rantai Ethereum.
EVM ada sebagai satu entitas tunggal yang dikelola oleh semua komputer yang terhubung yang menjalankan klien Ethereum. Inilah yang mendefinisikan aturan untuk menghitung status baru yang valid dari blok ke blok.
Alih-alih buku besar terdistribusi seperti Bitcoin, Ethereum adalah mesin negara terdistribusi. Perubahan dari blok ke blok mewakili pembaruan status semua akun dan saldo di Ethereum. Pembaruan dihitung berdasarkan kode kontrak oleh EVM.
Angka: https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf
EVM adalah mesin virtual berbasis tumpukan dan melakukan semua operasinya langsung di tumpukan. Saat smart contract dikompilasi menjadi bytecode, EVM akan melakukan operasi berdasarkan bytecode, termasuk mengambil variabel dari memori dan menambahkannya ke stack, menghitung variabel di stack, dan menyimpan variabel ke memori, dll.
Ada dua jenis utama penyimpanan data di EVM: memori dan penyimpanan. Variabel dalam penyimpanan akan disimpan di Ethereum secara permanen setelah kontrak dieksekusi, sedangkan variabel dalam memori ada sementara saat kode dieksekusi di EVM.
Ambil panggilan kontrak sebagai contoh. Kami menulis kontrak dengan Solidity, menyusun metadata melalui kompiler, dan menerbitkannya di Ethereum. Saat kami perlu memperbarui status kontrak, kami perlu memanggil kontrak. Namun, baik OS maupun Windows tidak dapat langsung menjalankan kontrak pintar. EVM diperlukan untuk menyediakan lingkungan yang berjalan untuk kontrak pintar. Langkah-langkah spesifiknya adalah sebagai berikut: Pertama, EVM menemukan kode kontrak yang disimpan di Ethereum melalui alamat kontrak; kemudian, lingkungan eksekusi dihasilkan; akhirnya, konten kontrak diubah menjadi bytecode dan dimasukkan ke dalam EVM untuk dioperasikan. Hasil yang diperoleh dari operasi akan disimpan sebagai status terbaru di blok berikutnya, sehingga menyelesaikan proses pembaruan status.
Gambar: https://cnodejs.org/topic/5aeecba802591040485bab2a
Implementasi EVM
Saat ini, semua klien Ethereum menyertakan implementasi EVM. Ethereum telah meluncurkan kode sumber dari beberapa bahasa pemrograman, termasuk Python, C++, js, Go, dll., untuk mengimplementasikan fungsionalitas EVM. Ini membantu pengguna untuk memahami prinsip EVM dengan cara yang lebih nyaman.
Py-EVM - Python: https://github.com/ethereum/py-evm
evmone - C++: https://github.com/ethereum/evmone
Ethereumjs - vm - JavaScript: https://github.com/ethereumjs/ ethereumjs-monorepo
eEVM - C++: https://github.com/microsoft/eevm
Hyperledger Burrow - Buka: https://github.com/hyperledger/burrow
Kontrak pintar adalah kode yang berjalan secara eksklusif di EVM. Mereka tidak dapat diubah setelah diterapkan. Ethereum mendefinisikan, memodifikasi, dan menyimpan status melalui smart contract untuk mencapai berbagai aplikasi terdesentralisasi. EVM bertindak sebagai lingkungan tempat kontrak pintar dapat berjalan, yang mirip dengan hubungan antara jalan raya dan mobil.
Daya komputasi yang signifikan diperlukan untuk mengeksekusi kontrak pintar pada EVM, yang menghabiskan sejumlah gas. Untuk pemahaman yang lebih baik, pikirkan kendaraan yang perlu membayar tol di jalan tol.
Biaya gas membantu memberi insentif kepada penambang dari seluruh dunia untuk berpartisipasi dan menyediakan daya komputasi, sebagai cara untuk membuat Ethereum lebih terdesentralisasi. Itu juga mencegah pengguna mengirimkan permintaan operasi acak yang dapat menyebabkan kemacetan Ethereum Mainnet atau melindungi Ethereum dari kerusakan dengan mencegah serangan jahat.
Kontrak pintar Ethereum ditulis dalam Solidity dan dikompilasi menjadi bytecode sebelum dieksekusi di EVM. Bytecode berisi opcode, atau kode operasi. EVM memiliki 144 opcode, masing-masing dengan fungsi spesifik, yang menjadikan EVM Turing lengkap. Itu dapat memecahkan semua jenis masalah komputasi. Soliditas dan Opcodes memungkinkan kami untuk menulis kontrak cerdas yang kompleks dan mengimplementasikan berbagai fungsi pada EVM, sehingga memberi pengguna berbagai dApps.
Untuk potongan kode yang sama, hasilnya sama setelah dieksekusi pada EVM yang berbeda, karena tidak ada hubungannya dengan lingkungan eksekusi dan jumlah eksekusi. Kepastian EVM memastikan keandalan kode dan menghindari konsekuensi yang tidak terduga. Fitur ini membantu melindungi kepentingan pengguna terutama saat mereka melakukan transaksi besar di Ethereum.
EVM seperti kotak pasir terisolasi tempat kode berjalan. Proses yang berjalan tidak akan merusak perangkat lunak/perangkat keras komputer atau memengaruhi protokol yang mendasari Ethereum. Isolasi EVM mencegah peretas menyerang mesin yang menjalankan EVM, dan juga melindungi protokol yang mendasari Ethereum agar tidak dirusak. Ini berfungsi sebagai jaminan yang mengamankan Ethereum.
Proses eksekusi kode EVM dapat terganggu. Jika pengguna menjalankan kode yang salah, seperti infinite loop, mekanisme gas dapat digunakan untuk menghentikan proses eksekusi untuk mencegah kode tersebut menempati daya komputasi tanpa batas. Sebelum mengeksekusi kode pada EVM, batas atas gas harus diatur terlebih dahulu. Saat gas habis, kode akan berhenti berjalan, dan status akan diputar kembali tanpa pembaruan apa pun pada rantai.
Seiring bertambahnya pengguna, Ethereum Mainnet menghadapi banyak masalah, seperti jaringan yang padat dan biaya gas yang tinggi. Terbatas pada desain Ethereum, masalah ini tidak dapat diselesaikan secara radikal.
Dalam beberapa tahun terakhir, ada banyak rantai publik baru yang memiliki biaya gas lebih rendah dan jaringan lebih cepat dan rantai Layer 2 yang dirancang untuk menskalakan Ethereum. Semua rantai ini adalah rantai kontrak pintar, yang dikatakan memiliki desain dasar yang lebih baik dan dapat digunakan untuk membangun berbagai dApps.
Rantai ini melakukan tuntutan surplus ekosistem Ethereum dan menantang status dominan Ethereum. Apakah rekan Ethereum perlu kompatibel dengan EVM? Mengenai perbedaan ini, rantai ini dibagi menjadi dua kategori: rantai yang kompatibel dengan EVM dan rantai non-EVM.
Baru-baru ini, rantai publik Lapisan 1 telah bermunculan satu demi satu. Meskipun membangun kembali ekosistem on-chain yang berjalan secara paralel dengan Ethereum dapat mengatasi kekurangan Ethereum yang ada, dibutuhkan sumber daya manusia yang signifikan untuk membangun ekosistem yang lengkap dan mengembangkan dApp dari awal. Kurangnya pemrogram yang berkualitas menghambat pertumbuhan ekosistem rantai publik baru. Untuk rantai publik dengan ekosistem yang belum berkembang, akan sulit untuk menarik pengguna dari Ethereum dalam waktu singkat.
Mengingat hal ini, beberapa rantai publik dirancang agar kompatibel dengan EVM. DApps yang awalnya berjalan di Ethereum dapat sepenuhnya dialihkan ke rantai publik yang kompatibel dengan EVM hanya dengan sedikit modifikasi pada kode sumber. Itu tidak hanya dapat memaksimalkan penggunaan sumber daya pengembangan tetapi juga memberi pengguna pengalaman yang lebih baik dalam proses migrasi dari Ethereum ke rantai baru.
Namun, kompatibilitas EVM pasti memiliki masalah tertentu. Terbatas pada aturan EVM, banyak rantai yang kompatibel dengan EVM menghadapi masalah terkait cara mencapai inovasi tanpa homogenisasi. Namun, rantai non-EVM dapat melanggar aturan ini dan mengembangkan seperangkat aturan baru dari awal, sehingga mencapai inovasi secara mendasar.
Saat ini, lebih dari 70% rantai publik arus utama kompatibel dengan EVM, seperti BSC, Longsor, Fantom, Tron, Celo, dll. Tidak akan sulit bagi pengembang untuk mengembangkan dApps atau menerapkan aplikasi Ethereum pada rantai ini untuk kinerja yang lebih tinggi dan biaya bahan bakar yang lebih rendah, sehingga meningkatkan pengalaman pengguna.
Beberapa rantai publik lainnya bukan EVM tetapi telah mengembangkan mesin virtual mereka sendiri, seperti Sol, Terra, dll. Meskipun tidak kompatibel dengan EVM, chain ini telah menarik sekelompok pengguna dan institusi yang setia dengan desain inovatif dan performa on-chain yang luar biasa. Misalnya, dua game blockchain, Step N dan Let me speak, yang baru-baru ini populer di seluruh dunia, didasarkan pada rantai Sol dan telah menarik penggemar yang antusias dari seluruh dunia untuk berpartisipasi.
Khususnya, rantai yang kompatibel dengan EVM dapat hidup berdampingan dengan rantai non-EVM. Beberapa rantai non-EVM juga mulai kompatibel dengan EVM. Proses untuk mencapai hal ini akan sulit karena memerlukan upaya ekstensif untuk memodifikasi kode. Contohnya adalah Sol yang meluncurkan Neon, yang memungkinkan pengembang membuat dApps di EVM.
Gambar: Kompatibilitas EVM dari rantai publik
Sebagai solusi penskalaan Ethereum, Layer 2 melengkapi Ethereum, bukan pesaingnya. Rantai Layer 2 semuanya kompatibel dengan EVM, dengan tingkat kompatibilitas yang lebih tinggi daripada Layer 1. Agar Lapisan 2 kompatibel dengan EVM, kami memiliki dua solusi: kompatibilitas EVM dan kesetaraan EVM.
Rantai Layer 2 awal kompatibel dengan EVM, yang mirip dengan kompatibilitas EVM dari rantai Layer 1. Kontrak pintar pada Lapisan Ethereum 1 dapat diterapkan pada Lapisan 2 dengan membuat beberapa modifikasi. Misalnya, Unipig, yang diluncurkan oleh Optimism, sepenuhnya merupakan rekonstruksi kode Uniswap. Itu dianggap Uniswap pada Lapisan 2.
Ada beberapa batasan pada kompatibilitas EVM. Saat mengembangkan kontrak pintar pada rantai yang kompatibel dengan EVM, beberapa alat dan kerangka kerja pengembangan berbasis EVM mungkin tidak tersedia. Selain itu, untuk smart contract yang awalnya diatur di Layer 1, developer masih perlu melakukan beberapa penyesuaian agar smart contract dapat berjalan dengan lancar di blockchain yang kompatibel dengan EVM.
Kesetaraan EVM bertujuan untuk memberi pengembang pengalaman yang sama persis saat mengembangkan kontrak cerdas pada Layer 2 seperti pada Ethereum Layer 1. Ini sangat menguntungkan pengembang Layer2, lebih meningkatkan efisiensi pengembangan, dan menghemat biaya pengembangan dan pemeliharaan kode berdasarkan kompatibilitas EVM.
Saat ini, solusi Layer 2 arus utama, seperti Artbitrum, Optimism, dan Metis, telah mencapai kesetaraan EVM. Kesetaraan EVM dapat mentransfer fitur Ethereum ke Layer 2 dengan lebih baik, dengan maksud untuk meminimalkan biaya pengembangan dan migrasi yang disebabkan oleh penskalaan. Kesetaraan EVM diharapkan menjadi standar arus utama Lapisan 2 di masa depan, dan banyak solusi Lapisan 2 akan berlomba sengit di sekitar kesetaraan EVM.
EVM adalah inti yang membuat Ethereum tetap berjalan. Dengan pembentukan dominasi Ethereum, rantai publik utama dan rantai Layer 2 telah mengikuti atau kompatibel dengan konsep desain EVM yang mendasarinya. Oleh karena itu, EVM memiliki dampak yang sangat besar pada seluruh blockchain. EVM itu sendiri memiliki banyak masalah, sehingga rantai baru sulit untuk kompatibel dengan EVM. Meskipun demikian, pengembang telah bekerja keras untuk melakukan peningkatan, yang telah sangat memudahkan munculnya banyak rantai publik lainnya.
EVM adalah lapisan abstraksi antara kode dan host yang berfungsi sebagai jaminan untuk menjaga kelancaran operasi Ethereum. Apa itu EVM? Apa prinsip dan kasus penggunaan khas EVM? Mari selami lebih dalam.
Sebagai blockchain paling populer saat ini, Ethereum menyediakan berbagai aplikasi terdesentralisasi kepada pengguna. Ini adalah istilah yang paling sering disebutkan ketika orang merujuk ke DeFi, NFT, dll. Dan EVM, sebagai bagian inti dari Ethereum, juga menarik perhatian banyak orang. Lalu apa hubungan antara EVM dan Ethereum?
EVM adalah singkatan dari mesin virtual Ethereum. Seperti yang didefinisikan oleh Ethereum, EVM adalah lingkungan runtime di mana semua akun Ethereum dan kontrak pintar berada di rantai Ethereum.
EVM ada sebagai satu entitas tunggal yang dikelola oleh semua komputer yang terhubung yang menjalankan klien Ethereum. Inilah yang mendefinisikan aturan untuk menghitung status baru yang valid dari blok ke blok.
Alih-alih buku besar terdistribusi seperti Bitcoin, Ethereum adalah mesin negara terdistribusi. Perubahan dari blok ke blok mewakili pembaruan status semua akun dan saldo di Ethereum. Pembaruan dihitung berdasarkan kode kontrak oleh EVM.
Angka: https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf
EVM adalah mesin virtual berbasis tumpukan dan melakukan semua operasinya langsung di tumpukan. Saat smart contract dikompilasi menjadi bytecode, EVM akan melakukan operasi berdasarkan bytecode, termasuk mengambil variabel dari memori dan menambahkannya ke stack, menghitung variabel di stack, dan menyimpan variabel ke memori, dll.
Ada dua jenis utama penyimpanan data di EVM: memori dan penyimpanan. Variabel dalam penyimpanan akan disimpan di Ethereum secara permanen setelah kontrak dieksekusi, sedangkan variabel dalam memori ada sementara saat kode dieksekusi di EVM.
Ambil panggilan kontrak sebagai contoh. Kami menulis kontrak dengan Solidity, menyusun metadata melalui kompiler, dan menerbitkannya di Ethereum. Saat kami perlu memperbarui status kontrak, kami perlu memanggil kontrak. Namun, baik OS maupun Windows tidak dapat langsung menjalankan kontrak pintar. EVM diperlukan untuk menyediakan lingkungan yang berjalan untuk kontrak pintar. Langkah-langkah spesifiknya adalah sebagai berikut: Pertama, EVM menemukan kode kontrak yang disimpan di Ethereum melalui alamat kontrak; kemudian, lingkungan eksekusi dihasilkan; akhirnya, konten kontrak diubah menjadi bytecode dan dimasukkan ke dalam EVM untuk dioperasikan. Hasil yang diperoleh dari operasi akan disimpan sebagai status terbaru di blok berikutnya, sehingga menyelesaikan proses pembaruan status.
Gambar: https://cnodejs.org/topic/5aeecba802591040485bab2a
Implementasi EVM
Saat ini, semua klien Ethereum menyertakan implementasi EVM. Ethereum telah meluncurkan kode sumber dari beberapa bahasa pemrograman, termasuk Python, C++, js, Go, dll., untuk mengimplementasikan fungsionalitas EVM. Ini membantu pengguna untuk memahami prinsip EVM dengan cara yang lebih nyaman.
Py-EVM - Python: https://github.com/ethereum/py-evm
evmone - C++: https://github.com/ethereum/evmone
Ethereumjs - vm - JavaScript: https://github.com/ethereumjs/ ethereumjs-monorepo
eEVM - C++: https://github.com/microsoft/eevm
Hyperledger Burrow - Buka: https://github.com/hyperledger/burrow
Kontrak pintar adalah kode yang berjalan secara eksklusif di EVM. Mereka tidak dapat diubah setelah diterapkan. Ethereum mendefinisikan, memodifikasi, dan menyimpan status melalui smart contract untuk mencapai berbagai aplikasi terdesentralisasi. EVM bertindak sebagai lingkungan tempat kontrak pintar dapat berjalan, yang mirip dengan hubungan antara jalan raya dan mobil.
Daya komputasi yang signifikan diperlukan untuk mengeksekusi kontrak pintar pada EVM, yang menghabiskan sejumlah gas. Untuk pemahaman yang lebih baik, pikirkan kendaraan yang perlu membayar tol di jalan tol.
Biaya gas membantu memberi insentif kepada penambang dari seluruh dunia untuk berpartisipasi dan menyediakan daya komputasi, sebagai cara untuk membuat Ethereum lebih terdesentralisasi. Itu juga mencegah pengguna mengirimkan permintaan operasi acak yang dapat menyebabkan kemacetan Ethereum Mainnet atau melindungi Ethereum dari kerusakan dengan mencegah serangan jahat.
Kontrak pintar Ethereum ditulis dalam Solidity dan dikompilasi menjadi bytecode sebelum dieksekusi di EVM. Bytecode berisi opcode, atau kode operasi. EVM memiliki 144 opcode, masing-masing dengan fungsi spesifik, yang menjadikan EVM Turing lengkap. Itu dapat memecahkan semua jenis masalah komputasi. Soliditas dan Opcodes memungkinkan kami untuk menulis kontrak cerdas yang kompleks dan mengimplementasikan berbagai fungsi pada EVM, sehingga memberi pengguna berbagai dApps.
Untuk potongan kode yang sama, hasilnya sama setelah dieksekusi pada EVM yang berbeda, karena tidak ada hubungannya dengan lingkungan eksekusi dan jumlah eksekusi. Kepastian EVM memastikan keandalan kode dan menghindari konsekuensi yang tidak terduga. Fitur ini membantu melindungi kepentingan pengguna terutama saat mereka melakukan transaksi besar di Ethereum.
EVM seperti kotak pasir terisolasi tempat kode berjalan. Proses yang berjalan tidak akan merusak perangkat lunak/perangkat keras komputer atau memengaruhi protokol yang mendasari Ethereum. Isolasi EVM mencegah peretas menyerang mesin yang menjalankan EVM, dan juga melindungi protokol yang mendasari Ethereum agar tidak dirusak. Ini berfungsi sebagai jaminan yang mengamankan Ethereum.
Proses eksekusi kode EVM dapat terganggu. Jika pengguna menjalankan kode yang salah, seperti infinite loop, mekanisme gas dapat digunakan untuk menghentikan proses eksekusi untuk mencegah kode tersebut menempati daya komputasi tanpa batas. Sebelum mengeksekusi kode pada EVM, batas atas gas harus diatur terlebih dahulu. Saat gas habis, kode akan berhenti berjalan, dan status akan diputar kembali tanpa pembaruan apa pun pada rantai.
Seiring bertambahnya pengguna, Ethereum Mainnet menghadapi banyak masalah, seperti jaringan yang padat dan biaya gas yang tinggi. Terbatas pada desain Ethereum, masalah ini tidak dapat diselesaikan secara radikal.
Dalam beberapa tahun terakhir, ada banyak rantai publik baru yang memiliki biaya gas lebih rendah dan jaringan lebih cepat dan rantai Layer 2 yang dirancang untuk menskalakan Ethereum. Semua rantai ini adalah rantai kontrak pintar, yang dikatakan memiliki desain dasar yang lebih baik dan dapat digunakan untuk membangun berbagai dApps.
Rantai ini melakukan tuntutan surplus ekosistem Ethereum dan menantang status dominan Ethereum. Apakah rekan Ethereum perlu kompatibel dengan EVM? Mengenai perbedaan ini, rantai ini dibagi menjadi dua kategori: rantai yang kompatibel dengan EVM dan rantai non-EVM.
Baru-baru ini, rantai publik Lapisan 1 telah bermunculan satu demi satu. Meskipun membangun kembali ekosistem on-chain yang berjalan secara paralel dengan Ethereum dapat mengatasi kekurangan Ethereum yang ada, dibutuhkan sumber daya manusia yang signifikan untuk membangun ekosistem yang lengkap dan mengembangkan dApp dari awal. Kurangnya pemrogram yang berkualitas menghambat pertumbuhan ekosistem rantai publik baru. Untuk rantai publik dengan ekosistem yang belum berkembang, akan sulit untuk menarik pengguna dari Ethereum dalam waktu singkat.
Mengingat hal ini, beberapa rantai publik dirancang agar kompatibel dengan EVM. DApps yang awalnya berjalan di Ethereum dapat sepenuhnya dialihkan ke rantai publik yang kompatibel dengan EVM hanya dengan sedikit modifikasi pada kode sumber. Itu tidak hanya dapat memaksimalkan penggunaan sumber daya pengembangan tetapi juga memberi pengguna pengalaman yang lebih baik dalam proses migrasi dari Ethereum ke rantai baru.
Namun, kompatibilitas EVM pasti memiliki masalah tertentu. Terbatas pada aturan EVM, banyak rantai yang kompatibel dengan EVM menghadapi masalah terkait cara mencapai inovasi tanpa homogenisasi. Namun, rantai non-EVM dapat melanggar aturan ini dan mengembangkan seperangkat aturan baru dari awal, sehingga mencapai inovasi secara mendasar.
Saat ini, lebih dari 70% rantai publik arus utama kompatibel dengan EVM, seperti BSC, Longsor, Fantom, Tron, Celo, dll. Tidak akan sulit bagi pengembang untuk mengembangkan dApps atau menerapkan aplikasi Ethereum pada rantai ini untuk kinerja yang lebih tinggi dan biaya bahan bakar yang lebih rendah, sehingga meningkatkan pengalaman pengguna.
Beberapa rantai publik lainnya bukan EVM tetapi telah mengembangkan mesin virtual mereka sendiri, seperti Sol, Terra, dll. Meskipun tidak kompatibel dengan EVM, chain ini telah menarik sekelompok pengguna dan institusi yang setia dengan desain inovatif dan performa on-chain yang luar biasa. Misalnya, dua game blockchain, Step N dan Let me speak, yang baru-baru ini populer di seluruh dunia, didasarkan pada rantai Sol dan telah menarik penggemar yang antusias dari seluruh dunia untuk berpartisipasi.
Khususnya, rantai yang kompatibel dengan EVM dapat hidup berdampingan dengan rantai non-EVM. Beberapa rantai non-EVM juga mulai kompatibel dengan EVM. Proses untuk mencapai hal ini akan sulit karena memerlukan upaya ekstensif untuk memodifikasi kode. Contohnya adalah Sol yang meluncurkan Neon, yang memungkinkan pengembang membuat dApps di EVM.
Gambar: Kompatibilitas EVM dari rantai publik
Sebagai solusi penskalaan Ethereum, Layer 2 melengkapi Ethereum, bukan pesaingnya. Rantai Layer 2 semuanya kompatibel dengan EVM, dengan tingkat kompatibilitas yang lebih tinggi daripada Layer 1. Agar Lapisan 2 kompatibel dengan EVM, kami memiliki dua solusi: kompatibilitas EVM dan kesetaraan EVM.
Rantai Layer 2 awal kompatibel dengan EVM, yang mirip dengan kompatibilitas EVM dari rantai Layer 1. Kontrak pintar pada Lapisan Ethereum 1 dapat diterapkan pada Lapisan 2 dengan membuat beberapa modifikasi. Misalnya, Unipig, yang diluncurkan oleh Optimism, sepenuhnya merupakan rekonstruksi kode Uniswap. Itu dianggap Uniswap pada Lapisan 2.
Ada beberapa batasan pada kompatibilitas EVM. Saat mengembangkan kontrak pintar pada rantai yang kompatibel dengan EVM, beberapa alat dan kerangka kerja pengembangan berbasis EVM mungkin tidak tersedia. Selain itu, untuk smart contract yang awalnya diatur di Layer 1, developer masih perlu melakukan beberapa penyesuaian agar smart contract dapat berjalan dengan lancar di blockchain yang kompatibel dengan EVM.
Kesetaraan EVM bertujuan untuk memberi pengembang pengalaman yang sama persis saat mengembangkan kontrak cerdas pada Layer 2 seperti pada Ethereum Layer 1. Ini sangat menguntungkan pengembang Layer2, lebih meningkatkan efisiensi pengembangan, dan menghemat biaya pengembangan dan pemeliharaan kode berdasarkan kompatibilitas EVM.
Saat ini, solusi Layer 2 arus utama, seperti Artbitrum, Optimism, dan Metis, telah mencapai kesetaraan EVM. Kesetaraan EVM dapat mentransfer fitur Ethereum ke Layer 2 dengan lebih baik, dengan maksud untuk meminimalkan biaya pengembangan dan migrasi yang disebabkan oleh penskalaan. Kesetaraan EVM diharapkan menjadi standar arus utama Lapisan 2 di masa depan, dan banyak solusi Lapisan 2 akan berlomba sengit di sekitar kesetaraan EVM.
EVM adalah inti yang membuat Ethereum tetap berjalan. Dengan pembentukan dominasi Ethereum, rantai publik utama dan rantai Layer 2 telah mengikuti atau kompatibel dengan konsep desain EVM yang mendasarinya. Oleh karena itu, EVM memiliki dampak yang sangat besar pada seluruh blockchain. EVM itu sendiri memiliki banyak masalah, sehingga rantai baru sulit untuk kompatibel dengan EVM. Meskipun demikian, pengembang telah bekerja keras untuk melakukan peningkatan, yang telah sangat memudahkan munculnya banyak rantai publik lainnya.