Analisis Keamanan Bahasa Move: Standar Baru untuk Pengembangan Smart Contract

robot
Pembuatan abstrak sedang berlangsung

Analisis Keamanan Bahasa Move: Inovator Kontrak Pintar

Bahasa Move adalah bahasa kontrak pintar yang dapat dijalankan di lingkungan blockchain yang mengimplementasikan MoveVM. Sejak awal desainnya, banyak masalah keamanan yang terkait dengan blockchain dan kontrak pintar telah dipertimbangkan, dan beberapa konsep desain keamanan dari bahasa Rust juga diadopsi. Sebagai bahasa kontrak pintar generasi baru yang mengutamakan keamanan, seberapa aman Move? Dapatkah ia menghindari ancaman keamanan yang umum pada mesin virtual kontrak seperti EVM, WASM, baik di tingkat bahasa maupun melalui mekanisme terkait? Apakah Move itu sendiri memiliki risiko keamanan yang unik?

Artikel ini akan membahas masalah keamanan bahasa Move dari tiga aspek: karakteristik bahasa, mekanisme operasi, dan alat verifikasi.

Analisis Keamanan Move: Game Changer Bahasa Smart Contract

1. Fitur Keamanan Bahasa Move

Berbeda dengan banyak bahasa pemrograman yang ada, tujuan desain bahasa Move adalah untuk mendukung penulisan program yang dapat berinteraksi dengan kode yang tidak tepercaya dengan aman, sambil mendukung verifikasi statis. Move mencapai tujuan ini dengan mengabaikan semua logika non-linier yang didasarkan pada pertimbangan fleksibilitas, tidak mendukung pengiriman dinamis, dan juga tidak mendukung pemanggilan eksternal rekursif, melainkan menggunakan konsep generik, penyimpanan global, sumber daya, dan lainnya untuk mencapai beberapa pola pemrograman alternatif.

Berikut adalah beberapa fitur keamanan kunci dari bahasa Move:

  1. Modular: Setiap modul Move terdiri dari serangkaian tipe struktur dan definisi prosedur. Modul dapat mengimpor tipe yang dinyatakan dalam modul lain dan memanggil prosedurnya.

  2. Tipe sumber daya: Struktur yang didefinisikan melalui sintaks has key adalah tipe sumber daya, yang dapat disimpan dalam penyimpanan kunci-nilai global yang persisten.

  3. Penyimpanan global: Memungkinkan program Move untuk menyimpan data yang persisten, data ini hanya dapat dibaca dan ditulis secara program oleh modul yang memilikinya, tetapi dapat dilihat oleh modul lain yang disimpan di buku besar publik.

  4. Sistem Tipe Statis: Move memiliki sistem tipe statis yang kuat, dapat menangkap banyak kesalahan saat kompilasi.

  5. Tipe linier: Tipe sumber daya secara default adalah tipe linier, mencegah penyalinan atau penghancuran secara implisit.

  6. Pengurangan ketidakberubahan: dapat mendefinisikan ketidakberubahan yang menjaga status, digunakan untuk verifikasi formal.

  7. Verifier bytecode: Memaksakan sistem tipe pada tingkat bytecode untuk mencegah perilaku jahat.

Karakteristik ini bersama-sama membangun fondasi keamanan bahasa Move, memungkinkan untuk menghindari banyak kerentanan umum dalam smart contract.

Analisis Keamanan Move: Game Changer Bahasa Smart Contract

2. Mekanisme Operasi Move

Program Move dijalankan di dalam mesin virtual, yang tidak dapat mengakses memori sistem selama eksekusi, ini menjamin eksekusi yang aman di lingkungan yang tidak tepercaya.

Move menggunakan interpreter berbasis tumpukan untuk mengeksekusi instruksi bytecode. Statusnya terdiri dari tumpukan panggilan, memori, variabel global, dan tumpukan operand. Desain ini membuat penyalinan dan pemindahan antar variabel lebih mudah untuk dikontrol dan dideteksi.

