Akıllı Sözleşmeler: Ethereum Makine Mimarisinin (EVM) ve DeFi Geliştirmede Yeniden Giriş Saldırıları gibi Güvenlik Sorunlarının İncelenmesi
2026-03-16
DeFi'de Ethereum Machine (EVM) mimarisi ve akıllı sözleşmelerin güvenlik zorlukları
Merkezi olmayan ekosistemin (Web3) omurgası olan Akıllı Sözleşmeler, belki de Bitcoin'den sonra gelen en önemli buluştur. Blockchain üzerinde çalışan ve kendi kendini çalıştıran bu uygulamalar, aracılar olmadan işlemlerin yapılabilmesini sağlar. Ancak bu sihirli kodların perdesinin arkasında Ethereum Virtual Machine (EVM) adı verilen ve her blockchain geliştiricisinin anlaması zorunlu olan karmaşık bir mimari var. Bu yazıda EVM mimarisine ve en tehlikeli güvenlik sorunu olan Yeniden Giriş Saldırılarına daha yakından bakacağız.
Akıllı sözleşmeler nedir?
Akıllı sözleşme aslında bir sözleşmeyi dijital olarak otomatik olarak yürütmek için tasarlanmış bir bilgisayar protokolüdür. Bu sözleşmeler, alıcı ile satıcı arasında mutabakata varılan koşulları doğrudan kod satırlarına yazar. Bir avukat veya aracı gerektiren geleneksel sözleşmelerin aksine akıllı sözleşmeler, blok zincirine yazıldıktan sonra değiştirilemez ve geri döndürülemez.
Bu değişmezlik özelliği güvenliği sağlasa da eğer kod baştan bug içeriyorsa onu değiştirmek neredeyse imkansızdır ve bu durum DeFi alanında milyarlarca hacklenmeye yol açmıştır.
Ethereum Sanal Makinesinin Mimarisi (EVM)
Sözleşmelerin nasıl yürütüldüğünü anlamak için Ethereum Sanal Makinesini tanımamız gerekiyor. EVM, Ethereum ağının tüm düğümlerinde çalışan, korumalı alanlı bir bilgi işlem ortamıdır.
1. Yalıtılmış ortam ve korumalı alan
EVM, ana işletim sisteminden ve diğer ağ süreçlerinden tamamen izole edilmiş bir sanal makine görevi görür. Bu izolasyon, kötü niyetli bir akıllı sözleşmenin yürütülmesinin tüm Ethereum ağının veya diğer sözleşmelerin çalışmasını kesintiye uğratmamasını sağlar.
2. Hesap Tabanlı Model
UTXO modelini kullanan Bitcoin'in aksine EVM, Hesaplar'ı temel alır. Her hesabın bir bakiyesi, işlem sayısı (Nonce), sözleşme kodu (Kod) ve depolama alanı (Depolama) bulunur. Bu model, karmaşık sözleşmelerin geliştirilmesini çok daha basit hale getirir.
3. Gaz ve uygulama maliyeti
EVM'de yürütülen her talimat enerji tüketir. Bu enerji Gaz birimiyle ölçülür. Kullanıcılar sözleşme işlevlerini yerine getirmek için gaz ödemek zorundadır. Bu mekanizma hizmet reddi (DoS) saldırılarını ve sonsuz döngüleri önler. Gazın yeterli olmaması durumunda sözleşmenin yürütülmesi durdurulur ancak durum değişiklikleri uygulanmaz.
4. Bayt kodu ve İşlem Kodları
Solidity veya Vyper gibi üst düzey programlama dillerinin EVM makine diline çevrilmesi gerekir. Bu çevirinin çıktısı, Opcode adı verilen bir dizi düşük seviyeli talimat olan bayt kodu'dur. EVM, ağın durumunu değiştirmek için bu işlem kodlarını tek tek çalıştırır.
DeFi geliştirmede güvenlik zorlukları
Merkezi olmayan finansal protokoller (DeFi) akıllı sözleşmelere dayanır ve değerli varlıklarla ilgilenir. Bu durum hackerların yüksek motivasyonla güvenlik açıklarını aramasına neden oldu. En yaygın zorluklardan bazıları şunlardır:
- Yeniden Giriş Saldırıları: Belki de Ethereum tarihindeki en ünlü saldırı.
- Tamsayı Taşması/Underflow: Solidity'nin yeni sürümleri bu sorunu çözmüş olsa da eski sözleşmelerde hala tehlikelidir.
- Yetkisiz erişim (Erişim Kontrolü): Bilgisayar korsanının yönetim işlevlerini yürütmesine izin veren hatalar.
- Önden çalışan: MEV madencileri veya çiftlikleri tarafından yapılan işlemlerde önden çalışan.
Aşağıda bunlardan en tehlikelilerini inceleyeceğiz.
Reentrancy saldırısı nedir?
Yeniden giriş saldırısı, kötü niyetli bir sözleşmenin, kurban sözleşmesinin dahili durumunu güncellemeden önce varlıkları alan işlevleri çağırdığı bir güvenlik açığı türüdür.
Yeniden giriş saldırısı performans mekanizması
Daha iyi anlamak için bir DeFi bankasının senaryosunu düşünün:
- Kullanıcı (kötü niyetli sözleşme) 100 Ether çekme talebinde bulunur.
- Banka sözleşmesi kullanıcının bakiyesini kontrol eder (örneğin, 100 Ether'i vardır).
- Banka sözleşmesi kullanıcının adresine 100 Ether gönderir.
- ÖNEMLİ NOT: Ethereum'da, bir sözleşmeye eter gönderilirken, eğer o sözleşmenin "geri dönüş" adı verilen bir işlevi varsa, otomatik olarak yürütülür.
- Kötü niyetli sözleşme, geri çekilme işlevinde geri çekme işlevini yeniden çağırır.
- Banka sözleşmesi kullanıcının veritabanındaki bakiyesini henüz azaltmadığı için (bu adım genellikle gönderimden sonra yapılır), tekrar çekime izin verir.
- Bu döngü, gaz bitene veya banka bakiyesi boşalana kadar tekrarlanır.
Savunmasız kod örneği (Sağlamlık)
// Bu kod yalnızca eğitim amaçlıdır ve savunmasızdır
function withdraw(uint amount) public {
require(balances[msg.sender] >= amount);
// envanter güncellemesinden önce Ether'i gönder (tehlikeli!)
(bool sent, ) = msg.sender.call{value: amount}("");
require(sent, "Ether gönderilemedi");
// gönderimden sonra envanteri güncelle (yeniden giriş saldırısına neden olur)
balances[msg.sender] -= amount;
}
Yeniden Giriş ile başa çıkmak için çözümler
Bu saldırıları önlemek için geliştiricilerin Kontroller-Efektler-Etkileşimler modelini izlemesi gerekir:
- Kontroller: Öncelikle koşulları kontrol edin.
- Etkileri: Sözleşmenin dahili durumunu güncelleyin (dengeyi azaltın).
- Etkileşimler: Son olarak dış dünyayla etkileşim kurun (para gönderin).
Ayrıca OpenZeppelin kütüphanesinde nonReentrant değiştiricisini kullanmak bu saldırıları önlemenin altın standardıdır.
Sonuç: Blockchain geliştirmede güvenlik birinci önceliktir
Ethereum Sanal Makinesi (EVM) üzerinde akıllı sözleşmelerin geliştirilmesi, merkezi olmayan uygulamalar oluşturmak için benzersiz fırsatlar sağlamıştır. Ancak EVM'nin karmaşık mimarisi ve blok zincirinin değişmez doğası, hata marjını sıfıra indirir.
Reentrancy gibi saldırılar, tek bir yanlış kod satırının bile milyonlarca dolarlık varlık kaybına yol açabileceğini gösterdi. DeFi ekosisteminde başarılı olmak için geliştiricilerin güvenlik ilkelerine öncelik vermesi, OpenZeppelin gibi standart kütüphaneleri kullanması ve sözleşmelerini sıkı bir denetime tabi tutması gerekiyor.
Sıkça Sorulan Sorular (Akıllı Sözleşmeler ve Ethereum Makinesi (EVM))
Ethereum Sanal Makinesi (EVM) yalnızca Ethereum için mi?
hayır Binance Smart Chain (BSC), Polkadata (Moonbeam) ve Avalanche (Avalanche C-Chain) gibi diğer birçok blockchain, geliştiricilerin dApp'lerini kolayca taşıyabilmesi için Ethereum uyumlu bir sanal makine kullanır.
Reentrancy saldırısı nasıl keşfedildi?
Bu saldırının en ünlü örneği, 2016 yılında Ethereum'un ETH ve ETC'ye bölünmesine yol açan DAO saldırısıydı. Son zamanlarda merkezi olmayan borsa Uniswap sürüm 2 bu tür saldırıların hedefiydi.
Bir akıllı sözleşmenin güvenli olduğundan nasıl emin olabilirim?
Herhangi bir sözleşmeyle etkileşime geçmeden önce Etherscan gibi sitelerdeki kaynak kodunu kontrol etmek iyi bir fikirdir. Ayrıca saygın blockchain güvenlik şirketlerinin Denetim Rozetlerini de arayın.