Mesin Virtual Ethereum (EVM)
Pembaruan terakhir halaman: 25 Februari 2026
Mesin Virtual Ethereum (EVM) adalah lingkungan virtual desentralisasi yang mengeksekusi kode secara konsisten dan aman di seluruh node Ethereum. Node menjalankan EVM untuk mengeksekusi kontrak pintar, menggunakan "gas" untuk mengukur upaya komputasi yang diperlukan untuk operasi, memastikan alokasi sumber daya yang efisien dan keamanan jaringan.
Prasyarat
Beberapa pemahaman dasar tentang terminologi umum dalam ilmu komputer seperti byte (opens in a new tab), memori (opens in a new tab), dan stack (opens in a new tab) diperlukan untuk memahami EVM. Akan sangat membantu juga jika Anda terbiasa dengan konsep kriptografi/blockchain seperti fungsi hash (opens in a new tab) dan Merkle tree (opens in a new tab).
Dari buku besar ke mesin status
Analogi 'buku besar terdistribusi' sering digunakan untuk menggambarkan blockchain seperti Bitcoin, yang memungkinkan mata uang kripto desentralisasi menggunakan alat dasar kriptografi. Buku besar menyimpan catatan aktivitas yang harus mematuhi serangkaian aturan yang mengatur apa yang dapat dan tidak dapat dilakukan seseorang untuk memodifikasi buku besar tersebut. Misalnya, alamat Bitcoin tidak dapat membelanjakan lebih banyak Bitcoin daripada yang telah diterimanya sebelumnya. Aturan-aturan ini mendasari semua transaksi di Bitcoin dan banyak blockchain lainnya.
Meskipun Ethereum memiliki mata uang kripto aslinya sendiri (ether) yang mengikuti aturan intuitif yang hampir sama persis, Ethereum juga memungkinkan fungsi yang jauh lebih kuat: kontrak pintar. Untuk fitur yang lebih kompleks ini, diperlukan analogi yang lebih canggih. Alih-alih buku besar terdistribusi, Ethereum adalah mesin status (opens in a new tab) terdistribusi. Status Ethereum adalah struktur data besar yang tidak hanya menyimpan semua akun dan saldo, tetapi juga status mesin, yang dapat berubah dari blok ke blok sesuai dengan serangkaian aturan yang telah ditentukan sebelumnya, dan yang dapat mengeksekusi kode mesin arbitrer. Aturan spesifik untuk mengubah status dari blok ke blok ditentukan oleh EVM.
Diagram diadaptasi dari Ethereum EVM illustrated (opens in a new tab)
Fungsi transisi status Ethereum
EVM berperilaku seperti fungsi matematika: Diberikan sebuah input, ia menghasilkan output yang deterministik. Oleh karena itu, cukup membantu untuk mendeskripsikan Ethereum secara lebih formal sebagai memiliki fungsi transisi status:
1Y(S, T)= S'Diberikan status valid lama (S) dan serangkaian transaksi valid baru (T), fungsi transisi status Ethereum Y(S, T) menghasilkan status output valid baru S'
Status
Dalam konteks Ethereum, status adalah struktur data yang sangat besar yang disebut Merkle Patricia Trie yang dimodifikasi, yang menjaga semua akun terhubung oleh hash dan dapat direduksi menjadi satu root hash yang disimpan di blockchain.
Transaksi
Transaksi adalah instruksi yang ditandatangani secara kriptografi dari akun. Ada dua jenis transaksi: yang menghasilkan panggilan pesan dan yang menghasilkan pembuatan kontrak.
Pembuatan kontrak menghasilkan pembuatan akun kontrak baru yang berisi bytecode kontrak pintar yang telah dikompilasi. Kapan pun akun lain melakukan panggilan pesan ke kontrak tersebut, ia akan mengeksekusi bytecode-nya.
Instruksi EVM
EVM mengeksekusi sebagai mesin stack (opens in a new tab) dengan kedalaman 1024 item. Setiap item adalah kata 256-bit, yang dipilih untuk kemudahan penggunaan dengan kriptografi 256-bit (seperti hash Keccak-256 atau tanda tangan secp256k1).
Selama eksekusi, EVM memelihara memori sementara (sebagai array byte yang dialamatkan dengan kata), yang tidak bertahan di antara transaksi.
Penyimpanan sementara
Penyimpanan sementara adalah penyimpanan nilai-kunci per transaksi yang diakses melalui opcode TSTORE dan TLOAD. Penyimpanan ini bertahan di semua panggilan internal selama transaksi yang sama tetapi dihapus pada akhir transaksi. Tidak seperti memori, penyimpanan sementara dimodelkan sebagai bagian dari status EVM daripada bingkai eksekusi, namun tidak dikomit ke status global. Penyimpanan sementara memungkinkan pembagian status sementara yang efisien gas di seluruh panggilan internal selama transaksi.
Penyimpanan
Kontrak berisi trie penyimpanan Merkle Patricia (sebagai array kata yang dapat dialamatkan dengan kata), yang terkait dengan akun yang bersangkutan dan merupakan bagian dari status global. Penyimpanan persisten ini berbeda dari penyimpanan sementara, yang hanya tersedia selama durasi satu transaksi dan tidak membentuk bagian dari trie penyimpanan persisten akun.
Opcode
Bytecode kontrak pintar yang dikompilasi dieksekusi sebagai sejumlah opcode EVM, yang melakukan operasi stack standar seperti XOR, AND, ADD, SUB, dll. EVM juga mengimplementasikan sejumlah operasi stack khusus blockchain, seperti ADDRESS, BALANCE, BLOCKHASH, dll. Kumpulan opcode juga mencakup TSTORE dan TLOAD, yang menyediakan akses ke penyimpanan sementara.
Diagram diadaptasi dari Ethereum EVM illustrated (opens in a new tab)
Implementasi EVM
Semua implementasi EVM harus mematuhi spesifikasi yang dijelaskan dalam Ethereum Yellowpaper.
Selama sepuluh tahun sejarah Ethereum, EVM telah mengalami beberapa revisi, dan ada beberapa implementasi EVM dalam berbagai bahasa pemrograman.
Klien eksekusi Ethereum mencakup implementasi EVM. Selain itu, ada beberapa implementasi mandiri, termasuk:
- Py-EVM (opens in a new tab) - Python
- evmone (opens in a new tab) - C++
- ethereumjs-vm (opens in a new tab) - JavaScript
- revm (opens in a new tab) - Rust
Bacaan Lebih Lanjut
- Ethereum Yellowpaper (opens in a new tab)
- Jellopaper alias KEVM: Semantics of EVM in K (opens in a new tab)
- The Beigepaper (opens in a new tab)
- Ethereum Virtual Machine Opcodes (opens in a new tab)
- Referensi Interaktif Opcode Mesin Virtual Ethereum (opens in a new tab)
- Pengantar singkat dalam dokumentasi Solidity (opens in a new tab)
- Mastering Ethereum - The Ethereum Virtual Machine (opens in a new tab)
Topik Terkait
Tutorial: Mesin Virtual Ethereum (EVM) / Opcode di Ethereum
- Memahami Spesifikasi EVM Yellow Paper – Panduan terarah tentang spesifikasi EVM formal dari Ethereum Yellow Paper.
- Rekayasa Balik Kontrak – Cara merekayasa balik kontrak pintar yang dikompilasi menggunakan opcode EVM.