Hayır, ZK-Rollup’lar Optimistic Rollup’lardan* daha iyi değildir. 1
Bu yazı sevgili @tobbykitty tarafından kaleme alınmıştır. *her açıdan
Ethereum dışındaki diğer akıllı kontrat platformlarında da ödenilen işlem ücretleri artmaya başladı. (Özellikle EVM kullanan zincirlerde.)
Hatta NFT mintleme ve token kapma yarışı gibi durumlarda Ethereum’da olduğu gibi absürt işlem ücretleri çıkmaya başladı ve insanlar yavaştan tek bir zincirin tüm sorunları çözemediğini, blokları büyütmenin veya hızlandırmanın yüksek işlem ücretlerinin önüne geçemeyeceğini anlamaya başladı. (İnş öyledir.)
NFT yarışında bir transfer. 49 Dolar ücret, mintlenen NFT sayısı: 0 Mevzu bahis Tx
Projeler bu işlemleri farklı zincirler üzerine alıp, ana ağdaki trafiği azaltma yoluna girmeye başladılar. (Parachains, Rollups, Subnets vs.)
Ethereum özelinde konuşacak olursak, Rollup’lar Ethereum ana ağında yoğunluğa sebep olan bu işlemleri kendi üzerine alıp, bu işlemlerin yapıldığına dair kanıtları ana ağa gönderen sistemlerden ibarettir. Böylelikle karışık işlemler zincir dışı tutularak yapıldığına dair kanıtlar ana ağa sunulur ve işlemlerin güvenliği Ethereum ana ağı güvencesine alınır. Rollup’ların çalışma mantığını anlattığım yazım ektedir:
Ethereum ve Rollup Teknolojileri
Bilindiği gibi Rollup’ları temelde ikiye ayırıyoruz:
1. Optimistic Rollup’lar
2. ZK-Rollup’lar
Rollup’lar hakkında gerek Twitter’da gerek blog’umda bir çok yazı yazdım, insanları bilgilendirmeye çalıştım. Ancak gelinen noktada bu sistemlerin, hem Optimistic hem ZK tarafında tam anlaşılamadığını, özellikle L2 sistemlerin (Rollup’lar dışındaki State Channel, Plasma vs.) mantığının ve anatomisinin tam öğrenilmediği kanaatindeyim.
Belki ileride üyesi olduğum BlockLand DAO Discord grubunda 0xemre ile birlikte bir söyleşi yapıp bu soru işaretlerini giderebiliriz. 🙂
Bu yazıda diğer L2 sistemlere değinmeyeceğim, Optimistic ve ZK-Rollup farklılıklarına değinip, özellikle L2’lerle ilgilenen insanların ZK-Rollup’ları Optimistic Rollup’lardan her anlamda daha üstün görmelerinin ve bu şekilde tanıtmalarının tamamen yanlış olduğunu aktarmaya çalışacağım.
Tembeller için özet: ZK-Rollup’lar her açıdan Optimistic Rollup’lardan üstün değildir. Daha ileri teknolojiler oldukları gerçektir; ancak Optimistic Rollup’lardan ucuz oldukları, daha hızlı oldukları doğru değildir. Optimistic Rollup’lar harikadır, ZK-Rollup’lar bu sistemleri saf dışı bırakamayacaklardır, birlikte yaşamaya devam edeceklerdir. Çünkü hitap ettiği kitleler de farklıdır.
Ne diyorduk, evet Rollup’lar.
Tekrar Rollup’ları anlatmak istemiyorum, eminim siz de bıkmışsınızdır. Yukarıda yazdığım yazıya göz gezdirin, Rollup’ları temelden alarak anlattım. Özetle, Rollup’lar işlemlerin Ethereum dışında yapılıp bu işlemlerin yapıldığına dair kanıtları Ethereum’a yollayan sistemlerdir. Optimistic Rollup’lar da ZK-Rollup’lar da çalışma prensibi olarak aynıdır. Çünkü neticede her iki sistem de Rollup’tır. Optimistic Rollup ile ZK-Rollup arasındaki fark yukarıda anlattığım Rollup’ların Ethereum’a gönderdiği kanıtın tipinden kaynaklanmaktadır.
Öncelikle kanıt nedir? Bu sorunun cevabını vermek gerekir.. Öğretmeniniz çalışıp çalışmadığınızı anlamak için gelip sizi 7/24 evinizde veya yurdunuzda izlemez. Sizi sınava tabi tutar, eğer çalışmışsanız sınavdan yüksek alırsınız ve bu yüksek not çalıştığınıza dair kanıttır. Uzun uzun sizi denetlemek yerine sınav notunuzdan sizi değerlendirir.
Rollup’lar da böyledir, doğru iş yaptığını Ethereum’a kanıtlamak zorundadır. İşlemlerin güvenliği işte bu kanıtlardan gelmektedir. Kanıt yoksa, Rollup yoktur. İşte Optimistic Rollup ile ZK-Rollup arasındaki fark buradan geliyor. Bu iki Rollup farklı kanıt tipleri kullanmaktadır, aslında aynı görevi yaparlar. Tipleri farklıdır. Biri yazılı sınav, biri sözlü sınav gibi düşünebilirsiniz. Her neyse;
Optimistic Rollup’lar: Fraud Proof
ZK-Rollup’lar: Validity Proof kullanırlar.
Buradan itibaren kademe kademe yazının zorluğu artacaktır. Çünkü basitleştirmek aralarındaki farkı anlatmaya yetmiyor.
Validity Proofs
Dedik ki, ZK-Rollup’lar Validity Proofs kullanırlar. Bir ZK-Rollup yapmış olduğu işlemlerin kanıtını matematiksel işlemler ve kriptografi ile küçük kanıtlar haline getirirler. (Zero-Knowledge Proofs) Bu kanıtları Ethereum üzerindeki kontratlara gönderirler. Ethereum zincirinin kendisi ise bu işlemlerin kanıtları ile L2 üzerindeki yapılan işlemlerin doğruluğunu karşılaştırır.
Fraud Proofs
Optimistic Rollup’lar ise Fraud Proof’lar kullanırlar. Aslında Fraud Proof’lar bir kanıt değildir. Fraud Proof’lar Rollup içerisinde gerçekleşen transferlerin dökümünü Ethereum’a doğruymuş gibi yollar. Bu yüzden adı üstünde “Optimistic”lerdir. Eğer bu gönderilen transfer dökümlerine itiraz olması durumunda (örn; Rollup’taki node’lardan biri) Ethereum üzerindeki kontrat bu veriler içerisinde üçkağıt yapıldı mı taramaya başlar, bu tarama yaklaşık 1 hafta sürdüğünden Optimistic Rollup’lardan Ethereum’a direkt çekimler yaklaşık 1 hafta sürmektedir. (Bu kısma daha sonra gelinecektir.)
Sonuç olarak Rollup’ların arasındaki tek fark “Proof” farkıdır, peki bunların avantajları ve dezavantajları nelerdir? Yanlış argümanları çürüterek ve doğrusunu aktararak ilerleyeceğim. Son olarak; hangi Rollup hangi sistemi kullanıyor onu da ufak belirtelim:
Arbitrum ve Optimism: Optimistic Rollup’lardır.
zkSync ile StarkNet: ZK-Rollup’lardır.
1. Ücret farkı.
Yanlış bilinen: ZK-Rollup’lar, Optimistic Rollup’lardan daha ucuzdur.
Doğru olan: Optimistic Rollup’lar, ZK-Rollup’lardan daha ucuzdur.
L2fees.info‘ya girenler genelde Loopring, zkSync gibi ZK-Rollup’ların Optimistic Rollup’lardan çok daha ucuz olduğunu görmüştür, veya zkSync üzerindeki ZigZag’tan trade yapmanın, Arbitrum’da trade yapmaktan daha ucuz olduğunu deneyimlemiştir. Nitekim doğrudur, günümüzde ZK-Rollup’lar Optimistic Rollup’lardan daha ucuzdur. Ancak bu durum ileride geçerli olmayacaktır aksine Optimistic Rollup’lar ZK-Rollup’lardan çok daha ucuz olacaktır.
Yukarıda dedik ki, Rollup’ların her ikisi de Ethereum’a Proof gönderir. Peki bu ücret farkı neden kaynaklanmaktadır? ZK-Rollup’lar Rollup zincirde olan her Data’yı, her transferi aslında Ethereum’a yollamazlar. Örneğin;
Rollup zincir üzerinde
A kişisi B’ye 1 ETH gönderdi –> B ise bu ETH’yi C’ye gönderdi.
Neticede, A kişisinde 1 ETH azalır, C kişisinin 1 ETH’si artar.
ZK-Rollup’lar bu işlemin sadece neticesini Ethereum’a yollar. Yani aradaki B kişisinin A’dan aldığı ve C’ye gönderdiği transfer bilgilerini L1 ile paylaşmaz. Dolayısı ile daha az Data gönderdiği için Optimistic Rollup’lardan “şimdilik” daha ucuz gibidir. Çünkü Optimistic Rollup’lar A –> B –> C arasındaki tüm para akışını Ethereum’a gönderir. (Bu fark ZK teknolojisinin bir farkıdır. Fraud Proof sistemler BÜTÜN DATAYI Ethereum’a göndermek zorundadır.)
Bu bir avantaj mıdır? Şimdilik. Dezavantajları var mıdır? Elbette. ZK-Rollup’larda bu Proof’ları gönderen kişiye (bilgisayara) Prover denilir. Ve A –> B –> C arasındaki tüm para akışını bilen tek kişi Prover’dır. Yani ZK-Rollup’larda bazı “görülemeyen” karanlık noktalar vardır. Bu kötü bir şey değildir, güvenlik açığı da oluşturmaz, ancak Optimistic Rollup’lar kadar şeffaf değillerdir.
Gelelim, Optimistic Rollup’ların nasıl gelecekte çok daha ucuz olacağına.. Bugün ORU’ların çıkardığı masrafın çok büyük bir kısmı CALLDATA denilen Ethereum’a gönderilen yukarıdaki tüm verilerin ve Fraud Proof’un masrafıdır. Optimistic Rollup’ların zincir üstü masrafları yok denecek kadar azdır. Optimistic Rollup L2 node’u rahatlıkla kurulabilir. İleride Ethereum’a gelecek olan Sharding ile birlikte CALLDATA masrafı neredeyse bedava olacak. Ayrıca Arbitrum Nitro gibi yollanacak verilerin daha optimize edilmesi ile birlikte Fee ücretleri sıfırlanacak.
Aynı şeyleri ZK-Rollup’lar için söylemek zordur, evet CALLDATA masrafı Optimistic Rollup’lara göre çok daha azdır, ancak ZK-Rollup’ları çalıştırmak için gereken bilgisayar donanım gereksinimi ve işlem yükü çok fazladır. Çünkü Validity Proof oluşturmak için bir çok matematik problemi, eliptik eğriler denilen kriptografik şifrelemeler yüksek donanımlı bilgisayarlar gerektirmektedir.
Kısaca Fraud Proof oluşturmak Validity Proof oluşturmaktan çok daha ucuzdur, CALLDATA maliyetinin Sharding ile dramatik düşürülmesinden sonra ve Optimistic Rollup’ların data optimizasyonu sonrası (örneğin; Arbitrum Nitro) Optimistic Rollup’lar, ZK-Rollup’lardan daha ucuz işlem imkanı sunacaklardır.
2. EVM.
Yanlış bilinen: ZK-Rollup’lar, Optimistic Rollup’lar gibi EVM çalıştırırlar.
Doğru olan: ZK-Rollup’lar EVM çalıştırmazlar, EVM uyumlu olabilirler.**
Ne StarkNet, ne de zkSync EVM çalıştırmaz. Bunlar sadece EVM’nin çalıştırabildiği Solidity (ek olarak Vyper da var ama önemi yok) dilini kendi akıllı kontrat diline çevirebilir.
Örneğin zkSync 2.0’ın getirmek istediği zkEVM yapısı aslında dönüştürücülerden ibaret bir sistemdir. Solidity dili Yul diline çevrilir. Daha sonra LLVM adı verilen bir VM bu dili çalıştırır. Kısacası ZK-Rollup’lar EVM’nin kendisini çalıştırmıyorlar. Aynı şey StarkNet için de geçerlidir. StarkNet temelde WARP adı verilen bir dönüştürücü ile Solidity’i StarkNet’in dili olan Cairo’ya dönüştürmektedir.
EVM üzerindeki uygulamalar çalıştıkça bir sorun yok diyebilirsiniz, ancak bu yine bir dezantajdır. Tüm EVM komutları bu dillere çevrilemiyor. Örneğin; (msg.value, block.basefee, functions as data, SELFDESTRUCT) gibi Solidity komutları muhtemelen hiçbir zaman WARP dönüştürücüsü ile Solidity’den Cairo’ya çevrilemeyecek. Hali hazırdaki zkSync 2.0’da ADDMOD, SMOD, MULMOD, EXP, CREATE2 gibi bytecode’lar da çalışmamaktadır.
Ancak Optimistic Rollup’lar direkt EVM uyumludur ve hatta direkt EVM’nin kendisidir. Bugün Ethereum’da olan herhangi bir kontrat HİÇBİR DEĞİŞİKİK YAPILMAKSIZIN örneğin Optimism’de (Arbitrum’da minik değişiklikler gerekiyor, ancak çok ufak değişiklikler olup Arbitrum’da EVM ile tam uyumludur.) çalışabilmektedir.
Bu sistem belki biz kullanıcılar için problem yaşatmasa da, geliştiriciler için sorundur ve bundan dolayı StarkNet Cairo dilini yaygınlaştırmaya çalışmaktadır. Bu durumun çözümü için bütün EVM bytecode’larını çalıştıran bir ZK-Rollup’lara uyumlu VM gerekiyor.
**Ama zkEVM var! diyenleri duyuyorum. Evet zkEVM tüm EVM bytecode’larını çalıştıran ve zkRollup’lara uyumlu olabilecek bir sistemdir. Polygon Hermez, zkScroll gibi ZK-Rollup’lar şu an zkEVM üzerinde çalışsalar da bu sistemin gelmesi belki de yıllar alacak. Dolayısı ile Optimistic Rollup’lar bu konuda şu an tartışmasız öndedir. İleride durum muhtemelen eşitlenecektir, ancak tarih belirsizdir.