HA Hakan Akgül
Akıllı Sözleşmeler

Akıllı Sözleşme Nedir ve Nasıl Çalışır?

· 7 dk okuma · Hakan Akgül · 4 görüntülenme
Akıllı Sözleşme Nedir ve Nasıl Çalışır?

Akıllı sözleşmeler (smart contracts), blokzincirin yalnızca değer transferi değil, otomatik iş mantığı da çalıştırabilen bir platforma dönüşmesini sağlayan teknolojidir. Bu yazıda akıllı sözleşmenin ne olduğunu, "if-then" mantığıyla nasıl çalıştığını, Ethereum ve EVM'nin bu süreçteki rolünü, gas ücretlerinin neden var olduğunu ve oracle problemi gibi gerçek dünyaya bağlanma zorluklarını ele alacağız. Yazının sonunda bir akıllı sözleşmenin yazımdan zincire dağıtımına kadar olan yaşam döngüsünü kavramış olacaksınız.

Akıllı Sözleşme Nedir?

Akıllı sözleşme, blokzincir üzerinde çalışan, önceden tanımlanmış kurallara göre kendi kendini yürüten bir programdır. Geleneksel sözleşmelerden farkı, anlaşmanın koşullarının bir hukuk metninde değil, doğrudan kodda tanımlanmış olması ve koşullar sağlandığında insan müdahalesi olmadan otomatik olarak yürütülmesidir.

Temel çalışma mantığı basit bir koşul yapısına dayanır: "eğer (if) şu koşul gerçekleşirse, o zaman (then) şu işlem yapılır." Bu kurallar zincire bir kez yazıldığında, sözleşmenin mantığı şeffaf, öngörülebilir ve tüm taraflarca doğrulanabilir hale gelir.

Akıllı sözleşmenin amacı, iki veya daha fazla taraf arasındaki dijital anlaşmaları, aracılara ihtiyaç duymadan, önceden belirlenmiş kurallar doğrultusunda otomatik biçimde hayata geçirmektir.

Akıllı Sözleşme Nasıl Çalışır?

Bir akıllı sözleşmenin yaşam döngüsünü adım adım düşünelim:

  • Yazım: Sözleşme, genellikle Solidity veya Vyper gibi programlama dilleriyle yazılır. Bu aşamada anlaşmanın koşulları açık ve net biçimde tanımlanır.
  • Derleme: Yazılan kod, blokzincirin anlayabileceği düşük seviyeli bytecode'a derlenir.
  • Dağıtım (deployment): Bytecode, bir işlemle blokzincire gönderilir ve sözleşme ağda kalıcı bir adres alır.
  • Çağrılma: Kullanıcılar veya başka sözleşmeler bu adrese işlem göndererek sözleşmenin fonksiyonlarını tetikler.
  • Yürütme: Koşullar sağlanıyorsa kod çalışır, sonuç zincire yazılır ve değişmez biçimde kaydedilir.

Sözleşme bir kez dağıtıldıktan sonra, kodu zincirde değişmez olarak durur. Bu, hem güveni artırır hem de önemli bir sorumluluk getirir: koddaki bir hata, çoğu zaman geriye dönük düzeltilemez. Bu nedenle akıllı sözleşme güvenliği başlı başına bir uzmanlık alanıdır.

Ethereum, EVM ve Solidity

Akıllı sözleşmelerin en bilinen platformu Ethereum'dur. Ethereum, sözleşmeleri çalıştırmak için EVM (Ethereum Virtual Machine) adı verilen bir sanal makineye sahiptir.

EVM, yığın (stack) tabanlı bir çalışma ortamıdır. Yüksek seviyeli Solidity kodu önce bytecode'a çevrilir; ardından bu bytecode, bir işlem alındığında EVM tarafından yürütülür. EVM; hesapları, bakiyeleri, belleği ve depolamayı yöneten bir durum makinesi gibi davranır.

Solidity, EVM için yazılmış en yaygın programlama dilidir ve söz dizimi bakımından JavaScript/ECMAScript'e benzer. Güvenlik ve iyileştirme gerekçeleriyle sürekli güncellenmektedir.

Not: Ethereum bu alanda öncü olsa da tek platform değildir. EVM uyumlu birçok ağ ve farklı mimarilere sahip alternatif platformlar da akıllı sözleşmeleri destekler.

Gas Nedir ve Neden Vardır?

Akıllı sözleşmeleri çalıştırmak bedava değildir. Ethereum gibi ağlarda her işlem için gas adı verilen bir ücret ödenir.

  • Her EVM komutunun (instruction) bir gas maliyeti vardır.
  • Bir işlemin toplam ücreti, harcanan gas miktarı ile birim gas fiyatının çarpımıdır.
  • Bu ücret, işlemi doğrulayan katılımcılara aktarılır ve ağın sürdürülebilirliğini destekler.

