Ana içeriğe atla
Change page

Akıllı sözleşmelere giriş

Akıllı sözleşme nedir?

Bir "akıllı sözleşme", basitçe Ethereum blokzincirinde çalışan bir programdır. Ethereum blokzincirinde belirli bir adreste bulunan kod (işlevleri) ve verilerin (durumu) bir koleksiyonudur.

Akıllı sözleşmeler bir tür Ethereum hesabıdır. Bu, bir bakiyeleri olduğu ve işlemlerin hedefi olabilecekleri anlamına gelir. Ancak bir kullanıcı tarafından kontrol edilmezler, bunun yerine ağa dağıtılırlar ve programlandığı gibi çalışırlar. Kullanıcı hesapları daha sonra, akıllı sözleşmede tanımlanan bir işlevi yürüten işlemler göndererek bir akıllı sözleşme ile etkileşime girebilir. Akıllı sözleşmeler, normal bir sözleşme gibi kurallar tanımlayabilir ve bunları kod aracılığıyla otomatik olarak uygulayabilir. Akıllı sözleşmeler varsayılan olarak silinemez ve onlarla olan etkileşimler geri alınamaz.

Ön koşullar

Eğer yeni başlıyorsanız veya daha az teknik bir giriş arıyorsanız, akıllı sözleşmelere giriş bölümümüzü öneririz.

Akıllı sözleşmeler dünyasına dalmadan önce hesaplar, işlemler ve Ethereum sanal makinesi hakkında okuduğunuzdan emin olun.

Dijital bir otomat

Bir akıllı sözleşme için belki de en iyi metafor, Nick Szabo (opens in a new tab) tarafından tanımlandığı gibi bir otomattır. Doğru girdilerle, belirli bir çıktı garanti edilir.

Bir otomattan atıştırmalık almak için:

para + atıştırmalık seçimi = atıştırmalık verildi

Bu mantık otomata programlanmıştır.

Bir akıllı sözleşme, tıpkı bir otomat gibi, içine programlanmış bir mantığa sahiptir. İşte bu otomatın Solidity ile yazılmış bir akıllı sözleşme olsaydı nasıl görüneceğine dair basit bir örnek:

Bir otomatın bir satıcı çalışanına olan ihtiyacı ortadan kaldırması gibi, akıllı sözleşmeler de birçok sektörde aracıların yerini alabilir.

İzinsiz

Herkes bir akıllı sözleşme yazabilir ve bunu ağa dağıtabilir. Sadece bir akıllı sözleşme dilinde nasıl kod yazılacağını öğrenmeniz ve sözleşmenizi dağıtmak için yeterli ETH'ye sahip olmanız gerekir. Bir akıllı sözleşmeyi dağıtmak teknik olarak bir işlemdir, bu nedenle basit bir ETH transferi için gaz ödemeniz gerektiği gibi gaz ödemeniz gerekir. Ancak, sözleşme dağıtımı için gaz maliyetleri çok daha yüksektir.

Ethereum, akıllı sözleşmeler yazmak için geliştirici dostu dillere sahiptir:

  • Solidity
  • Vyper

Diller hakkında daha fazlası

Ancak, Ethereum'un sanal makinesinin sözleşmeyi yorumlayabilmesi ve saklayabilmesi için dağıtılmadan önce derlenmeleri gerekir. Derleme hakkında daha fazlası

Birleştirilebilirlik

Akıllı sözleşmeler Ethereum'da herkese açıktır ve açık API'ler olarak düşünülebilir. Bu, nelerin mümkün olduğunu büyük ölçüde genişletmek için kendi akıllı sözleşmenizde diğer akıllı sözleşmeleri çağırabileceğiniz anlamına gelir. Sözleşmeler başka sözleşmeleri bile dağıtabilir.

Akıllı sözleşme birleştirilebilirliği hakkında daha fazla bilgi edinin.

Sınırlamalar

Akıllı sözleşmeler tek başlarına "gerçek dünya" olayları hakkında bilgi alamazlar çünkü zincir dışı kaynaklardan veri alamazlar. Bu, gerçek dünyadaki olaylara yanıt veremeyecekleri anlamına gelir. Bu, tasarım gereğidir. Dış bilgilere güvenmek, güvenlik ve merkeziyetsizlik için önemli olan mutabakatı tehlikeye atabilir.

Ancak, blokzincir uygulamalarının zincir dışı verileri kullanabilmesi önemlidir. Çözüm, zincir dışı verileri alan ve bunları akıllı sözleşmelerin kullanımına sunan araçlar olan kâhinlerdir.

Akıllı sözleşmelerin bir diğer sınırlaması da maksimum sözleşme boyutudur. Bir akıllı sözleşme maksimum 24KB olabilir, aksi takdirde gazı biter. Bu durum, Elmas Deseni (The Diamond Pattern) (opens in a new tab) kullanılarak aşılabilir.

Çoklu imza sözleşmeleri

Çoklu imza (multisig) sözleşmeleri, bir işlemi yürütmek için birden fazla geçerli imza gerektiren akıllı sözleşme hesaplarıdır. Bu, önemli miktarda Ether veya diğer tokenleri tutan sözleşmeler için tek bir hata noktasından kaçınmak açısından çok yararlıdır. Çoklu imzalar ayrıca sözleşme yürütme ve anahtar yönetimi sorumluluğunu birden fazla taraf arasında böler ve tek bir özel anahtarın kaybının geri döndürülemez fon kaybına yol açmasını önler. Bu nedenlerle, çoklu imza sözleşmeleri basit DAO yönetişimi için kullanılabilir. Çoklu imzalar, yürütmek için M olası kabul edilebilir imzadan N imza gerektirir (burada N ≤ M ve M > 1). N = 3, M = 5 ve N = 4, M = 7 yaygın olarak kullanılır. 4/7'lik bir çoklu imza, yedi olası geçerli imzadan dördünü gerektirir. Bu, üç imza kaybolsa bile fonların hala geri alınabileceği anlamına gelir. Bu durumda, sözleşmenin yürütülebilmesi için anahtar sahiplerinin çoğunluğunun aynı fikirde olması ve imzalaması gerektiği anlamına da gelir.

Akıllı sözleşme kaynakları

OpenZeppelin Contracts - Güvenli akıllı sözleşme geliştirme kütüphanesi.

Daha fazla bilgi

Eğitimler: Ethereum üzerinde akıllı sözleşme imzaları (EIP-1271)