Şu anda Ethereum saniyede yalnızca 15 civarında işlem gerçekleştirebiliyor; Bunun anlamı, doğrulayıcıların henüz onaylanmamış bir işlem havuzundan bir dizi işlem seçeceği ve bu işlemleri seçme şeklinin aslında kârlarıyla ilgili olduğu anlamına geliyor. Bu nedenle, işleminizin dahil edilmesi için mücadele etmeniz gerekiyor çünkü aynı anda işlenebilecek çok fazla işlem var.
Biliyorsunuz doğrulayıcılar işleminizi bir bloğa dahil ettiklerinde ücret alıyorlar. Şimdi doğrulayıcı bir bakış açısıyla düşünün; Şu anda işlem havuzunda doğrulayıcı tarafından alınmayı bekleyen iki işlem var. Bir işlem 10$ ödemeye razı olurken, diğer işlem ücret olarak yalnızca 1$ ödüyor. Hangi işlemi seçeceksiniz?
10 dolarlık olan, değil mi? Çünkü bu işlemi bloğa dahil ederseniz ücret olarak 10 dolar alacaksınız.
Bunu basit bir şekilde açıklayayım. Ethereum ağıyla etkileşimde bulunurken genellikle belirli akıllı sözleşmeleri devreye sokarsınız. Akıllı sözleşmeler bir dizi talimattır; bunları bir program olarak düşünün. Her talimat bir miktar hesaplama gücü gerektirecektir.
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; contract HelloWorld { string public message; constructor() { message = "Hello World"; } function getMessage() public view returns (string memory) { return message; } function setMessage(string memory newMessage) public { message = newMessage; } }
Eğer sen bir
Bu sözleşmeyi dağıttığınızda çağrılan ilk şey, message
değişkenini "Merhaba Dünya" olarak ayarlayan yapıcısıdır . Bu, blockchainin durumunu değiştirir. Herhangi bir durum değişikliği ücret gerektirir. Bir dizeyi bir değişkende saklamanın maliyetinin 1$ olduğunu varsayalım.
Mesajı başka bir şeye ayarlamak istiyorsanız, örneğin "Kishan'ın makalesine hoş geldiniz" , gerekli mesajınızı ileterek sözleşmedeki setMessage()
yöntemini çağırmanız gerekir ve bu da yine bazı ücretler gerektirir çünkü durumu değiştiriyorlar. Diyelim ki yine 1$ gerekiyordu.
Mesajın ne olduğunu görmek istersem ne olur? getMessage();
çağırmanız yeterlidir. bu, durumu değiştirmediğinden herhangi bir ücret gerektirmez. Bunu açıkladıktan sonra tartışmamıza geri dönelim.
Diyelim ki, herhangi bir nedenle, halihazırda işlem havuzunda bulunan işleminiz, bu HelloWorld
akıllı sözleşmesini çağırıyor ve adınıza mesaj ayarlıyor.
Şimdi, bir doğrulayıcının işleminizi varsayımsal olarak seçtiğini varsayalım; ücretleri 1 ABD doları olarak belirlediğinizi ve akıllı sözleşmenin başlatılmasının 1 ABD doları alacağını görecektir. Yani kendisi karşılığında hiçbir şey almadı. Ücretlerin tamamı akıllı sözleşme ile etkileşime geçilerek kullanıldı. O zaman neden onu alacak? Doğrulayıcının bunu işlemesi ve zincire dahil etmesi için herhangi bir teşvik bulunmadığından bu işlem reddedilecektir. Bu nedenle, doğrulayıcıyı işleminizi seçmeye ikna edebilmek için daha yüksek ücretlerle tekrar denemeniz gerekecek.
Birçok kullanıcı Ethereum üzerinde işlem yaptığında gas ücreti gerçekten rekabetçi hale gelebilir. Evet, ücretleri manuel olarak ayarlayabilirsiniz ancak doğrulayıcılar yalnızca kendilerine fayda sağlayacak işlemleri seçeceğinden onaylanmasının çok zaman alabileceğini unutmayın.
İşleminiz zamana duyarlıysa, örneğin bir işlemin mümkün olan en kısa sürede kapanmasını istiyorsanız, bu, tasfiye edilme riski doğurur. Bu senaryoda, ücretleri mümkün olduğu kadar yüksek ayarlamanız veya işleminizi saniyeler içinde onaylayacak bir ücret tahmini veren cüzdanlardan birini kullanmanız daha iyi olur. Çünkü gazdan tasarruf etmek tüm portföyünüzün silinmesine neden olabilir.
Bu yüksek ücretler, birçok kripto meraklısının Ethereum üzerinde işlem yapmasını engelledi ve bu sorunu çözmek için tanıtılan birçok başka katman-1 var. Ancak hepsinde merkeziyetsizlik yok, bu yüzden herkes web3'e geçecek.
Ethereum'un sunduğu merkeziyetsizlik ve güvenliği kullanmak istiyoruz ancak aynı zamanda bu yüksek ücretlerle cebimizi kaybetmek de istemiyoruz.
Bu sorunları çözmenin bir yolu, Katman 2 ölçeklendirme çözümü olan Toplamalardır.
Toplamalar, işlemleri toplamanın, bunları zincir dışında işlemenin ve sonucu tekrar zincir üzerinde yayınlamanın bir yoludur.
Tüm bu zincir dışı ve zincir içi anlayışta şüphe uyandırabilir, bu yüzden biraz daha açıklığa kavuşturmama izin verin. Toplamaları, Ethereum blok zincirinin ücretlerini ve tıkanıklığını önemli ölçüde azaltabilecek bir süreç olarak düşünün. Bu çalışmanın yolu, büyük bir işlem kümesini bir araya toplamak (bir araya getirmek) ve bunları paralel zincir, VM vb. gibi zincir dışı bir yere taşımaktır. Bu paralel zincirler, Arbitrum, zkSync gibi katman-2 ağları tarafından çalıştırılır. İyimserlik vb.
Toplama , birincil görevi farklı kullanıcılardan işlemleri toplamak ve bunları zincir dışı bir ortamda yürütmek olan toplama operatörü adı verilen bir kuruluş tarafından yapılır. Yine zincir dışı, uygulamaya bağlı olarak sanal makine, yan zincir veya başka bir katman-2 protokolü gibi birçok anlama gelebilir.
İşlemleri yürüttükten sonra, toplanan verileri (toplama bloğu), doğru şekilde yürüttüğüne dair kanıtla birlikte Ethereum zincirine çağrı verileri olarak gönderir. Buraya kadar açıktık ama çağrı verileri nedir ?
Çağrı verilerini, yürütülmeden veya durumunu etkilemeden Ethereum'da depolanabilen özel bir veri türü olarak düşünün.
Toplama operatörlerinin, çağrı verilerini bir bloğa dahil etmek için Ethereum doğrulayıcısına bir ücret ödemesi gerekir. Bir kez dahil edildi. Toplama operatörü, diğer kullanıcılardan veya doğrulayıcılardan kaynaklanan herhangi bir zorluk veya anlaşmazlık açısından toplama sözleşmesini (sonraki bölümde açıklanmıştır) izler. Herhangi bir anlaşmazlık varsa buna göre yanıt verir.
Toplama operatörümüz tarafından gönderilen çağrı verilerinde bulunan işlem verilerinin ve kanıtların doğrulanmasından bir toplama sözleşmesi sorumludur. Toplamanın durumunu ve mantığını yöneten Ethereum üzerinde konuşlandırılan akıllı bir sözleşmedir.
Bir toplama sözleşmesi, toplama operatöründen işlem verilerini ve kanıtları çağrı verileri olarak alır, bunları doğrular, toplamaların durumunu günceller ve herhangi bir durum değişikliği için bir olay yayınlar.
Tüm öğrendiklerimizi birleştirelim ve bir örnekle özetleyelim:
Diyelim ki toplama kullanarak arkadaşınız Ram'a 1 ETH göndermek istiyorsunuz.
Ram'in adresini ve gönderilecek tutarı cüzdanınıza belirtip işlemi imzalıyorsunuz.
Bundan sonra, işlemi, farklı kullanıcılardan gelen işlemleri toplamaktan ve bunları zincir dışı yürütme ortamında yürütmekten sorumlu olan bir toplama operatörüne gönderirsiniz.
Toplama operatörü daha sonra işleminizi diğer işlemlerle birlikte toplama bloğu adı verilen bir blokta paketleyecek ve bunu Ethereum zincirine calldata olarak gönderecektir. Daha sonra bloğa dahil edilmesi karşılığında doğrulayıcılara ücret öder.
Şimdi, toplama türüne bağlı olarak, toplama operatörünün çağrı verileriyle birlikte toplama bloğunun geçerliliğine ilişkin kanıt veya ek bir iddia sunması gerekebilir.
Bunu yaptıktan sonra, toplama bloğu, toplamanın durumunu ve mantığını yöneten Ethereum zincirine yerleştirilen akıllı bir sözleşme olan toplama sözleşmesi tarafından işlenir. Sözleşme kanıt veya iddiayı doğrular, toplama kullanıcılarının durumunu günceller ve herhangi bir durum değişikliği için bir olay yayınlar.
Son olarak Ram, toplama hesabında sizden 1 ETH alır.
İyimser toplamalar iyimserdir. Demek istediğim, partideki her işlemin geçerli olduğunu varsayıyorlar. Ama bir sorun var. İşlemin geçersiz olduğunu düşünen bir kullanıcının veya doğrulayıcının sahtekarlığa karşı kanıt sunarak itiraz edebileceği bir ek süre veriyorlar. Ethereum ana ağı daha sonra bunu doğrular ve eğer meydan okuma başarılı olursa, toplama bloğu reddedilir ve dürüst olmayan operatör ağır bir şekilde cezalandırılır.
Yetkisiz süre sona erdikten sonra herhangi bir anlaşmazlık olmazsa, işlem grubu Ethereum'a bağlanır ve içerdiği durum değişiklikleri sonlandırılır.
Arttırılmış ölçeklenebilirlik ve azaltılmış gas ücretleri sağlamasına rağmen, ödemesiz sürenin beklenmesi nedeniyle işlemin kesinleştirilmesinde bir gecikmeye neden olur.
Yarışta iki önemli at var:
Başvurabileceğiniz zk-rollup'ları açıklayan ayrıntılı bir makale yazdım. Her neyse, size bunun ne olduğu ve nasıl çalıştığı hakkında kısa bir genel bakış sunacağım.
zk toplamaları, iyimser toplamaların aksine, geçerliliği kanıtlanana kadar her işlemin geçersiz olduğunu varsayar. İşlemin gerçekliğini doğrulamak için "sıfır bilgi kanıtları" kullanır. Gruptaki tüm işlemleri tamamladıktan sonra, toplu sözleşmenin kolayca doğrulanabileceğine dair kanıtla birlikte tek bir işlemi Ethereum'a geri gönderir.
Optimistic toplamaya kıyasla daha güvenlidir. Ek süre bulunmadığından, geçerliliği zaten kriptografik kanıtla kanıtlandığından işlemler anında kesinleşir. Ancak kanıtın oluşturulması, bunu uygulamak için önemli miktarda hesaplama gücü ve uzmanlık gerektirir. Bu, İyimser toplamalarla karşılaştırıldığında karmaşıklığı artırabilir.
Yarıştaki iki önemli at:
Bu makaleyi okumaya zaman ayırdığınız için teşekkür ederiz.
Referanslar: