Akıllı sözleşme nedir?
Pek çok kitap, makale ve videodaki akıllı sözleşmenin tanımı, geliştiricinin bakış açısından oldukça yanıltıcıdır. Genellikle akıllı sözleşmenin yeni nesil bir yasal sözleşme, tapu veya mülkiyet kanıtı vb. olduğunu ve kod tabanlı olduklarından akıllı sözleşmelerin son derece akıllı olduğunu açıklarlar. Ancak bu tanım sadece finans veya diğer sektörlerde çalışanlar, bilgisayar bilimi ve kodlamayı bilmeyenler içindir. Yalnızca akıllı sözleşmenin çok güçlü olduğunu bilmeleri gerekir ve bu yeterlidir. Ama akıllı sözleşme tam olarak nedir?
Aslında akıllı sözleşme ne akıllı ne de bir sözleşmedir, sadece bir kod dizisidir. Öyleyse neden insanlar buna daha sezgisel bir isim yerine akıllı sözleşme diyorlar? Bunun nedeni, başından beri buna akıllı sözleşme denmesi ve programcıların adı değiştiremeyecek kadar tembel olmalarıdır. Python veya Java kodları gibi akıllı sözleşmeler, yüksek seviyeli bir dilde yazılır ve sanal bir makinede işlem kodu olarak çalıştırılmak üzere bayt kodu halinde derlenir. Ethereum blok zincirinde JVM ve Python-VM veya EVM gibi şeyleri zaten biliyor olabilirsiniz. Aelf projesi için akıllı sözleşmeler C# ile yazılır ve derlendikten sonra .NET Framework’de çalıştırılır.
Akıllı bir sözleşmenin yürütülmesini çağırmak, bir anlamda http talebinde bulunmaya benzerdir: Geleneksel bir talep sürecinde, uzak sunucuya bazı verileri (html, css, javascripts vb.) geri göndermesini söylemek için bir URL yazarsınız veya sunucuya sunucunun bazı durumlarını değiştirmek için Java'da yazılabilen bazı sunucu tarafı programları çalıştırmasını söylersiniz. Aynı şey akıllı sözleşmeler için de geçerlidir. Tıpkı bir talepte olduğu gibi, kripto para maliyeti olsun veya olmasın hedef sözleşme adresine bir işlem göndeririz. Sözleşme işlemden çağrı talebini aldığında, işleminizdeki parametrelere bağlı olarak akıllı sözleşme kodunda bazı özel işlevleri yürütecektir. Yeterli gaz varsa, yürütme sonucu bu akıllı sözleşmenin durumunu değiştirecek ve size sonucun verilerini gönderecek veya size kripto para birimi gönderecektir.
Ancak, bir http talebinden sonra uzaktaki bir sunucudan anlık yanıtla karşılaştırıldığında, akıllı bir sözleşmenin yürütülmesi bir işlem gönderdikten sonra biraz zaman alacaktır. Bir işlem gönderdiğinizde, işlem mümkün olduğu kadar çok düğüme yayınlanacak ve her madencilik düğümü onu aday bloğuna dahil edecektir. Bir süre sonra bir madencilik düğümü yeni bir blok ürettiğinde, bu bloğu diğer düğümlere yayınlayacaktır ve bu blok onaylanmış olur. Bu işlem biraz zaman alacaktır ve çoğu gerçek uygulama için yalnızca bir yeni blok üretmek işlemin güvenliğini ve geçerliliğini garanti edemez, bu nedenle bu bloktan sonra daha fazla blok art arda birleştirilmelidir. Aelf blok zincirinde, işlemi içeren bloğun üretiminden sonra en az 8 yeni blok oluşturulmalıdır. Elbette, bu işlemi içeren bir blok nihayet bir madencilik düğümü tarafından paketlenirse, belirli bir konsensüs koşulunu karşıladığında, hedef akıllı sözleşme daha sonra tam bir düğümde yürütülür (tam düğüm bir madencilik düğümü olabilir veya tam tersi). Ancak bu bloktan sonra daha fazla blok üretilirken, bu akıllı sözleşmenin yürütme sonucunu başka bir zincire çatallayarak değiştirmek neredeyse imkansız olacaktır.
Bingo oyunu örneğinde, "bet/bahis" düğmesi akıllı sözleşmemizde böyle bir yöntemdir. Bir bahis oynadığımızda, sözleşmeye bir işlem gönderilir. Bir blok paketlendikten sonra, yöntem yürütülür ve böylece sözleşme ne kadar bahis oynamak istediğinizi bilir. Sözleşmenin bahis tutarınızı bilmesini sağlamak ve kimsenin bahis miktarınızı kurcalamasını önlemek için, sonraki 8 yeni bloğun üretilmesini beklemeniz gerekir. Peki ne kadar sürer? Son makalede veya demo videoda gösterildiği gibi yaklaşık 30 saniye sürüyor. Aslında hiç kimse 8 blok oluşturmanın ne kadar sürdüğünü tam olarak bilmiyor, ancak 30 saniye sonra 8'den fazla bloğun zaten üretilmiş olması gerektiğini biliyoruz.
Bu iki temel kavramı açıkladıktan sonra Aelf dahil olmak üzere herhangi bir blockchain projesini anlamak çok daha kolaydır. Bir blockchain projesinin uyguladığı teknolojiler ne kadar karmaşık olursa olsun, hepsi bu iki konsepte dayanacaktır.
KAYNAK: https://medium.com/aelfblockchain/a-beginners-guide-to-understanding-the-aelf-whitepaper-part-2-14eecf883375