Solidity Nedir? Akıllı Sözleşme Programlama Dili
Bir zamanlar dikkatsizce yazılmış bir Solidity kodu satırı, bir saldırgana 3,6 milyon ETH kazandırmıştı. Kod, kendisine söyleneni aynen yapmıştı. İşte rahatsız edici kısım bu. Solidity para transferi yapar. Kaynak kodu genellikle herkesin görebileceği yerdedir. Ve bir sözleşme yayına girdikten sonra, sessiz bir yama yoktur; hata kalır, fonlar açıkta kalır ve tüm dünya ikisini de okuyabilir. Ethereum ve onunla birlikte gelen tüm EVM blok zincirlerinde akıllı sözleşmeler yazmak için baskın programlama dilidir. Teknik terimleri bir kenara bırakırsak, DeFi ve NFT'lerin çoğu altında Solidity yatar. Güçlü. Ayrıca affetmez. İşte ne olduğu, kodun gerçekte nasıl çalıştığı, ilk sözleşmenin nasıl göründüğü ve güvenliğin neden asla göz ardı edilmemesi gerektiği.
Solidity bir programlama dili olarak nedir?
Her kılavuz aynı şeyi söylüyor: Solidity, akıllı sözleşmeler için yüksek seviyeli bir dildir. Tamam. Bu size pek yardımcı olmuyor. Peki, ne tür bir dil? Statik olarak tiplendirilmiş. Nesne yönelimli. Süslü parantezler ve noktalı virgüller, JavaScript, C++ ve Python'dan ödünç alınmış sözdizimi. Bunlardan herhangi birinde kod yayınladıysanız, bir `.sol` dosyası yaklaşık on dakika içinde tanıdık gelecektir.
Gavin Wood , 2014 yılında Christian Reitwiessner'in de dahil olduğu küçük bir Ethereum ekibinin yardımıyla bunu tasarladı. Amaç açık ve netti: İnsanların halka açık bir blok zinciri için akıllı sözleşmeler yazmasına izin vermek. Temel birimi `sözleşme`dir. Bunu, bir zincir üzerinde yaşayan bir `sınıf` olarak düşünün; durumu tutar, işlevleri ortaya koyar, diğerlerinden miras alır. İşin püf noktası, nerede çalıştığıdır. Bayt koduna derlendiğinde, aynı sözleşme, merkezi olmayan bir ağdaki her düğümde aynı şekilde çalışır ve hepsi birbirini kontrol eder. Bu tek talep, Solidity'nin neden bu kadar sınırlı hissettirdiğini açıklıyor.
| Sağlamlık bir bakışta | |
|---|---|
| İlk olarak yayınlandı | 2014 |
| Baş tasarımcı | Gavin Wood (Ethereum) |
| Paradigma | Nesne yönelimli, sözleşme yönelimli |
| Yazma | Statik |
| Derler | EVM bayt kodu |
| En son derleyici | v0.8.35 (Nisan 2026) |
| Dosya uzantısı | .sol |
Solidity Nasıl Çalışır: Koddan EVM'ye
Solidity'nin ilginç yanı sözdizimi değil, işlem hattıdır. Okunabilir kod, binlerce makinenin aynı şekilde çalıştırmayı kabul ettiği bir şeye dönüşür. Belirlenimcilik, işin özüdür. İki düğüm aynı sözleşmeyi çalıştırıp farklı sonuçlar alsaydı, ağ kimsenin bakiyesi konusunda anlaşamazdı. Bu tek gereklilik, dilin tuhaf sınırlamalarının çoğunu açıklıyor: rastgele sayı alma yok, yürütme sırasında harici bir web API'sini çağırma yok. Her şey zincirin kendisinden yeniden üretilebilir olmalıdır.
Derleyici ve bayt kodu
`.sol` adında, insan tarafından okunabilir ve üst düzey bir dosya yazarsınız. Solidity derleyicisi `solc`, bunu EVM bayt koduna, yani uzun bir düşük seviyeli işlem dizisine ve sözleşmenin fonksiyonlarını listeleyen bir ABI'ye dönüştürür. Zincire yerleşen şey bayt kodudur. Kimse bunu elle okumaz. Bu, C'nin assembly koduna dönüşmesi gibi, makine hedefidir.
EVM ve gaz
Ethereum Sanal Makinesi bu bayt kodunu çalıştırır. Her Ethereum düğümünün bir tane vardır. Gerçekleştirdiği her işlem, ETH cinsinden ödenen bir ücret olan gas'a mal olur. Gas önemsiz bir ayrıntı değildir. Ağın hesaplamayı fiyatlandırma ve kendini savunma şeklidir: kontrolden çıkmış bir döngü zinciri dondurmaz, sadece gönderenin gas'ını tüketir ve geri döner. İyi bir Solidity uygulaması gas'ı düşük tutar.
ABI
ABI veya Uygulama İkili Arayüzü, dağıtılmış bir sözleşmeyle nasıl iletişim kurulacağını gösteren JSON haritasıdır. MetaMask gibi bir cüzdan veya ön uç dApp, bir fonksiyon çağrısını EVM'nin beklediği biçime kodlamak ve ardından geri gelen her şeyi çözmek için bunu kullanır. ABI'yi, kullanıcının gördüğü arayüz ile blok zincirindeki bir adreste bulunan sözleşme arasındaki köprü olarak düşünün.

