Solana Virtual Machine (SVM) adalah lingkungan eksekusi yang memproses program  Solana dan menerapkan perubahan state-nya di seluruh jaringan. Program dikompilasi ke Solana Bytecode Format, atau sBPF, dan dijalankan di dalam runtime yang ter-sandbox. Transaksi mengidentifikasi program yang dipanggil dan akun yang boleh dibaca atau ditulis oleh setiap instruksi, sehingga runtime memperoleh informasi yang dibutuhkan untuk memuat state dan menjadwalkan pekerjaan yang kompatibel.

SVM memisahkan kode program yang dapat dieksekusi dari data akun yang dapat diubah dan menggunakan compute unit untuk mengukur konsumsi sumber daya. Model ini mendukung runtime paralel Sealevel milik Solana karena transaksi yang tidak meminta akun writable yang bertabrakan dapat diproses secara bersamaan. SVM adalah lapisan eksekusi, bukan mekanisme konsensus, klien validator, atau jam Proof of History milik Solana.

Apa Itu Solana Virtual Machine?

Solana Virtual Machine (SVM) adalah lingkungan eksekusi yang menjalankan program  smart contract dan memproses instruksi transaksi di Solana. Berbeda dari sistem tempat smart contract menyimpan state-nya sendiri, Solana memisahkan kode program dari akun data. Transaksi menentukan program dan akun yang akan digunakan, sehingga jaringan dapat memproses transaksi independen secara paralel.

Istilah SVM juga dapat merujuk pada lingkungan eksekusi yang kompatibel dengan Solana yang digunakan jaringan blockchain lain. Jaringan tersebut dapat mendukung program dan alat pengembang yang serupa, tetapi memakai sistem konsensus, sequencing,  ketersediaan data, atau penyelesaian yang berbeda. Jadi, kompatibilitas SVM menggambarkan lingkungan eksekusi, bukan model keamanan jaringan yang mendasarinya.

Bagaimana Solana Virtual Machine Bekerja?

Solana Virtual Machine memproses setiap transaksi menggunakan program dan akun yang tercantum dalam transaksi tersebut.

1. Muat akun yang diperlukan: SVM mengidentifikasi pembayar biaya, penandatangan, akun writable, dan program yang dibutuhkan transaksi.

2. Jalankan instruksi: Instruksi dijalankan secara berurutan melalui program Solana yang relevan, yang juga dapat memanggil program lain bila diperlukan.

3. Terapkan izin dan batas: Runtime memeriksa kepemilikan akun, izin penandatangan, akses writable, dan batas compute unit selama eksekusi.

4. Verifikasi hasilnya: Setelah eksekusi, SVM memastikan saldo dan data akun mengikuti aturan protokol Solana.

5. Commit transaksi: Jika semua instruksi berhasil, perubahan state dicatat bersama. Jika satu gagal, transaksi tidak memperbarui state aplikasi secara sebagian.

Karena transaksi mendeklarasikan akun yang diaksesnya, Solana dapat mengeksekusi transaksi yang memakai akun berbeda secara paralel, sehingga jaringan mampu mendukung throughput yang lebih tinggi.

Apa Manfaat Utama dan Kasus Penggunaan SVM?

SVM dirancang untuk aplikasi yang membutuhkan eksekusi program yang dapat diprediksi dan memperoleh manfaat dari akses akun yang eksplisit. Performanya bergantung pada desain runtime sekaligus pada apakah transaksi bersaing memperebutkan state writable yang sama.

1. Akses akun yang dideklarasikan memungkinkan penjadwalan paralel. Transaksi mencantumkan akun yang dibutuhkan sebelum eksekusi, sehingga penjadwal dapat menjalankan transaksi yang tidak bertabrakan pada inti prosesor berbeda sekaligus melindungi state writable bersama.

2. Program dan state tetap terpisah. Satu program tanpa state dapat beroperasi di banyak akun data, mendukung logika aplikasi yang dapat digunakan ulang, dan memungkinkan pengembang menata state untuk konkurensi alih-alih menggandakan kode.

3. Transaksi atomik dapat menyusun beberapa instruksi. Sebuah transaksi dapat memanggil beberapa program secara berurutan dan entah mencatat semua perubahan state yang berhasil secara bersamaan atau menolak seluruh transaksi ketika satu instruksi gagal.

