Merhabalar,
Bu haftaki yazımızda Layer-1, Layer-2, zk Proof ve zk Rollup kavramlarından bahsettik. Bu haftadan sonraki yazılarımızda Layer-2 protokolleri inceleyeceğiz. O nedenle öncesinde bu yazıyı okuyup, temel kavramlar hakkında fikir sahibi olabilirsiniz.
Yazılarımızı takip etmek için mail adresinizle abone olabilir ve yazıları faydalı buluyorsanız paylaşabilirsiniz.
Ethereum Ağındaki Sıkışıklık ve Pahalılık
*Son 90 gündeki Gas fiyatı median değeri (Dune Analytics)
DeFi’nin yaygınlaşması ve sunduğu imkanlar ile birlikte, zaman zaman Ethereum ağının yüksek işlem ücretleri nedeniyle kullanılamaz hale geldiğini biliyoruz. Bu ölçeklenebilirlik sorununu çözmek amacıyla Layer-2 ölçekleme çözümlerini son dönemlerde çok fazla duymaya başladık.
Aave, Syntetix, Uniswap ve dYdX gibi protokoller, ölçeklenebilmek amacıyla farklı L2 çözümü sunan projelerle (Optimistic, StarkWare) çalıştıklarını açıkladılar. Bu protokollere ek olarak ödeme ve merkeziyetsiz borsa hizmeti veren ve halihazırda çalışan platformlar da bulunuyor; Loopring ve zkSync.
Layer-2 çözümlerinin bir çok farklı özellikleri ve yaklaşımları bulunuyor. Bir sonraki yazıda Loopring’i anlatarak bu alana giriş yapacağız. Öncesinde bazı temel terimleri açıklamak amacıyla bu yazıyı yayınlamak istedik.
Layer-1 Nedir?
Layer-1, Ethereum blokzincirini tanımlar. Ethereum ağındaki yoğunluğun azaltılması ve tx ücretlerinin düşürülmesi gibi bir takım çalışmalar Layer-1 seviyesinde de yapılabilir. Örneğin ; blok büyüklüğünün artırılması. Ancak bunların kapsamı limitli olacaktır.
Eth2.0 aslında bir Layer-1 ölçeklendirme çalışması olarak düşünülebilir. Ana ağın (L1) üzerinde olacak değişiklikleri kapsadığınından dolayı bu şekilde sınıflandırabiliriz.
Layer-2 Nedir?
Layer-2, Ethereum mainnetinin bir üst katmanı olarak inşa edilmiş ve ana ağ ile etkileşimi bulunan çözümleri tanımlar. L2 ölçeklendirme çalışmaları, işlemsel yükü Ethereum blokzincirinden alarak, farklı bir platformda (bir yan blokzincir ya da merkle tree) çözdükten sonra tekrar ana ağda güncelleme yapılmasını hedefler. Örneğin, ETH ağında 1000 adet transfer işlemi yapmak yerine, bu işlemleri L2 çözümü üzerinde yaparak, ETH ağına tek seferde güncellemeleri yansıtmak mümkün olabilir. Yani L2 ölçekleme çözümünü kullanırken, belli bir süreliğine bilgileri ETH ağından başka bir mekanizmaya taşıyoruz ve istediğimiz işlemleri bu yapı üzerinde gerçekleştiriyoruz. Bu yapı üzerindeki yaptığımız işlemleri belli aralıklarla ETH ağına yansıtan mekanizmalar sayesinde ise bilginin bütünlüğü ve doğruluğu sağlanmış olacaktır.
zkProof (Zero Knowledge Proof - Sıfır Bilgi İspatı) Nedir?
zkProof, bir bilginin varlığının ya da doğruluğunun ispatının, bilgiyi açıkça karşı tarafa iletmeden yapılması yöntemine denir. Bu methodun kullanılabilmesi için bilginin doğruluğunu sınayan, güvenilir bir aracı sistem ya da uygulama bulunması gerekir. İki basit örneği üzerinden kavramsal olarak açıklamak gerekirse;
Diyelimki bir satışa dahil olmak için cüzdanınızda 1000 USD olması gerekiyor. Satışa dahil olmak istiyorsunuz fakat cüzdanınızdaki miktarı da karşı tarafa göstermek istemiyorsunuz. Bu durumda bir aracı (iki tarafın da güvendiği bir kişi ya da sistem) cüzdanınızı kontrol ederek, karşı tarafa 1000 USD’ye sahip olup olmadığınızı aktarır. Böylece cüzdan miktarınızı açık etmeden, karşı tarafa bir ispat sağlamış olursunuz.
Renk körü bir arkadaşınız olduğunu varsayalım, siz renk körü değilsiniz ve kırmızı ve yeşil topların farkının ayırt edilebildiğini göstermek istiyorsunuz. Ancak topların renklerini açıkça söylemek istemiyorsunuz. Renk körü arkadaşınız, topların herbiri bir elinde olacak şekilde önce arkasında saklar, sonra bir elindekini size birini gösterir. Ardından elini tekrar arkasına saklayarak, topları aynı elinde tutar ya da el değiştirir. Diğer elini size gösterir ve az önceki ile bir fark olup olmadığını sorar. Eğer değişiklik yapmadıysa, diğer topu göstermiş olacak ve siz az öncekinden farklı olduğunu söyleyeceksiniz. Ya da değişiklik yaptıysa aynı olduğunu söyleceksiniz. Değişiklik yapıp yapmadığını bilen kişi kendisi olduğu için, bu durumda sizin farkı anlayıp anlamadığınızı bilmiş olacak. Ve siz bu bilgiyi ispatlarken, topların rengini söylememiş olacaksınız. Tabi burada sizin şans eseri tahmin etme ihtimalinizi de düşünürsek, bu işlemi birden fazla tekrarlayarak tutarlılık kontrolü yapılabilir. (Wikipedia)
zk Rollup Nedir?
zk Rollup bir Layer2 çözümüdür. Vitalik tarafından da bir çok kez kullanılması yönünde tavsiyede bulunulan bu çözümün amacı, hem ETH ağındaki yoğunluğun azaltılması hem de kullanıcıların daha az işlem ücreti ödeyerek transferlerini daha hızlı gerçekleştirmesini sağlamasıdır.
zk Rollup çözümlerini incelerken zkSNARK, zkSTARK ifadelerini görmek mümkün. Bu ifadeler aslında farklı zk algoritmalarını yaklaşımlarını temsil ediyor. Loopring’i incelediğimiz yazımızda bu konular hakkında daha detaylı bilgi paylaşıyor olacağız.
Peki bu mekanizma temelde nasıl çalışıyor?
Öncelikle işlem yapılmak istenen cüzdan ile, ilgili zk Rollup protokolünün akıllı kontratı üzerinden Layer-2 hesabı aktifleştirilmesi gerekiyor. Bu işlemi yapıldığında, aynı cüzdan adresi ile Layer-2’de de bir hesabınız oluşturuluyor.
Daha sonra ETH blokzinciri üzerindeki akıllı kontrat aracılığı ile Layer-2’deki hesabınıza transfer gerçekleştirmeniz gerekiyor. Bu işlem sonucunda, kontrat tarafından tutulan adres-bakiye tablosuna göre, Layer-2’deki hesabınıza yatırdığınız miktar tanımlanmış olacaktır. Bu andan itibaren Ethereum blokzincirinin dışındasınız.
Layer-2’de yaptığınız bütün transferler, protokol tarafından oluşturulan bir farklı bir kriptografik yapıda (örn: Merkle Tree) tutulacaktır. Blokzincire benzer olarak herkesin adresi ve bakiyesi tutularak, her işlem sonucu gerekli güncellemeler bu yapı üzerinde yapılacaktır. Bu noktada kritik olan, Layer-2’de yapılan transferlerin Ethereum ağına yansıtılmasıdır. Çünkü, Layer-2’de bir işlem yaptığınızda, aslında Eth ağında bir değişiklik olmuyor. Hatta Layer-2’de yaptığınız işlemden hemen sonra, akıllı kontrattaki kilitli miktarını hala aynı kalacaktır. Taa ki Layer-1 güncellemesine kadar.
İşte bu noktada zkProof ve Layer-1’e bilgi aktarımı (Rollup) devreye giriyor. Protokolün kontrolündeki bir operatör aracılığı ile Layer-2’de yapılan yüzlerce işlem, zkSNARK vb bir algoritma ile küçük bir bilgi paketi haline getirilerek, Layer-1’e yani Ethereum ağına taşınıyor. Böylece Ethereum ağında gerçekleştirilecek yüzlerce transfer, tek seferde blokzincire işlenmiş oluyor ve kontrattaki bakiyeler güncelleniyor. İşlemin tek seferde gerçekleşmesi ile de kullanıcılar ayrı ayrı TX ücreti ödemekten kurtulmuş oluyorlar.
Layer-2’de ödenecek TX ücretleri Ethereum ağına göre çok çok düşük kalırken, aynı zamanda 2000 TPS seviyelerinde hızlı gerçekleşebilmektedir. Kullanıcının Ethereum ağında ödeyeceği ücretler, Layer-2’ye depozit ve Layer-2’den para çekme yapmak istediği zamanlarla sınırlı kalacaktır.
Bütün bu işlemler ile sıkışık bir anayolda ilerlemek yerine, girişi ve çıkışı ücretli bir otobana girip işlemleri daha ucuz ve hızlı hallederek tekrar çıkmak gibi düşünebiliriz.
Bizi desteklemek için: DeFi Library - Gitcoin
Eğer paylaşımlarımızı faydalı buluyorsanız, Gitcoin üzerinden bizi destekleyebilirsiniz. Her 1 DAI değerindeki desteğiniz karşılığında sponsorlardan +5 DAI elde edeceğiz. Destekleyen kişi sayısı arttıkça, sponsorların desteği de artacak.
Gitcoine giriş için bir Github hesabı, destekte bulunmak için Metamask cüzdanı yeterli.
Destek Fonu Linki : DeFi Library - Gitcoin