İlk Solidity Akıllı Sözleşmenizi Yazmak
Teoriyi yeterince anlattık. Solidity'yi anlamanın en hızlı yolu, küçük bir sözleşmeyi okuyup parçalarını tanımaktır.
Bir sözleşmenin anatomisi
```sağlamlık
// SPDX-Lisans-Tanımlayıcı: MIT
pragma solidity ^0.8.20;
sözleşme Sayacı {
uint256 public count;
event Incremented(uint256 newCount);
function increment() public {
count += 1;
emit Incremented(count);
}
}
```
Birkaç parça tüm yapıyı taşıyor. `pragma` satırı derleyici sürümünü sabitliyor, böylece uyumsuz bir sürüm kodunuzu sessizce yeniden derleyemiyor. `contract Counter`, bir sınıf açar gibi sözleşmeyi açıyor. `count`, zincir üzerinde kalıcı olarak saklanan bir durum değişkenidir. `increment()`, herkesin çağırabileceği genel bir fonksiyondur. `event Incremented`, zincir dışı uygulamaların tepki verebilmesi için her değişikliği kaydediyor. Nesne yönelimli kod, altında bir blok zinciriyle destekleniyor.
Gerçekte kullandığınız araçlar
Başlamak için hiçbir şey yüklemenize gerek yok. Remix bir tarayıcı IDE'sidir: Solidity kodunu birkaç tıklamayla yazabilir, derleyebilir ve dağıtabilirsiniz; bu da onu Solidity öğrenmek için standart yer haline getiriyor. Gerçek projeler yerel çerçevelere geçiyor. Hardhat ve Foundry derleme, test etme ve dağıtım işlemlerini düzgün bir şekilde hallediyor. Ve neredeyse herkes, riskli kodları sıfırdan yeniden yazmak yerine, belirteçler ve erişim kontrolü için denetlenmiş, yeniden kullanılabilir sözleşmelerden oluşan bir kütüphane olan OpenZeppelin'e güveniyor.
Koddan canlı adrese
Dağıtım, derlenmiş bayt kodunu bir işlem içinde göndermek anlamına gelir. Önce ücretsiz bir test ağında test edin. 2026'te genellikle Sepolia tercih edilir. MetaMask gibi bir cüzdan bağlayın. Sözleşme düzgün çalıştığında ana ağa gönderin. Dağıtımın da gas ücreti vardır ve bu ücret gerçek ETH ile ödenir. Ve işte bileğinize dövme yaptırmaya değer bir cümle: bir kez dağıtıldıktan sonra kod değiştirilemez. Canlı bir sözleşmeyi düzenleyemezsiniz. Bu tek gerçek - herhangi bir sözdizimi tuhaflığından daha çok - bir sonraki bölümün var olma nedenidir.
Hangi blok zincirleri Solidity'yi destekliyor?
Solidity, yıllar önce "Ethereum'un dili" olmaktan çıktı. O kadar çok ağ, Ethereum'un araçlarını yeniden kullanmak için EVM'yi benimsedi ki, Solidity tüm bir zincir ailesinin ortak dili haline geldi. ChainList, 2026'de 385'ten fazla EVM uyumlu blok zincirini takip ediyor. Büyük isimlerin hepsi bu kategoriye giriyor: Polygon, BNB Chain, Arbitrum , Base ve Avalanche; hepsi de `.sol` dosyanızın derlendiği aynı bayt kodunu kullanıyor.
Ethereum hâlâ ağırlık merkezi konumunda. DeFiLlama'ya göre, kilitli toplam değer yaklaşık 45 milyar dolar olup, tüm DeFi'nin yarısından fazlasını oluşturuyor. Ve aktivite artıyor: Token Terminal'in verilerine göre, yalnızca 2025'in dördüncü çeyreğinde yaklaşık 8,7 milyon yeni akıllı sözleşme dağıtımı gerçekleşti. Bir geliştirici için, bu erişim, tek bir zincire bağlı bir dil yerine Solidity'yi seçmenin gerçek nedenidir.
Peki bununla neler geliştiriliyor? Duyduğunuz hemen hemen her merkeziyetsiz uygulama kategorisi. DeFi borç verme ve ticaret protokolleri. Çoğu token'ın arkasındaki ERC-20 sözleşmeleri, NFT'lerin arkasındaki ERC-721 sözleşmeleri. DAO'lar oylama kurallarını Solidity ile kodluyor. Stablecoin'ler arzı bununla yönetiyor. Zincir üstü oyunlar mantıklarını orada tutuyor. Bir proje "Ethereum üzerinde" olduğunu söylüyorsa, neredeyse kesinlikle birileri Solidity yazmış ve dağıtmıştır.
Solidity Akıllı Sözleşme Güvenliğinin Zor Olmasının Sebebi Nedir?
Solidity'yi güçlü kılan özellikler, hatalarının da bu kadar pahalı olmasına neden olan özelliklerle aynıdır. Kod para tutar. Kaynak kodu genellikle herkese açıktır. Yama yapılamaz. Bir saldırgan sözleşmenizi rahatça okuyabilir ve paralar adreste hemen oradadır. Bu, hızlı hareket edip bir şeyleri bozmak için tasarlanmış bir dil değildir. "Derleniyor" ile "güvenli" arasındaki uçurumun bu kadar geniş olduğu bir yazılımla daha önce hiç çalışmadım.
Yeniden giriş ve DAO saldırısı
Solidity'nin en bilinen güvenlik açığı yeniden giriş (reentrancy) hatasıdır. Bir sözleşme, kendi iç bakiyesini güncellemeden önce harici bir adrese ETH gönderir ve alıcı sözleşme, ilk çağrı tamamlanmadan önce tekrar tekrar para çekmek için geri çağrı yapar. Haziran 2016'da bu hata, o zamanlar yaklaşık 60 milyon dolar değerinde olan yaklaşık 3,6 milyon ETH'yi The DAO'dan çekti. Bu olay, Ethereum'u ETH ve bugün hala işlem gören Ethereum Classic zincirine böldü. Peki çözüm? Neredeyse hakaret derecesinde basit. Önce durumunuzu güncelleyin, parayı en son gönderin. Bu modelin hatta bir adı bile var: kontroller-etkiler-etkileşimler (checks-effects-interactions).
Tamsayı taşması ve SafeMath
Solidity 0.8'den önce, aritmetik işlemler sessizce taşma hatası verebiliyordu. Bir `uint256`'nın maksimum değerine 1 eklediğinizde, değer sıfıra dönüyordu ve saldırganlar bunu 2018'deki BeautyChain (BEC) olayında olduğu gibi absürt token bakiyeleri oluşturmak için kullanıyordu. Yıllarca geliştiriciler, bir süre Solidity'nin en çok içe aktarılan dosyalarından biri olan SafeMath adlı bir kütüphane ile buna karşı önlem aldılar. Ardından 0.8 sürümü, taşma ve eksiklik kontrollerini dilin içine entegre etti. En yaygın aritmetik hatası artık varsayılan olarak geri alınıyor, ek bir kütüphaneye gerek yok.
Denetimler ve maliyetleri
Hatalar kalıcı olduğu için, ciddi projeler inceleme için ödeme yaparlar. OpenZeppelin'in denetlenmiş bileşenlerini temel alarak ilerlerler ve ardından tüm sistemi denetlemek için firmalar tutarlar. Sherlock'tan alınan piyasa verilerine göre, profesyonel bir akıllı sözleşme denetimi, bir DeFi protokolü için genellikle 25.000 dolardan 100.000 doların üzerine kadar çıkmaktadır ve Solidity denetimleri, yetenek havuzunun daha büyük olması nedeniyle eşdeğer Rust denetimlerinden %25 ila %40 daha ucuz olma eğilimindedir. İyi firmalar da randevu alırlar. Orta ölçekli bir protokol, randevu almak için haftalarca, rapor için de haftalarca daha bekleyebilir. Bunların hiçbiri hızlı değil ve hiçbiri isteğe bağlı değil.
| Güvenlik açığı | Neler ters gidiyor? | Ünlü dava | Düzeltmek |
|---|---|---|---|
| Yeniden giriş | Durum güncellemelerinden önce harici çağrı yeniden başlatılıyor. | DAO, 2016 | Kontroller-etkiler-etkileşimler |
| Tamsayı taşması | Aritmetik, sınırlarını aşıyor. | BeautyChain (BEC), 2018 | Dahili kontroller (Solidity 0.8+) |
| Erişim kontrolü | Herkes ayrıcalıklı bir işlevi çağırabilir. | Çeşitli | `onlyOwner` / rol koruyucuları |
| Kontrolsüz harici aramalar | Başarısız çağrı göz ardı edildi, mantık devam ediyor. | Çeşitli | Dönüş değerlerini doğrulayın |
İyi haber şu ki, zarar azalıyor. Immunefi'ye göre, DeFi'ye özgü saldırılardan kaynaklanan kripto para kayıpları 2025'te yaklaşık 680 milyon dolara düştü; bu da 2022'deki 2,62 milyar dolarlık zirveye kıyasla yaklaşık %74'lük bir düşüş anlamına geliyor. Daha iyi araçlar ve derleyiciye entegre edilen güvenlik kontrolleri bunun nedenlerinden bazıları.

