Beli Kripto
Pasar
Spot
Futures OILBTC
Tabungan
Pusat Acara
Hub Hadiah
Lainnya
Fest. 0-Biaya
EVM (Ethereum Virtual Machine): Apa Itu EVM?EVM, atau Ethereum Virtual Machine, adalah lingkungan eksekusi yang memproses transaksi dan menjalankan kode smart contract di Ethereum.EVM berfungsi sebagai komputer virtual bersama yang EVM (Ethereum Virtual Machine): Apa Itu EVM?EVM, atau Ethereum Virtual Machine, adalah lingkungan eksekusi yang memproses transaksi dan menjalankan kode smart contract di Ethereum.EVM berfungsi sebagai komputer virtual bersama yang

EVM (Ethereum Virtual Machine)

2026/10/14 17:15
#Intermediate
Virtuals Protocol
VIRTUAL$0.6961+1.25%
Humanity
H$0.05635+3.96%
PX
PX$0.0131+4.80%
Smart Blockchain
SMART$0.004418-0.47%
TokenFi
TOKEN$0.001981-1.54%

Apa Itu EVM?

EVM, atau Ethereum Virtual Machine, adalah lingkungan eksekusi yang memproses transaksi dan menjalankan kode smart contract di Ethereum.

EVM berfungsi sebagai komputer virtual bersama yang aturannya diikuti oleh execution client Ethereum di seluruh dunia.

Saat pengguna mentransfer token, menukar mata uang kripto melalui aplikasi terdesentralisasi, membuat NFT, menyediakan agunan untuk protokol pinjaman, atau memanggil smart contract lain, EVM menghitung hasil tindakan tersebut.

EVM tidak berada dalam satu mesin fisik atau server.

Setiap node Ethereum yang berpartisipasi menerapkan aturan eksekusi yang sama secara mandiri terhadap transaksi yang sama dalam urutan yang sama.

Desain ini memungkinkan node mengonfirmasi bahwa saldo akun, penyimpanan kontrak, kepemilikan token, dan perubahan status blockchain lainnya telah dihitung dengan benar.

Dokumentasi resmi Ethereum Virtual Machine menjelaskan bahwa EVM adalah lingkungan virtual terdesentralisasi yang mengeksekusi kode secara konsisten di seluruh node Ethereum.

EVM merupakan bagian inti dari lapisan eksekusi Ethereum, tetapi bukan keseluruhan jaringan Ethereum.

Ethereum juga bergantung pada konsensus, jaringan peer-to-peer, penyimpanan data, produksi blok, validator, dan komponen protokol lainnya.

EVM secara khusus berfokus pada komputasi dan transisi status.

Apa Fungsi EVM?

EVM membaca instruksi transaksi, menjalankan bytecode smart contract, menghitung penggunaan gas, dan menentukan perubahan status Ethereum.

EVM dapat mentransfer ETH, memanggil fungsi kontrak, menerapkan kontrak baru, memperbarui penyimpanan kontrak, membuat log peristiwa, atau mengembalikan data yang diminta.

Sebelum menjalankan transaksi, sistem eksekusi Ethereum memeriksa persyaratan seperti tanda tangan pengirim, nonce, saldo yang tersedia, batas gas, dan format transaksi.

Jika transaksi memanggil smart contract, EVM menjalankan instruksi kontrak sesuai urutan yang ditetapkan dalam bytecode-nya.

EVM juga dapat memanggil kontrak lain dalam transaksi yang sama.

Kemampuan ini memungkinkan aplikasi terdesentralisasi menggabungkan beberapa protokol dan sistem token dalam satu operasi atomik.

Setelah eksekusi, EVM menghasilkan perubahan status yang berhasil atau melaporkan kegagalan.

Jika eksekusi di-revert, perubahan status kontrak yang dimaksud biasanya dibatalkan, meskipun pengirim umumnya tetap membayar pekerjaan komputasi yang telah dilakukan.

Hasil akhir eksekusi dapat mencakup saldo yang diperbarui, penyimpanan yang diubah, log yang dihasilkan, data yang dikembalikan, dan tanda terima transaksi.

Mengapa EVM Penting dalam Kripto?

EVM penting karena mengubah Ethereum dari jaringan transfer mata uang kripto sederhana menjadi platform blockchain yang dapat diprogram.

Tanpa lingkungan eksekusi yang dapat diprogram, blockchain mungkin hanya terbatas pada pencatatan transfer aset native-nya.

EVM memungkinkan developer membuat token, pasar pinjaman, protokol trading terdesentralisasi, sistem stablecoin, game blockchain, alat tata kelola, aplikasi identitas, dan layanan on-chain lainnya.

Smart contract yang berjalan di EVM dapat menyimpan aset dan menerapkan aturan tanpa memerlukan administrator pusat tradisional untuk menyetujui setiap tindakan.

Aturan eksekusi yang sama tersedia bagi siapa pun yang dapat mengirim transaksi valid dan membayar biaya yang diperlukan.

Struktur tanpa izin ini mendukung aplikasi kripto terbuka yang dapat saling berinteraksi.

EVM juga menjadi standar teknis penting di luar Ethereum karena banyak jaringan blockchain lain menggunakan lingkungan eksekusi yang kompatibel atau setara dengan EVM.

Adopsi yang lebih luas ini memungkinkan developer menggunakan kembali smart contract, wallet, bahasa pemrograman, standar token, dan alat pengembangan di berbagai jaringan.

Apakah EVM Merupakan Blockchain?

EVM bukan blockchain itu sendiri.

EVM adalah sistem eksekusi virtual yang digunakan untuk menghitung dampak transaksi blockchain.

Ethereum adalah jaringan blockchain yang mencatat blok, menjaga konsensus, mendistribusikan data, dan menggunakan EVM untuk memproses aktivitas yang dapat diprogram.

Sederhananya, Ethereum adalah keseluruhan jaringan, sedangkan EVM adalah mesin komputasi di dalam lapisan eksekusinya.

