Solidity Nedir? Akıllı Sözleşme Programlama Dili

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.

katılık nedir

İ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ı.

katılık nedir

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.

Sorusu olan?

Aslında sözdizimi değil. Eğer zaten kod yazıyorsanız, bir hafta sonu yeterli; JavaScript ve C++’a benziyor. Zor olan kısım zihniyet. Benzin masrafları. Değişmezlik. Güvenlik kalıpları. İnsanlar Solidity’yi hızlıca öğreniyor, sonra da güvenli bir şekilde yazmayı öğrenmek için yıllarını harcıyorlar.

Çoğunlukla JavaScript ve C++. Süslü parantezler, noktalı virgüller, tüm bu unsurlar. Python birkaç fikri şekillendirdi, ancak Solidity statik olarak tiplendirilmiş bir dildir, bu nedenle tipleri önceden tanımlarsınız. Bunun yerine gerçekten Python benzeri bir seçenek mi istiyorsunuz? O zaman Vyper, Solidity değil.

Temel bilgiler, evet. Bir işlem nedir? Gas ne işe yarar? Blockchain neden merkeziyetsizdir? Arka plandaki konsensüs matematiğine ihtiyacınız yok. Tüm bunlardan daha önemli olan tek bir fikir var: dağıtılan kod herkese açık ve kalıcıdır. Bunu anlayın, gerisi kendiliğinden gelir.

Solidity, yazdığınız dildir. Ethereum Sanal Makinesi ise onu çalıştıran motordur. Derleyiciniz bir `.sol` dosyasını EVM bayt koduna dönüştürür ve her düğüm bu bayt kodunu kendi EVM’sinde yürütür. Biri kaynak kod, diğeri ise makinedir.

Evet, neredeyse her yerde. EVM uyumlu herhangi bir blockchain bunu çalıştırır: Polygon, BNB Chain, Arbitrum, Base, Avalanche. ChainList, bu tür 385’ten fazla ağ sayıyor. Bu erişim, Solidity becerilerinin sizi tek bir zincire kilitlemek yerine sektör genelinde yayılmasının ana nedenidir.

Evet. Ethereum, 2025 yılının ilk dokuz ayında 16.000’den fazla geliştirici ekledi ve çok zincirli geliştiricilerin çoğu EVM ağları üzerinde çalışıyor. Denetlenmiş Solidity mühendisleri, sözleşmelerinin değerine kıyasla nadir bulunuyor. Bu tür bir kıtlık, ücretlerin yüksek kalmasını sağlıyor.

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.