Advertise

SözlükKavram

Akıllı Kontrat (Smart Contract) Nedir?

Akıllı kontrat (smart contract), bir blok zincirinde saklanan ve önceden tanımlanmış koşullar gerçekleştiğinde kendiliğinden çalışan bir programdır. Sonucu bir aracı kurum ya da noter değil, ağın kendisi uygular; kod ve işlemler herkesin denetleyebileceği şekilde zincirde durur.

Yazar: COINOTAG Research DeskSon güncelleme Kaynaklar

binance.com

Akıllı kontrat ne işe yarar?

Akıllı kontrat fikri, bilgisayar bilimci Nick Szabo'nun 1994'te yazdığı "Smart Contracts" makalesine ve 1990'lardaki diğer yazılarına dayanır. Szabo, bir sözleşmenin koşullarının koda dökülüp otomatik olarak uygulanabileceğini, bunun için de içine para atılınca ürünü veren bir satış otomatını örnek gösterdi: kural bellidir ve makine kuralı kimseye sormadan uygular.

Fikir, genel amaçlı programlanabilir bir blok zinciri olarak tasarlanan Ethereum'un 30 Temmuz 2015'te açılmasıyla yaygın biçimde uygulanabilir hâle geldi. Bugün akıllı kontratlar şu alanların temelidir:

mexc.com
  • DeFi: Borç verme, takas (DEX), likidite havuzları.
  • Tokenlar: Stablecoin'ler ve ERC-20 tokenlar, NFT'ler.
  • Yönetişim: DAO'larda oylama ve hazine yönetimi.
  • Otomasyon: Koşula bağlı ödemeler, emanet (escrow), çoklu imzalı cüzdanlar.

Ethereum, akıllı kontrat çalıştırmaya odaklanan ilk genel amaçlı blok zinciridir: EVM (Ethereum Virtual Machine) üzerinde Turing-complete bir hesaplama ortamı sunar. Bu sayede kural koyulabilen hemen her iş akışı koda dökülebilir. Akıllı kontratlar bugün NFT pazarlarında, zincir üstü oyunlarda, dijital kimlik ve tedarik zinciri takibi gibi alanlarda da kullanılır.

Akıllı kontrat nasıl çalışır?

  1. Yazma: Geliştirici kontratın kurallarını bir programlama diliyle yazar. Ethereum ve EVM uyumlu ağlarda en yaygın diller Solidity ve Vyper'dır; Solana'da ağırlıklı olarak Rust kullanılır.
  2. Derleme ve yükleme (deploy): Kod, sanal makinenin anlayacağı bayt koduna derlenir ve bir işlemle zincire yüklenir. Kontrat bir adres alır.
  3. Çağırma: Kullanıcılar ya da başka kontratlar, işlem göndererek kontratın fonksiyonlarını çağırır. Her çağrı gas ücreti öder.
  4. Yürütme: Ağdaki tüm düğümler aynı kodu aynı girdilerle çalıştırır ve aynı sonuca ulaşır (deterministik). Sonuç, yani bakiyelerdeki ve kontrat verisindeki değişiklik, zincire yazılır.

Değiştirilemezlik ve yükseltme: Yüklenen kod kural olarak değiştirilemez. Bu, kuralların sonradan tek taraflı değiştirilmesini önler ama hataların düzeltilmesini de zorlaştırır. Bazı projeler "proxy" desenleriyle yükseltilebilir kontratlar kullanır; bu durumda yükseltme yetkisine kimin sahip olduğu önemli bir güven sorusudur.

bybit.com

Dış veri: Akıllı kontratlar zincir dışındaki verilere (örneğin bir coinin fiyatına) kendiliğinden ulaşamaz. Bu veriyi zincire taşıyan hizmetlere oracle denir.

Akıllı kontratların tarihçesi

  • 1994: Nick Szabo "Smart Contracts" makalesinde, sözleşme şartlarının bilgisayar protokolleriyle uygulanabileceği fikrini ortaya koydu.
  • 30 Temmuz 2015: Ethereum'un ilk sürümü Frontier yayına girdi; akıllı kontratlar ilk kez genel amaçlı bir ağda herkes tarafından yüklenebilir hâle geldi.
  • 2016, The DAO: The DAO, yatırımcıların ETH yatırıp hangi projelerin fonlanacağını oyladığı bir yatırım kontratıydı. Haziran 2016'da bir saldırgan, kontrattaki yeniden giriş (reentrancy) açığını kullanarak ETH çekti; ethereum.org'a göre kontrattan 3,6 milyon ETH'nin üzerinde varlık boşaltıldı. Topluluk, fonları kurtarmak için 20 Temmuz 2016'da 1.920.000. blokta bir hard fork yaptı (çatallanma). Bu çatallanmayı kabul etmeyen zincir Ethereum Classic olarak devam etti.
  • Sonraki yıllar: Geliştirici araçları (Hardhat, Foundry gibi test ve dağıtım çerçeveleri) ve OpenZeppelin gibi açık kaynak kontrat kütüphaneleri olgunlaştı; güvenli kontrat yazımı için ortak desenler oluştu.
  • 2020, DeFi yazı: Borç verme ve takas protokollerinin hızla büyümesi, akıllı kontratların büyük miktarda değeri aracı olmadan yönetebildiğini gösterdi.