Jaringan blockchain lain dapat menerapkan EVM tanpa berbagi riwayat blockchain, validator, saldo, anggaran keamanan, atau aset native Ethereum.

Karena itu, dua chain berbasis EVM dapat menjalankan kode smart contract serupa tetapi tetap menjadi jaringan yang sepenuhnya terpisah.

Bagaimana EVM Memproses Transaksi

Transaksi EVM biasanya dimulai ketika pengguna memilih tindakan di wallet kripto atau aplikasi terdesentralisasi.

Wallet membuat transaksi yang memuat detail seperti alamat tujuan, nilai yang ditransfer, data input, nonce, batas gas, dan pengaturan biaya.

Pengguna menandatangani transaksi dengan kunci privat.

Tanda tangan tersebut membuktikan bahwa transaksi disetujui oleh pengendali akun pengirim.

Transaksi yang telah ditandatangani dikirim ke node Ethereum dan dapat masuk ke pool transaksi tertunda.

Produsen blok memilih transaksi dan memasukkannya ke dalam payload blok yang berurutan.

EVM memproses setiap transaksi berdasarkan status yang terbentuk dari semua transaksi sebelumnya di blok tersebut.

Urutan ini penting karena satu transaksi dapat mengubah saldo, harga, persetujuan, atau nilai penyimpanan yang digunakan transaksi lain.

Setelah memproses seluruh blok, execution client menghitung status Ethereum yang dihasilkan.

Node lain mengulangi pekerjaan yang sama untuk mengonfirmasi bahwa blok yang diusulkan mematuhi aturan Ethereum.

Dokumentasi transaksi resmi Ethereum menjelaskan cara instruksi bertanda tangan dapat mentransfer nilai, membuat kontrak, atau memanggil kontrak yang sudah ada.

Transisi Status EVM

Transisi status adalah perubahan dari satu status Ethereum yang valid ke status valid lainnya.

Status Ethereum mencakup akun, saldo ETH, kode smart contract, penyimpanan kontrak, dan nonce akun.

EVM menerima status saat ini dan transaksi berurutan sebagai input.

EVM kemudian menerapkan aturan eksekusi Ethereum untuk menghitung status berikutnya.

Untuk transfer ETH dasar, transisi status mengurangi saldo pengirim dan menambah saldo penerima.

Untuk swap token, transisi dapat memperbarui saldo token, allowance, cadangan pool likuiditas, catatan biaya, dan log peristiwa.

Untuk transaksi pinjaman, transisi dapat memperbarui jumlah agunan, saldo utang, indeks bunga, dan pengukuran risiko akun.

Setiap execution client yang beroperasi dengan benar seharusnya menghitung transisi status yang sama dari kondisi awal yang sama.

Perilaku deterministik ini sangat penting karena node harus menyepakati hasilnya tanpa memercayai satu komputer pusat.

Akun Ethereum dan EVM

Ethereum memiliki akun yang dimiliki secara eksternal dan akun kontrak.

Akun yang dimiliki secara eksternal dikendalikan melalui kunci privat.

Akun kontrak dikendalikan oleh kode smart contract.

Kedua jenis akun dapat menyimpan ETH, tetapi perilakunya berbeda.

Akun yang dimiliki secara eksternal dapat memulai transaksi setelah pengendalinya menandatanganinya.

Akun kontrak tidak menandatangani transaksi biasa secara mandiri menggunakan kunci privat.

Kodenya berjalan saat menerima panggilan valid melalui transaksi lain atau interaksi dengan kontrak.

Dokumentasi akun Ethereum menjelaskan bahwa akun dapat dikendalikan pengguna atau diterapkan sebagai smart contract.

EVM membaca informasi akun saat memvalidasi transaksi, mentransfer nilai, memuat kode kontrak, dan memperbarui penyimpanan.

Smart Contract dan EVM

Smart contract adalah program yang disimpan di alamat Ethereum.

EVM menjalankan program tersebut ketika transaksi atau kontrak lain memanggil salah satu fungsinya.

Smart contract dapat berisi variabel, fungsi, izin, peristiwa, error, dan aturan untuk menangani aset digital.

Developer sering menulis smart contract Ethereum dalam Solidity atau Vyper.

Kode sumber dikompilasi menjadi bytecode EVM tingkat rendah sebelum diterapkan.

Panduan smart contract resmi Ethereum menjelaskan bahwa penerapan dan interaksi dengan kontrak memerlukan transaksi dan gas.

Setelah kontrak diterapkan, bytecode runtime-nya disimpan sebagai bagian dari akun kontrak.

EVM membaca dan menjalankan bytecode tersebut, bukan memahami secara langsung kode sumber Solidity atau Vyper aslinya.

Perbedaan ini penting karena bytecode yang diterapkan adalah kode yang benar-benar mengendalikan perilaku on-chain.

Apa Itu Bytecode EVM?

Bytecode EVM adalah rangkaian instruksi yang dapat dibaca mesin dan dijalankan oleh Ethereum Virtual Machine.

Bytecode biasanya ditampilkan sebagai nilai heksadesimal yang panjang.

Setiap bagian bytecode mewakili opcode, nilai data, atau informasi eksekusi lainnya.

Kode sumber smart contract lebih mudah dibaca manusia, sedangkan bytecode dirancang untuk diproses EVM.

Kontrak yang diterapkan biasanya memiliki creation code dan runtime code.

Creation code berjalan sekali saat penerapan dan menghasilkan runtime code yang tersimpan di alamat kontrak.

Runtime code berjalan setiap kali pengguna atau kontrak lain berinteraksi dengan kontrak yang telah diterapkan.

Pengantar smart contract dari Solidity menjelaskan bahwa EVM membaca, menafsirkan, dan menjalankan byte yang tersimpan di area kode kontrak.

Developer sering memublikasikan dan memverifikasi kode sumber agar pengguna dapat membandingkan kontrak yang mudah dibaca dengan bytecode yang diterapkan.

