Blockchain ve akıllı kontrat projelerinde kritik güvenlik konuları
11 Nisan 2026 · 2 dk okuma
Neden blockchain projelerinde risk daha yüksek?
Geleneksel bir web uygulamasında bulunan bir hata genellikle bir güncellemeyle düzeltilebilir. Ancak bir akıllı kontrat zincire dağıtıldıktan sonra çoğu durumda değiştirilemez; bir güvenlik açığı doğrudan fon kaybına yol açabilir.
Sık karşılaşılan risk alanları
Yeniden giriş (reentrancy) saldırıları, yetersiz erişim kontrolü, tamsayı taşması/altına düşmesi ve dış veri kaynaklarına (oracle) aşırı güven, akıllı kontrat projelerinde en sık görülen güvenlik açıklarındandır.
Alınabilecek önlemler
Kontratı canlıya almadan önce bağımsız bir denetimden (audit) geçirmek, test ağında (testnet) kapsamlı senaryo testleri yapmak ve kritik fonksiyonlarda çok imzalı (multisig) yetkilendirme kullanmak, riskleri önemli ölçüde azaltır.
Reentrancy ve erişim kontrolü hataları nasıl oluşur?
Reentrancy saldırısında, kontrat bir dış adrese ödeme gönderirken kendi iç bakiyesini henüz güncellememiştir. Saldırgan kontrat, ödeme sırasında aynı fonksiyonu tekrar çağırarak bakiyesi sıfırlanmadan defalarca çekim yapabilir. Bunu önlemenin temel yolu 'önce kontrol et, sonra durumu güncelle, en son dış çağrıyı yap' (checks-effects-interactions) sırasına uymak ve kritik fonksiyonlarda yeniden giriş kilidi kullanmaktır.
Erişim kontrolü hataları ise çoğu zaman basit bir unutkanlıktan doğar: yalnızca yöneticinin çağırması gereken bir fonksiyonun herkese açık bırakılması, fon çekme, token basma veya kontratı durdurma gibi kritik yetkilerin yanlış kişilerin eline geçmesine yol açabilir. Her fonksiyonun kim tarafından çağrılabileceği açıkça tanımlanmalı ve test edilmelidir.
Oracle ve dış veri bağımlılığı riski
Akıllı kontratlar zincir dışındaki verilere (fiyat, kur, maç sonucu gibi) doğrudan erişemez; bu verileri oracle adı verilen servisler sağlar. Tek bir kaynaktan fiyat alan bir kontrat, o kaynağın manipüle edilmesi veya geçici olarak hatalı veri vermesi durumunda yanlış kararlar üretebilir. Özellikle düşük likiditeli havuzlardan anlık fiyat okumak, flash loan ile yapılan fiyat manipülasyonu saldırılarının en sık kullandığı açıktır.
Bu riski azaltmak için birden fazla kaynaktan beslenen merkeziyetsiz oracle ağları, zaman ağırlıklı ortalama fiyatlar ve beklenmedik fiyat sıçramalarında işlemi durduran eşik kontrolleri kullanılabilir.
Canlıya aldıktan sonra güvenlik bitmez
Denetimden geçmiş bir kontrat da zamanla yeni saldırı tekniklerine açık hale gelebilir. Bu yüzden kontrat üzerindeki olağan dışı işlemleri izleyen bir takip sistemi, acil durumda kontratı durdurabilen bir mekanizma ve güvenlik araştırmacılarını açıkları bildirmeye teşvik eden bir hata ödül programı, canlı sonrası güvenliğin temel parçalarıdır.
Yükseltilebilir (upgradeable) kontrat yapısı kullanılıyorsa, yükseltme yetkisinin tek bir cüzdanda değil çok imzalı bir yapıda ve mümkünse zaman kilidiyle tutulması gerekir; aksi halde yükseltme mekanizmasının kendisi en büyük risk haline gelir.