Akıllı Sözleşmeler

Akıllı Sözleşmeler

Giriş

Borçlar hukukunun en temel kavramlarından biri olan sözleşmeler, 6098 sayılı Türk Borçlar Kanunu’nun 1. maddesinde düzenlediği gibi, “tarafların iradelerini karşılıklı ve birbirine uygun olarak açıklamaları ile kurulur.” Borç ilişkisinin kaynaklarından biri olan sözleşmeler, yazılı veya sözlü olarak kurulabileceği gibi, dijital ortamda da kurulabilmektedir. Klasik öğretide sözleşme konusu “edimi” taraflar yerine getirir. 

Akıllı sözleşmeleri, yalnızca, dijital ortamda meydana getirilen bir sözleşme olarak tanımlamak doğru değildir. Akıllı sözleşme, konusu olan edimi kendiliğinden (otonom) olarak yerine getirdiği için klasik sözleşmelerin dijital versiyonlarından ayrı bir özellik gösterir. İnternetten yapılan bir alışverişte kullanılan “mesafeli satış sözleşmesi” dijitize edilmiş klasik bir sözleşme iken, bir akıllı sözleşme, bünyesinde barındırdığı kodlar sayesinde edimleri kendiliğinden yerine getirir. Bu yazıda akıllı sözleşmelerin tarihi, oluşturulması, çeşitleri, günümüze geldiği şekli ve hukuken geçerliliği, son olarak da barındırdığı tehlikeleri ele almaya çalışacağım. 

“Akıllı Sözleşme” Nedir? Nasıl ortaya çıktı?

İngilizcesi ile “smart contract” teriminden, sözleşme konusu edimi kendiliğinden bir sözleşme olduğu anlaşılmaktadır. Günümüzdeki anlamı, akıllı sözleşme teriminin tarihte ortaya çıkışı ile pek uyuşmamaktadır. Zira, Nick Szabo, 1994’de smart contracts terimini ilk kez kullandığında, blokzincir teknolojisi henüz bilinmiyordu ve internet de henüz emekleme aşamasında idi. Szabo, akıllı sözleşmeleri, “bilgisayar ağları üzerinden kurulan ilişkileri resmileştirmek ve güvence altına almak için oluşturulan kullanıcı arayüzü bulunan bir protokol” olarak tanımlamıştı.  Ona göre akıllı sözleşmeyi, internetin ilk çağlarında, internet üzerinden girilen borç ilişkilerini i) resmileştiren ii) güvence altına alan iii)kullanıcı arayüzü bulunan bir algoritma olarak düşünmüştü. Bu tanımdan, akıllı sözleşmelerin mevcudiyeti için blokzincir teknolojisinin şart olmadığı, hatta bilgisayarlar internet dışında başka bir ağ üzerinden haberleşebiliyorsa, internetin de şart olmadığı anlaşılmaktadır. Gerçekten de günümüzde, işlevsel görünmese de radyo dalgaları üzerinden dahi Bitcoin transferi yapılabildiğine göre, akıllı sözleşme sadece internete veya sadece blokzincire bağımlı değildir.  Akıllı sözleşmenin net bir tanımı olmasa da, edimleri ifa edebilen otonom bir bilgisayar protokolü olduğunu ortaya koymak gerekir.

Akıllı sözleşmelerin en önemli özelliği, klasik sözleşmenin yapamadığı bir unsur olan “smart” özelliğidir. Bir akıllı sözleşme, kendisini oluşturan kodlar sayesinde, sözleşme ile etkileşime geçen taraflara karşı, kodunda vaat ettiği edimleri otomatik olarak yerine getirir. Blokzincir üzerindeki bir akıllı sözleşme ile etkileşime geçildiğinde ise, sözleşmenin kodu, onunla etkileşime geçen tarafları, tarihi, tarafların sözleşmeden elde ettiği kazanımı ve o sözleşmede kaydedilmesi istenen diğer bilgileri blokzincire kaydeder. Blokzincir teknolojisinin en büyük avantajı olan bu geri alınamazlık nedeni ile, akıllı sözleşme ile bir defa etkileşime girildikten sonra bunu geri almak genelllikle mümkün değildir. Dolayısıyla taraflar, karşılıklı iradeleri birbiri ile uyuştuktan sonra, sözleşme konusu edimlerin ifasını bir akıllı sözleşme ile ve blokzinciri üzerinde yapmaya karar vermişlerse, edimler otonom olarak ifa edilecek demektir. Görüldüğü gibi klasik bir sözleşmede olduğu gibi, sözleşmenin bizatihi kendisinin ortaya çıkması için tarafların mevcudiyeti ve iradelerinin mevcudiyeti, akabinde bunların uyuşması zorunludur. Ancak bütün bunlar ortaya çıktıktan sonra, edimlerin otomatik olarak ifası hususunda bir mutabakat da bulunmalıdır. Bu mutabakat sonucunda otomatik icra kabiliyetine sahip akıllı sözleşme kodlandığında, akıllı sözleşme ortaya çıkmış olacakktır. Demek ki, bir akıllı sözleşme, edimlerin otomatik olarak ifasında kullanılmak üzere programlanan bir yazılım, sözleşmenin otomatik olarak ifasında kullanılan bir araçtır. Bu halde “off-chain” olarak ortaya çıkmıştır, ancak akıllı sözleşmeler “on-chain” olarak da oluşturulabilirler. 