Apa Itu Opcode EVM?

Opcode adalah instruksi tingkat rendah individual yang dipahami EVM.

Setiap opcode menjalankan operasi tertentu.

Beberapa opcode melakukan perhitungan aritmetika, perbandingan, atau bitwise.

Opcode lainnya membaca data transaksi, memeriksa alamat, memuat memori, mengakses penyimpanan kontrak, membuat log, atau memanggil kontrak lain.

Contohnya mencakup ADD untuk penjumlahan, SLOAD untuk membaca penyimpanan kontrak, SSTORE untuk mengubah penyimpanan, CALL untuk memanggil akun lain, dan REVERT untuk menghentikan eksekusi sambil mengembalikan error.

Referensi opcode EVM Ethereum mencantumkan instruksi yang tersedia dan biaya gas-nya.

Opcode dijalankan secara berurutan kecuali jika suatu instruksi mengubah program counter atau mengakhiri eksekusi.

Peningkatan Ethereum dapat menambahkan instruksi, mengubah biaya gas, atau mengubah perilaku operasi tertentu.

Karena itu, pengaturan compiler harus menargetkan versi EVM yang didukung jaringan tujuan.

Bagaimana Stack EVM Bekerja

EVM umumnya digambarkan sebagai mesin virtual berbasis stack.

Stack adalah struktur data sementara yang mengikuti urutan masuk terakhir, keluar pertama.

Opcode EVM biasanya mengambil nilai dari bagian atas stack dan mengembalikan hasilnya ke bagian atas stack.

Misalnya, instruksi penjumlahan mengambil dua nilai dari stack, menjumlahkannya, lalu menempatkan hasilnya kembali ke stack.

EVM menggunakan word 256-bit untuk banyak operasi.

Ukuran word ini sesuai untuk perhitungan kriptografi dan nilai akun Ethereum.

Kedalaman stack terbatas, sehingga compiler dan developer harus mengatur perhitungan kompleks dengan cermat.

Error pada stack dapat menyebabkan eksekusi gagal.

Memori EVM

Memori EVM adalah area sementara yang dapat diakses per byte selama pemanggilan kontrak.

Memori dapat menyimpan argumen fungsi, data yang dikembalikan, array sementara, nilai yang dienkode, dan hasil perhitungan antara.

Memori dihapus setelah konteks eksekusi saat ini berakhir.

Memori tidak digunakan untuk penyimpanan on-chain permanen.

Biaya gas memori dapat meningkat saat kontrak mengakses rentang memori yang lebih besar.

Karena itu, penggunaan memori yang efisien dapat mengurangi biaya transaksi kompleks.

Developer harus membedakan memori dari storage karena keduanya memiliki masa pakai, tujuan, dan biaya gas yang berbeda.

Storage EVM

Storage EVM adalah area data persisten yang terkait dengan smart contract.

Nilai storage tetap menjadi bagian dari status Ethereum setelah transaksi berakhir.

Kontrak menggunakan storage untuk saldo token, catatan kepemilikan, pengaturan protokol, utang akun, voting tata kelola, dan informasi jangka panjang lainnya.

Penulisan ke storage umumnya lebih mahal daripada membaca memori sementara karena setiap node validator harus menyimpan dan memproses perubahan status tersebut.

Storage disusun dalam slot 256-bit.

Solidity memetakan variabel tingkat tinggi, array, struktur, dan mapping ke slot-slot tersebut berdasarkan aturan tata letak yang telah ditentukan.

Perubahan tata letak storage yang tidak aman pada kontrak yang dapat di-upgrade dapat merusak data yang sudah ada.

Karena itu, desain storage merupakan bagian penting dari keamanan smart contract dan optimasi gas.

Calldata dan Data yang Dikembalikan

Calldata adalah data input hanya-baca yang diberikan ke pemanggilan kontrak eksternal.

Calldata biasanya berisi selector fungsi yang diikuti argumen fungsi yang dienkode.

EVM menggunakan informasi ini untuk menentukan fungsi yang harus dijalankan dan nilai yang harus diteruskan kepadanya.

Calldata berbeda dari memori karena kontrak penerima tidak dapat mengubahnya secara langsung.

Kontrak juga dapat mengembalikan data ke akun atau kontrak pemanggil.

Data yang dikembalikan dapat berisi saldo token, kuotasi hasil perhitungan, hasil transaksi, atau error yang dienkode.

Aplikasi eksternal sering menggunakan pemanggilan hanya-baca untuk menyimulasikan fungsi kontrak dan mengambil data yang dikembalikan tanpa membuat transaksi on-chain.

Gas dan EVM

Gas adalah satuan untuk mengukur pekerjaan komputasi yang dilakukan EVM.

Setiap opcode memiliki biaya gas yang ditentukan.

Transfer ETH sederhana biasanya membutuhkan gas lebih sedikit daripada transaksi kompleks yang melibatkan beberapa smart contract dan perubahan storage.

Pengirim menentukan batas gas yang menetapkan jumlah gas maksimum yang dapat digunakan transaksi.

Jika eksekusi menggunakan seluruh gas yang tersedia sebelum selesai, transaksi kehabisan gas dan perubahan status yang dimaksud di-revert.

Pengirim tetap membayar komputasi yang telah dilakukan.

Dokumentasi gas dan biaya Ethereum menjelaskan bahwa transaksi smart contract yang lebih rumit membutuhkan lebih banyak komputasi dan batas gas yang lebih tinggi.

Gas mencegah program menggunakan sumber daya jaringan tanpa batas.

Tanpa gas, kode yang bermasalah atau berbahaya dapat membebani setiap execution client dengan komputasi tanpa akhir.

Batas Gas vs. Harga Gas

Batas gas adalah jumlah maksimum gas komputasi yang boleh digunakan suatu transaksi.

Harga gas menentukan jumlah yang bersedia dibayar pengirim untuk setiap unit gas berdasarkan aturan biaya yang berlaku.

