Akıllı kontrat denetimi: Ne zaman gerekir, nasıl hazırlanılır, ne kadar tutar
Denetim ne zaman gerekir: kontrat kullanıcı fonu tutuyorsa, yükseltilebilir yetkiler içeriyorsa, başka protokollerle etkileşiyorsa veya önemli tutarlarda değer taşıyacaksa.
Hazırlık aşaması denetimin kalitesini doğrudan belirliyor. Hazırlık listesi:
Kod dondurulmuş olmalı. Denetim sırasında değişen kod, denetimi geçersiz kılıyor.
Test kapsamı yüksek olmalı. Denetçi testlerinizi de okuyor ve eksik test edilen yollar dikkat çekiyor.
Belgeler hazır olmalı. Her fonksiyonun ne yaptığı, kimin çağırabileceği ve hangi varsayımlara dayandığı yazılı olmalı.
Mimari şeması olmalı. Kontratlar arası ilişkiler, yetki akışı ve dış bağımlılıklar görsel olarak anlatılmalı.
Tehdit modeli yazılmalı. Sizce en kritik varlık ne, kim saldırır, hangi senaryodan korkuyorsunuz.
Statik analiz temiz olmalı.
Denetim süreci genelde şöyle işliyor: kapsam ve fiyat belirleniyor, inceleme yapılıyor, bulgular kritik seviyeye göre raporlanıyor, siz düzeltiyorsunuz, düzeltmeler tekrar inceleniyor ve nihai rapor yayımlanıyor.
Maliyet kod büyüklüğüne ve karmaşıklığa göre ciddi değişiyor. Küçük bir kontrat ile karmaşık bir protokol arasında kat kat fark var.
En önemli nokta: denetim raporu her şeyin güvenli olduğu anlamına gelmiyor. Rapor, belirli bir zamanda belirli bir kod için yapılmış bir incelemedir. Kod değişirse geçersizdir ve hiçbir denetim bütün hataları bulmayı garanti etmez.
Denetim sonrası bug bounty programı açmak da yaygın. Bulunan açıklar için ödeme yapmak, açığın kötüye kullanılmasından çok daha ucuz.

@sourdiesel