Blokzincir teknoloji ile çifte harcama probleminin önüne geçilmiştir. Bir kripto varlık, bir kez kodlanarak blokzincire kaydedildikten sonra o kripto varlığı, aksi en baştan kodlanmadığı sürece, kopyalamak imkansızdır. Bugün bitcoin’in, sınırlı arzı olduğundan geleceğin parası olacağı düşünülmektedir. Bitcoin, mimarisi itibariyle akıllı sözleşmelerin mevcudiyetine imkan vermediğinden, yazılımcılar bu tür hukuki ilişkileri icra edilebilecek başkaca blokzincirler geliştirmişlerdir. Bunların en meşhuru ve ilki, ethereum blokzinciridir. Bu blokzincirde kullanılan “ether”, bir “coin” olarak kodlanmıştır ve ona hasredilen ekonomik değeri ile, akıllı sözleşmelerde en çok kullanılan takas aracı olarak kendine yer bulmuştur. Bu blokzincirde kodlanacak sözleşmeler ile, satış, kira, trampa, hatta miras ve benzeri sözleşmeleri tasarlamak mümkün olduğu gibi onlara otonom ve geri alınamazlık özellikleri vermek de mümkündür. Bilişim dünyasındaki her konuda olduğu gibi burada da kullanılan özel dil(kod) nedeniyle çeşitli güvenlik tehditleri mevcut olsa da, çifte harcamanın önlenmesi ve dijital bir varlığa zilyet olabilme, zilyetliği devredebilme ve hatta onu yok etme kabiliyetlerine sahip akıllı sözleşmelerin ekonomi, hukuk ve teknoloji alanlarında yeni bir çağı başlattığı düşünülmektedir.

Akıllı Sözleşme “Tam Olarak Nedir?” ve Nasıl Çalışır?

Akıllı sözleşmenin özelliklerine ve kitabi bilgilere geçmeden önce, öncelikle “akıllı sözleşmenin” neye benzediği ve nasıl göründüğü anlaşılmalıdır. Günümüzde fiilen kullanıldığı şeklinde, akıllı sözleşmelerin bir blokzinciri üzerinde çalışması zorunludur. Tarafların, tekrar tekrar üretilebilen ve taraflardan diğerine aktarıldıktan sonra tekrar tekrar üçüncü kişilere de aktarılabilen bir varlığa ekonomik değer atfetmeyeceği kuşkusuzdur. Örneğin, hiç kimse binlerce kişiye mail olarak bile gönderilebilecek bir .jpeg dosyası için para ödemez. Ancak ünlü bir sanatçıya ait eser, token haline getirilmiş ve blokzincir üzerine kaydedilmiş ise milyonlarca dolar ödeyebilecek alıcılar bulunabilir. Dolayısıyla, akıllı sözleşmeleri en çok kullanıldığı şekliyle ethereum blokzincirinde ve bu mimari özelinde inceleyeceğiz

Resim - 1: Solidity dili ile yazılmış ve etkileşime giren kişiye “LEXCIO” kelimesini döndüren Bir Akıllı Sözleşme örneği

Yukarıda görülen “solidity” dili ile yazılan bir akıllı sözleşmede, çeşitli betimleyiciler(string, address, constructor vb.), fonksiyonlar(function, çağrıldığında içine yazılan kodu çalıştıran fonksiyonlar) , mantık dizileri (if…else… dizisi, true/false dizisi gibi mantıksal diziler) bulunur. Yukarıdaki sözleşme basitçe, kendisi ile etkileşime giren “adrese” bir string(LEXCIO kelimesi) ile cevap verir. Pekala anlaşılacağı üzere, sözleşmenin etkileşime giren kişiye “döndüreceği” şey bir kelimeden çok daha fazlası, bir hakkı ifade eden benzersiz bir token, bir miktar ether/coin veya başka pek çok şey olabilir. Yine binlerce satırdan oluşabilecek bir akıllı kontrat yazılabileceği gibi, çok daha karışık algoritmalar da kullanılabilir. Bir akıllı sözleşmeye ekonomik değer atfeden şey, onunla etkileşime giren kişiye transfer ettiği Token’dır. Aşağıda, bir akıllı sözleşmeye konu olabilecek benzersiz olarak üretilmiş bir token’ı göreceksiniz:

 

Resim - 2: ERC20 standardında oluşturulan bir Token: LexcioToken

Resim-2’de gösterilen token, bir blokzincire “deploy” edildiğinde, blokzincire geriye alınamaz* şekilde bir kayıt oluşturulur. İlgili ağın scanner’ı incelenirse, hangi bloğa hangi tarihte hangi verilerle ve kim tarafından kaydedildiği açıkça anlaşılır. Örnekte, LexcioToken adında, Rinkeby Test ağında, LEXCT simgeli, toplam 1000 adet ile sınırlı, virgülden sonra 10 üzeri 18 ondalıklı (eş deyişle toplam arzı 1000 adet olmasına rağmen en az 1.10-18 tane transfer edilebilen.), ERC20 standardına sahip, ilk yaratıldığında token’ı oluşturan kişinin cüzdanına(msg.sender) aktarılacak bir token oluşturulmuştur. Bu token’a benzer hatta aynı adda token üretmek mümkünse de, aynı “hash” ile, aynı blokta, aynı ağda, aynı zaman damgasına sahip, aynı kullanıcı tarafından “aynı tokenı üretmek mümkün değildir”. Bu token’ın bir contract adresi bulunur, bu contract adresinden kimlerin bu token’a sahip olduğu, tokenların kimden kime ne zaman aktarıldığı, kimin kaç tokena sahip olduğu çok kolay bir şekilde tespit edilebilir.

Token’ı cüzdanda görüntülemek için, contract adresi bilgisine sahip olmak ve cüzdana import etmek gerekir. Böylelikle cüzdan sahibi, Token cüzdanına aktarıldığında, tam manasıyla Token’ın “zilyedi” olur.

 Örnekteki gibi bir token da esasında bir akıllı sözleşme ile üretilir ancak bu sözleşme ne herhangi bir tarafa borç yükler ne de esasen hukuki bir sözleşmedir, bir kişinin kendine ait bir token’ı ürettiği basit bir yazılımdan fazlası değildir. Dolayısıyla, Türkçe çevirisi’nde adında “sözleşme” kelimesi geçse de, Solidity dilinde kullanılan ve bu şekilde Token yaratmaya yarayan bir fonksiyon olan “contract”’ı, akıllı sözleşme veya hukuki bir sözleşme olarak anlamamak, aynı ada sahip bu iki kavramı birbiri ile karıştırmamak gerekir. Bu nedenle doktrinde “smart legal contract” kavramı da türetilmiştir. Dolayısıyla token üretmekte kullanılan yazılımları gerçek anlamda akıllı sözleşme saymayan görüşler de mevcuttur. Tam manasıyla her iki tarafa borç yükleyen ve edimleri otonom olarak yerine getiren, “on-chain” bir akıllı sözleşmeyi örneği göstermek adına, aşağıda, bir NFT Pazaryeri olan OpenSea’nin SeaPort isimli akıllı sözleşmesini göreceksiniz: 