Bugün akıllı kontrat altyapısı çok zincirlidir: BNB Chain, Polygon, Arbitrum ve Base gibi EVM uyumlu ağların yanında Solana, Aptos ve Sui gibi farklı sanal makineler kullanan ağlar da vardır. Aptos ve Sui'de kontratlar Move diliyle yazılır.

Örnek: bir borç verme protokolüne mevduat

Bir kullanıcının bir DeFi borç verme protokolüne (örneğin Aave) USDC yatırdığını düşünelim. Akıllı kontrat şu adımları kendiliğinden uygular:

  1. USDC transferini kabul eder.
  2. Karşılığında kullanıcıya mevduatını temsil eden bir token (Aave'de aUSDC) basar.
  3. Faiz oranını, havuzdaki arz ve talebe göre her blokta günceller.
  4. Kullanıcı çekim yaptığında, anaparayı biriken faizle birlikte USDC olarak iade eder.

Bu süreçte bir banka veya işletmeci yoktur; kurallar kodda tanımlıdır ve her adım zincirde herkesin görebileceği şekilde kaydedilir.

Akıllı kontratların riskleri

  • Kod hataları: Kontrattaki bir mantık hatası, fonların kilitlenmesine veya çalınmasına yol açabilir. Kod zincirde herkese açık olduğu için saldırganlar da onu inceleyebilir. Ethereum'un ilk yıllarındaki The DAO saldırısı, bu riskin ilk büyük örneklerinden biridir ve Ethereum ile Ethereum Classic'in ayrılmasıyla sonuçlandı.
  • Yetki anahtarlarının kötüye kullanımı: Yükseltme veya para basma yetkisi tek bir anahtardaysa, bu anahtar ele geçirilebilir ya da proje sahibi tarafından kötüye kullanılabilir (rug pull).
  • Oracle manipülasyonu: Yanlış veya manipüle edilmiş fiyat verisi, kontratın hatalı kararlar vermesine yol açabilir; flash loan saldırıları sıkça bu açığı kullanır.
  • Kullanıcı onayları: Kullanıcının bir kontrata verdiği sınırsız harcama izni, kontrat ele geçirildiğinde cüzdanı riske atar.

Bağımsız güvenlik denetimleri (audit) riski azaltır ama ortadan kaldırmaz. Bu içerik bilgilendirme amaçlıdır; yatırım tavsiyesi değildir.

Güvenlik jargonunda sık geçen iki kavram:

  • Yeniden giriş (reentrancy): Bir kontrat fonksiyonu işini bitirmeden önce dış bir kontratı çağırdığında, dış kontratın aynı fonksiyonu tekrar çağırıp bakiyeler güncellenmeden fon çekmesi. The DAO saldırısı bu açığın en bilinen örneğidir.
  • Denetim (audit): Bağımsız güvenlik firmalarının kontrat kodunu yayına almadan önce incelemesi. Denetim raporunun hangi kod sürümünü kapsadığı önemlidir.

Sıkça Sorulan Sorular

5 soru
Akıllı kontrat yasal bir sözleşme midir?

Kendi başına değildir. Akıllı kontrat, kuralları kodla uygulayan bir programdır; hukuki bağlayıcılığı, taraflar arasındaki anlaşmaya ve ülkenin mevzuatına bağlıdır.

Akıllı kontratlar hangi dillerle yazılır?

Ethereum ve EVM uyumlu ağlarda ağırlıklı olarak Solidity ve Vyper, Solana'da Rust kullanılır. Diğer ağların kendi dilleri olabilir.

Yüklenen akıllı kontrat değiştirilebilir mi?

Kod kural olarak değiştirilemez. Bazı projeler proxy desenleriyle yükseltilebilir kontratlar kullanır; bu durumda yükseltme yetkisinin kimde olduğu önemlidir.

Akıllı kontrat kavramını kim buldu?

Kavram, bilgisayar bilimci Nick Szabo'nun 1990'larda yazdığı makalelerle ortaya çıktı. Yaygın kullanım ise 2015'te açılan Ethereum ile başladı.

Akıllı kontratlar neden hacklenir?

Koddaki mantık hataları, yetki anahtarlarının ele geçirilmesi veya manipüle edilen dış veriler nedeniyle. Kod herkese açık olduğu için saldırganlar açıkları inceleyebilir.