Güvenlik
Son güncelleme: Ocak 2025
Giriş: 20 Milyar Dolarlık Sorun
DeFi'nin ilk günlerinden bu yana, açıklardan yararlanılarak milyarlarca dolar kaybedildi. Denetimler temel haline geldi ancak hata ödüllerini, resmi doğrulamayı ve aktif izlemeyi içeren daha geniş bir güvenlik yaşam döngüsünün parçası olmaya devam ediyor.
Akıllı Sözleşme Denetimi nedir?
Denetim, manuel kod incelemesini, otomatik analizi ve bazen resmi doğrulamayı ve ekonomik modellemeyi birleştiren derin bir güvenlik incelemesidir. Çıktı, daha güvenli dağıtımlara yönelik iyileştirme adımlarını ve önerileri içeren, önceliklendirilmiş bir rapordur.
- Manuel kod incelemesi
- Otomatik tarama
- Resmi doğrulama (isteğe bağlı)
- Ekonomik ve amp; oyun teorisi analizi
- Nihai rapor ve amp; düzeltme
Denetim Süreci: Adımlar ve amp; Zaman Çizelgesi
Denetim Öncesi Hazırlık
Geliştiriciler kodu dondurmalı, mimariyi belgelemeli, testler sağlamalı ve denetçilere teslim etmeden önce kapsamı net bir şekilde tanımlamalıdır.
Otomatik Analiz
Slither, Mythril, Echidna ve Manticore gibi araçlar otomatik bulgular üretir. Bunlar değerlidir ancak yanlış pozitifler içerebilir ve manuel incelemeyle tamamlanmalıdır.
Manuel İnceleme ve amp; Resmi Doğrulama
Deneyimli denetçiler satır satır incelemeler gerçekleştirir ve gerektiğinde resmi yöntemler, kritik görev sistemleri için yüksek maliyetle matematiksel garantiler sağlar.
Rapor ve amp; Düzeltme
Raporlar, bulguları önem derecesine göre sınıflandırır ve uygulanabilir düzeltmeler sağlar; iyileştirme ve yeniden denetim standart son adımlardır.
Yaygın Akıllı Sözleşme Güvenlik Açıkları
Tipik istismar sınıflarını anlamak, ekiplerin savunmalara öncelik vermesine yardımcı olur: yeniden giriş, erişim kontrol hataları, tam sayı hataları, oracle manipülasyonu, iş mantığı hataları ve MEV/önden çalıştırma listenin üst sıralarında yer alır.
Yeniden Giriş
Yeniden giriş, harici çağrılar sözleşme durumunu değiştiren geri aramaları etkinleştirdiğinde ortaya çıkar; kontroller-etkiler-etkileşimler modeli ve ReentrancyGuard birincil savunmalardır.
işlevi çekme(uint256 miktarı) public {
require(bakiyeler[msg.sender] >= miktar);
bakiyeler[msg.gönderen] -= tutar; //öncelikle durumu güncelle
(bool başarı, ) = msg.sender.call{value: miktar}("");
gerektirir(başarı);
}
Erişim Kontrolü Arızaları
Eksik rol kontrolleri veya uygunsuz şekilde açığa çıkan yönetici anahtarları, büyük sorunların sık görülen bir nedenidir; çoklu imza, zaman kilitleri ve en az ayrıcalıklı uygulama bu riski azaltır.
Oracle Manipülasyonu
Protokoller, genellikle flaş krediler yoluyla düzenlenen fiyat manipülasyonu saldırılarını sınırlamak için TWAP'lere, merkezi olmayan yayınlara ve akıl sağlığı kontrollerine dayanmalıdır.
İş Mantığı ve amp; MEV
Oyun teorisi hataları ve ön çalıştırma (MEV), dikkatli ekonomik analiz, simülasyon ve bellek havuzuna duyarlı azaltma stratejileri gerektirir.