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.
Bu makale, Ethereum blockchaininin önemli bir öğesi olan Ethereum Virtual Machine (EVM - Ethereum Sanal Makinası) üzerinde çalışan akıllı kontratlara odaklanacaktır.
Nasıl çalışırlar?
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ı).
Önemli Özellikleri
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.
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.
Bir akıllı kontratı değiştirebilir ya da silebilir miyim?
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.
Avantajları ve kullanım alanları
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.
ERC-20
Sınırlamalar
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.
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.
Eleştiri
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.
Son fikirler
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.