Batas gas yang tinggi tidak berarti transaksi pasti menggunakan seluruh gas tersebut.

Pengirim umumnya membayar berdasarkan jumlah yang benar-benar digunakan, sesuai aturan biaya transaksi yang berlaku.

Batas gas yang terlalu rendah dapat menyebabkan transaksi gagal sebelum eksekusi selesai.

Pengaturan biaya yang terlalu rendah dapat membuat transaksi tetap tertunda ketika permintaan ruang blok sedang tinggi.

Wallet biasanya memperkirakan kedua nilai tersebut, tetapi perkiraannya dapat berubah karena status Ethereum dan permintaan jaringan dapat berubah sebelum transaksi dimasukkan ke blok.

Kontrak Precompiled

Kontrak precompiled adalah fungsi khusus tingkat protokol yang tersedia di alamat Ethereum yang telah ditentukan.

Kontrak ini dapat dipanggil dengan cara yang menyerupai pemanggilan smart contract biasa.

Namun, perilakunya diterapkan langsung oleh execution client, bukan melalui bytecode EVM biasa yang tersimpan di alamat tersebut.

Precompile umumnya digunakan untuk operasi kriptografi yang tidak efisien jika dijalankan melalui rangkaian opcode biasa.

Dokumentasi Solidity tentang kontrak precompiled menjelaskan bahwa perilaku dan penggunaan gas-nya diterapkan di dalam lingkungan eksekusi EVM.

Peningkatan Ethereum dapat memperkenalkan precompile tambahan ketika jaringan memerlukan operasi terstandar yang efisien.

Message Call

Message call adalah interaksi EVM ketika satu akun memanggil akun lain.

Akun yang dimiliki secara eksternal dapat memulai proses dengan mengirim transaksi bertanda tangan.

Smart contract kemudian dapat memanggil kontrak lain selama eksekusi.

Message call dapat mentransfer ETH, memberikan data input, mengalokasikan gas, dan meminta eksekusi kode kontrak.

Pemanggilan bertingkat memungkinkan beberapa aplikasi berinteraksi dalam satu transaksi.

Namun, pemanggilan bertingkat juga menimbulkan masalah keamanan karena kontrak eksternal dapat berperilaku secara tidak terduga atau berbahaya.

Kontrak yang aman harus menangani pemanggilan eksternal dengan cermat dan melindungi status penting dari reentrancy serta risiko interaksi lainnya.

Pembuatan Kontrak

EVM dapat membuat smart contract baru saat memproses transaksi pembuatan kontrak atau opcode pembuatan kontrak.

Penerapan dimulai dengan kode inisialisasi.

Kode inisialisasi dapat memproses argumen constructor, menetapkan nilai storage awal, dan mengembalikan bytecode runtime.

Bytecode runtime kemudian disimpan di alamat kontrak baru.

Penerapan kontrak membutuhkan gas karena EVM harus menjalankan kode pembuatan dan menambahkan kode serta status persisten ke Ethereum.

Kontrak yang lebih besar dan constructor yang lebih kompleks umumnya membutuhkan biaya penerapan lebih tinggi.

Penerapan dapat gagal jika kehabisan gas, melanggar aturan eksekusi, atau di-revert selama inisialisasi.

Peristiwa dan Log

Smart contract dapat membuat log selama eksekusi EVM.

Developer biasanya menampilkan log ini melalui event Solidity.

Event dapat mencatat transfer token, swap, deposit, voting tata kelola, perubahan izin, dan aktivitas kontrak lainnya.

Log disimpan dalam tanda terima transaksi dan dapat diindeks oleh aplikasi eksternal.

Log berguna bagi wallet, blockchain explorer, sistem analitik, dan antarmuka aplikasi terdesentralisasi.

Kontrak tidak dapat membaca log peristiwa lama secara langsung seperti saat membaca storage.

Karena itu, event tidak boleh menjadi satu-satunya sumber informasi yang diperlukan untuk eksekusi kontrak di masa mendatang.

Revert dan Transaksi EVM yang Gagal

Transaksi EVM dapat gagal karena berbagai alasan.

Tanda tangan transaksi mungkin tidak valid, nonce keliru, saldo tidak mencukupi, gas tidak memadai, atau format tidak didukung.

Smart contract juga dapat sengaja melakukan revert ketika persyaratan tertentu tidak terpenuhi.

Misalnya, transfer token dapat di-revert ketika pengirim tidak memiliki token yang cukup.

Swap terdesentralisasi dapat di-revert jika jumlah yang diterima kurang dari batas minimum yang ditetapkan pengguna.

Pemeriksaan izin kontrak dapat di-revert jika pemanggil tidak berwenang.

Revert biasanya membatalkan perubahan status yang dibuat dalam jalur eksekusi yang gagal.

Gas yang sudah digunakan umumnya tidak dikembalikan karena execution client telah melakukan pekerjaan yang diminta.

Transaksi yang gagal tidak selalu berarti Ethereum atau EVM mengalami kegagalan.

Sering kali, transaksi tertentu tidak dapat memenuhi aturan kontrak atau protokol berdasarkan status saat itu.

Eksekusi Atomik

Transaksi EVM bersifat atomik, artinya perubahan status dalam cakupan eksekusi transaksi berhasil secara keseluruhan atau gagal secara keseluruhan.

Karakteristik ini memungkinkan transaksi kompleks menjalankan beberapa langkah yang saling terkait tanpa hanya menyisakan sebagian hasil yang dimaksud.

Misalnya, transaksi DeFi dapat meminjam aset, melakukan swap, melunasi kewajiban lain, dan memperbarui agunan dalam satu eksekusi.

Jika satu langkah yang diperlukan gagal dan transaksi di-revert, perubahan status sebelumnya dalam transaksi tersebut juga dibatalkan.

Atomisitas mengurangi beberapa risiko penyelesaian, tetapi tidak menjamin bahwa transaksi menguntungkan secara finansial atau aman.

