Nick Szabo akıllı kontratları ilk olarak 1990'larda tanıttı. Szabo o zamanlarda akıllı kontratı, kullanıcı arayüzleri ile protokolleri birleştirerek bilgisayar ağlarını resmileştiren ve güvenli hale getiren bir araç olarak tanımladı. Szabo akıllı kontratların, kredi sistemleri, ödeme süreçleri ve içerik hakları yönetimi gibi sözleşmeye dayalı anlaşmaları dahil eden çeşitli alanlarda potansiyel kullanımlarını değerlendirdi.
Kripto para dünyasında bir akıllı kontratı blockchain üzerinde çalışan bir uygulama ya da program olarak tanımlayabiliriz. Genellikle, belirli kurallara uymak zorunda olan dijital anlaşmalar olarak çalışırlar. Bu kurallar bilgisayar kodları tarafından daha önceden belirlenir ve daha sonra tüm ağ node'ları tarafından kopyalanarak uygulamaya konur.
En özünde blockchain akıllı kontratları, güvene dayalı olmayan protokollerin yaratılmasına olanak sunar. Bu da iki partinin, birbirlerini tanımak ya da karşılıklı güven duymak zorunda kalmadan blockchain üzerinden taahhütler verebileceği anlamına gelir. Koşulların yerine getirilmemesi durumunda kontratın uygulanmaya konmayacağından emin olabilirler. Diğer yandan, akıllı kontratların kullanılması aracılara olan ihtiyacı ortadan kaldırarak operasyonel masrafları büyük oranda düşürür.
Bitcoin protokolü uzun yıllardır akıllı kontratları destekliyor olsa da bunları popüler hale getiren Ethereum yaratıcısı ve kurucu ortağı Vitalik Buterin'dir. Yine de, her bir blockchainin akıllı kontratları farklı şekilde uygulamaya koyabileceğini de belirtmek önemlidir.
Bu makale, Ethereum blockchaininin önemli bir öğesi olan Ethereum Virtual Machine (EVM - Ethereum Sanal Makinası) üzerinde çalışan akıllı kontratlara odaklanacaktır.
En basit haliyle bir akıllı kontrat deterministik bir program olarak çalışır. Belirli koşulların yerine getirilmesi durumunda belirli bir görevi yerine getirir. Dolayısıyla bir akıllı kontrat sistemi genellikle "eğer…ise…" ifadelerini kullanır. Fakat popüler terminolojinin aksine akıllı kontratlar yasal sözleşme ya da akıllı değildir. Bunlar yalnızca dağıtılmış bir sistem (blockchain) üzerinde çalışan kod parçalarıdır.
Ethereum ağı üzerinde akıllı kontratlar, kullanıcılar (adresler) arasında etkileşim olması durumunda ortaya çıkan blockchain işlemlerinin uygulanmasından ve idaresinden sorumludur. Akıllı kontrat olmayan tüm adresler dış sahipli hesaplar (EOA) olarak isimlendirilir. Dolayısıyla akıllı kontratlar bilgisayar kodları tarafından ve EOA'lar da kullanıcılar tarafından yönetilir.
En temelde Ethereum akıllı kontratları bir kontrat kodu ve iki açık anahtardan oluşur: İlk açık anahtar kontratın yaratıcısı tarafından sağlanır. Diğer anahtar ise kontratın kendisini temsil eder ve her bir akıllı kontratın kendine özel dijital belirteci olarak hareket eder.
Akıllı kontratın uygulamaya konması bir blockchain işlemi aracılığıyla yapılır ve kontrat yalnızca bir EOA (ya da diğer akıllı kontratlar) tarafından talep edildiğinde aktif hale gelir. Fakat ilk tetikleyici her zaman EOA'dır (kullanıcı).
Bir Ethereum akıllı kontratı genellikle aşağıdaki özelliklere sahiptir:
Dağıtılmış. Akıllı kontratlar, Ethereum ağının tüm node'larına dağıtılmış ve bu node'larda kopyalanmıştır. Merkezi sunuculara dayalı olan diğer çözümlerden başlıca farklarından biri budur.
Deterministik. Akıllı kontratlar uygun koşulların yerine gelmesi durumunda yalnızca yapmak üzere tasarlandıkları işlemleri gerçekleştirirler. Bunun yanı sıra, kontratları kimin uygulamaya koyduğundan bağımsız olarak sonuç her zaman aynı olacaktır.
Otonom. Akıllı kontratlar, kendi kendini yürüten programlar gibi çalışarak her türlü görevi otomatik hale getirebilirler. Fakat çoğu durumda eğer bir akıllı kontrat tetiklenmezse beklemede kalacak ve harekete geçmeyecektir.
Değiştirilemez. Akıllı kontratlar uygulamaya konduktan sonra değiştirilemezler. Eğer bunun için özel bir fonksiyon daha önceden eklenmişse yalnızca silinebilirler. Dolayısıyla akıllı kontratların gizlice değişiklik yapılmasına karşı dirençli bir kod sundukları söylenebilir.
Kişiselleştirilebilir. Akıllı kontratlar uygulamaya konmadan önce birçok farklı yoldan kodlanabilirler. Dolayısıyla farklı birçok tür merkeziyetsiz uygulama (Dapp) yaratmak için kullanılabilirler. Bunun sebebi Ethereum'un aslında bir tam Turing blockchain olması gerçeğine dayanır.
Güvene dayalı olmayan. İki ya da daha fazla parti birbirlerini tanımadan ya da karşısındakine güvenmek zorunda kalmadan akıllı kontratlar aracılığıyla etkileşim kurabilirler. Buna ek olarak, blockchain teknolojisi verinin doğru olduğunu garanti altına alır.
Şeffaf. Akıllı kontratlar herkese açık bir blockchain üzerinde çalıştıkları için kontratların kaynak kodları hem değiştirilemez hem de herkes tarafından görülebilir.
Ethereum akıllı kontratına uygulamaya konduktan sonra yeni fonksiyonlar eklemek mümkün değildir. Fakat, eğer kontratın yaratıcısı koda KENDİNİİMHA fonksiyonunu eklerse, gelecekte bu kontrat "silinebilir" ve yerine yeni bir kontrat konabilir. Fakat bunun aksine eğer bu kod daha önceden eklenmezse kontratın silinmesi mümkün olmaz.
Güncellenebilir akıllı kontratlar geliştiricilere kontratın değiştirilemezliği karşısında daha fazla esneklik sağlar. Farklı seviyede karmaşıklığa sahip güncellenebilir akıllı kontratlar yaratmanın birçok yolu vardır.
Basit bir örnek verirsek, bir akıllı kontratın birçok küçük kontrata bölündüğünü farz edelim. Bunlardan bazıları değiştirilemez olmak üzere tasarlanırken diğerlerinde 'silme' fonksiyonu etkinleştirilmiştir. Bu da, kodun (akıllı kontratlar) bir kısmının silinip değiştirilebilirken diğer fonksiyonlarının aynı şekilde kalacağı anlamına gelir.
Programlanabilir bir kod olarak akıllı kontratlar büyük oranda kişiselleştirilebilir ve birçok farklı şekilde tasarlanarak farklı türde hizmetler ve çözümler sunabilir.
Merkeziyetsiz ve kendi kendine çalışan programlar olan akıllı kontratlar daha yüksek seviyede şeffaflık sunarken, operasyonel masrafları düşürebilirler. Uygulamaya bağlı olarak verimliliği artırıp bürokratik masrafları da azaltabilirler.
Akıllı kontratlar iki ya da daha fazla parti arasında fon takası ya da transferinin yapıldığı durumlarda özellikle kullanışlıdır.
Diğer bir deyişle, akıllı kontratlar birçok farklı kullanım alanı için tasarlanabilirler. Bazı örnekler arasında tokenlaştırılmış varlıkların yaratılması, oylama sistemleri, kripto cüzdanları, merkeziyetsiz borsalar, oyunlar ve mobil uygulamalar bulunur. Bunun yanı sıra, sağlık hizmetleri, hayır işleri, tedarik zinciri, yönetim ve merkeziyetsiz finans (DeFi) alanlarıyla ilgili diğer blockchain çözümlerine ek olarak uygulanabilirler.
Ethereum blockchaini üzerinde çıkarılan tokenlar ERC-20 olarak bilinen bir standardı takip ederler. Bu standart tüm Ethereum bazlı tokenlerın temel fonksiyonlarını belirler. Dolayısıyla, bu dijital varlıklar genellikle ERC-20 tokenları olarak isimlendirilir ve mevcut kripto paraların büyük kısmını oluşturur.
Birçok blockchain şirketi ve startup'ı dijital tokenlarını Ethereum ağı üzerinde çıkarabilmek için akıllı kontratları kullanmaktadır. Bu şirketlerin büyük çoğunluğu ERC-20 tokenlarını çıkardıktan sonra bu tokenları İlk Coin Arzı (ICO) etkinlikleri ile dağıtırlar. Çoğu durumda akıllı kontratların kullanımı fonların el değiştirmesinin ve tokenların dağıtılmasının güvene dayalı olmayan ve verimli bir yoldan yapılmasını mümkün kılar.
Akıllı kontratlar insanlar tarafından yazılan bilgisayar kodlarından meydana gelir. Bu da kodun hatalara ve zayıf noktalara açık olması nedeniyle çeşitli riskleri beraberinde getirir. İdeal koşullarda, özellikle hassas bilgilerin ve büyük miktarlı paraların söz konusu olduğu durumlarda akıllı kontratların deneyimli programcılar tarafından yazılması ve uygulamaya konması gerekir.
Bunun dışında, bazı kişiler merkezi sistemlerin de akıllı kontratlar tarafından sunulan çözümlerin ve fonksiyonların birçoğunu sunduğunu iddia eder. Başlıca fark, akıllı kontratların merkezi bir sunucu yerinde dağıtılmış P2P (eşler arası) ağlar üzerinde çalışmasıdır. Ve blockchain sistemlerine dayandıkları için ya değiştirilemez olurlar ya da değiştirilmeleri çok zordur.
Değiştirilemez olmak bazı durumlar için çok faydalıyken diğerleri için de çok zorlayıcıdır. Örneğin, "The DAO" olarak bilinen Merkeziyetsiz Otonom Organizasyonu (DAO) 2016 yılında hacklendiğinde akıllı kontrat kodundaki sorunlar nedeniyle milyonlarca ether (ETH) çalındı.
Akıllı kontratları değiştirilemez olduğu için geliştiriciler kodu düzeltemedi. Bunun sonucunda da bir hard fork yapıldı ve ikinci bir Ethereum zinciri yaratıldı. En özünde, zincirlerden biri hack'i "tersine çevirdi" ve fonları gerçek sahiplerine iade etti (bu mevcut Ethereum blockchaininin bir parçasıdır). Diğer zincir ise blockchain üzerinde olan şeylerin hiçbir zaman değiştirilmemesi gerektiğini savunarak hack'e müdahale etmeme kararı aldı (bu zincir Ethereum Classic oldu).
Burada sorunun Ethereum blockchaininden kaynaklanmadığını belirtmek önemlidir. Bunun aksine sorun hatalı akıllı kontrat uygulamasından kaynaklanmıştır.
Akıllı kontratların bir diğer sınırlaması da henüz netleşmemiş yasal statüleriyle ilgilidir. Çoğu ülkede hala belirsiz bir alanda olmalarının yanı sıra akıllı kontratlar mevcut yasal çerçeveye tam olarak uygun değildir.
Örneğin birçok sözleşme her iki partinin de kimliğinin tam olarak belirli olmasını ve 18 yaşından büyük olmasını gerektirir. Blockchain teknolojisinin sağladığı anonimlik, aracıların olmamasıyla birleştiğinde bu gerekliliklerin karşılanmasını zorlaştırabilir. Bu durum karşısında potansiyel çözümler olsa da akıllı kontratların yasal olarak kabul edilmesi gerçek anlamda zordur özellikle de konu sınırlar arası dağıtılmış ağlar olduğunda.
Bazı blockchain meraklıları akıllı kontraları mevcut ticari ve bürokratik sistemlerimizin yerini alacak ve bu sistemleri büyük oranda otomatize edecek bir çözüm olarak görürler. Bunun gerçekleşmesi mümkün olsa da norm olma ihtimali düşüktür.
Akıllı kontratlar şüphesiz ilgi çekici bir teknoloji öğesidir. Fakat dağıtılmış, deterministik, şeffaf ve bir dereceye kadar değiştirilemez olmaları onları bazı durumlar için daha az uygun kılar.
En temelde eleştiriler, akıllı kontratların gerçek hayata dair çoğu sorun için uygun olmamasından kaynaklanır. Aslında bazı organizasyonların geleneksel sunucu bazlı alternatifleri kullanması onlar için daha kullanışlıdır.
Merkezi sunucular akıllı kontratlara kıyasla daha kolay ve masrafsız şekilde idare edilebilir ve ayrıca hız ve ağlar arası iletişim (birlikte çalışabilirlik) bağlamında daha fazla verim sunma eğilimindedir.
Akıllı kontratların kripto para dünyasında büyük bir etki uyandırdığına ve blockchain dünyasında devrim yarattıklarına şüphe yoktur. Son kullanıcılar akıllı kontratlarla doğrudan etkileşim içinde olmasalar da akıllı kontratların gelecekte finansal hizmetlerden tedarik zinciri yönetimine kadar birçok farklı uygulamayı desteklemesi olasıdır.
Blockchain ve akıllı kontratlar birlikte toplumumuzun neredeyse her alanında değişiklik yaratma potansiyeline sahiptir. Fakat bu çığır açan teknolojilerin geniş çapta benimsenmenin karşısındaki birçok engeli aşıp aşamayacağını yalnızca zaman gösterebilir.