Resim - 3: OpenSea’nin SeaPort protokolünün yalnızca ilk 118 satırı. Açık kaynak kodun tamamına (https://github.com/ProjectOpenSea/seaport) adresinden erişilebilir. Koddaki herhangi bir güvenlik açığını bulabilene 1.000.000 $ ödül verilmektedir.

Yukarıda görülen Seaport protokolü, tarafların birbirine uygun ve karşılıklı irade beyanları ile NFT satın alabileceği, tarafların NFT’lerini takas edebileceği bir pazaryerinin akıllı sözleşmesidir. Bu kontrat ile etkilişime girebilmek için OpenSea websitesi üzerinden cüzdan adresi bağlanmalı ve yeterli bakiyeye sahip olunmalıdır. Satıcılar, çok basit bir kullanıcı arayüzü ile bu akıllı kontrata bağlı olarak daha küçük akıllı kontratlar oluştururlar, burada satmak istedikleri NFT’yi ve bedeli belirlerler. Satıcı, NFT’yi “list” ettiğinde, eş söyleyişle kendi NFT’sini satmak üzere bir akıllı kontrat oluşturduğunda bu kontrat ilgili ağda kaydedilerek tetiklenmeyi bekler. Alıcı, Satıcı tarafından oluşturulan bu kontratla etkileşime girerek Satıcı’nın belirlediği ücreti öder. Akıllı sözleşmenin otonom özelliği sayesinde ücret Satıcı’nın cüzdanına; NFT ise Alıcı’nın ücretine aktarılır. SeaPort protokolü, her pazaryerinde olduğu gibi Alıcı’nın Satıcı’ya ödeyeceği ücrete bir miktar komisyon eklemeyi ve aynı komisyonu Satıcı’dan da almayı ihmal etmez(Bugün için her işlem başına %2,5. Satıcıya gönderilen ücret ve Alıcı’ya gönderilen işlemlerin her biri ayrı ayrı bir transaction’dır/işlemdir.). Dolayısıyla sözleşme, Alıcı ve Satıcı’ya karşı edimlerini yerine getirmesinin yanı sıra, aynı anda Pazaryeri’nin cüzdanına da ilgili komisyonu aktarır. 

Akıllı Sözleşmelerin Tarafları

Her sözleşmede olduğu gibi, örneğin bir takas sözleşmesinde sözleşme yapacak en az iki taraf bulunmalıdır. Akıllı sözleşmeler de iki veya daha çok taraflı olabilirler. Ancak bir fark vardır ki, akıllı sözleşme ile etkilişime giren taraflar, isim, adres, vergi kimlik numarası vb bilgileri ile değil, anonim bir cüzdan adresi ile etkilişime girerler. Bu da kripto varlıkların konu olduğu ve kripto varlık cüzdanı kullanılan her senaryado bir taraf teşkili ve ehliyet hususlarında sorun çıkaracaktır. Hukukumuzda, sözleşmenin taraflarının en azından fiil ehliyetine sahip olmaları gerekir ki sözleşme yapabilsinler. Ne var ki, akıllı sözleşmenin kendisi bir araç olduğundan, bir sözleşmenin ifasında salt bu aracın kullanılmasının taraflar arasındaki sözleşmenin geçerliliğine bir etki etmeyeceği kanaatindeyim. Taraflar arasındaki takas sözleşmesinde akıllı sözleşme kullanılması taraf teşkili hususunda sorun yaratabilir ancak takas sözleşmesine uygulanacak Borçlar Kanunu hükümlerini etkilemez, her halukarda meri hukuk uygulanacaktır. Dolayısıyla uyuşmazlık halinde ispat problemleri başka bir konu olsa da, akıllı sözleşmeler ile etkileşime geçen cüzdanın anonimliği hak ve taleplerin ileri sürülmesinde problem yaratabilecektir. Mümeyyiz olmayan bir çocuğun okulda bir kalem satın alması geçerli bir sözleşme ise, akıllı sözleşme ile etkileşime girebilen ve kripto varlık cüzdanı kullanabilen bir sınırlı ehliyetsizin de sözleşme dilini anladığı ve iradesinin bu yönde cereyan ettiği düşüncesine kıymet verilmelidir. Her somut olayda değişecek olmakla birlikte, hata hile ve korkutma hallerinde, hipnoz veya uyuşturucu etkisinde yapılacak işlemlerde de işlemin akıllı sözleşme üzerinde yapılması bir kenara bırakılarak, genel hükümlerin uygulanması öncelikle düşünülmelidir. Buradaki ispat problemi teknik uzmanlar eliyle çözülebiliyorsa tazminat dahil her türlü talebin dava ile ileri sürülebilir. 

Akıllı Sözleşmeler ve Hukuk

Blokzincir teknolojisinin popülerleşmesine neden olan Bitcoin esasında anarşi içeren bir anlayışla ortaya çıkmıştı. Bitcoin’in yaratıcısı Satoshi Nakamoto, bitcoin’in genesis(ilk) bloğuna aşağıda resimde görülen ifadeyi eklemişti: 

"The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”

Resim - 4: Bitcoin Genesis Bloğunun Kaynak Kodu. Satoshi, devletlerin bankaları kurtarmak için para basmasına itiraz ediyordu. (Kaynak: https://mempool.space/block/000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f)

Devletlerin tekelindeki para basma yetkisi, hükümranlığın bir simgesidir. Bitcoin, bu yetkiyi devletlerden alarak insanlara vermeyi hayal ediyordu. Ne var ki bitcoin’in bugün dahi stabil bir değerinin olmaması ve bütün dünyada kullanımı amaçlayan global ölçeği onun halen erken çağlarında olduğunu göstermektedir. Teknoloji geliştikçe, blokzincir teknolojisinin yalnızca coin üretmeye yaramadığı, akıllı sözleşmelerin de mümkün olduğunu göstermiştir. Tarihin her aşamasında olduğu gibi günümüzde de kişiler arasında bir şeylerin takası yapıldığı sürece bütün süreci düzenleyecek bir hukuk sisteminin varlığı zorunludur. Gelişen ticari hayat nedeniyle kişiler arasında uyuşmazlıklar doğar. İnsanlar arasındaki mal ve hizmet paylaşımının devam edilmesi gereği, bu uyuşmazlıkların sistematik bir şekilde çözülmesine imkan verilmesini zorunlu kılar. Bu da ancak rasyonel bir hukuk sistemi ile mümkün olur.

 

Akıllı sözleşmelerin oluşturulabilmesine imkan veren Ethereum blokzincirinin kurucuları aynı zamanda bir dernek olan ethereum foundation’ın web sitesinde akıllı sözleşmeler bölümünün girişinde geliştiricilere su soruyu sorar: “Muhtemelen şunu dünüyorsunuz: ben hukukçu değilim ki, sözleşmelerden bana ne?”. Yazılımcılar da kendilerine bu soruyu sorduğuna göre, akıllı sözleşmelerin, yazılım ve hukuk arasında veya bunların birleşiminden olan multidisipliner bir alan olduğunu söyleyebiliriz.

Resim - 5: Ethereum Foundation websitesindeki Akıllı Sözleşmeler Bölümü

(Kaynak: https://ethereum.org/tr/smart-contracts/)

Hukukun en temel kavramlarından biri sözleşmelerin, uyuşmazlıkların doğumuna sebep olan belli başlı bazı zayıflıkları vardır. Bunlara tarihsel gelişimi içinde zayıflık denemezse de, akıllı sözleşmelerin yanında bunlar zayıflık gibi görünür. Örneğin klasik bir hukuki sözleşmede tarafların birbirine, dolayısıyla edimlerin ifa edileceğine güvenirler.  Akıllı sözleşmelerde değil tarafların birbirine güvenmesi tarafların birbirini tanıması, bir arada bulunması dahi gerekmez. Taraflar arasındaki hukuki ilişkilerin otonom bir şekilde düzenlenmesini, ifasını sağlayan bir akıllı sözleşmenin, mutlaka hukukun alanına girer. Dolayısıyla akıllı sözleşmelerin de hukuk düzenine uygun ve ihtiyaçlara cevap verir şekilde düzenlenmesi zorunludur. 

 

Bir akıllı sözleşme, esasında bilgisayar kodundan oluşur. Sözleşme özgürlüğü çerçevesinde bir sözleşme yabancı dilde akdedilebileceği gibi yazılı, sözlü olarak da akdedilebilir. Doktrinde aksi yönde görüşler olsa da hakim görüş, sözleşmenin bilgisayar kodu olarak da akdedilebileceğidir. Tarafların bu kodu anlamamaları, başka dilde sözleşme tarafı olma ile aynı sonuçları doğurur. Türkçe bilmeyen birinin Türkçe sözleşme akdetmesi ile programlama dili bilmeyen birinin bir akıllı sözleşmeye taraf olması hukuk düzeni içinde aynı sonuçları doğurur. 

 

Akıllı Sözleşmelerin Türleri

Doktrinde akıllı sözleşmeler çeşitli ayrımlara tabi tutulmaktadır. Bunlardan biri, dar anlamda akıllı sözleşme / geniş anlamda akıllı sözleşme ayrımıdır. Dar anlamda akıllı sözleşmeden, tarafların blokzincir veya dijital dünya dışında yaptıkları bir sözleşmenin yalnızca akıllı sözleşme eliyle ifa edildiği sözleşme tipidir. Burada taraf iradeleri yalnızca blokzincir üzerindeki akıllı sözleşmede uyuşur. Geniş anlamda akıllı sözleşme ise, onu oluşturan kodun denetlenebildiği, belirli şartların varlığı halinde tetiklenen, otonom olarak edimleri ifa eden ve her bir somut duruma karşı özelleştirilebilen sözleşme tipidir.

Akıllı sözleşmeler on-chain veya off-chain olarak da ikiye ayrılır. Off-chain sözleşmelerde taraflar arasındaki irade beyanları blokzinciri dışında uyuştuktan sonra bunu dijital ortama taşırlar. Bu halde sözleşmenin edimlerinin ifasında akılı sözleşme bir araç olarak kullanılır. Onchain sözleşmelerde ise sözleşmenin blokzincire taşınmadan önce tarafların üzerinde mutabıkları bir anlaşma hatta tarafların kendisi ve edimler dahi bulunmaz. Bunların tamamı zincir üzerinde ve akıllı sözleşmenin kodu ile birlikte aynı anda ortaya çıkar. Kodun içerisinde yer almayan hiçbir husus anlaşmanın bir parçası sayılmaz.

Bunun dışında her akıllı sözleşme, hukuki akıllı sözleşme olmayabilir. Akıllı sözleşmeler kimi zaman ve hatta hacker’lar tarafından genellikle hukuki olmayan amaçlar için üretilirler. Bunun yanında akıllı hukuki sözleşme kavramı da, taraflar arasındaki hukuki bir sözleşmenin akıllı sözleşme halini ifade eder. Bu halde taraflar arasındaki hukuki ilişkide, belli şartlar gerçekleştiğinde kendiliğinden ifa edilecek edimler, akıllı sözleşme kodu ile otonom bir şekilde ortaya çıkmaktadır. Bu açıdan her akıllı sözleşme kodu akıllı hukuki ilişkiye işaret etmeyebilir ancak her akıllı hukuki sözleşmede bir akıllı sözleşme kodu yer alır.

Akıllı Sözleşmeler ile Ricardian sözleşme arasında da bazı farklar bulunur. Bir Ricardian sözleşme, tarafların üzerinde anlaştıkları ve her ikisinin de imzaladığı, insanlar tarafından kolayca okunabilen, makine koduna dönüştürülebilen bir sözleşmedir. Akıllı sözleşmelerin ilk ortaya çıktığında uzmanlığı olmayan insanlar tarafından okunması ve anlaşılması mümkün değildir. Bu nedenle günümüzde Ricardian sözleşmeler ile akıllı sözleşmelerin birleştirildiği Smart Contracts 2.0 kavramı da gündeme gelmektedir.

İkili Mantık Sorunu ve Bulanık Mantık

Akıllı sözleşmeler otonomluk ve güvensiz güven gibi özellikleri sağlamasının yanı sıra teknolojisinden kaynaklanan bazı sınırlılıkları bulunur. Bilindiği üzere hukuki metinler her zaman tamamen anlaşılır ve kesin değildir. Örneğin “makul süre”, “makul bir miktarda”, “hakkaniyete uygun” gibi ifadeler, 1 ve 0’lardan oluşan bir programlama koduna yansıtılamayabilir. Bu noktadan sonra, hukuki metodoloji ve hukuki mantık ilkeleri ile akıllı sözleşmelerin bir araya getirilip getirilemeyeceği tartışılmalıdır. 

Hukuk metodolojisi, bir hukuki problemin nasıl ele alınacağını inceler. Hukuk metodolojisi, hukuki problem karşısında yerinde bir hukuki karar almayı hedefler. Bu yönüyle hukuk, kurallardan oluşan normatif ve aynı zamanda etik bir bilim dalıdır. Dolayısıyla akıllı sözleşmeler kapsamında kodun hukuki dile yakınlaştırılmasında hukukun normatif yönünü ve etik yönünü unutmamak gerekir. 

Hukuki normatif yönünün temelinde mantık bulunur. Hukuk kuralları kelimelerden ve bunlara yüklediğimiz anlamlardan oluşur. Hukuki bir terim her zaman günlük hayatta kullanıldığı anlamına gelmez, bundan daha dar veya daha geniş olarak anlaşılması gerekebilir. Nitekim hukuki terimler bir ölçüde yargı kararları ile uygulanarak anlaşılır veya nasıl anlaşılması gerektiği gösterilir. Aslında mantık - matematik ve hukuk arasında sıkı bir bağlantı vardır. Yeniden belirtmek gerekir ki mantıki doğruluk her zaman etik doğruluk ile aynı anlama gelmez. Somut olayın durumuna göre hakim, hakkaniyete uygun olarak karar vermelidir.

Bir bilgisayar programı, bünyesinde mantık silsileleri barındırır. Lise derslerinde okutulan mantık derslerinden hatırlanacağı üzere, basit bir yazılım a durumunun varlığı halinde b işlemini yapar. b işlemi bir fonksiyonsa, a durumu, b fonksiyonuna parametre olarak girildiğinde c çıktısını verir (f(x)=y)). Bu mantık üzerinden basit bir karar verilmesi gerekiyorsa if/else yöntemi kullanılabilir. Bunun gibi, akıllı sözleşme bir edimi otonom olarak yerine getirirken bu gibi mantık kurallarından yararlanır. A ile B arasındaki akıllı sözleşmede, A, ücretini ödediği takdirde, B’nin zilyedi olduğu token, A’ya geçecektir. Burada ücretin ödenip ödenmediği bir true/false mantık dizisi ile kontrol edilirken, ücretin ödendiği(if), doğru ise(true), token A’ya transfer edilir, aksi takdirde(else), ücret ödenmediyse(false), program çalışmaz. Fakat hukuk kuralları her zaman doğru/yanlış gibi basit kurallardan oluşmaz, hukuk kuralları her zaman tamamen siyah veya her zaman tamamen beyaz değildir. Üstelik, o kuralın uygulanması hakkaniyete aykırı ise, hakim yeni bir kural yaratarak somut olaya uygulayabilir. 

Bu nedenle doktrinde fuzzy logic(bulanık mantık) teorisinin akıllı sözleşmelere uygulanabileceği ileri sürülmüştür. Bulanık mantıkta, bir durumu 0 veya 1 ile ifade etmek yerine, 0 ile 1 arasına başka dereceler ekleyerek parametrelerin çoğaltılması ve bunların her birinden ayrı ayrı çıktılar elde edilmesi amaçlanır. Her bir elemanın elemanı olduğu altkümelerin bir üyelik derecesi bulunur. 

 

Bulanık mantığın hukukta uygulanabilmesi için, öncelikle bulanık setlerin oluşturulması gerekir. Hukuk kuralı, 0 veya 1 ile ifade edilebilecek derecede bir aristo mantığına sahip değilse, 0 veya 1 arasında (örneğin kısmi kabul hallerinde) belirli setler oluşturularak (0.2, 0,7 gibi) kural mantığının arasına başka sonuç halleri koyulur. Bu hukuk kuralının uygulanması ile sonuç ne 0 ne de 1 olur, şartları oluşmuşsa sonuç 0 ila 1 arasında bir değer alabilir. 

 

Hukuk kurallarının bu şekilde oluşturulabilmesinde yazılımcılar ile hukukçular bir arada, son derece titiz çalışması gerektiği önerilmektedir. Akıllı sözleşme, bir kere kodlandığında geri alınamadığından, hukuki uyuşmazlık doğmadan önce o koda en doğru şekilde yerleştirilmelidir. Bu açıdan, gelecekte, hem teknik bilginin hem de hukuki bilginin aynı kişide birleştiği çeşitli meslekler oluşabileceği de öngörülmektedir(legal project manager, legal analyst veya legal engineer).

 

Akıllı Sözleşmelerin Özellikleri & Avantajları

 

  • Akıllı sözleşmeler otonomdur. Akıllı sözleşme onu imzalayanlar için kodunda vaat ettiği edimleri otomatik olarak yerine getirir. Bu otonom hareketi tetiklemek için kodda yazan şartlar sağlanmalıdır. Sözleşmenin tarafları arasında çalışacak bir akıllı sözleşmenin üçüncü kişiler tarafından tetiklenemeyeceği güvenlik önlemlerini almak gerekir. 

  • Akıllı sözleşmeler değiştirilemez. Bir akıllı sözleşme blokzincire kaydedildikten sonra bir daha değiştirilemez. Akıllı sözleşmeye bağlı başkaca sözleşmeler eklemek mümkünse de, blokzincire kaydedilen bir akıllı sözleşme, blokzincirin node’ları çalışmaya devam ettiği ve kodundaki koşullar sağlandığı sürece tetiklenecektir. 

  • Akıllı sözleşmeler şeffaftır. Akıllı sözleşmeler ile etkileşime giren taraflar ve sözleşmenin barındırdığı varlıklar ilgili scanner’dan tespit edilebilir. Her ne kadar akıllı sözleşmenin kaynak kodunun paylaşılmadığı, dolayısıyla kullanıcıların kodu göremediği akıllı sözleşmeler de bulunsa da, güvenilirlik ve güvenlik sebebiyle açık kaynak kodu ile işlem yapılması tercih edilmektedir. Yine, taraflar cüzdan adreslerini ifşa etmediği sürece etkilişime girdikleri cüzdanları, SHA-256 ile şifrelenmiş hash değerleri, cüzdanların gerçek menfaat sağlayıcısı anonim olarak kalmaya devam edecektir.

  • Akıllı sözleşmeler güvensiz güveni(trustless trust) sağlar. Akıllı sözleşmelerin taraflarının birbirini tanıması, güvenmesi, fiziken bir araya gelmesi ve birbirlerine güven duyması gerekmez. Açık kaynak kodlu bir akıllı sözleşmeyi okuyabilen herkes, yalnızca koda güvenerek işlem gerçekleştirebilir. Alıcı ve satıcının birbirini tanıması veya bir araya gelmesi gerekmez, her iki taraf da kodu inceleyerek sözleşmenin otomatik olarak ifa edileceği bilgisine sahip olurlar.

  • Akıllı sözleşmeler aracısızdır. Bir akıllı sözleşme, tarafların istediği şartlarda blokzincire kayıt edildiğinde, artık onu harekete geçirmek için üçüncü bir kuruma gerek yoktur. Bu sözleşmenin çalışması sadece taraflarca belirlenen şartlarla tetiklenebileceği gibi bir kere çalıştıktan sonra onu durdurabilecek de bir kurum yoktur. Dolayısıyla taraflar arasında düzenlenecek sözleşmede, sözleşmeyi ifaya icbar edecek herhangi bir kurum, mahkeme, icra dairesi bulunması da gerekmez. Böylece akıllı sözleşmeler aynı zamanda bu kurumları işin içine katmadıkları için ekonomiktirler.

  • Akıllı Sözleşmeler Gerçek Dünyaya Uyarlanabilir. Nesnelerin interneti, dijital dünya ile gerçek dünya arasında bir köprü vazifesi görmektedir. Bir akıllı kontrat ile çalışan bir evin veya aracın, aracı çalıştıracak token’a sahip olan cüzdan ile çalışması veya o eve sadece o token’a sahip olan kişinin girebilmesi şeklinde uygulamalar yapılması mümkündür. Akıllı sözleşmeler bu şekilde yalnızca dijital varlıklar üzerinde değil, maddi varlıklar üzerinde de etki ngösterebilirler.

 

Akıllı Sözleşmelere Uygulanacak Hukuki Rejim ve Tehlikeler

 

Sözleşmeler hukukundaki bütün kurumlar, sözleşmelerden kaynaklanan uyuşmazlıklardan ve birbirine güvenen taraflar arasında doğmuştur. Akıllı sözleşmeler de pek çok uyuşmazlığa konu olabildiği gibi değiştirilemez özelliğine rağmen suistimale açık bir yapıdır. Teoride, otonom çalışan tarafların birbirini tanıması bile gerekmeyen insan-üstü bir yapı gibi gözükse de bu alanda da pek çok uyuşmazlık doğmakta ve bu uyuşmazlıkları çözecek yetkin hukukçulara ihtiyaç duyulmaktadır.

 

Bir takas veya alım-satım sözleşmesinin hukuki bir sözleşme olduğu kuşkusuzdur. Hukukumuzda kripto varlıklar, şimdilik yönetmelik ile gayrimisli varlık olarak tanımlandığına göre, hukuki sözleşmelerin konusu olabilecek, hatta suç konusu dahi olabilecektir. Hukukun genel ilkeleri ve temel kanunlar yürürlükte iken ne kripto varlıklar için ne de akıllı sözleşmeler için bir mevzuat olmadığı sonucuna varılamaz. Pek tabii olarak bu varlıklara ilişkin de hukukun genel ilkelerinin uygulanacağı ortadadır. Yalnızca, karmaşık kod yapılarından oluşan ve “şimdilik” onu anlayabilecek hukukçular peyda olmadığından, bunları düzenleyen bir mevzuat olmadığı ve “rugpull” gibi her türlü dolandırıcılığa imkan veren bir fırsat ortamı olduğu algısı tamamen yanlıştır. Bunlar da TCK kapsamında hırsızlık, dolandırıcılık suçlarının konusu olabilecektir. Programı yazan kişinin, dolandırıcılık kastı kodun kendisinden açık olarak anlaşılabilecek, blokzincir üzerinde çalıştırıldığından çok kolay bir şekilde transaction’lar takip edilebilecektir. Yazılımcının kastı değil ancak ihmali olduğu durumlarda da dolandırıcılık suçu bakımından kastın yoğunluğu ceza hukukunun genel hükümleri ile her zaman belirlenebilecektir.

 

Akıllı sözleşmeler özünde otomatik çalışanlar kodlar/robotlar olduğundan, bu kontratlar örneğin “fatfinger/şişman parmak” vakalarını tespit üzere otomatik olarak ağlara fare kapanı gibi kurulmaktadır. NFT’sini 75 Ethereum’a değil de yanlışlıkla/parmağı kaydığı için 0.75 Ethereum’a “list” eden kullanıcıları avlamak üzere kurulan akıllı “botlar”, her bir köşe başında avını beklemektedir. Onu yazan yazılımcının ise, onu bir kere kurduktan sonra, başkaca hiçbir işlem yapmasına gerek kalmamaktadır. Aşağıdaki olayda yazılan bir akıllı sözleşme/bot ile, saldırgan, sahibinin hatasından yararlanarak düşük fiyata list edilmiş NFT’yi alabilmek için önce “dydx” isimli kripto varlık borç veren bir organizasyondan borç almakta, bu kripto parayı başka bir hesaba aktarmakta, o hesapla ve bakiyesiyle söz konusu hata ile “list” edilen NFT’yi satın almakta, NFT’yi başka bir platformda “BAYC NFT’si satın alma emri veren” birine satmakta, elde ettiği kripto varlığı borç aldığı ilk hesabına tekrar aktarmakta, dydx’e olan borcu ödemekte, bütün bunları yaparken frontrunning’e uğramamak için madencilere rüşvet vermekte(flashbot,gas price increasing) ve sonunda saldırganın güvenli hesabına aradaki karı aktarmaktadır. Bu karmaşık işlemlerin tamamı, tek bir akıllı sözleşme ile saniyeler içinde yapılabilmektedir. (İnceleyiniz: https://blockchain.news/news/Major-Fat-Finger-Error-as-BAYC-NFT-Acquired-for-3k-Instead-of-300k-ac9282c2-c574-4e3c-9c92-469759397137)


 

Resim - 6: Sahibinin “şişman parmağı” nedeniyle 300.000 dolara satılacak iken yanlışlıkla 3.000 dolara satılan Bored Ape Yacht Club #3547.

 

Kasıtlı olarak kurulan botlar dışında, bir de hata veya ihmal ile bırakılan açık kapılar nedeniyle akıllı sözleşmelerin gereği gibi çalışmadığı durumlar yaşanabilmektedir. The DAO olayından bilindiği üzere, aldığı token’ı DAO’ya iade etmek isteyen kullanıcının hesabında iade etme fonksiyonunun gerçekleştirip gerçekleştirilmediğini kontrol etmeyen DAO esas sözleşme nedeniyle bir saldırganın 30 milyon dolara tekabül eden suistimali Ethereum Fork’u ile sonuçlanmıştır(Bu örneğe DAO konusunda yeniden girilecektir.). Görüldüğü gibi yazılımdaki ihmal de akıllı sözleşmenin taraflarının zararına neden olabilmektedir. 

 

Klasik hukuktaki kasıt/ihmal/taksir veya sözleşmedeki hata/hile/korkutma gibi irade sakatlıklarının dışında, bunlardan tamamen ayrı ve akıllı sözleşmelerin yapısından kaynaklanan “frontrunning” gibi normal kullanıcının aklına dahi gelmeyecek ihmaller yaşanması söz konusudur. Frontrunning, sermaye piyasasında sıkça görülen bir suç türüdür. Bir yatırım portföy danışmanı, müşterisinin yüklü bir alım yaptığı veya yapacağı hisse senedine, senedin değeri yükselmeden/alçalmadan hemen önce pozisyon alması veya içeriden bilgi elde edilerek manipülasyon yapılması şeklinde ortaya çıkar. Frontrunner, piyasanın oluşacağı durumu bildiğinden diğer hissedarların aleyhine hareket ederek onları zarara uğratır. Bu nedenle bu eylem Sermaye Piyasası Kanunumuzca yasaklanmış ve cezai ve idari müeyyideye tabi tutulmuştur. 

 

Akıllı sözleşmelerde ise bu durum çok daha teknik bir boyutta oluşur. Arbitraj botları denen botlar, yüklü bir alım emrini MemPool’da gören özel olarak tasarlanmış akıllı sözleşmelerdir. Bir kullanıcı çok yüklü bir miktar coin almak istediğinde, cüzdanından bir transaction gönderir. Bu transaction madencilere ulaşmadan önce Mempool’da bekletilir. Mempool’da sıraya dizilen ve gas ücretine bloklara işlenen işlemler, madenciler tarafından blokzincire işlenirler. Bütün bu işlemler saniyeler içinde gerçekleşse de kurulan arbitraj botları bu saniyeler içindeki mikrosaniyeler içinde, bu alım satım emirlerine göre ve özellikle yüklü miktardaki işlemlerden hemen önce bu duruma göre pozisyon alırlar ve o coin’in alış satış kuruna göre arbitraj’dan faydalanarak ekonomik getiri sağlarlar. MEV denilen, bir madencinin bir bloktan edebileceği karı maksimize etmesi olarak adlandırılan bu durum akıllı sözleşmelerin güvenilirliğini sarsar. 

 

Resim - 7: Daha yüksek gas ile gönderilen transactionlar öncelikle işleme alınır.

 

Akıllı sözleşmelerde önemli bir güvenlik ihlali olarak görülen bir diğer frontrun durumu da Transaction Reordering / Frontrunning’tir. Bunda ise istismarcı sadece transaction’ları izlemekle kalmaz, Mempool’a gönderilen transaction’ların içerdiği hash değerini kopyalayarak işlem yaparlar:

 

Bir örnek: Kendisi ile spesifik bir şifre ile işleme geçecek ve işleme geçen cüzdana 10 ETH aktaracak bir akıllı kontrat oluşturulmuştur. Bu akıllı kontrat, “XYZ” şeklinde bir şifreye sahiptir. Bu XYZ, SHA-256 ile hash haline getirildiğinde unique bir hash haline dönüşür(XYZ nin SHA-256 hash değeri: ade099751d2ea9f3393f0f32d20c6b980dd5d3b0989dea599b966ae0d3cd5a1e) . Bu hash’in “XYZ” bilgisine sahip olmadan çözülebilmesi mümkün değildir/yıllar sürecek bir uğraş gerektirir. Akıllı sözleşme ile etkileşime geçmesi istenen kişiye bu bilgi verildikten sonra, sözleşmenin gerçek menfaat sağlayıcısı “XYZ” bilgisi ile SHA-256 şifreleme yöntemini kullanarak başka bir hash değeri oluşturur ve bu değeri akıllı sözleşme ile etkileşime girmek üzere Mempool’a gönderir. Mempool’da, bu transaction’ın içinde bir hash değeri görülmesine rağmen, bunun tam olarak ne anlama geldiğini kimse bilemez, yalnızca akıllı sözleşmenin içindeki kod, cevabı bildiğinden basitçe hash’i çözebilecektir. İşte tam da bu sırada, transaction Mempool’da beklerken araya giren botlar, bu hashin ne anlama geldiğini, akıllı sözleşme ile ne için etkileşime girdiğini bilmese bile, hash değerini kopyalarak aynı akıllı sözleşmeye aynı hash’i ancak çok daha fazla bir GAS ücreti ile Mempool’dan madencilere gönderir. Hatta çoğu zaman Mempool atlanarak flashbot gibi yazılımlar ile doğrudan madencilere gönderilir ve oluşacak ilk bloğun ilk sırasına kaydedilir. Böylelikle akıllı sözleşmenin gerçek menfaat sağlayacısından başka kimsenin bilmediği hash’i kopyalayan botlar, bu akıllı sözleşme ile etkileşime girer ve sözleşme içerisindeki kripto varlığa sahip olur. Demek ki, bir akıllı sözleşme ile etkileşime girecek cüzdanın “o akıllı sözleşmedeki bir şifreyle” giriş yapabilmesi, onu şifrelemenin türü ne olursa olsun korumamaktadır. Akıllı sözleşmelerin ve genel olarak blokzinciri teknolojisinin sunduğu şeffaflık özelliği, bu haliyle istismara açık zayıflıklar yaratabilmektedir. Bu örnekte de basit bir take() fonksiyonu ile contract ile etkileşime giren cüzdan adresinin “whitelist” içerisinde olup olmadığı kontrol edilebilir, veya spesifik hash’e sahip olan kişi ile etkileşime girmek yerine spesifik bir cüzdan ile etkileşime girilebilirdi. Bunun gibi bu tarz istismarları teknik olarak önlemek mümkünse de sıradan kullanıcıların standart gas price ile yaptığı işlemler her zaman tehlikelere açıktır ve bu tarz bir zayıflık  gönderdikleri transaction’ların hata ile karşılaşmalarına, sonuç olarak varlıklarını kaybetmesi ile sonuçlanacaktır. Bu noktada şu soruyu yanıtsız bırakıyorum: Akıllı sözleşmenin kodu böyle bir zayıflık içeriyorsa, bu zayıflıktan faydalanan kişi, elde ettiği bu varlığı hangi hükümlere göre asıl sahibine geri ödemek zorundadır? Ya da geri ödemek zorunda mıdır? Kod, kanun mudur? Kanımca kod, kod, kanun da kanundur. Bu tarz bir zayıflığa sebebiyet veren kişi, bu zarar ile sorumlu olmalıdır. Ethereum’un karanlık sahalarında kol gezen bu tarz botlardan bir tazminat istemek veya başka bir hukuki yola başvurmak gerçekçi değildir. 

 

Görüldüğü gibi hiç kimsenin kastının veya ihmalinin olmadığı ancak yine de “otonomluğu, değiştirilemezliği ve geri alınamazlığı” ile öne çıkan akıllı sözleşmelerin de daha girift ve teknik sorunlar yarattığı görülmektedir. “code is law” tartışması bu noktada karşımıza çıkmaktadır. Bot’un yararlanıcısının veya akıllı sözleşme sahibinin tespit edilebildiği durumlarda tazminat veya sebepsiz zenginleşme hükümlerine başvurmak mümkün olabilecektir. Bu halde hem akıllı sözleşme sahibinin hem de zarara uğrayan kişinin alabileceği önlemler olduğundan kusur durumu çok tartışmalı bir noktaya gidebilecektir. Nitekim frontrunning istismarına açık bir sözleşme kurgulanmış, kullancısı da işlemi özel ağlarla doğrudan madencilere daha yüksek bir gas ile göndermek yerine herkese açık(şeffaf) olan bir sisteme gönderdiğinden, istismarcılar da bu zayıflıktan faydalanmıştır. 

 

Sonuç

 

Akıllı sözleşmeler otonom özellik göstermeleri sebebiyle klasik sözleşmelerden pek çok yönü ile avantajlıdırlar. Bu tür sözleşmeler başkaca bir aracı kurum kullanmayıp kendi kendilerine edimleri ifa ettiğinden ayrıca ekonomiktirler. “Güvensiz güven” özelliği, sözleşmelerden kaynaklanan pek çok uyuşmazlığı ortadan kaldırabilecek bir teknolojik fonksiyon olarak öne çıkar. Hukukun alanı ile kesişen bu yeni teknoloji, hukukçunun kullanabileceği etkili bir araç olabilir. Nitekim günümüzde ortaya çıkan “legal engineering” gibi yeni kavramlar, akıllı sözleşmelerinin hukuki alanda kullanılmasını sağlayacak yeni bir gruba işaret etmektedir. Bu sayede hukuki zemine oturturularak geliştirilecek akıllı sözleşmeler, günümüzdeki pek çok hukuk problemini ortadan kaldırılabilir. Bütün bunların yapılabilmesi için hukuki mantıktan ve hukuk metodolojisinden en doğru şekilde faydalanılmalı, aynı zamanda hukukun içerdiği etik kurallar unutulmamalıdır. Akıllı sözleşmelerin hukukun sirayet ettiği her alana getireceği yeniliklerin nasıl etki göstereceği, onun hangi problemleri çözdüğüne bağlıdır. Nitekim Alman doktrini tarafından, tapu kayıtlarının blokzincire taşınmasının gereksiz olduğu söylenmektedir. Bunun gibi, hukuk sisteminin artan iş yükü, basit davaların yıllar sürmesi gibi gerçek problemlerine çözüm olan akıllı sözleşmeler, kullanımını yaygınlaştıracaktır. Bu noktada akıllı sözleşmelerin yapay zeka ile yapacağı işbirliği, bazı hukuk problemlerini tamamen ortadan kaldıracak güçte olabilir.