MoveVM memisahkan penyimpanan data dan tumpukan pemanggilan, ini adalah perbedaan terbesar dibandingkan EVM. Sumber daya di bawah alamat akun status pengguna ( disimpan secara independen, dan pemanggilan program harus mematuhi aturan wajib yang berkaitan dengan izin dan sumber daya. Desain ini mengorbankan fleksibilitas tertentu, tetapi secara signifikan meningkatkan keamanan dan efisiensi eksekusi.

![Analisis Keamanan Move: Game Changer Bahasa Smart Contract])https://img-cdn.gateio.im/webp-social/moments-372ff914a241634ca57784dc9685a03d.webp(

3. Pindahkan Prover

Move Prover adalah alat verifikasi formal untuk bahasa Move, menggunakan algoritma verifikasi deduktif untuk memverifikasi apakah program sesuai dengan perilaku yang diharapkan. Ini dapat menyimpulkan perilaku program berdasarkan informasi yang diketahui, memastikan bahwa itu sesuai dengan yang diharapkan, membantu memastikan kebenaran program dan mengurangi beban kerja pengujian manual.

Proses kerja Move Prover adalah sebagai berikut:

  1. Terima file sumber Move sebagai input, file tersebut harus berisi spesifikasi program.
  2. Menyusun spesifikasi dan mengompilasi berkas sumber menjadi bytecode.
  3. Mengonversi spesifikasi dan bytecode menjadi model objek validator.
  4. Menerjemahkan model ke dalam bahasa perantara Boogie.
  5. Sistem verifikasi Boogie menghasilkan syarat verifikasi.
  6. Solver Z3 memeriksa apakah kondisi verifikasi terpenuhi.
  7. Menghasilkan laporan diagnosis dan mengubahnya menjadi kesalahan tingkat sumber.

Move Specification Language digunakan untuk mendeskripsikan spesifikasi program, merupakan subset dari bahasa Move. Ini mendukung deskripsi statis dari perilaku kebenaran program, tanpa mempengaruhi kode produksi. Spesifikasi dapat ditulis secara terpisah, memudahkan pemisahan kode bisnis dan kode verifikasi.

![Analisis Keamanan Move: Game Changer Bahasa Kontrak Pintar])https://img-cdn.gateio.im/webp-social/moments-f7cd11fef1c66709b219e1a1e8d2e4da.webp(

4. Ringkasan

Desain bahasa Move dalam hal keamanan sangat luar biasa, mulai dari fitur bahasa, eksekusi mesin virtual, hingga alat keamanan telah dipertimbangkan secara menyeluruh. Ia牺牲了部分 fleksibilitas, memperkuat pemeriksaan tipe dan logika linier, memudahkan otomatisasi pemeriksaan kompilasi dan verifikasi formal. Desain MoveVM memisahkan status dari logika, lebih sesuai dengan kebutuhan manajemen keamanan aset blockchain.

Bahasa Move dapat secara efektif menghindari kerentanan umum dalam EVM seperti reentrancy, overflow, dan injeksi Call/DeleGateCall. Namun, masalah seperti otorisasi, logika kode, dan overflow struktur bilangan besar masih perlu diperhatikan secara ekstra oleh pengembang. Meskipun Move mempertimbangkan keamanan dengan baik bagi programmer, tidak ada bahasa dan program yang sepenuhnya aman. Disarankan kepada pengembang kontrak pintar Move untuk menggunakan layanan audit dari perusahaan keamanan pihak ketiga, dan menyerahkan penulisan serta validasi kode yang sesuai kepada tim keamanan profesional.

MOVE0.27%
Lihat Asli
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.
  • Hadiah
  • 5
  • Posting ulang
  • Bagikan
Komentar
0/400
OptionWhisperervip
· 07-15 10:34
Cepat lihat Harga Dasar untuk melihat move
Lihat AsliBalas0
NftCollectorsvip
· 07-14 08:08
Move jebakan mekanisme keamanan ini tidak kalah dari rasio emas seni Bizantium Dari sudut pandang sejarah seni Blockchain, ini sepenuhnya merupakan tonggak.
Lihat AsliBalas0
BearMarketSurvivorvip
· 07-14 03:19
Keamanan adalah kata kosong yang baik
Lihat AsliBalas0
ForkTonguevip
· 07-14 03:08
Ada mainan baru untuk menulis kontrak?
Lihat AsliBalas0
FancyResearchLabvip
· 07-14 03:05
Satu lagi lubang baru yang disukai Luban, secara teori cukup aman.
Lihat AsliBalas0
  • Sematkan
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)