(Çok) Akıllı Sözleşmeler
Blockchain kavramı ilk başta Bitcoin benzeri kripto para (cryptocurreny) çözümlerinin alt yapısı olarak popülerlik kazanmıştır. Ancak zaman içerisinde temelindeki teknolojinin gerçek potansiyelinin daha iyi anlaşılması, bu platform üzerinde sunulabilecek daha farklı servis ve hizmet yaklaşımlarının ortaya çıkmasını tetiklemiştir. Bu yeni servis ve hizmetler kapsamında günümüzde en çok ilgi çekenlerden birisinin Akıllı Sözleşme (Smart Contract) kavramı olduğu kanısındayım ve bu yazıda bu konuya kısaca değinmek istiyorum.
Akıllı sözleşme kavramına daha yakından bakmadan önce “sözleşme” kavramını hızlı bir şekilde incelemenin doğru olacağını düşünüyorum. Sözleşme, bir hukuk terimi olarak “hukuksal bir sonuç doğurmak amacıyla, iki ya da daha çok kişinin ya da kuruluşun, karşılıklı ve birbirine uygun irade bildirişiyle gerçekleşen, koşullara uyulması yasa ile desteklenmiş işlem” olarak tanımlanmıştır. Ama biz bu yazı kapsamında akıllı sözleşmeleri basit bir şekilde “taraflar arasındaki yükümlülükleri tanımlayan anlaşma” şeklinde düşünebiliriz.
Akıllı sözleşme kavramı, Blockchain’den bağımsız olarak, ilk olarak 1994 yılında bir bilgisayar bilimcisi olan Nick Szabo tarafından çeşitli taraflar arasındaki etkileşimleri güvenli hale getirip uygun şekilde yürütülmesini sağlayan bilgisayar programlarını/sistemlerini tanımlamak amacı ile ortaya atılmıştır.
Bu yaklaşımı Blockchain bağlamında incelersek, “akıllı sözleşmeler
- içinde mantıksal akışların önceden yazılmış olduğu (yani “eğer bu olursa şunu yap” tarzı akışların olduğu bir bilgisayar kod bloğu)
- dağınık, merkezi olmayan bir platform üzerinde saklanıp çoğaltılan (yani blockchain)
- bir bilgisayar ağı tarafından çalıştırılan/işletilen (yani blockchain’in üzerinde çalıştığı bilgisayar ağı)
- güvenilirliği bir bilgisayar ağı tarafından doğrulanan (yani blockchain)
- üzerinde bulunduğu yapı/platform üzerinde güncellemelere yol açabilen (yani kripto para ödemeleri/transferleri, yeni akıllı sözleşmelerin yaratımı gibi)
ufak programlardır” şeklinde bir tanımlama doğru olacaktır.
Akıllı sözleşmeler, ilişkili tarafların kapsam üzerinde anlaşmalarından sonra hazırlanıp, kriptografik olarak imzalanıp blockchain’e yüklenirler. Yüklenmiş sözleşmeler, blockchain üzerinde olan diğer bileşenlerle etkileşim kurabilirler (kendisi diğer bileşenlere yada diğer bileşenler sözleşmeye bilgi içeren mesajlar gönderebilir). Bu etkileşim bir işlemin (transaction) başlatılması olabileceği gibi bir bilginin gönderilmesi/teslim alınması şeklinde olabilir. Sözleşme hazırlanırken içerisinden belirlenmiş durumlar oluştuklarında (bu konuda bir mesaj alınması gibi), akıllı sözleşmeler otomatik olarak içerisinde tanımlanmış olan anlaşma koşullarının çalıştırılmasını sağlar.
Örneğin bir vadeli işlem ve opsiyon akıllı sözleşmesi, ilişkili hisse senedinin işlem fiyatının önceden belirlenmiş bir değere ulaşması durumunda ilgili taraflar arasında karşılıklı hisse transfer ve ödeme işlemlerini tetikleyebilir. Mesela bir sigorta akıllı sözleşmesi, hava durumu veri kaynağı ile ilişkiye geçerek yağmur oranının belirli bir seviyenin altına düşmesi durumunda taraf olan üreticiye ilgili sigorta ödemesinin gerçekleşmesini tetikleyebilir. Yada bir vadeli çek akıllı sözleşmesi, tahsil tarihi geldiğinde ilişkili tarafa ödeme yapılmasını, ödeme yapılacak hesapta yeterli bakiye olmaması durumunda kendisini oluşturan çek defteri akıllı sözleşmesinin dondurulmasını tetikleyebilir.
Bitcoin kapsamındaki blockchain yapısı, limitli yeteneklerinden dolayı, akıllı sözleşmeler tanımlarının yapılması kendi üzerinde tanımlanan üst platformlar aracılığı ile sağlayabilmektedir. Bu noktada Ethereum gibi “Blockchain v2" olarak adlandırılan daha güncel blockchain platformları özellikle sağladıkları yerleşik betik dil (scripting language) desteği ile akıllı sözleşmelerin başka üst platformlara ihtiyaç duyulmadan tanımlanmasına olanak sağlamaktadırlar. Ethereum platformu üzerinde yapılan akıllı sözleşme tanım sayılarına bakıldığında hızlı bir yükseliş olduğu görülebilmektedir.
Örnek olarak Ethereum üzerinde basit bir alışveriş akışı için emanet yapısını içeren oldukça basitleştirilmiş bir akıllı sözleşme şu şekilde tanımlanabilir:
Ethereum üzerinde çok daha detaylı akıllı sözleşme senaryoların tanımlanması mümkündür, örneğin bu konuda artık klasik bir anlatım haline gelen şu bahis senaryosundan bahsedebiliriz: “Ahmet ve Mehmet önümüzdeki sene İstanbul'da hava sıcaklığının 35ºC aşmayacağına dair 100 xCoin üzerinden bir bahis düzenlemeye karar verirler. Ahmet güvenlik konusuna dikkat ettiği için ana hesabı 3 gizli anahtarın (private key) en az ikisinin onayı ile etkileşim kuran bir iletici kontrat (forwaring contract — hesaplara erişimi kontrol etmek için kullanılan, çeşitli direktif tanımlarının yapılabildiği ara bileşenler) kullanmaktadır. Mehmet ise kuantum bilgisayarları konusunda takıntılı olduğundan bu konularda güvenli olduğunu düşündüğü Lamport imza yapısı (SHA256) kullanan mesajlarla etkileşime geçen bir iletici kontrat kullanmaktadır”. Bu senaryoyu görselleştirmek istersek:
Mehmet bu sözleşmeyi sonuçlandırmak istediğinde, şu adımlar gerçekleşir:
- Mehmet’in hesabından iletici kontratına bir mesaj gönderilir.
- Mehmet’in iletici kontratı mesaj bilgisini Lamport imzası ile birlikte Lamport imza doğrulaması yapabilen bir kontrata yönlendirir.
- Lamport imza doğrulama kontratı kendisine gelen istekte SHA256 tabanlı imzalama istendiğini görerek ilgili kütüphaneyi kullanarak doğrulama işlemini yapar.
- Doğrulama işlemi sonrasında Mehmet’in iletici kontratı bahis sözleşmesine bahis içeriğini kontrol etmesi ile ilgili bir mesaj gönderir.
- Bahis sözleşmesi, İstanbul’daki hava durumu bilgisini kontrol edebileceği kontrat üzerinde bahis koşullarını kontrol eder.
- Hava sıcaklığının 35ºC’nin üzerine çıktığını gördüğünde xCoin kontratına bir mesaj göndererek üzerinde bloke edilen 1oo xCoin’in Mehmet’in hesabına gönderilmesini sağlar.
Akıllı sözleşmeler, şu anda kullanımda olan geleneksel sözleşme yapılarına karşı çeşitli avantajlar sunmaktadır. Bunları özellikle göze çarpanlarını incelersek:
- Akıllı sözleşmeler genel olarak manuel yürütülen süreçleri yazılım tabanlı olarak otomatize ettiklerinden dolayı iş akışlarına hız kazandırır.
- Bu kapsamda otomatize edilmiş işlemler manuel hatalara karşı daha dayanıklıdır.
- Akıllı sözleşmelerin merkezi bir yapı yerine ağ üzerinde dağınık olarak uygulanması manipülasyon, yerine getirilmeme gibi risklerini düşürmektedir.
- Akıllı sözleşmeler, “güven” amaçlı aracı kurumlara duyulan ihtiyacı minimize eder.
- Akıllı sözleşmeler, daha az insan girdisine/takibine ihtiyaç duyması ve aracı kurumlara daha az bağımlı olmasından dolayı daha düşük maliyetlidir.
Akıllı sözleşmeler konusunda genelde, yukarıda belirttiğim noktalar baz alınarak, oldukça pozitif değerlendirmeler yapılsa da hala emekleme aşamasında olan bir teknolojik yaklaşım olduğu ve çözmesi gereken temel sorunlarının olduğu unutulmamalıdır. Bunların bazılarına değinmek gerekirse:
- Gecikme süresi: Şu andaki blockchain yapıları, işlemlerin doğrulanıp blok mantığında eklenmesi aşamasında yüksek gecikme sürelerine katlanmak zorundadırlar. Blockchain olmayan veri tabanı yapılarında bu işlemler milisaniye cinsinden ölçümlenirken örneğin Ethereum’da bu değer ortalama 15–17 saniye kadar sürmektedir.
- Dış bilgiye erişim: Akıllı sözleşmelerin sadece blockchain üzerindeki bilgilere erişimleri olduğundan dolayı dış sistemlerdeki olayları ve bilgileri blockchain yapılarına yönlendirecek güvenilir veri servislerine ihtiyaç duyulmaktadır (bu tarz servislere “oracle” denmektedir, yukarıdaki örneklerde İstanbul’un hava durumu bilgisini sağlayan servis bu kapsamda değerlendirilir).
- Güvenlik: Blockchain yapıları kriptografik olarak veri güvenliği sağlıyor olsalarda blockchain üzerinde yapılan akıllı sözleşme tanımlarında, kullanılan platformların yapısının doğru anlaşılmaması kaynaklı hatalı uygulama yapılarının olabildiği gözlemlenmiştir. Singapur Ulusal Üniversitesi (National University of Singapore) tarafından yapılan akademik bir çalışmada Ethereum üzerinde tanımlı 19.366 akıllı sözleşmeden 8.833 tanesinde sözleşmenin manipüle edilip sonucunda kazanç elde edilebilecek güvenlik açıklarının olduğu tespit edilmiştir.
- Esneklik: Blockchain tabanlı akıllı sözleşmelerin “değiştirilemez” yapısından dolayı geliştiriciler sözleşme üzerinde değişiklik gerekebilecek tüm olası senaryoları önceden düşünmek ve sözleşme tanımına eklemek zorundadırlar. Bu gerçek dünya kullanımlarında olması esneklikler açısından sıkıntı yaratmaktadır.
Bir sonraki yazımda Blockchain tabanlı uygulamalar arasında yine oldukça fazla üzerinde durulan “kimlik yönetimi” (identity management) konusuna değinmeyi, olası senaryolar ve etkileri konusunda bir fikir jimnastiği yapmayı planlıyorum. O zamana kadar sağlıcakla kalın…