Kontrak berbahaya tetap dapat menyelesaikan transaksi atomik yang mentransfer aset pengguna setelah pengguna memberikan persetujuan.

Eksekusi Deterministik

EVM bersifat deterministik karena input valid dan status awal yang sama seharusnya menghasilkan hasil yang sama di setiap execution client yang beroperasi dengan benar.

Determinisme diperlukan untuk verifikasi terdesentralisasi.

Jika node menghitung hasil yang berbeda dari transaksi yang sama, node tidak dapat menyepakati saldo atau status kontrak.

Karena itu, smart contract tidak dapat secara langsung meminta informasi eksternal yang berubah-ubah dari situs web biasa atau basis data privat selama eksekusi EVM.

Data eksternal biasanya dimasukkan melalui oracle atau transaksi on-chain lainnya.

Dengan demikian, setiap node dapat memproses nilai yang sama berdasarkan aturan kontrak yang sama.

EVM dan Konsensus

EVM menjalankan eksekusi, sedangkan sistem konsensus Ethereum membantu validator menyepakati urutan blok yang diterima dan finalitasnya.

Eksekusi menentukan apakah transaksi dan perubahan statusnya mematuhi aturan Ethereum.

Konsensus menentukan riwayat chain valid mana yang diterima jaringan.

Setelah Ethereum beralih ke proof-of-stake, full node menggunakan execution client dan consensus client.

Execution client menjalankan transaksi dan mengelola status eksekusi Ethereum.

Consensus client mengikuti aktivitas validator, usulan blok, attestations, pemilihan fork, dan finalitas.

Dokumentasi node dan client Ethereum menjelaskan cara komponen client ini bekerja bersama.

EVM tidak dapat secara mandiri menentukan blok usulan mana yang menjadi kanonis.

Konsensus tidak dapat secara mandiri menghitung hasil smart contract yang kompleks tanpa lapisan eksekusi.

Execution Client EVM

Execution client adalah perangkat lunak yang menerapkan aturan eksekusi Ethereum.

Perangkat lunak ini memvalidasi transaksi, memproses bytecode EVM, mengelola status blockchain, berkomunikasi dengan peer, dan menyediakan antarmuka aplikasi.

Implementasi execution client yang berbeda dapat ditulis dalam bahasa pemrograman yang berbeda selama mengikuti spesifikasi protokol yang sama.

Keberagaman client meningkatkan ketahanan karena Ethereum tidak sepenuhnya bergantung pada satu basis kode perangkat lunak.

Namun, setiap execution client yang kompatibel harus menghitung hasil valid yang sama.

Spesifikasi Lapisan Eksekusi Ethereum menyediakan referensi yang dapat dibaca dan dijalankan untuk perilaku eksekusi Ethereum serta peningkatan jaringan.

Pengujian spesifikasi eksekusi membantu developer memastikan bahwa client yang berbeda menangani kondisi tidak umum secara konsisten.

EVM dan JSON-RPC

Wallet dan aplikasi terdesentralisasi biasanya berkomunikasi dengan execution client melalui metode JSON-RPC.

Metode ini dapat membaca saldo akun, memperkirakan gas, menyimulasikan pemanggilan kontrak, mengambil log, memeriksa blok, dan mengirim transaksi bertanda tangan.

Spesifikasi Ethereum Execution API menjelaskan JSON-RPC sebagai antarmuka standar antara pengguna, infrastruktur, dan execution client.

Pemanggilan RPC hanya-baca dapat meminta execution client menyimulasikan perilaku EVM tanpa menambahkan transaksi ke blockchain.

Metode pengiriman transaksi bertanda tangan menyiarkan transaksi yang mungkin kemudian dimasukkan ke dalam blok.

Penyedia RPC memudahkan penggunaan aplikasi, tetapi pengguna yang mengandalkan penyedia jarak jauh memercayai penyedia tersebut untuk memberikan data yang akurat dan tersedia.

Menjalankan node pribadi dapat memberikan akses yang lebih langsung dan independen ke informasi eksekusi Ethereum.

Chain yang Kompatibel dan Setara dengan EVM

Chain yang kompatibel dengan EVM mendukung smart contract dan alat yang dibuat untuk Ethereum Virtual Machine.

Chain yang setara dengan EVM umumnya berupaya mereplikasi perilaku eksekusi Ethereum dengan lebih dekat.

Kedua model dapat memungkinkan developer menggunakan Solidity, alamat ala Ethereum, wallet yang familier, dan standar token umum.

Namun, jaringan EVM lain dapat memiliki validator, biaya, aturan finalitas, waktu blok, bridge, system contract, dan asumsi keamanan yang berbeda.

Kontrak yang berfungsi di Ethereum mungkin tetap perlu diuji sebelum diterapkan di jaringan EVM lain.

Target compiler, opcode yang didukung, precompile, jenis transaksi, perilaku gas, dan dependensi eksternal dapat berbeda.

Dokumentasi compiler Solidity memperingatkan bahwa kompilasi untuk versi EVM yang keliru dapat menghasilkan perilaku yang salah atau gagal.

Kompatibilitas EVM meningkatkan portabilitas, tetapi tidak membuat chain yang berbeda menjadi identik.

Peningkatan EVM

EVM dapat berubah melalui peningkatan protokol Ethereum.

Peningkatan dapat memperkenalkan opcode, mengubah biaya gas, menambahkan jenis transaksi, mengubah perilaku akun, atau menyediakan precompile baru.

Perubahan protokol yang diusulkan biasanya didokumentasikan melalui Ethereum Improvement Proposals.

Setelah peninjauan, pengujian, koordinasi, dan adopsi komunitas, perubahan tertentu dapat dimasukkan ke dalam peningkatan jaringan.

Execution client harus memperbarui perangkat lunaknya agar mengikuti aturan baru pada saat aktivasi.

Developer smart contract perlu memantau peningkatan karena aturan baru dapat memengaruhi target kompilasi, perkiraan gas, assembly tingkat rendah, dan perilaku kontrak.

