Akıllı Sözleşme Nedir?
Ana sayfa
Makaleler
Akıllı Sözleşme Nedir?

Akıllı Sözleşme Nedir?

Orta Seviye
Yayınlanma: Sep 16, 2019Güncellenme: Jun 9, 2023
9m

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.

Kripto para dünyasında ise akıllı sözleşme, blockchain üzerinde çalışan bir uygulama ya da program olarak tanımlanır. Genellikle akıllı sözleşmeler, belirli kurallarla uygulamaya koyulan dijital anlaşmalar seklinde hizmet görür. Bu kurallar, bilgisayar kodu tarafından önceden tanımlanmıştır ve ağdaki tüm düğümler tarafından takip edilir ve uygulanır.

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.

Bitcoin protokolü uzun yıllardır akıllı sözleşmeleri destekliyor olsa da bunları popüler hale getiren Ethereum'un yaratıcısı ve kurucu ortağı Vitalik Buterin'dir. Yine de her bir blockchainin akıllı sözleşmeleri uygulamaya koymak için farklı yöntemler kullanabileceğini de belirtmek gerekir. 

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.

Özelleştirilebilir. Akıllı sözleşmeler, kullanıma sunulmadan önce farklı birçok şekilde kodlanabilir. Dolayısıyla, birçok türde merkeziyetsiz uygulama (DApp) oluşturmak için kullanılabilirler. Bunun nedeni, Ethereum'un Turing bütünlüğüne sahip bir blockchain olmasıdır.

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.

Diğer bir deyişle, akıllı sözleşmeler farklı birçok kullanım alanı için tasarlanabilir. Bu kullanım alanlarına örnek olarak tokenleştirilmiş varlıkların yaratılması, oylama sistemleri, kripto cüzdanları, merkeziyetsiz borsalar, oyunlar ve mobil uygulamalar verilebilir. Sağlık, hayır işleri, tedarik zinciri, yönetişim ve merkeziyetsiz finans (DeFi) alanlarında diğer blockchain çözümleriyle birlikte kullanılmaları da mümkündür.


ERC-20

Ethereum blockchaini üzerinde çıkarılan tokenler ERC-20 olarak bilinen bir standardı takip eder. Bu standart, tüm Ethereum bazlı tokenlerin temel işlevlerini tanımlar. Dolayısıyla da bu dijital varlıklar genellikle ERC-20 tokenleri olarak anılır ve mevcut kripto paraların büyük bir kısmı bu tokenlerden oluşur.
Birçok blockchain şirketi ve startup'ı dijital tokenlerini Ethereum ağı üzerinde çıkarabilmek için akıllı sözleşmeleri kullanmıştır. Bu şirketlerin büyük çoğunluğu, ERC-20 tokenlerini çıkardıktan sonra bu tokenleri İlk Coin Arzı (ICO) etkinlikleriyle dağıtır. Akıllı sözleşmelerin kullanılması, güvene dayalı olmayan ve verimli bir şekilde fonların el değiştirmesine ve tokenlerin dağıtılmasına çoğu örnekte imkan tanımıştır.


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.

Akıllı sözleşme değiştirilemez olduğundan geliştiriciler kodu düzeltememiştir. Bu da nihayetinde bir sert çatallanmaya neden olmuş ve ikinci bir Ethereum zinciri yaratılmıştır. Basitçe ifade edecek olursak, zincirlerden biri saldırıyı "tersine çevirmiş" ve fonları gerçek sahiplerine iade etmiştir (bu zincir şu anki Ethereum blockchaininin bir parçasıdır). Diğer zincir ise blockchain üzerinde olanların hiçbir zaman değiştirilmemesi gerektiğini belirterek saldırıya müdahale etmeme kararı almıştır (bu zincire şu anda Ethereum Classic adı verilmektedir).

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.