Akıllı sözleşmeler ilk olarak 1990’larda Nick Szabo tarafından açıklandı. Szabo akıllı sözleşmeleri, protokolleri kullanıcı arayüzleriyle birleştirerek bilgisayar ağlarını biçimlendiren ve koruyan bir araç olarak tanımladı.
Szabo, akıllı sözleşmelerin kredi sistemleri, ödeme süreçleri ve içerik hakları yönetimi gibi sözleşmeli anlaşmaları içeren çeşitli alanlarda kullanılabileceğinden bahsetti.
Kripto para birimleri alanında, akıllı sözleşmeleri blok zinciri üzerinde çalışan bir uygulama veya program olarak tanımlayabiliriz. Akıllı sözleşmeler, genellikle belirli kurallar tarafından zorlanan dijital protokoller olarak kullanılırlar. Bu kurallar, ağdaki tüm düğümler tarafından çoğaltılan ve uygulanan bilgisayar kodu tarafından önceden tanımlanır.
Blok zincirindeki akıllı sözleşmeler, güvensiz protokollerin oluşturulmasını sağlar. Bu, iki tarafın karşılıklı anlayış veya güven olmadan blok zinciri aracılığıyla taahhütte bulunabileceği anlamına gelir. Bu şekilde, iki taraf şartlar yerine getirilmediği takdirde sözleşmenin uygulanmayacağından emin olabilirler. Ayrıca akıllı sözleşmelerin kullanılması, aracılara olan ihtiyacı ortadan kaldırarak işletme maliyetlerini önemli derecede azaltabilir.
Bitcoin protokolü uzun yıllardır akıllı sözleşmelerin kullanılmasına izin verse de, Ethereum’un oluşturucusu ve kurucu ortağı Vitalik Buterin tarafından tanıtıldığı zaman popüler olmaya başlamıştır. Ayrıca, her bir blok zincirinin akıllı sözleşmelerin uygulanması için farklı yöntemler sağlayabileceği unutulmamalıdır.
Bu yazı, Ethereum blok zincirinin önemli kısmı olan Ethereum Sanal Makinesi (EVM) üzerinde çalışan akıllı sözleşmeler konusunu ele alacak.
Akıllı sözleşmeler nasıl çalışır?
Basitçe söylemek gerekirse, akıllı sözleşme belirlenimci bir program olarak çalışır. Akılı sözleşmeler belirli şartlar karşılanması halinde, belirli görevleri yürütür. Bu yüzden, akıllı sözleşme sistemleri genellikle “if…then…” ifadesini takip eder. Ancak adlarından anlaşılan anlama rağmen akıllı sözleşmeler yasal sözleşme veya akıllı değildir. Bu sözleşmeler sadece dağıtılmış bir sistemde (blok zinciri) çalışan bir kod parçasıdır.
Ethereum ağında, kullanıcılar (adresler) birbirleriyle iletişim kurduğunda meydana gelen blok zinciri işlemlerinin yürütülmesinden ve yönetiminden akıllı sözleşmeler sorumludur. Akıllı sözleşme olmayan herhangi bir adrese Harici Sahipli Hesaplar (EOA) denir. Bu nedenle akıllı sözleşmeler, bilgisayar kodu ve EOA’lar, kullanıcıları tarafından yönetilmektedir.
Temel olarak, bir Ethereum akıllı sözleşmesi, bir sözleşme kodundan ve iki genel anahtardan oluşmaktadır. İlk genel anahtar, sözleşmenin oluşturucusu tarafından sağlanan anahtardır. Diğer anahtar, sözleşmenin kendisini temsil eder ve her akıllı sözleşme için benzersiz bir dijital tanımlayıcı olarak çalışır.
Herhangi bir akıllı sözleşme, blok zinciri işlemleri aracılığıyla uygulanır ve yalnızca EOA’nın (veya diğer akıllı sözleşmelerin) talebi üzerine etkinleştirilebilir. Ancak, ilk tetikleyiciye her zaman EOA (kullanıcı) neden olur.
Ana özellikler
Ethereum akıllı sözleşmelerinin ana özellikleri aşağıdaki gibidir:
Dağıtılmış. Akıllı sözleşmeler, Ethereum ağındaki tüm düğümler arasında çoğaltılır ve dağıtılır. Bu özellik, akıllı sözleşmelerin merkezi sunuculara dayalı diğer çözümlerden en büyük farklarından biridir.
Belirlenimci. Gereksinimler karşılandığında, akıllı sözleşme yalnızca kendisi için tasarlanmış işlemleri yürütür. Ayrıca bu sözleşmeleri kim uygularsa uygulasın sonuç hep aynı olacak.
Özerk. Akıllı sözleşmeler, otomatik bir program olarak çalışarak herhangi bir görevi otomatik olarak gerçekleştirebilir. Bununla birlikte, çoğu durumda akıllı sözleşme etkinleştirilmezse “hareketsiz” kalır ve herhangi bir işlem yapmaz.
Değişmez. Akıllı sözleşme bir kez uygulandıktan sonra değiştirilemez. Bu sözleşmeler, yalnızca belirli bir işlev daha önce uygulanmışsa “silinebilir”. Bu yüzden, akıllı sözleşmelerin kurcalamaya dayanıklı kod sağlayabileceğini söyleyebiliriz.
Özelleştirilebilir. Akıllı sözleşmeler uygulamadan önce birçok farklı şekilde kodlanabilir. Bu yüzden, çeşitli merkezi olmayan uygulamalar (DApps) oluşturmak için kullanılabilirler. Bu özellik, Ethereum’un bir Turing Complete blok zinciri olduğu gerçeğiyle ilgilidir.
Güvensiz. İki veya birden fazla taraf, birbirini tanımadan veya güvenmek zorunda kalmadan akıllı sözleşmeler yoluyla iletişim kurabilir. Ek olarak, blok zinciri teknolojisi veri doğruluğunu sağlayabilir.
Açık. Halka açık bir blok zincirine dayandığı için, akıllı sözleşmenin kaynak kodu değişmez ve herkes tarafından görülebilir.
Akıllı sözleşmeyi değiştirebilir veya silebilir miyim?
Bir kez uygulandıktan sonra, Ethereum akıllı sözleşmesine yeni işlevler eklenemez. Ancak, sözleşmenin oluşturucusu kodda SELFDESTRUCT adlı bir işlev tanımlıyorsa, gelecekte akıllı sözleşmeyi “silebilir” ve yenisiyle değiştirebilirler. Aksine, bu işlev önceden koda dahil edilmemişse, sözleşme artık silinemez.
Özellikle yükseltilebilir akıllı sözleşme, geliştiricilere sözleşme değişmezliği açısından daha fazla esneklik sağlar. Farklı karmaşıklık seviyelerine sahip yükseltilebilir akıllı sözleşmeler oluşturmanın birkaç yolu vardır.
Basit bir örnek olarak, birden fazla küçük sözleşmeye bölünmüş bir akıllı sözleşmeyi ele alalım. Bu sözleşmelerin bazıları değişmez olacak şekilde tasarlanmıştır ve bazılarında “silme” işlevi etkinleştirilmiştir. Bu da, diğer işlevler değişmeden kodun bir kısmının (akıllı sözleşmeler) silinebileceği ve değiştirilebileceği anlamına gelir.
Avantajları ve kullanım alanları
Programlanabilir kodlar olarak, akıllı sözleşmeler büyük ölçüde özelleştirilebilir ve çok çeşitli hizmetler ve çözümler sunarak farklı şekillerde tasarlanabilir.
Merkezi olmayan ve kendiliğinden uygulanan programlar olarak akıllı sözleşmeler, daha fazla açıklık ve daha düşük işletme maliyetleri sunabilir. Uygulamaya bağlı olarak, akıllı sözleşmeler aynı zamanda verimliliği artırabilir ve bürokratik maliyetleri azaltabilirler.
Akıllı sözleşmeler, özellikle iki veya daha fazla tarafın para transferi yaptığı durumlarda etkilidir. Diğer bir deyişle, akıllı sözleşmeler çeşitli kullanımlar için tasarlanabilir.
Parçalanmış varlıklar, oylama sistemleri, kripto cüzdanları , merkezi olmayan borsalar, oyunlar ve mobil uygulamalarının oluşturulması, bu kullanım alanlarının örnekleri arasında yer alır. Ayrıca, sağlık, hayırseverlik, tedarik zinciri, yönetişim ve merkezi olmayan finans (DeFi) alanlarını ele alan diğer blok zinciri çözümleriyle de uygulanabilir.
ERC-20
Ethereum’un blok zincirinde uygulanan tokenler, ERC-20 adlı bir standarda uymaktadır. Bu standart, tüm Ethereum tabanlı tokenlerin temel işlevlerini belirler. Böylece, bu dijital varlıklara genellikle mevcut kripto para birimlerinin çoğunu temsil eden ERC-20 tokenleri denir.
Birçok blok zinciri ve startup şirketi, dijital tokenlerini Ethereum ağında yayınlamak için akıllı sözleşmeleri uygulamıştır. Bu şirketlerin çoğu tokenlerini yayınladıktan sonra, ERC20 tokenlerini İlk Dijital Para Arzı (ICO) faaliyetleri yoluyla dağıtmıştır. Çoğu durumda, akıllı sözleşmelerin kullanımı, para çevirme ve token dağıtımı işlemlerinin güvenilir ve verimli bir şekilde gerçekleşmesini mümkün kılar.
Sınırlamalar
Akıllı sözleşme, insanlar tarafından yazılmış bilgisayar kodundan yapılır. Bu, kodun hatalara ve güvenlik açıklarına karşı savunmasız olduğu için büyük riskler getirir. İdeal olarak, özellikle gizlilik veya büyük meblağlar söz konusu olduğunda, bu kodlar deneyimli bir programcı tarafından yazılmalı ve uygulanmalıdır.
Ayrıca bazı kişiler, merkezi sistemlerin akıllı sözleşmelerin sağladığı birçok çözüm ve işlevi sağlayabileceğine inanmaktadır. Bu ikisinin arasındaki temel fark, akıllı sözleşmenin merkezi bir sunucuda çalışmak yerine dağıtılmış bir P2P ağında çalışmasıdır. Buna ek olarak, bu sözleşmeler blok zinciri sistemlerine dayandıkları için genellikle değişmez veya değiştirilmesi zordur.
Değişmezlik bazı durumlarda iyi olsa da, diğer durumlarda kötü bir şeydir. Örneğin, 2016 yılında “DAO” adlı merkezi olmayan özerk bir kuruluş (DAO) saldırıya uğradığında, kuruluşun akıllı sözleşme kodundaki sorunlar nedeniyle milyonlarca Ether (ETH) çalındı.
Kuruluşun akıllı sözleşmeleri değişmez olduğu için, geliştiriciler kodu düzeltemiyordu. Bu bir sert çatala yol açtı ve sonunda ikinci Ethereum zincirinin doğmasına neden oldu. Kısacası, bir zincir hack’i “tersine çevirdi” ve paraları sahiplerine iade etti (bu, mevcut Ethereum blok zincirinin bir parçasıdır). Diğer zincir, hack’e müdahale etmemeye karar verdi ve blok zincirinde olanların asla değiştirilmemesi gerektiğini belirtti (bu zincir şu anda Ethereum Classic olarak bilinir).
Bu sorunun Ethereum blok zincirinden kaynaklanmadığı ve akıllı sözleşmelerin yanlış uygulanmasından kaynaklandığı unutulmamalıdır.
Akıllı sözleşmelerin bir diğer sınırlaması, belirsiz hukuki durumlarıdır. Akılı sözleşmeler çoğu ülkede gri bir alanda kalır ve mevcut yasal çerçeveye uymaz.
Örneğin, birçok sözleşme, her iki tarafın da doğru bir şekilde tanımlanmasını ve en az 18 yaşında olmasını gerektirir. Blok zinciri teknolojisi tarafından sağlanan takma ad, aracıların ortadan kaldırılmasıyla birleştiğinde bu gereksinimleri tehdit edebilir. Buna olası çözümler olsa da, özellikle sınırsız, dağıtılmış ağlar söz konusu olduğunda, akıllı sözleşmelerin uygulanabilirliği gerçek bir zorluktur.
Eleştiriler
Bazı blok zinciri meraklıları, akıllı sözleşmeleri, yakında ticari ve bürokratik sistemlerimizin büyük bir kısmının yerini alacak ve bu sistemleri otomatikleştirecek bir çözüm olarak görüyor. Bunun gerçekleşme ihtimali olsa da, bir standart halinde gelmesi için daha uzun bir yol var.
Akıllı sözleşme şüphesiz ilginç bir teknolojidir. Bununla birlikte, bu sözleşmelerin dağıtılmış, belirlenimci ve açık olmaları, bazı durumlarda çekiciliğini azaltabilir.
Daha önemli bir eleştiri de, akıllı sözleşmelerin gerçek dünyanın sorunlarına uygulanabilir bir çözüm olmadığı gerçeğine dayanmaktadır. Aslında bazı kuruluşlar geleneksel sunucu tabanlı alternatifleri kullanmayı tercih etmektedir. Akıllı sözleşmelere kıyasen, merkezi sunucuların bakımı daha kolay ve daha ucuzdur ve genellikle daha yüksek performans hızı ve birlikte çalışabilirlik sağlar.
Sonuç
Şüphesiz, akıllı sözleşmelerin kripto para birimleri dünyası üzerinde büyük bir etkisi olmuş ve kesinlikle blok zinciri alanında bir devrim yaratmışlar. Son kullanıcıların akıllı sözleşmelerle doğrudan bir ilişkisi olmasa da bu sözleşmelerin gelecekte finansal hizmetlerden tedarik zinciri yönetimine kadar çeşitli programları güçlendirmesi muhtemeldir. Akıllı sözleşmeler ve blok zincirleri birlikte toplumumuzun her bölümünü etkileme potansiyeline sahiptir. Yalnız bu çığır açan teknolojinin büyük ölçekli kabulün önündeki birçok engeli aşıp aşmayacağını yalnızca zaman gösterecek.