Kontrak sebaiknya tidak bergantung pada perilaku EVM yang tidak terdokumentasi dan mungkin tidak tetap stabil setelah peningkatan.

Risiko Keamanan EVM

EVM menjalankan bytecode valid secara konsisten, tetapi tidak menjamin bytecode tersebut aman atau adil.

Smart contract dapat mengandung kesalahan kode, izin yang lemah, mekanisme upgrade yang tidak aman, cacat ekonomi, atau fungsi berbahaya yang disengaja.

EVM dapat menjalankan logika berbahaya tersebut dengan benar karena instruksinya valid.

Risiko smart contract yang umum mencakup reentrancy, kesalahan kontrol akses, manipulasi oracle, kesalahan aritmetika, penyalahgunaan tanda tangan, benturan storage, dan pemanggilan eksternal yang tidak aman.

Bug compiler juga dapat memengaruhi bytecode yang diterapkan.

Daftar bug compiler Solidity yang diketahui membantu developer mengidentifikasi masalah yang terkait dengan keamanan pada versi compiler tertentu.

Audit, pengujian, verifikasi formal, tinjauan kode, pembatasan izin, dan kontrol upgrade yang cermat dapat mengurangi risiko.

Tidak ada audit yang dapat menjamin bahwa kontrak EVM tidak akan pernah gagal atau dieksploitasi.

Risiko EVM bagi Pengguna Kripto

Pengguna kripto berinteraksi dengan EVM setiap kali menyetujui token, menandatangani transaksi, atau menggunakan smart contract Ethereum.

Tanda tangan wallet dapat memberikan izin lebih dari sekadar transfer sederhana.

Tanda tangan dapat menyetujui penggunaan token, memanggil kontrak, membuat delegasi, atau memberikan bentuk izin lainnya.

Pengguna sebaiknya membaca permintaan transaksi dan memverifikasi kontrak tujuan sebelum menandatanganinya.

Eksekusi EVM yang berhasil hanya membuktikan bahwa transaksi mengikuti aturan kode dan protokol.

Hal itu tidak membuktikan bahwa hasilnya sesuai dengan maksud pengguna atau aplikasinya tepercaya.

Aplikasi terdesentralisasi berbahaya dapat menggunakan pemanggilan EVM yang valid untuk mentransfer aset yang telah disetujui.

Pengguna sebaiknya menghindari tautan yang tidak dikenal, memverifikasi alamat kontrak, membatasi persetujuan token, dan memisahkan aset jangka panjang dari wallet yang digunakan untuk aplikasi eksperimental.

Risiko EVM bagi Trader Kripto

Trader kripto dapat menghadapi risiko terkait EVM saat menggunakan protokol trading terdesentralisasi, pinjaman, staking, bridge, atau likuidasi.

Trading dapat gagal karena harga berubah sebelum eksekusi EVM mencapai transaksi tersebut.

Hasil swap dapat lebih buruk ketika pengguna mengizinkan rentang slippage yang lebar.

Urutan transaksi dapat diubah relatif terhadap transaksi lain dalam blok yang sama.

Urutan ini dapat memengaruhi harga pool, hasil likuidasi, dan ketersediaan token.

Biaya gas yang tinggi juga dapat membuat penutupan atau penyesuaian posisi on-chain menjadi mahal saat pasar mengalami tekanan.

Trader mungkin memiliki agunan token yang cukup tetapi kekurangan aset gas native yang diperlukan untuk membayar eksekusi.

Karena itu, menjaga saldo gas dan meninjau pengaturan transaksi merupakan bagian dari manajemen risiko trading on-chain.

EVM dan Maximal Extractable Value

Maximal extractable value adalah nilai yang dapat diperoleh dengan mengendalikan atau memengaruhi penyertaan dan pengurutan transaksi.

EVM memproses transaksi sesuai urutan yang diberikan dalam blok.

Jika dua transaksi berinteraksi dengan pool likuiditas yang sama, transaksi pertama dapat mengubah hasil yang diterima transaksi kedua.

Searcher dan sistem pembentukan blok dapat memanfaatkan karakteristik ini untuk arbitrase, likuidasi, atau strategi lainnya.

Beberapa strategi membantu menyelaraskan harga, sedangkan strategi lain dapat memperburuk eksekusi bagi pengguna.

Sandwich attack menempatkan transaksi sebelum dan sesudah swap pengguna untuk memperoleh keuntungan dari dampak harga swap tersebut.

Dokumentasi Ethereum tentang maximal extractable value menjelaskan bagaimana penyertaan, pengecualian, dan pengurutan transaksi dapat menciptakan nilai ekonomi.

Pengguna dapat mengurangi sebagian eksposur dengan menggunakan batas slippage yang sesuai, menghindari likuiditas dangkal, dan meninjau opsi eksekusi terlindungi yang tersedia.

EVM dan Standar Token

EVM memungkinkan developer menerapkan antarmuka token bersama melalui smart contract.

ERC-20 menetapkan antarmuka umum untuk token fungibel.

ERC-721 dan ERC-1155 mendukung struktur umum untuk aset unik dan multi-token.

Standar bersama memungkinkan wallet, antarmuka trading, blockchain explorer, dan aplikasi terdesentralisasi berinteraksi dengan banyak token menggunakan fungsi yang familier.

Dokumentasi standar token Ethereum menjelaskan bagaimana antarmuka umum meningkatkan interoperabilitas.

Standar token menetapkan fungsi dan event yang diharapkan, tetapi tidak menjamin bahwa setiap kontrak token aman atau dikelola dengan jujur.

Kontrak token tetap dapat berisi aturan transfer khusus, biaya, blacklist, wewenang minting, atau izin upgrade.

EVM dan Jaringan Layer 2

Banyak jaringan Layer 2 Ethereum menyediakan lingkungan eksekusi yang kompatibel atau setara dengan EVM.

