Lanjut ke konten utama
Change page

Mesin Virtual Ethereum (EVM)

Terakhir diedit: , 15 Agustus 2023

Instansiasi fisik EVM tidak dapat dideskripsikan dengan cara yang sama seperti seseorang menunjuk ke awan atau gelombang laut, tetapi ada sebagai satu entitas tunggal yang dikelola oleh ribuan komputer terhubung yang menjalankan klien Ethereum.

Protokol Ethereum itu sendiri ada semata-mata untuk tujuan menjaga operasi yang berkelanjutan, tidak terputus, dan tidak dapat diubah dari mesin state khusus ini; Ini adalah lingkungan di mana semua akun Ethereum dan kontrak pintar tinggal. Pada blok mana pun dalam rantai, Ethereum memiliki satu dan hanya satu state 'kanonis', dan EVM adalah yang mendefinisikan aturan untuk menghitung state valid baru dari blok ke blok.

Prasyarat

Beberapa pemahaman dasar tentang terminologi umum dalam ilmu komputer seperti bita(opens in a new tab), memori(opens in a new tab), dan tumpukan(opens in a new tab) diperlukan untuk memahami EVM. Akan sangat membantu jika Anda merasa nyaman dengan konsep kriptografi/blockchain seperti fungsi hash(opens in a new tab), bukti kerja(opens in a new tab) dan Pohon Merkle(opens in a new tab).

Dari buku besar ke mesin state

Analogi dari 'buku besar terdistribusi' sering digunakan untuk menggambarkan blockchain seperti Bitcoin, yang memungkinkan mata uang terdesentralisasi menggunakan peralatan dasar kriptografi. Mata uang kripto berperilaku seperti mata uang 'biasa' karena aturan yang mengatur apa yang bisa dan tidak bisa dilakukan untuk memodifikasi buku besar. Misalnya, alamat Bitcoin tidak dapat membelanjakan lebih banyak Bitcoin daripada yang diterima sebelumnya. Aturan ini mendukung semua transaksi di Bitcoin dan banyak blockchain lainnya.

Meskipun Ethereum memiliki mata uang kripto (Ether) asli sendiri 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 state(opens in a new tab) yang terdistribusi. State Ethereum adalah struktur data yang sangat besar yang menyimpan tidak hanya semua akun dan saldo, tapi state mesin, yang bisa mengubah blok ke blok sesuai dengan serangkaian aturan yang telah ditetapkan sebelumnnya, dan bisa menjalankan kode mesin arbitrari. Aturan spesifik tentang mengubah state dari blok ke blok ditentukan oleh EVM.

Sebuah diagram menunjukkan susunan EVM Diagram diadaptasi dari Ethereum EVM yang diilustrasikan(opens in a new tab)

Fungsi transisi state Ethereum

EVM bertindak seperti fungsi matematika: Jika menerima input, akan menghasilkan output deterministik. Oleh karena itu cukup membantu mendeskripsikan Ethereum dengan lebih formal sebagai memiliki fungsi transaksi state:

1Y(S, T)= S'

Dengan state valid versi lama (S) dan kumpulan baru dari transaksi valid (T), fungsi transisi Ethereum Y(S, T) menghasilkan state output valid yang baru S'

State

Dalam konteks Ethereum, state adalah struktur data yang sangat besar yang disebut Pohon Merkle Patricia yang dimodifikasi(opens in a new tab), yang menyimpan semua akun yang ditautkan oleh hash dan dapat direduksi menjadi satu hash root yang disimpan pada blockchain.

Transaksi

Transaksi adalah instruksi yang ditandatangani secara kriptografis dari akun. Ada dua jenis transaksi: transaksi yang menghasilkan pemanggilan pesan dan transaksi yang menghasilkan pembuatan kontrak.

Pembuatan kontrak menghasilkan pembuatan akun kontrak baru yang berisi kode bita kontrak pintar yang dikompilasi. Setiap kali akun lain melakukan pemanggilan pesan ke kontrak itu, akun itu akan mengeksekusi kode bitanya.

Instruksi EVM

EVM beroperasi sebagai mesin tumpukan(opens in a new tab) dengan kedalaman 1024 item. Setiap item adalah kata berukuran 256 bit, yang dipilih untuk kemudahan penggunaan dengan kriptografi 256 bit (seperti hash Keccak-256 atau tanda tangan secp256k1).

Saat pengoperasian, EVM mempertahankan memori sementara (sebagai himpunan bita kata yang dirujuk), yang tidak bertahan di antara transaksi.

Akan tetapi, kontrak berisi pohon penyimpanan Merkle Patricia (sebagai himpunan kata yang dapat dirujuk), yang terkait dengan akun yang sedang dipertanyakan dan merupakan bagian dari state global.

Kode bita kontrak pintar yang dikompilasi dieksekusi sebagai nomor EVM opcode, yang melakukan operasi tumpukan standar seperti XOR, AND, ADD, SUB, dll. EVM juga menerapkan sejumlah operasi tumpukan khusus blockchain, seperti ADDRESS, BALANCE, BLOCKHASH, dll.

Sebuah diagram menampilkan gas yang diperlukan untuk operasi EVM Diagram diadaptasi dari Ethereum EVM yang diilustrasikan(opens in a new tab)

Implementasi EVM

Semua implementasi EVM harus sesuai dengan spesifikasi yang dideskripsikan dalam Yellowpaper Ethereum.

Dalam riwayat 5 tahun Ethereum, EVM telah menjalani beberapa revisi, dan ada beberapa implementasi EVM dalam bahasa pemrograman yang beragam.

Semua klien Ethereum mencakup implementasi EVM. Selain itu, ada beberapa implementasi mandiri, yang meliputi:

Bacaan Lebih Lanjut

Apakah artikel ini membantu?