Nick Szabo ilk olarak 1990'larda akıllı sözleşmeleri tanımladı. O zamanlar akıllı sözleşmeyi, protokolleri kullanıcı arayüzleriyle birleştirerek bilgisayar ağlarını resmileştiren ve güvence altına alan bir araç olarak tanımladı.
Szabo, akıllı sözleşmelerin kredi sistemleri, ödeme işlemleri ve içerik hakları yönetimi gibi sözleşmeye dayalı anlaşmaları içeren çeşitli alanlarda potansiyel kullanımını tartıştı.
Kripto para birimleri dünyasında, akıllı bir sözleşmeyi bir blok zinciri üzerinde çalışan bir uygulama veya program olarak tanımlayabiliriz. Tipik olarak, belirli bir dizi kural tarafından uygulanan dijital bir anlaşma olarak çalışırlar. Bu kurallar, tüm ağ düğümleri tarafından çoğaltılan ve yürütülen bilgisayar kodu tarafından önceden tanımlanmıştır.
Blockchain akıllı sözleşmeleri, güvenilir olmayan protokollerin oluşturulmasına izin verir. Bu, iki tarafın birbirini tanımak veya güvenmek zorunda kalmadan blok zinciri aracılığıyla taahhütte bulunabileceği anlamına gelir. Şartlar yerine getirilmezse sözleşmenin uygulanmayacağından emin olabilirler. Bunun dışında akıllı sözleşmelerin kullanılması, aracılara olan ihtiyacı ortadan kaldırarak operasyonel maliyetleri önemli ölçüde azaltabilir.
Bitcoin protokolü uzun yıllardır akıllı sözleşmeleri destekliyor olsa da, Ethereum'un yaratıcısı ve kurucu ortağı Vitalik Buterin tarafından popüler hale getirildi. Bununla birlikte, her bir blok zincirinin akıllı sözleşmeleri uygulamak için farklı bir yöntem sunabileceğini belirtmekte fayda var.
Bu makale, Ethereum blok zincirinin önemli bir parçası olan Ethereum Sanal Makinesi (EVM) üzerinde çalışan akıllı sözleşmelere odaklanacaktır.
Nasıl çalışırlar?
Basit bir ifadeyle, akıllı bir sözleşme deterministik bir program olarak çalışır. Belirli koşullar karşılandığında ve karşılandığında belirli bir görevi yürütür. Bu nedenle, bir akıllı sözleşme sistemi genellikle "eğer… o zaman…" ifadelerini takip eder. Ancak popüler terminolojiye rağmen, akıllı sözleşmeler yasal sözleşmeler veya akıllı değildir. Bunlar sadece dağıtılmış bir sistemde (blockchain) çalışan bir kod parçasıdır.
Ethereum ağında, kullanıcılar (adresler) birbirleriyle etkileşime girdiğinde gerçekleşen blok zinciri işlemlerini yürütmek ve yönetmekten akıllı sözleşmeler sorumludur. Akıllı sözleşme olmayan herhangi bir adrese harici olarak sahip olunan hesap (EOA) denir. Böylece akıllı sözleşmeler bilgisayar kodu tarafından kontrol edilir ve EOA'lar kullanıcılar tarafından kontrol edilir.
Temel olarak, Ethereum akıllı sözleşmeleri bir sözleşme kodundan ve iki ortak anahtardan oluşur. İlk ortak anahtar, sözleşmenin yaratıcısı tarafından sağlanan anahtardır. Diğer anahtar, sözleşmenin kendisini temsil eder ve her akıllı sözleşmeye özel dijital bir tanımlayıcı görevi görür.
Herhangi bir akıllı sözleşmenin dağıtımı bir blok zinciri işlemi aracılığıyla yapılır ve bunlar yalnızca bir EOA (veya diğer akıllı sözleşmeler) tarafından çağrıldığında etkinleştirilebilir. Ancak, ilk tetikleyiciye her zaman bir EOA (kullanıcı) neden olur.
Ana Özellikler
Bir Ethereum akıllı sözleşmesi genellikle aşağıdaki özellikleri sunar:
Dağıtılmış:
Akıllı sözleşmeler, Ethereum ağının tüm düğümlerinde çoğaltılır ve dağıtılır. Bu, merkezi sunuculara dayalı diğer çözümlerden en büyük farklardan biridir.
Deterministik:
Akıllı sözleşmeler, gereksinimlerin karşılanması koşuluyla yalnızca tasarlandıkları eylemleri gerçekleştirir. Ayrıca, onları kim uygularsa uygulasın sonuç her zaman aynı olacaktır.
Özerk:
Akıllı sözleşmeler, kendi kendini yürüten bir program gibi çalışarak her türlü görevi otomatikleştirebilir. Çoğu durumda, akıllı bir sözleşme tetiklenmezse, "uykuda" kalır ve herhangi bir işlem gerçekleştirmez.
Değişmez:
Akıllı sözleşmeler dağıtıldıktan sonra değiştirilemez. Yalnızca belirli bir işlev daha önce uygulanmışsa "silinebilir". Bu nedenle, akıllı sözleşmelerin kurcalamaya dayanıklı kod sağlayabileceğini söyleyebiliriz.
Özelleştirilebilir:
Dağıtımdan önce akıllı sözleşmeler birçok farklı şekilde kodlanabilir. Bu nedenle, birçok türde merkezi olmayan uygulama (DApp) oluşturmak için kullanılabilirler. Bu, Ethereum'un tam bir Turing blok zinciri olduğu gerçeğiyle ilgilidir.
Güvenilir:
İki veya daha fazla taraf, birbirini tanımadan veya güvenmeden akıllı sözleşmeler aracılığıyla etkileşim kurabilir. Ayrıca blockchain teknolojisi, verilerin doğru olmasını sağlar.
Şeffaf:
Akıllı sözleşmeler halka açık bir blok zincirine dayandığından, kaynak kodları yalnızca değişmez değil aynı zamanda herkes tarafından görülebilir.
Akıllı bir sözleşmeyi değiştirebilir veya silebilir miyim?
Dağıtıldıktan sonra bir Ethereum akıllı sözleşmesine yeni işlevler eklemek imkansızdır. Ancak, yaratıcısı kodda SELFDESTRUCT adlı bir işlev içeriyorsa, gelecekte akıllı sözleşmeyi "silebilir" - ve yenisiyle değiştirebilir. Buna karşılık, işlev koda önceden dahil edilmemişse, onu silemezler.
Özellikle, sözde yükseltilebilir akıllı sözleşmeler, geliştiricilerin sözleşmelerin değişmezliği konusunda daha fazla esnekliğe sahip olmalarını sağlar. Değişen derecelerde karmaşıklık ile yükseltilebilir akıllı sözleşmeler oluşturmanın birçok yolu vardır.
Basitleştirilmiş bir örnek alarak, akıllı bir sözleşmenin birden çok küçük sözleşmeye bölündüğünü düşünelim. Bazıları değişmez olacak şekilde tasarlanmıştır.
Avantajlar ve kullanım durumları
Programlanabilir kod olarak akıllı sözleşmeler son derece özelleştirilebilir ve birçok farklı şekilde tasarlanabilir, birçok hizmet ve çözüm sunar.
Merkezi olmayan ve kendi kendini yürüten programlar olarak akıllı sözleşmeler, artan şeffaflık ve azaltılmış operasyonel maliyetler sağlayabilir. Uygulamaya bağlı olarak verimliliği artırabilir ve bürokratik giderleri azaltabilirler.
Akıllı sözleşmeler, özellikle iki veya daha fazla taraf arasında fon transferini veya değişimini içeren durumlarda kullanışlıdır.
Başka bir deyişle, akıllı sözleşmeler çok çeşitli kullanım durumları için tasarlanabilir. Bazı örnekler, tokenize varlıkların oluşturulmasını, oylama sistemlerini, kripto cüzdanlarını, merkezi olmayan borsaları, oyunları ve mobil uygulamaları içerir. Ayrıca sağlık, yardım, tedarik zinciri, yönetişim ve merkezi olmayan finans (DeFi) alanlarını ele alan diğer blok zinciri çözümleriyle birlikte dağıtılabilirler.
ERC-20
Ethereum blok zincirinde yayınlanan belirteçler, ERC-20 olarak bilinen bir standardı takip eder. Standart, tüm Ethereum tabanlı belirteçlerin temel işlevlerini açıklar. Bu nedenle, bu dijital varlıklara genellikle ERC-20 jetonları denir ve mevcut kripto para birimlerinin büyük bir bölümünü temsil ederler.
Birçok blockchain şirketi ve startup, dijital tokenlerini Ethereum ağında yayınlamak için akıllı sözleşmeler uyguladı. İhraçtan sonra, bu şirketlerin çoğu ERC-20 tokenlerini İlk Para Teklifi (ICO) etkinlikleri aracılığıyla dağıttı. Çoğu durumda, akıllı sözleşmelerin kullanımı, fonların değişimini ve tokenların dağıtımını güvenilir ve verimli bir şekilde mümkün kıldı.
Sınırlamalar
Akıllı sözleşmeler, insanlar tarafından yazılan bilgisayar kodlarından yapılır. Bu, kod güvenlik açıklarına ve hatalara maruz kaldığı için çok sayıda risk getirir. İdeal olarak, özellikle hassas bilgiler veya büyük miktarda para söz konusu olduğunda, deneyimli programcılar tarafından yazılmalı ve dağıtılmalıdır.
Bunun dışında bazıları, merkezi sistemlerin akıllı sözleşmelerin sunduğu çözümlerin ve işlevlerin çoğunu sağlayabileceğini iddia ediyor. Temel fark, akıllı sözleşmelerin merkezi bir sunucu yerine dağıtılmış bir P2P ağında çalışmasıdır. Ve bir blok zinciri sistemine dayandıkları için, ya değişmez ya da değiştirilmesi çok zor olma eğilimindedirler.
Değişmez olmak bazı durumlarda harika olabilir, ancak diğerlerinde çok kötü olabilir. Örneğin, 2016 yılında "DAO" adlı bir Merkezi Olmayan Otonom Organizasyon (DAO) saldırıya uğradığında, akıllı sözleşme kodlarındaki kusurlar nedeniyle milyonlarca eter (ETH) çalındı.
Akıllı sözleşmeleri değişmez olduğu için geliştiriciler kodu düzeltemediler. Bu, sonunda ikinci bir Ethereum zincirini doğuran bir hard fork'a yol açtı. Basitçe söylemek gerekirse, bir zincir hack'i "geri aldı" ve fonları hak sahiplerine iade etti (bu, mevcut Ethereum blok zincirinin bir parçasıdır). Diğer zincir, bir blok zincirinde olan şeylerin asla değiştirilmemesi gerektiğini belirterek hack'e müdahale etmemeye karar verdi (bu zincir artık Ethereum Classic olarak adlandırılıyor).
Sorunun Ethereum blok zincirinden kaynaklanmadığına dikkat etmek önemlidir. Bunun yerine, hatalı bir akıllı sözleşme uygulamasından kaynaklandı.
Akıllı sözleşmelerin bir diğer sınırlaması, belirsiz yasal statüleriyle ilgilidir. Sadece çoğu ülkede gri bir alanda olduğu için değil, aynı zamanda akıllı sözleşmeler mevcut yasal çerçeveye uymadığı için.
Örneğin, birçok sözleşme, her iki tarafın da uygun şekilde tanımlanmasını ve 18 yaşından büyük olmasını gerektirir. Blok zinciri teknolojisinin sağladığı takma ad, aracıların olmamasıyla birleştiğinde bu gereksinimleri tehdit edebilir. Bunun için potansiyel çözümler olsa da, akıllı sözleşmelerin yasal olarak uygulanabilirliği, özellikle sınırsız, dağıtılmış ağlar söz konusu olduğunda gerçek bir zorluktur.
Eleştiri
Bazı blockchain meraklıları, akıllı sözleşmeleri yakında ticari ve bürokratik sistemlerimizin büyük bir bölümünün yerini alacak ve otomatikleştirecek bir çözüm olarak görüyor. Bu olası bir gerçeklik olsa da, muhtemelen norm olmaktan uzaktır.
Akıllı sözleşmeler kesinlikle ilginç bir teknoloji parçasıdır. Ancak, dağıtılmış, belirleyici, şeffaf ve biraz değişmez olmaları, bazı durumlarda onları daha az çekici hale getirebilir.
Esasen eleştiri, akıllı sözleşmelerin birçok gerçek dünya sorunu için uygun bir çözüm olmadığı gerçeğine dayanır. Aslında, bazı kuruluşlar geleneksel sunucu tabanlı alternatifleri kullanmaktan daha iyidir.
Akıllı sözleşmelerle karşılaştırıldığında, merkezi sunucuların bakımı daha kolay ve daha ucuzdur ve hız ve ağlar arası iletişim (birlikte çalışabilirlik) açısından daha yüksek verimlilik sunma eğilimindedir.
Son Olarak Akıllı Kontratlar;
Akıllı sözleşmelerin kripto para birimleri dünyasında büyük bir etki yarattığına şüphe yok ve kesinlikle blok zinciri alanında devrim yarattılar. Son kullanıcılar akıllı sözleşmelerle doğrudan etkileşimde bulunmayabilirken, bunların gelecekte finansal hizmetlerden tedarik zinciri yönetimine kadar çok çeşitli uygulamalara güç vermesi muhtemeldir.
Akıllı sözleşmeler ve blok zinciri birlikte, toplumumuzun neredeyse tüm alanlarını bozma potansiyeline sahiptir. Ancak bu çığır açan teknolojilerin büyük ölçekli benimsemenin önündeki birçok engelin üstesinden gelip gelemeyeceğini yalnızca zaman gösterecek.