Solidity ve Diğer Akıllı Sözleşme Dilleri
Solidity'nin rakipleri var. Hatta bunların en güvenlisi bile değil. Vyper minimal ve Python benzeri, kasıtlı olarak kendi ayağınızı patlatabileceğiniz yolları ortadan kaldırmak için basitleştirilmiş; Curve onun üzerinde çalışıyor. Rust, Solana ve NEAR'daki sözleşmeleri destekliyor, bazı açılardan daha güvenli, ancak öğrenmesi daha zor ve denetimi daha maliyetli. Peki Solidity neden hala kazanıyor? Dil tasarımı değil. Ağ etkileri. En kapsamlı araçlar, en çok denetlenen kütüphaneler, zincirler ve cüzdanlardan oluşan bir EVM ekosistemi, bunların hepsi zaten Solidity konuşuyor.
| Dil | Zincirler | Sözdizimi tabanı | En iyisi | Değiş tokuş |
|---|---|---|---|---|
| Sağlamlık | Ethereum + tüm EVM'ler | JavaScript/C++ | Maksimum erişim, olgun aletler | Güvenli olmayan kod yazmak kolay. |
| Vyper | EVM | Python | Güvenlik açısından kritik, basit sözleşmeler | Daha az özellik, daha küçük topluluk |
| Pas | Solana, YAKININDA | Pas | Yüksek performans, güçlü güvenlik | Dik eğri, daha maliyetli denetimler |
Kullanıcıların ve paranın zaten bulunduğu yerde ürün geliştirmek istiyorsanız, rakip bir yazılım teknik olarak daha güvenli olsa bile Solidity pratik bir tercih olacaktır.
2026'te Solidity Programlama Öğrenmeli misiniz?
Kripto paralar etrafındaki spekülatif heyecan azaldı, ancak doğru Solidity kodu yazabilen kişilere olan talep azalmadı. Electric Capital'in verilerine göre, Ethereum Ocak ve Eylül 2025 arasında yaklaşık 16.181 yeni geliştirici kazandı ve çok zincirli geliştiricilerin yaklaşık %74'ü EVM zincirlerinde çalışıyor. İşte asıl kazançlı işler ve yeniden kullanılabilir kütüphaneler burada bulunuyor.
Solidity programlamayı öğrenmenin mantıklı yolu: Remix'te başlayın, resmi Solidity belgelerini okuyun, ardından OpenZeppelin'in sözleşmelerini inceleyerek profesyonellerin token'ları ve erişim kontrolünü nasıl yapılandırdığını görün. Güvenlik kalıpları ezberlenmiş olmaktan ziyade otomatik hale gelene kadar küçük projeleri bir test ağına dağıtın. Nadir bulunan beceri, derlenen Solidity kodu yazmak değildir; bunu birçok kişi yapabilir. Bir Solidity geliştiricisinin gerçekten para kazandığı şey, bir düşmanla (sözleşmenizi okuyan ve parası olan biriyle) temas halinde hayatta kalacak kod yazmaktır.
Solidity'nin Varsayılan Dil Olmaya Devam Etmesinin Nedenleri
Solidity'nin varsayılan dil olmasının somut bir nedeni var, abartı değil. Her EVM zincirine ulaşıyor. En zengin araçlara sahip. Çoğu DeFi ve NFT'nin altında yer alıyor. Ancak öncelikle öğrenilmesi gereken şey sözdizimi değil. Şudur: bir blok zincirinde, dağıtılan kod kanundur ve hatalar sonsuza dek kalır. Dili ve güvenlik modellerini birlikte öğrenin, çünkü ikisi burada birbirinden ayrılamaz. Dürüst olmak gerekirse, bir sonraki adım küçük ve ücretsizdir. Remix'i açın, on satırlık bir sözleşme yazın ve bu hafta bir test ağına dağıtın.