Lompat ke konten utama
Change page

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 yang menunjukkan susunan 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 yang menunjukkan di mana gas dibutuhkan untuk operasi EVM 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:

Bacaan Lebih Lanjut

Tutorial: Mesin Virtual Ethereum (EVM) / Opcode di Ethereum

Apakah artikel ini membantu?