Move adalah bahasa kontrak pintar yang dirancang untuk lingkungan blockchain, yang dapat dijalankan di rantai yang mendukung MoveVM. Desainnya mempertimbangkan masalah keamanan blockchain dan kontrak pintar, serta mengadopsi beberapa prinsip desain keamanan dari Rust. Artikel ini akan menganalisis keamanan bahasa Move dari tiga aspek: fitur bahasa, mekanisme eksekusi, dan alat verifikasi.
1. Fitur keamanan bahasa Move
Bahasa Move meningkatkan keamanan dengan mengorbankan beberapa fleksibilitas, tidak mendukung pengiriman dinamis dan pemanggilan eksternal rekursif, tetapi menggunakan konsep generik, penyimpanan global, sumber daya, dan lain-lain untuk menerapkan pola pemrograman alternatif.
Komponen utama dari Move meliputi:
Modul: terdiri dari jenis struktur dan definisi proses
Struktur: dapat didefinisikan sebagai jenis sumber daya, disimpan dalam penyimpanan kunci global.
Proses: mendefinisikan logika kontrak
Penyimpanan global Move memungkinkan data yang persisten, hanya dapat dibaca dan ditulis secara pemrograman oleh pemilik modul, tetapi dapat dilihat di buku besar publik.
Move menjamin keamanan kompilasi kode melalui dua mekanisme:
Invarian Reduksi: digunakan untuk pemeriksaan statis, mendefinisikan konservasi status sistem
Verifier bytecode: Menegakkan tipe aman dan linearitas, mencegah operasi ilegal
2. Mekanisme Operasi Move
Program Move berjalan di dalam mesin virtual dan tidak dapat mengakses memori sistem secara langsung. Ini mengadopsi model eksekusi berbasis tumpukan, membagi penyimpanan global menjadi memori ( tumpukan ) dan variabel global ( tumpukan ).
Status Move terdiri dari stack panggilan, memori, variabel global, dan operasi array. Selama eksekusi, stack panggilan menyimpan informasi konteks, dan lompatan statis menghindari pengiriman dinamis, sehingga mencegah serangan re-entry.
MoveVM memisahkan penyimpanan data dan tumpukan pemanggilan, berbeda dengan EVM. Desain ini meningkatkan keamanan dan efisiensi eksekusi.
3. Pindahkan Prover
Move Prover adalah alat verifikasi formal yang menggunakan algoritma verifikasi deduktif untuk memverifikasi kebenaran program. Alur kerjanya adalah:
Menerima file sumber Move dan spesifikasi
Kompilasi menjadi bytecode dan verifikasi model objek
Konversi ke bahasa menengah Boogie
Menghasilkan kondisi verifikasi
Verifikasi menggunakan solver Z3
Menghasilkan laporan diagnostik
Move Specification Language digunakan untuk mendeskripsikan spesifikasi program, dapat ditulis terpisah dari kode bisnis.
4. Ringkasan
Move mempertimbangkan dengan baik dalam desain bahasa, eksekusi mesin virtual, dan alat keamanan. Ini mengorbankan sebagian fleksibilitas, tetapi meningkatkan keamanan dan keterverifikasian. Kerentanan EVM yang umum seperti reentrancy, overflow, dan lain-lain dapat dihindari secara efektif, tetapi tetap perlu memperhatikan masalah otorisasi, logika, dan overflow bilangan bulat besar.
Meskipun Move menyediakan berbagai jaminan keamanan, disarankan agar pengembang menggunakan layanan audit keamanan pihak ketiga dan menyerahkan penulisan serta verifikasi standar kepada perusahaan keamanan profesional.
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
26 Suka
Hadiah
26
8
Posting ulang
Bagikan
Komentar
0/400
CountdownToBroke
· 08-04 13:47
Sudah lagi menyalin saudara rust, hampir sama dengan iron yang menulis versi yang dipotong.
Lihat AsliBalas0
TerraNeverForget
· 08-03 01:26
Jadi, kita berputar lagi, kan? Maka saya juga ikut berputar.
Lihat AsliBalas0
DuckFluff
· 08-02 19:38
Dan Rust mengambil sebagian, melihatnya sudah pusing.
Lihat AsliBalas0
SurvivorshipBias
· 08-01 22:52
Move terlalu aman, jadi setelah ini, kelompok hiu tidak akan punya makanan lagi.
Lihat AsliBalas0
Ser_This_Is_A_Casino
· 08-01 22:50
Rasanya move agak terlalu kaku, bahkan lebih kaku daripada rust.
Lihat AsliBalas0
SchrodingerAirdrop
· 08-01 22:50
Saya sudah tidak bisa belajar lagi, benar-benar pusing.
Analisis Menyeluruh Keamanan Bahasa Move: Fitur Bahasa, Mekanisme Operasi, dan Alat Verifikasi
Analisis Keamanan Bahasa Move
Pendahuluan
Move adalah bahasa kontrak pintar yang dirancang untuk lingkungan blockchain, yang dapat dijalankan di rantai yang mendukung MoveVM. Desainnya mempertimbangkan masalah keamanan blockchain dan kontrak pintar, serta mengadopsi beberapa prinsip desain keamanan dari Rust. Artikel ini akan menganalisis keamanan bahasa Move dari tiga aspek: fitur bahasa, mekanisme eksekusi, dan alat verifikasi.
1. Fitur keamanan bahasa Move
Bahasa Move meningkatkan keamanan dengan mengorbankan beberapa fleksibilitas, tidak mendukung pengiriman dinamis dan pemanggilan eksternal rekursif, tetapi menggunakan konsep generik, penyimpanan global, sumber daya, dan lain-lain untuk menerapkan pola pemrograman alternatif.
Komponen utama dari Move meliputi:
Penyimpanan global Move memungkinkan data yang persisten, hanya dapat dibaca dan ditulis secara pemrograman oleh pemilik modul, tetapi dapat dilihat di buku besar publik.
Move menjamin keamanan kompilasi kode melalui dua mekanisme:
Invarian Reduksi: digunakan untuk pemeriksaan statis, mendefinisikan konservasi status sistem
Verifier bytecode: Menegakkan tipe aman dan linearitas, mencegah operasi ilegal
2. Mekanisme Operasi Move
Program Move berjalan di dalam mesin virtual dan tidak dapat mengakses memori sistem secara langsung. Ini mengadopsi model eksekusi berbasis tumpukan, membagi penyimpanan global menjadi memori ( tumpukan ) dan variabel global ( tumpukan ).
Status Move terdiri dari stack panggilan, memori, variabel global, dan operasi array. Selama eksekusi, stack panggilan menyimpan informasi konteks, dan lompatan statis menghindari pengiriman dinamis, sehingga mencegah serangan re-entry.
MoveVM memisahkan penyimpanan data dan tumpukan pemanggilan, berbeda dengan EVM. Desain ini meningkatkan keamanan dan efisiensi eksekusi.
3. Pindahkan Prover
Move Prover adalah alat verifikasi formal yang menggunakan algoritma verifikasi deduktif untuk memverifikasi kebenaran program. Alur kerjanya adalah:
Move Specification Language digunakan untuk mendeskripsikan spesifikasi program, dapat ditulis terpisah dari kode bisnis.
4. Ringkasan
Move mempertimbangkan dengan baik dalam desain bahasa, eksekusi mesin virtual, dan alat keamanan. Ini mengorbankan sebagian fleksibilitas, tetapi meningkatkan keamanan dan keterverifikasian. Kerentanan EVM yang umum seperti reentrancy, overflow, dan lain-lain dapat dihindari secara efektif, tetapi tetap perlu memperhatikan masalah otorisasi, logika, dan overflow bilangan bulat besar.
Meskipun Move menyediakan berbagai jaminan keamanan, disarankan agar pengembang menggunakan layanan audit keamanan pihak ketiga dan menyerahkan penulisan serta verifikasi standar kepada perusahaan keamanan profesional.