Jaringan ini memproses transaksi di luar lingkungan eksekusi utama Ethereum dan menggunakan Ethereum untuk sebagian dari proses penyelesaian, ketersediaan data, atau model keamanannya.

Hal ini dapat mengurangi biaya transaksi dan meningkatkan throughput.

Ikhtisar Layer 2 Ethereum menjelaskan cara rollup memproses aktivitas di luar Ethereum Layer 1 sambil menggunakan Ethereum sebagai basis penyelesaian.

EVM Layer 2 dapat menjalankan bytecode smart contract serupa, tetapi menggunakan proses produksi blok, perhitungan biaya, penarikan, dan finalitas yang berbeda.

Pengguna sebaiknya memahami sequencer, bridge, sistem proof, metode publikasi data, dan kontrol upgrade pada jaringan Layer 2 terkait.

Kesamaan EVM tidak menghilangkan risiko tambahan dari infrastruktur Layer 2.

Manfaat EVM

EVM menyediakan lingkungan terstandar untuk aplikasi kripto yang dapat diprogram.

EVM memungkinkan node independen memverifikasi hasil smart contract yang sama.

EVM mendukung penerapan terbuka karena developer umumnya tidak memerlukan izin operator pusat untuk memublikasikan kontrak.

EVM memungkinkan komposabilitas karena satu smart contract dapat berinteraksi dengan smart contract lain.

EVM mendukung standar token dan alat pengembangan yang banyak digunakan.

EVM juga memberi jaringan blockchain lain model eksekusi umum yang dapat mengurangi biaya migrasi developer.

Beragam alat, dokumentasi, pengetahuan pengujian, dan riset keamanan EVM dapat membuat pengembangan aplikasi lebih mudah diakses.

Keterbatasan EVM

Komputasi EVM lebih mahal daripada komputasi biasa di server terpusat karena banyak node harus memverifikasi hasilnya.

Penyimpanan persisten juga mahal karena menambah status blockchain yang dikelola execution client.

Ruang blok Ethereum terbatas, sehingga biaya transaksi dapat meningkat saat banyak pengguna bersaing untuk melakukan eksekusi.

EVM memproses transisi status yang berurutan, sehingga throughput dapat terbatas ketika banyak transaksi mengakses status yang sama.

Smart contract tidak mudah diubah setelah diterapkan kecuali sistem upgrade telah dirancang sebelumnya.

Kemampuan upgrade dapat memberikan fleksibilitas, tetapi juga menimbulkan risiko administrator dan tata letak storage.

EVM juga tidak dapat menentukan kebenaran informasi eksternal tanpa mengandalkan data yang dikirim melalui oracle atau proses tepercaya lainnya.

Contoh Swap Token dengan EVM

Misalkan pengguna ingin menukar satu token ERC-20 dengan token lain melalui pool likuiditas terdesentralisasi.

Wallet membuat data transaksi yang memanggil pool atau kontrak perutean.

Pengguna menandatangani transaksi dan mengirimkannya ke jaringan Ethereum.

Setelah transaksi dimasukkan ke dalam blok, EVM memeriksa allowance token pengguna dan memanggil kontrak yang diperlukan.

Kontrak menghitung hasil pertukaran saat ini, menerapkan biaya protokol, dan membandingkan output dengan jumlah minimum yang diterima pengguna.

Jika persyaratan terpenuhi, EVM memperbarui saldo token dan storage pool likuiditas.

EVM juga membuat log peristiwa yang dapat dibaca aplikasi eksternal.

Jika output lebih rendah dari batas minimum pengguna atau kondisi lain gagal, transaksi di-revert.

Pengguna umumnya tetap membayar gas yang digunakan sebelum revert.

Contoh ini menunjukkan bagaimana eksekusi EVM menghubungkan tanda tangan wallet, persetujuan token, smart contract, gas, perubahan status, dan tanda terima transaksi.

Cara Meninjau Transaksi EVM

Pertama, pastikan jaringan tempat transaksi akan dijalankan.

Kedua, verifikasi alamat tujuan atau smart contract.

Ketiga, tinjau aset dan jumlah yang akan ditransfer.

Keempat, periksa apakah transaksi meminta persetujuan token atau izin lain yang berlaku berkelanjutan.

Kelima, tinjau estimasi gas dan pengaturan biaya maksimum.

Keenam, periksa output yang diharapkan, jumlah minimum yang diterima, dan tenggat waktu untuk trading terdesentralisasi.

Ketujuh, gunakan blockchain explorer atau alat simulasi tepercaya untuk meninjau transaksi jika sesuai.

Kedelapan, jangan menandatangani transaksi jika wallet tidak dapat menjelaskan tindakannya atau sumber transaksi tidak dikenal.

Kesembilan, sediakan ETH yang cukup untuk transaksi mendatang, termasuk untuk keluar dari posisi on-chain dalam keadaan darurat.

Kesepuluh, ingat bahwa transaksi EVM yang telah dikonfirmasi umumnya sulit atau tidak mungkin dibatalkan.

Kesalahpahaman Umum tentang EVM

Salah satu kesalahpahaman umum adalah bahwa EVM merupakan komputer fisik yang dimiliki satu organisasi.

Sebenarnya, EVM adalah model eksekusi bersama yang diterapkan oleh banyak client independen.

Kesalahpahaman lainnya adalah EVM menyimpan semua mata uang kripto di dalam smart contract.

EVM memproses status, sedangkan kepemilikan direpresentasikan melalui catatan akun dan kontrak blockchain.

Kesalahpahaman ketiga adalah EVM dan Ethereum merupakan hal yang sama.

EVM adalah salah satu komponen penting dari protokol Ethereum yang lebih luas.

Kesalahpahaman keempat adalah eksekusi EVM yang valid menjamin transaksi aman.

EVM dapat menjalankan logika kontrak yang berbahaya atau merugikan secara ekonomi dengan benar.

Kesalahpahaman kelima adalah semua jaringan EVM memiliki keamanan Ethereum.

