Penjelasan Detail tentang Visibilitas Fungsi dan Kontrol Akses dalam Keamanan Smart Contract Rust

robot
Pembuatan abstrak sedang berlangsung

Rust smart contract diary (7) Keamanan kontrak dalam presisi perhitungan

Artikel ini akan memperkenalkan kontrol akses dalam smart contract Rust dari dua sudut pandang:

  • Visibilitas akses/panggilan metode kontrak
  • Kontrol akses fungsi istimewa/pembagian tanggung jawab

1. Visibilitas Fungsi Kontrak

Kontrol visibilitas fungsi kontrak sangat penting untuk melindungi bagian-bagian kunci agar tidak salah dioperasikan. Sebagai contoh, pada insiden keamanan di bursa Bancor Network pada 18 Juni 2020, karena secara keliru mengatur fungsi transfer kunci menjadi public, menyebabkan risiko terhadap aset pengguna senilai 590.000 dolar.

Dalam kontrak pintar Rust, visibilitas fungsi terutama ada:

  • pub fn: fungsi publik, dapat dipanggil dari luar kontrak
  • fn: default private, hanya dapat dipanggil di dalam kontrak
  • pub(crate) fn: batasi panggilan di dalam crate

Cara lain untuk mengatur metode internal adalah dengan mendefinisikan blok kode impl Contract yang terpisah tanpa menambahkan modifikasi #[near_bindgen].

Untuk fungsi callback, harus diatur sebagai publik tetapi harus dibatasi agar hanya dapat dipanggil oleh kontrak itu sendiri. Dapat menggunakan makro #[private] untuk menerapkannya.

Rust secara default membuat semua konten bersifat private, kecuali item dalam pub trait dan pub enum.

2. Kontrol Akses Fungsi Istimewa

Selain visibilitas fungsi, perlu membangun mekanisme daftar putih kontrol akses yang lengkap dari sisi semantik. Mirip dengan kontrak Ownable di Solidity, beberapa fungsi istimewa hanya dapat dipanggil oleh pemilik.

Dalam kontrak Rust, Anda dapat mengimplementasikan Trait kustom:

karat pub trait Ownable { fn assert_owner(&self) { assert_eq!(env::predecessor_account_id(), self.get_owner()); } AccountId; fn set_owner(&mut self, owner: AccountId); }

Dengan cara ini, kontrol akses terhadap fungsi khusus dapat direalisasikan. Berdasarkan ini, juga dapat diatur daftar putih multi-pengguna atau beberapa grup daftar putih.

3. Metode kontrol akses lebih lanjut

Metode kontrol akses lainnya termasuk:

  • Kontrol waktu pemanggilan kontrak
  • Mekanisme pemanggilan multi-tanda tangan fungsi kontrak
  • Implementasi tata kelola DAO

Konten ini akan dijelaskan secara rinci dalam artikel selanjutnya.

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
  • Komentar
  • Bagikan
Komentar
0/400
Tidak ada komentar
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)