Ethereum platformu hızla gelişmeye ve genişlemeye devam ediyor. 2015 yılında Vitalik Buterin tarafından tasarlanan ve arkasında şu anda bir vakfın olduğu, tarif ederken “dünyanın bilgisayarı” tabiri kullanılan bu dev yapının güncel sorunları var.
Bu sorunların en önemlisi Ethereum platformu üzerinde çalışan uygulamaların (bunlara DApp deniliyor) hem sayıca artması hem de bunları kullanan sayısının çok hızla büyümesi sonucunda Ethereum darboğazlara çarpıyor. Bu darboğazların biri işlem yavaşlığı bir diğeri de işlemlerden alınan komisyon bedellerinin çok yükselmesi. İşte bu iki önemli problemi çözmek için Ethereum ekosisteminin paydaşları yıllardır harıl harıl çalışıyorlar.
Ethereum 2.0 adı verilen yeni versiyona geçiş de planlandığı gibi gidiyor ancak DApp kullanıcıları darboğaz yaratan problemlere acil çözüm arayışındalar. Bu durumda da, önceden Vitalik’in çok tercih etmediği ama yakın zamanda değerli bulduğu Layer2 çözümler önce çıkmaya ve göz doldurmaya başladılar.
Bu haftaki yazımda Layer2 çözümleri masaya yatırdım. Önce kendim anladım sonra da anladığımı kendi cümlelerimle anlatmaya çalıştım. Buyurun okuyalım…
Layer 2 Çözümler…
Bu tabir, Layer1 yani asıl Ethereum blokzinciri üzerinde olmayıp, Layer2 denilen, blokzincirine eklenmiş daha üst bir katmanda çalışan çözümlere deniliyor. Şekle bakınca bu katmanların yapısını görebilirsiniz.
Layer2 çözümlerin en fazla konuşulan ve gelecek vadedenleri “rollup” (buna yazı boyunca balya ve fiil olarak da balyalama dedim) denilen ve yüzlerce hatta binlerce işlemi bir defada işleyen çözümler.
Layer2 çözümler Ethereum mainnet’i üzerinde olmayan bir grup makine üzerinde (ki bunlar literatürde düğüm, validatör, operatör gibi kelimelerle anılıyor, ben “onaylayıcı” diyeceğim), mainnet’e paralel bir şekilde çalışmaktalar. İşlemler, doğrudan mainnet’e gönderilmeyip bu ikinci katmandaki onaylayıcılara yollanıyor. Bu onaylayıcı makineler gelen işlemleri hızla işleyip ardından büyük demetler halinde topladıktan sonra balyalayıp (saman balyası toplar gibi, yuvarlama anlamında rollup kelimesi kullanılıyor terminolojide), hepsini tek bir balya halinde Layer1’e yazıyorlar.
Bu işlemin genel şekli böyle. Detaylara inince, balyalama çözümleri iki ana kategoriye ayrılıyor:
ZK, yani zero knowledge çözümler,
Optimistik çözümler.
1) Zero Knowledge Çözümler:
Sıfır bilgi anlamına geliyor bu terim ve genelde ZK veya Zk olarak kısaltılıyor. ZkSync, ZKSwap gibi ürün isimlerine rastladıysanız onlar bu türe dahiller.
Zero knowledge tabiri, blokzinciri teknolojisinde çok kullanılan matematiksel bir yöntemin adından geliyor. ZK’nın kökeni kriptografi, ve sıfır bilgi ile ispat demek, öyle ki bir tarafın diğer tarafa, başka hiçbir bilgi aktarmadan belli bir değerin X olduğunun ispatının aktarılmasına deniyor.
Burada, Layer1 hedeflenerek yapılan çok sayıda işlemin balyalanıp, dev boyutta tek bir işlem haline getirilmesinden sonra, platform dışındaki Layer2 makinelerde sıfır bilgi ispatları yapılarak varlık ispatlarının elde edilip, sonra bu ispatın Layer1’e konulduğunu görüyoruz. Tahmin edersiniz ki bu ispatlar işlem maliyeti olarak hayli yüklü, ve dolayısıyla da makine zamanı olarak epey pahalı. Adında ZK olan şirketler burada Layer1 seviyesinde yapılacak bir işlemin zaman zaman 1,000,000 katı daha fazla işlem yapmayı gerektiren matematiksel ispatlara girişiyorlar. Ancak sonrasında optimistik sistemde olduğu gibi başka bir fraud hesaplaması yapılması ve balyaların geri açılması gerekmiyor.
ZK kullanan firmalar: ZkSync, ZKSwap, Loopring, Immutable, Hermez…
2) Optimistik (İyimser) Çözümler:
Adından da anlayacağımız gibi, optimistik yani iyimser balyalama çözümleri, Layer1 katmanına yollanan işlemlerin büyük çoğunluğunun gerçek işlem olduğunu, dolandırıcılık (yani fraud) amaçlı olmadığı varsayımına dayanıyor. Bu işlemler Layer2 katmanında toplanıp balya balya paketlendiğinde içlerindeki işlemlerin temiz olduğunu baştan varsaydıkları için, sadece şüpheli olduğu bir kullanıcı tarafından iddia edilen bir işlem ortaya çıkarsa o bloğun dahil olduğu balyanın tamamını geri alıp tekrar hesaplama yapıyorlar. Bu da tasarım olarak optimistik sistemlerin sıfır bilgi (ZK) sistemlerine göre istatistiki olarak daha az hesaplama yapmasına olanak sağlıyor. Hesaplama sonucunda hileli işlem varsa, o zaman balya içindeki tüm blokların state’leri yeniden oluşturulup yeni bloklar ve yeni balyalar ortaya konuluyor.
Optimistik rollup sistemlerini, mini Ethereum platformları gibi hayal edebilirsiniz. Kendileri bağımsız bir blokzinciri gibi işleyen yapılar bunlar. Periyodik olarak bu sistemler Layer1’e balyalar yazıyorlar. Oluşturulan balya, yapılan işlemlerin tüm datasını içeriyor ama başka hiçbir şeyi, mesela akıllı kontratların kendisini içermiyor. Bu da Layer1 seviyesinde hem işlem miktarını hem de ödenecek gas bedellerini hayli azaltıyor. Eğer iyimser olarak yazılmış olan kayıtların içinde bir sahtekarlık ortaya çıkarsa o zaman o balyayı Layer1’e gönderen onaylayıcı düğümün ipoteklenmiş olan ether’leri yanıyor, yani hatalı balyayı üreten validatör’e ceza kesiliyor.
Optimistik balya teknolojisini kullanan şirketler: Optimism, Fuel…
Şimdi iki sistemin iyi ve kötü taraflarını kıyaslayalım. Önce Optimistik Balyalama’nın iyi ve kötü taraflarına bakalım.
Olumlu özellikler:
Optimistik Sistemde Layer1’de yapacağınız tüm işlemleri yapabiliyorsunuz. Tüm akıllı kontratlar Layer1 Ethereum’a yollandığında oluşacak gas fee’lerini düşünmeden rahatça yazılabiliyor: Sistem blokzinciri altyapısı yani EVM (Ethereum Virtual Machine) ile uyumlu. Özel bir muamele gerekmediği için de oldukça kolay ve kullanışlı.
Olumsuz özellikler:
İyimser sistemde, para yatırmak kolay ancak paranızı geri çekmek bir haftayı alabiliyor. Zira bu sistem tek tarafa doğru hızlı işleyip, fraud riskinden dolayı ters işlemlerin itiraz süresini bekleyerek geçirmek esasına göre tasarlanmış. Bu süreler özel bir çeşit işlem garantörleri tarafından kısaltılabilir ama bunun da ether cinsinden bedeli olacaktır. Bu kısmı aynı vadeli çeklerin vadesini beklemek istemeyip hızlı paraya dönüş için faktöring şirketine gidip çekinizi kırdırmaya benziyor.
Şimdi de Sıfır Bilgi Balyalamanın olumlu-olumsuz özelliklerine bakalım:
Olumlu özellikler:
Her şey göz önünde bulundurulduğunda işlemler ZK sisteminde daha ucuza çıkıyor. Fraud hesaplamasına ihtiyaç olmadığından paranızı geri çekme süreleri de çok kısa oluyor. Hem Zk hem de Optimistik balyalama işlemleri kamuya açık yani public kayıtlar üretiyorlar.
Olumsuz özellikler:
Fraud olmadığı sürece işlemlerin yapılma hızı optimistik balyalamaya göre daha yavaş. Özel donanımlı üçüncü parti hesaplama şirketlerine ve makine parkına gereksinim duyuluyor. Muhtemelen özel bir programlama dili de gerektiriyor, yani Ethereum Virtual Machine, EVM ve Solidity dili ile uyumlu değil ZK Balyalama sistemleri.
Sonuç:
Ethereum Layer1 üzerinde pahalıya patlayan işlemlerimizi daha ucuza ve daha hızlı gerçekleştirmek istiyoruz. Bunun için yarışan iki teknoloji var, birisi bardağın boş tarafına odaklanmış, diğeri dolu tarafına. İkisinin de kendine göre olumlu ve olmusuz yönleri var. Eğer her şey iyi giderse Optimistik sistemler çok daha avantajlı. Fraud olduğu anda ise çekim süreleri uzuyor, o zaman da Zero Knowledge sistemlerin avantajı ortaya çıkıyor. Acaba ara bir çözüm üretilebilir mi diye soruyor insan.
Yararlandığım başlıca kaynaklar:
https://ethereum.org/en/developers/docs/layer-2-scaling/
https://medium.com/aztec-protocol/layer-cake-a-guide-to-layer-2s-79a281af6900