Jaringan berbasis EVM lain dapat memiliki validator, bridge, sistem tata kelola, dan asumsi kepercayaan yang berbeda.

Kesalahpahaman keenam adalah transaksi gagal tidak menimbulkan biaya.

Eksekusi EVM yang gagal biasanya tetap menggunakan gas untuk pekerjaan yang telah dilakukan.

FAQ

Apa kepanjangan EVM?

EVM adalah singkatan dari Ethereum Virtual Machine.

Apa itu EVM secara sederhana?

EVM adalah lingkungan komputasi virtual yang menjalankan smart contract Ethereum dan menghitung hasil transaksi on-chain.

Apakah EVM komputer sungguhan?

Bukan. EVM adalah model eksekusi virtual yang diterapkan oleh execution client Ethereum di banyak komputer independen.

Apakah EVM sama dengan Ethereum?

Bukan. EVM adalah lingkungan eksekusi smart contract Ethereum, sedangkan Ethereum juga mencakup konsensus, jaringan, validator, blok, dan komponen protokol lainnya.

Bahasa pemrograman apa yang dapat digunakan dengan EVM?

Solidity dan Vyper adalah bahasa smart contract yang banyak digunakan dan dikompilasi menjadi bytecode EVM.

Apa itu bytecode EVM?

Bytecode EVM adalah rangkaian instruksi tingkat rendah yang dapat dibaca mesin dan dijalankan oleh Ethereum Virtual Machine.

Apa itu opcode EVM?

Opcode adalah instruksi EVM individual yang menjalankan operasi seperti aritmetika, akses storage, pemanggilan kontrak, dan penanganan error.

Mengapa EVM menggunakan gas?

Gas mengukur pekerjaan komputasi, memberi harga pada sumber daya eksekusi yang terbatas, dan mencegah program menggunakan daya pemrosesan tanpa batas.

Apa yang terjadi jika transaksi EVM kehabisan gas?

Perubahan status yang dimaksud di-revert, tetapi pengirim umumnya tetap membayar gas yang digunakan sebelum eksekusi berhenti.

Bisakah EVM menjalankan kontrak berbahaya?

Bisa. EVM menjalankan bytecode yang valid secara teknis meskipun kontrak tersebut memiliki logika yang merugikan, tidak jujur, atau tidak aman.

Apakah semua chain EVM saling terhubung?

Tidak. Chain EVM dapat menggunakan teknologi eksekusi serupa, tetapi memiliki saldo, blok, validator, kontrak, dan riwayat transaksi yang terpisah.

Apakah alamat wallet yang sama berfungsi di setiap chain EVM?

Kunci privat yang sama biasanya dapat menghasilkan format alamat yang sama, tetapi aset dan aktivitas pada alamat tersebut tetap terpisah di setiap chain.

Bisakah transaksi EVM dibatalkan?

Transaksi EVM yang telah dikonfirmasi umumnya tidak dapat dibatalkan, kecuali kontrak penerima memiliki fungsi valid yang dapat menghasilkan transaksi koreksi baru.

Mengapa transaksi EVM bisa gagal setelah simulasi wallet berhasil?

Status blockchain, kondisi gas, harga, likuiditas, atau storage kontrak dapat berubah sebelum transaksi benar-benar dijalankan.

Apa perbedaan EVM dan execution client?

EVM adalah mesin virtual dan seperangkat aturan untuk komputasi smart contract, sedangkan execution client adalah perangkat lunak yang menerapkan aturan tersebut dan mengelola data eksekusi Ethereum.

Apakah jaringan Layer 2 menggunakan EVM?

Banyak jaringan Layer 2 menggunakan lingkungan yang kompatibel atau setara dengan EVM agar smart contract dan alat Ethereum dapat digunakan kembali.

Kesimpulan

EVM, atau Ethereum Virtual Machine, adalah lingkungan eksekusi yang dapat diprogram dan menjadi pusat sistem smart contract Ethereum.

EVM memproses instruksi transaksi, menjalankan bytecode, menghitung penggunaan gas, memperbarui status blockchain, dan menghasilkan hasil transaksi.

EVM memungkinkan Ethereum mendukung token, keuangan terdesentralisasi, NFT, sistem tata kelola, game blockchain, dan berbagai aplikasi kripto lainnya.

Aturannya yang deterministik memungkinkan execution client independen memverifikasi hasil yang sama tanpa memercayai satu komputer pusat.

Smart contract ditulis dalam bahasa yang mudah dibaca manusia lalu dikompilasi menjadi bytecode EVM yang terdiri dari opcode tingkat rendah.

Selama eksekusi, EVM menggunakan stack, memori, calldata, storage persisten, message call, log, dan komponen lainnya untuk memproses logika kontrak.

Gas membatasi pekerjaan komputasi dan mengharuskan pengguna membayar sumber daya jaringan yang digunakan oleh transaksi mereka.

EVM bekerja bersama lapisan konsensus Ethereum, tetapi eksekusi dan konsensus memiliki fungsi yang berbeda.

Chain yang kompatibel dengan EVM dan jaringan Layer 2 dapat menggunakan kembali teknologi Ethereum, meskipun keamanan, biaya, finalitas, dan infrastrukturnya dapat berbeda.

Bagi pengguna kripto, memahami EVM memudahkan evaluasi biaya gas, persetujuan smart contract, transaksi gagal, standar token, aplikasi terdesentralisasi, dan risiko trading on-chain.

EVM sangat berguna karena menjalankan aturan terprogram yang transparan, tetapi tidak menentukan apakah aturan tersebut aman atau menguntungkan secara finansial.

Pengguna dan developer tetap harus memverifikasi kontrak, mengelola izin, menguji kode, meninjau perbedaan jaringan, dan memperlakukan setiap transaksi yang ditandatangani sebagai otorisasi yang serius.
Menarik Kembali / Peluang?
Menarik Kembali / Peluang?Menarik Kembali / Peluang?
Simak arus masuk ETF BTC $2,4 miliar pada likuidasi