Gas'in iki temel amacı vardır: Birincisi, ağı kullanan herkesin hesaplama maliyetine adil biçimde katılmasını sağlamak; ikincisi, sonsuz döngü gibi kötü niyetli veya hatalı kodların ağı kilitlemesini önlemek. Gas biterse işlem durur. Bu yüzden gas optimizasyonu, sözleşme geliştirmenin önemli bir parçasıdır: derleme sırasında üretilen kod bir kez gas harcarken, zincirde saklanan çalışma kodu her çağrıda gas tüketir.

Akıllı Sözleşmeler Nerede Kullanılır?

Akıllı sözleşmelerin en yaygın uygulama alanı merkeziyetsiz finanstır (DeFi): aracı kurumlara bağımlılığı azaltarak geleneksel finansal işlevleri zincir üzerinde yeniden kurmayı amaçlar. Bunun ötesinde tipik kullanım senaryoları şunlardır:

  • Dış olaylara bağlı koşullu ödemeler.
  • Ticari işlemlerin zincir üzerinde otomatik mutabakatı.
  • Menkul kıymet, emtia veya gayrimenkul gibi varlıkların tokenleştirilmesi.
  • Tedarik zinciri ve izlenebilirlik süreçlerinde otomatik kayıt ve doğrulama.

Sınırlamalar ve Oracle Problemi

Akıllı sözleşmeler güçlüdür ama her derde deva değildir. En önemli kısıtlardan biri oracle problemidir.

Bir akıllı sözleşme yalnızca blokzincir üzerindeki verilere doğrudan erişebilir. Hava durumu, döviz kuru, bir teslimatın gerçekleşip gerçekleşmediği gibi zincir dışı verileri kendiliğinden bilemez. Bu verileri zincire taşıyan köprülere oracle denir.

Sorun şudur: Sözleşmenin mantığı merkeziyetsiz olsa bile, dışarıdan gelen verinin doğruluğu o veriyi sağlayan oracle'a bağlıdır. Yanlış veya manipüle edilmiş bir veri kaynağı, kusursuz yazılmış bir sözleşmeyi bile yanlış karar vermeye itebilir. Bu nedenle merkeziyetsiz oracle ağları, güvenilir veri beslemeleri sağlamaya çalışır. Ayrıca birçok merkeziyetsiz uygulamanın ön yüzü, indeksleyicileri ve fiyat beslemeleri hâlâ merkezi bileşenler içerebilir.

Sık Sorulan Sorular

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

Akıllı sözleşme öncelikle bir yazılım kodudur; otomatik olarak yürütülen iş mantığını ifade eder. Hukuki bağlayıcılığı ülkeye ve düzenlemelere göre değişir. Çoğu durumda akıllı sözleşme, hukuki bir anlaşmanın yerine geçmekten çok onu otomatikleştiren bir araç olarak görülür.

Dağıtılmış bir akıllı sözleşme değiştirilebilir mi?

Genel kural olarak, zincire yazılan sözleşme kodu değiştirilemez. Geliştiriciler güncellenebilirlik için özel tasarım desenleri (örneğin proxy yapıları) kullanabilir, ancak bunlar ek karmaşıklık ve güvenlik riski getirir. Bu yüzden dağıtımdan önce kapsamlı test ve denetim kritiktir.

Gas ücretini kim öder?

Genellikle işlemi başlatan kullanıcı öder. Gas miktarı, işlemin hesaplama yüküne göre belirlenir; daha karmaşık işlemler daha fazla gas harcar.

Akıllı sözleşmeler hatalardan etkilenir mi?

Evet. Koddaki bir hata, sözleşme değişmez olduğu için ciddi sonuçlar doğurabilir. Bu nedenle güvenlik denetimi, test kapsamı ve dikkatli tasarım, akıllı sözleşme geliştirmenin ayrılmaz parçalarıdır.

Özet

Akıllı sözleşmeler, blokzincir üzerinde "if-then" mantığıyla kendi kendini yürüten programlardır. Ethereum ve EVM bu programları çalıştıran altyapıyı sağlar, gas ise hesaplama maliyetini adil biçimde dağıtır ve ağı kötüye kullanıma karşı korur. Buna karşın oracle problemi ve değişmezlikten doğan hata riski gibi kısıtlar, bu teknolojinin dikkatli ve doğru senaryolarda kullanılması gerektiğini gösterir. Bu alandaki uygulamalı çalışmalarıma Projeler sayfasından, akademik geçmişime ise Özgeçmiş sayfasından ulaşabilirsiniz.

Paylaş: LinkedIn ↗ X ↗
↑ Başa dön