4. Compute unit membuat penggunaan sumber daya menjadi eksplisit. Runtime mengukur kerja program dan memungkinkan transaksi meminta anggaran yang sesuai, membantu validator membatasi eksekusi sementara pengguna menyatakan prioritas melalui mekanisme biaya jaringan.

Apa Contoh Program dan Jaringan SVM?

Teknologi SVM muncul di aplikasi Solana dan di jaringan yang menggunakan kembali eksekusi yang kompatibel dengan Solana. Contoh-contoh ini berbeda dalam hal penyelesaian dan infrastruktur, jadi dukungan SVM saja tidak membuatnya menjadi jaringan yang sama.

• Program native Solana. System Program membuat akun, sementara program vote, stake, compute-budget, dan address-lookup-table menyediakan fungsi inti yang didukung langsung oleh runtime Solana.

• Program aplikasi Solana. DEX, pasar pinjaman, platform NFT, dan game men-deploy program sBPF yang beroperasi pada akun pengguna, pasar, vault, mint, dan posisi yang disertakan pada setiap instruksi.

• Eksekusi Eclipse. Eclipse menggunakan lingkungan eksekusi berbasis SVM sambil melakukan penyelesaian melalui infrastruktur terkait  Ethereum, menggambarkan bagaimana runtime dapat berada di dalam tumpukan  blockchain modular yang berbeda.

• Alat pengujian SVM lokal. Alat seperti LiteSVM mereproduksi perilaku runtime yang relevan untuk pengembangan dan pengujian tanpa mengharuskan setiap kasus uji mengirimkan transaksi ke kluster validator aktif.

Apa Keterbatasan dan Risiko SVM?

Model performa SVM menciptakan kendala desain yang spesifik. Pengembang harus mendeklarasikan akun secara akurat, mengurangi kontensi yang tidak perlu, dan tetap berada dalam batas runtime, sementara pengguna masih menghadapi risiko smart contract dan transaksi yang umum.

1. Akun writable bersama dapat membatasi paralelisme. Transaksi yang membutuhkan akun writable yang sama tidak dapat dijalankan bersamaan dengan aman, sehingga akun state global yang populer bisa menjadi hambatan aplikasi meskipun runtime-nya paralel.

2. Program memerlukan pengetahuan pengembangan khusus Solana. Pengembang harus memahami kompilasi sBPF, kepemilikan akun, program-derived address, pemanggilan antar-program, anggaran compute, dan persyaratan akun terkait rent.

3. Batas compute dan akun dapat menolak pemanggilan yang kompleks. Transaksi dapat gagal ketika melebihi anggaran compute-nya, mereferensikan terlalu banyak sumber daya, menumbuhkan data akun secara tidak semestinya, atau mencapai batas kedalaman pemanggilan dan pembatasan runtime.

4. Kompatibilitas SVM tidak sama dengan keamanan Solana. Rantai SVM yang terpisah dapat memakai validator, bridge, sequencer, ketersediaan data, atau kontrol upgrade yang berbeda, sehingga menciptakan asumsi kepercayaan yang tidak terkait dengan bytecode eksekusi.

Apa Perbedaan SVM dengan EVM?

SVM berbeda dari EVM terutama pada model akun, bytecode, dan pendekatannya terhadap konkurensi. Transaksi Solana mendeklarasikan akses akun sebelum eksekusi, dan program beroperasi pada akun state yang terpisah, memungkinkan Sealevel menjadwalkan pekerjaan yang tidak bertabrakan secara paralel. Kontrak Ethereum umumnya menempatkan kode dan penyimpanan pada alamat yang sama, dan  eksekusi EVM tradisional mengikuti urutan transaksi yang teratur. Kedua lingkungan menuntut hasil yang deterministik di seluruh node validator, tetapi alat pengembang, pengukuran biaya, tata letak state, dan standar kompatibilitasnya berbeda.

Konsep Terkait

1. Apa Itu Smart Contract?

2. Apa Itu Gas?

3. Apa Itu Validator?

4. Apa Itu Blockchain?

Bacaan Lanjutan

1. Apa Proyek Solana Virtual Machine (SVM) Teratas pada 2025?

2. Apa Itu Eclipse (ES), Layer 2 Berbasis SVM Pertama di Ethereum?

3. Apa Itu Solscan dan Bagaimana Cara Menggunakan Penjelajah Blockchain Solana?

4. Solana vs. Ethereum: Analisis Perbandingan