Rust akıllı sözleşmeler güvenliği: Fonksiyon görünürlüğü ve yetki kontrolü ayrıntılı incelemesi

robot
Abstract generation in progress

Rust akıllı sözleşmeler yetiştirme günlüğü (7) Sözleşme güvenliği ve hesaplama hassasiyeti

Bu makale, Rust akıllı sözleşmelerindeki yetki kontrolünü iki açıdan ele alacaktır:

  • Sözleşme yöntemine erişim/çağrı görünürlüğü
  • Ayrıcalık fonksiyonu erişim kontrolü/sorumlulukların belirlenmesi

1. Sözleşme fonksiyonu görünürlüğü

Sözleşme fonksiyonlarının görünürlük kontrolü, kritik kısımların yanlış işlemlerden korunması için önemlidir. 18 Haziran 2020'deki Bancor Network borsa güvenlik olayı örneğinde olduğu gibi, kritik transfer fonksiyonunun public olarak ayarlanması nedeniyle kullanıcıların 590.000 dolarlık varlıkları risk altına girmiştir.

Rust akıllı sözleşmelerinde, fonksiyon görünürlüğü esasen şunlardır:

  • pub fn: public fonksiyonu, sözleşme dışından çağrılabilir
  • fn: varsayılan private, yalnızca sözleşme içinde çağrılabilir
  • pub(crate) fn: crate içinde çağrıyı kısıtla

Başka bir internal yöntem ayarlama şekli, #[near_bindgen] dekoratörü eklenmeden bağımsız bir impl Contract kod bloğu tanımlamaktır.

Geri çağırma fonksiyonu için, public olarak ayarlanmalı ancak yalnızca sözleşme kendisi tarafından çağrılmasına izin verilmelidir. #[private] makrosu kullanılabilir.

Rust varsayılan olarak tüm içeriklerin private olduğunu, sadece pub trait ve pub enum içindeki öğelerin açık olduğunu belirtir.

2. Ayrıcalıklı fonksiyonların erişim kontrolü

Fonksiyon görünürlüğünün yanı sıra, anlam katmanında tam bir erişim kontrol beyaz liste mekanizması oluşturulmalıdır. Solidity'nin Ownable sözleşmesine benzer şekilde, bazı ayrıcalıklı fonksiyonlar yalnızca owner tarafından çağrılabilir.

Rust sözleşmesinde, özel Trait'ler uygulanabilir:

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

Bu, ayrıcalıklı işlevlere erişim kontrolü sağlamayı mümkün kılar. Buna dayanarak, çoklu kullanıcı beyaz listeleri veya birden fazla beyaz liste grubu da ayarlanabilir.

3. Daha Fazla Erişim Kontrol Yöntemi

Diğer erişim kontrol yöntemleri şunları içerir:

  • Akıllı sözleşmeler çağrısı zaman kontrolü
  • Akıllı sözleşmeler fonksiyon çoklu imza çağrı mekanizması
  • DAO yönetiminin gerçekleştirilmesi

Bu içerikler sonraki makalelerde detaylı bir şekilde ele alınacaktır.

View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Reward
  • Comment
  • Share
Comment
0/400
No comments
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)