Giriş
Akıllı sözleşme fikri ilk olarak Nick Szabo tarafından 1990'larda ortaya atılmıştır. O tarihte Szabo bir akıllı sözleşmeyi, protokoller ve kullanıcı arayüzlerini birleştirerek bilgisayar ağlarını resmiyete döken ve güvence altına alan bir araç olarak tanımlamıştır.
Szabo, akıllı sözleşmelerin kredi sistemleri, ödeme işlemleri ve içerik haklarının yönetimi gibi bir sözleşme gerektiren çeşitli alanlardaki potansiyel kullanımından bahsetmiştir.
Blockchain akıllı sözleşmeleri, güvene dayalı olmayan protokollerin yaratılmasına imkan tanır. Bu da iki tarafın, birbirini tanımak ya da birbirine güvenmek zorunda kalmadan blockchain aracılığıyla taahhütler verebileceği anlamına gelir. Koşulların yerine getirilmemesi durumunda, sözleşmenin uygulamaya koyulmayacağından emin olabilirler. Bunun dışında, akıllı sözleşmelerin kullanılması aracılara olan ihtiyacı ortadan kaldırarak işletme maliyetlerini de büyük oranda düşürebilir.
Bu makalede, Ethereum blockchaininin önemli bir ögesi olan Ethereum Virtual Machine (EVM - Ethereum Sanal Makinesi) üzerinde çalışan akıllı sözleşmelere odaklanılacaktır.
Akıllı sözleşmeler nasıl hizmet görür?
En basit haliyle bir akıllı sözleşme deterministik bir program olarak hizmet görür. Belirli koşulların yerine getirilmesi durumunda belirli bir görevi yerine getirir. Dolayısıyla da bir akıllı sözleşme sistemi genellikle "eğer…ise…" ifadelerini kullanır. Fakat popüler terminolojinin aksine akıllı sözleşmeler ne yasal bir sözleşmedir ne de akıllıdır. Bunlar yalnızca dağıtık bir sistem (blockchain) üzerinde çalışan kod parçalarıdır.
Ethereum ağı üzerinde akıllı sözleşmeler, kullanıcılar (adresler) arasında etkileşim kurulduğunda ortaya çıkan blockchain işlemlerini yürütmek ve yönetmekten sorumludur. Akıllı sözleşme olmayan tüm adresler dış sahipli hesaplar (EOA) olarak isimlendirilir. Dolayısıyla da akıllı sözleşmeler bilgisayar kodları tarafından, EOA'lar ise kullanıcılar tarafından yönetilir.
Ethereum akıllı sözleşmeleri temelde bir sözleşme kodu ve iki açık anahtardan oluşur. İlk açık anahtar, sözleşmenin yaratıcısı tarafından sağlanır. Diğer anahtar ise sözleşmenin kendisini temsil eder ve her bir akıllı sözleşmenin özel dijital tanımlayıcısı olarak hareket eder.
Akıllı sözleşmenin konuşlandırılması bir blockchain işlemi aracılığıyla yapılır ve sözleşme yalnızca bir EOA (ya da diğer akıllı sözleşmeler) tarafından çağrıldığında etkinleştirilir. Fakat ilk tetikleyici her zaman bir EOA'dır (kullanıcı).
Önemli Özellikleri
Bir Ethereum akıllı sözleşmesi genellikle şu özelliklere sahiptir:
Dağıtık. Akıllı sözleşmeler, Ethereum ağının tüm düğümlerine dağıtılmış ve bu düğümlerde kopyalanmıştır. Merkezi sunuculara dayalı olan diğer çözümlerden başlıca farklarından biri de budur.
Deterministik. Akıllı sözleşmeler uygun koşulların yerine getirilmesi durumunda yalnızca yapmak üzere tasarlandıkları işlemleri gerçekleştirirler. Bunun yanı sıra, sözleşmeleri kimin uygulamaya koyduğundan bağımsız olarak sonuç her zaman aynı olacaktır.
Otonom. Akıllı sözleşmeler, kendi kendini yürüten programlar gibi hizmet görerek her türlü görevi otomatik bir hale getirebilirler. Fakat çoğu durumda, eğer bir akıllı sözleşme tetiklenmezse, beklemede kalacak ve harekete geçmeyecektir.
Değiştirilemez. Akıllı sözleşmeler kullanıma sunulduktan sonra değiştirilemez. Eğer bunun için özel bir işlev daha önceden eklenmişse, yalnızca silinebilirler. Dolayısıyla, akıllı sözleşmelerin kurcalanmaya dirençli bir kod sundukları söylenebilir.
Güvene dayalı olmayan. İki ya da daha fazla taraf birbirlerini tanımadan ya da birbirlerine güvenmek zorunda kalmadan akıllı sözleşmeler aracılığıyla etkileşim kurabilir. Buna ek olarak, blockchain teknolojisi verilerin doğru olmasını sağlar.
Şeffaf. Akıllı sözleşmeler herkese açık bir blockchain üzerinde konuşlanmış olduğundan, sözleşmelerin kaynak kodları değiştirilemez ve herkes tarafından görülebilir.
Bir akıllı sözleşmeyi değiştirebilir ya da silebilir miyim?
Kullanıma sunulan Ethereum akıllı sözleşmelerine sonradan yeni işlevler eklemek mümkün değildir. Fakat sözleşmenin yaratıcısı koda KENDİNİ İMHA adında bir işlev eklediyse, gelecekte akıllı sözleşme "silinebilir" ve yerine yeni bir sözleşme koyulabilir. Diğer yandan, bu işlev koda daha önceden eklenmediyse sözleşmenin silinmesi mümkün olmayacaktır.
Güncellenebilir akıllı sözleşmeler geliştiricilere sözleşmenin değiştirilemezliği konusunda daha fazla esneklik sağlar. Farklı seviyelerde bir karmaşıklığa sahip güncellenebilir akıllı sözleşmeler yaratmanın birçok yolu vardır.
Basit bir örnek verirsek, bir akıllı sözleşmenin birçok küçük sözleşmeye bölündüğünü farz edelim. Bunlardan bazıları değiştirilemez bir şekilde tasarlanırken, diğerlerinde ise silme işlevi etkinleştirilmiş olsun. Bu da kodun (akıllı sözleşmelerin) bir kısmının silinip yenilenebilirken diğer işlevlerin değişmeden aynı kalacağı anlamına gelir.
Avantajları ve kullanım alanları
Programlanabilir bir kod olan akıllı sözleşmeler, büyük oranda kişiselleştirilebilir ve birçok farklı şekilde tasarlanarak farklı türde hizmetler ve çözümler sunabilir.
Merkeziyetsiz ve kendi kendini yürüten programlar olan akıllı sözleşmeler yüksek seviyede şeffaflık sunabilir ve işletme maliyetlerini düşürebilirler. Uygulamaya bağlı olarak verimliliği artırıp bürokratik masrafları da azaltabilirler.
Akıllı sözleşmeler iki ya da daha fazla taraf arasında fon takası ya da transferinin yapıldığı durumlarda özellikle kullanışlıdır.
ERC-20
Sınırlamalar
Akıllı sözleşmeler insanlar tarafından yazılan bilgisayar kodlarından oluşur. Bu da kod hatalar ve güvenlik açıkları içerebileceği için ç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ı sözleşmelerin deneyimli programcılar tarafından yazılması ve kullanıma sunulması gerekir.
Bunun dışında, bazı kişiler akıllı sözleşmelerin sunduğu çözüm ve işlevlerin birçoğunun merkezi sistemler tarafından da sağlanabileceğini iddia eder. Başlıca fark, akıllı sözleşmelerin merkezi bir sunucu yerinde dağıtık bir P2P (eşler arası) ağı üzerinde çalışmasıdır. Ve blockchain sistemlerine dayandıkları için değiştirilmeleri ya çok zor ya da imkansızdır.
Değiştirilemezlik bazı durumlar için harika olsa da bazen de oldukça dezavantajlıdır. Örneğin "The DAO" adındaki Merkeziyetsiz Otonom Organizasyon (DAO) 2016 yılında hacklenmiş ve akıllı sözleşme kodundaki hatalar nedeniyle milyonlarca ether (ETH) çalınmıştır.
Burada sorunun Ethereum blockchaininden kaynaklanmadığını belirtmek gerekir. Tam tersine, sorun akıllı sözleşmenin hatalı bir şekilde uygulamaya koyulmasından kaynaklanmıştır.
Akıllı sözleşmelerin bir diğer sınırlaması da henüz netleşmemiş yasal durumlarıyla ilgilidir. Çoğu ülkede hala belirsiz bir alanda olmalarının yanı sıra akıllı sözleşmeler mevcut yasal çerçeveye pek uygun değildir.
Örneğin birçok sözleşme her iki tarafın da kimliğinin tam olarak belirlenmesini 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 için potansiyel çözümler olsa da akıllı sözleşmelerin yasal bir şekilde uygulamaya koyulması çok zordur, özellikle de konu sınır ötesi dağıtık ağlar olduğunda.
Eleştiri
Bazı blockchain meraklıları akıllı sözleşmeleri mevcut ticari ve bürokratik sistemlerimizin yerini alacak ve bu sistemleri büyük oranda otomatikleştirecek bir çözüm olarak görmektedir. Bunun gerçekleşmesi mümkün olsa da norm olma ihtimali düşüktür.
Akıllı sözleşmeler şüphesiz ilgi çekici bir teknolojidir. Fakat dağıtık, deterministik, şeffaf ve bir dereceye kadar değiştirilemez olmaları onları bazı durumlar için pek de cazip kılmamaktadır.
Eleştiriler temelde akıllı sözleşmelerin gerçek hayattaki çoğu sorun için uygun olmamasından kaynaklanmaktadır. Aslında bazı kuruluşların geleneksel sunucu bazlı alternatifleri kullanması daha uygundur.
Merkezi sunucular akıllı sözleşmelere kıyasla daha kolay ve masrafsız bir şekilde idare edilebilir ve ayrıca hız ve ağlar arası iletişim (birlikte çalışabilirlik) bağlamında daha fazla verimlidir.
Son Söz
Akıllı sözleşmelerin kripto para dünyasını büyük ölçüde etkilediğine ve blockchain dünyasında devrim yarattığına şüphe yoktur. Son kullanıcılar akıllı sözleşmelerle doğrudan etkileşim içinde olmasalar da akıllı sözleşmelerin gelecekte finansal hizmetlerden tedarik zinciri yönetimine kadar birçok farklı uygulamayı desteklemesi olasıdır.
Blockchain ve akıllı sözleşmeler bir araya geldiğinde, toplumumuzun neredeyse her alanında kökten bir değişiklik yaratma potansiyeline sahiptir. Fakat bu çığır açıcı teknolojilerin, geniş çapta benimsenmenin önündeki birçok engeli aşıp aşamayacağını yalnızca zaman gösterecektir.