zk ve zksnark 2...
İyi okumalar;
Tamam anladık, peki bunu neden yapıyoruz, devrimsel özelliği ne, hangi proje zkSNARK’ları kullanıyor?
Yukarıda blokzincirler için şöyle bir cümle kullanmıştım. “bu teknolojiyi kullanmak tercihe bağlı” bir kripto para yapabilmek için blokzincire ihtiyaç yok. Blokzincir teknolojisini kullanan kripto paralar var. Aynısı bu zkSNARK’lar için de geçerli. Bu bir teknoloji. Sıfırdan bu teknolojiyi kullanarak bir kripto para yapılabilir, mevcut olan kripto paraya bu teknoloji entegre edilebilir veyahut bu teknoloji kullanılmayadabilir.
Ancak zkSNARK’lar hemen hemen bir çok yerde; Rollup’larda (zkSync, Polygon Zero), sıfırdan yapılan blokzincir teknolojilerinde (zCash, Mina Protocol) veyahut mevcut blokzincir teknolojilerine entegre (zkEVM, Single secret leader election) kullanılabilmektedir. Yazının bundan sonraki kısmında bu teknolojinin kullanılma yerleri ve şekillerini, gelecekte olası kullanım alanlarını ve SNARK’ların eksik ve tamamlanması gereken yerlerinden bahsedeceğim.
Rollup’larda zkSNARK
ZK-Rollup terminolojisinden benim takipçilerim bıkmıştır. ZK-Rollup’lar aslında sadece zkSNARK teknolojisini kullanmıyorlar. zkSTARK dediğimiz ayrı yapılar da Rollup mimarilerinde kullanılabiliyor (zkSTARK’lar ayrı bir yazı konusu, ancak prensip olarak SNARK’lara çok ama çok benzerler). Ancak yukarıda öğrendiğimiz zkSNARK’lar bu sistemlerin yardımına koşuyorlar. Eğer Rollup’lar nedir bilmiyorsanız, aşağıdaki yazımı mutlaka okuyun, sonra bu yazıya devam edin.
Ethereum ve Rollup Teknolojileri
Rollup’ların temel mantığı Ethereum zincirinde büyük boyutlu ve ağı tıkayan işlemlerin zincir dışında yapılıp bu işlemlerin yapıldığına dair KANITIN zincire sunulmasına dayanmaktadır. Böylelikle Ethereum ağındaki merkeziyetsizliği ve güvenliği, Rollup’lardaki hızı ve ucuzluğu almış oluyorsunuz. Yukarıda “kanıt” kelimesini kullandım, işte zkSNARK’lar burada ZK-Rollup’lar için devreye giriyor.
zkSNARK’lar zaten küçük ve öz kanıtlar değil miydi? İşte Rollup’lardaki işlemlerin zkSNARK’lanıp minik hale getirilip zincire bu “Succinct” kanıtların sunulması ZK-Rollup teknolojisinin temel mantığıdır. ZK-Rollup’lar için şöyle bir cümle de kullanmıştım, işlem yapıldıkça ucuzlarlar. Bu da SNARK’ların yapısı ile alakalı.
Örneğin, 10 adet işlemi SNARK’lamak ile 100 adet işlemi SNARK’lamak aynı boyuttur. Boyut değişmiyor ise, aynı boyuttaki 100 işlem 10 işleme göre işlem başına çok daha ucuz maliyette olacaktır.
zkSNARK’lar bize işlem yapıldıkça Rollup’larda daha fazla ucuzluk sağlıyor. Faydası bitmedi; SNARK’lardaki “Non-interactive” kısmı da burada çok önemli bir avantaj sağlıyor. Non-interactive yapılarından dolayı sunulan kanıt tek seferlik oluyor ve ZK-Rollup’lardan > Ethereum ağına olan geçişler sadece birkaç saniye sürüyor. Unutulmamalıdır ki, Optimistic Rollup’larda bu süre 7 ile 14 gün arası sürmekteyken, ZK-Rollup’larda SNARK yapılarının “Non-interactive” olmasından dolayı birkaç dakikayı bulmaktadır. İşte bu yüzden Ethereum geliştiricileri ZK-Rollup’ların yani zkSN(T)ARK teknolojisini kullanan Rollup’ların geleceğin ölçeklenme metodu olduğunu düşünmektedir.
Baştan yapılan blokzincirlerde zkSNARK.
zCash zkSNARK teknolojisini kullanan ilk blokzincirlerden biridir. Kendisi aslında Bitcoin’in bir forkudur. Bitcoin kodlarının zkSNARK teknolojisinin kullanılıp yeniden yazılmasıdır diyebiliriz. Her ikisi de 21M limitli coin arzına sahiptir. Peki zkSNARK’lar zCash’te ne için kullanılmaktadır?
Yukarıdaki tavşan oyununda Prover ile Verifier arasında sunulan sıfır bilgi ispatlarında tavşanın yerini doğru bilen bana ispatlamış olsa da dışarıdan bakan birisi bu tavşanın konumunu büyük resimde bulamıyordu. İşte zCash zkSNARK’ların bu özelliğini kullanarak dışarıdan izlenemeyen transferlere imkan tanıyan Gizlilik odaklı bir kripto paradır. Yapılan transferler zkSNARK’lanırsa, dışarıdan bakan birisi bu transferin kimden kime gittiğini anlayamayacaktır. Böylelikle zkSNARK teknolojisi zCash’de gizlilik sağlamakta kullanılmıştır.
Dolayısı ile zkSNARK’lanan coinler blokzincire dışarıdan bakan birisi için görünmeyecektir. Bitcoin veya Ethereum’un şeffaflığının aksine zCash’te kullanılan bu zkSNARK özelliği sayesinde transferler tamamen anonim olarak gerçekleştirilebilmektedir ve zkSNARK’lar şu an gizlilik için keşfedilmiş en iyi teknolojidir. Aztec Protocol aynı zamanda bir ZK-Rollup olup, zkSNARK’ların hem yukarıda anlattığım ölçeklenmesinden yararlanmaktadır, hem de zCash gibi gizlilik özelliğini kullanmaktadır.
Gizlilik konusu yazıyı uzatacağından gizlilik coinleri için yazdığım yazıdan detaylara devam edebilirsiniz. Gizlilik Odaklı Coinlere Genel Bakış
Mina Protocol zkSNARK teknolojisini en baştan itibaren kullanan bir diğer projedir. Yukarıda yazılan zkSNARK’ların ZK-Rollup’lardaki ölçeklenme veya zCash’teki gizlilik sağlamasından ayrıca zkSNARK’lar Mina Protocol’de bütün bir blokzincirin başlı başına zkSNARK’lanmasını hedeflemektedir.
Bunu çok duymuşsunuzdur, Mina Blokzinciri sadece 22 Kb’tan ibarettir. Peki Mina bunu nasıl sağlamaktadır, tabii ki yazımızın konusu olan zkSNARK teknolojisi ile.
Yukarıdaki Prover – Verifier örneği blokzincir içerisindeki transferler veya Merkle Tree dediğimiz diğer yapılar için kullanılmaktaydı. Mina Protocol ise bu teknolojiyi sadece blokzincir içerisindeki transferler için değil, bütün blokzincirin hepsini zkSNARK’layarak sağlamaktadır.
ZK-Rollup örneğinden gidelim, bütün o karmaşık işlemler zkSNARK’lanarak minik kanıtlara dönüştürülmekteydi. İşte Mina’da bu bütün blokzincirin tek ve minik bir kanıta düşürülmesi ile yapılmaktadır. Euro’nun Türk lirasına karşı aylardır olan yükselişini tek bir fotoğrafa indirgeyen aşağıdaki resim gibi. Mina blokzincirde her blok eklendikçe aşağıdaki gibi zinciri SNARK’lar ve fotoğrafını çeker. Elinizde hep tek fotoğraf kalır ancak fotoğraf giderek derinleşir, çekilen her fotoğraf aslında bir öncekini kapsar, ancak boyut değişmez. 🙂
Peki neden böyle bir şeye ihtiyaç duyulmaktadır? Yani blokzinciri sürekli zkSNARK’lamak ve boyutunu küçültmek neye yarar?
Bilindiği üzere blokzincirler büyük blok basmakla veya bu blokların hızını artırmakla hızlanabilmektedirler. Örnek verilecek olursa Polygon PoS Chain veya Binance Smart Chain Ethereum bloklarının daha büyük ve hızlı halidir. Dolayısı ile hızlı ve bloklar basıldığı zaman bekleyen kişi olmayacak ve blokzincirler ucuzlayacaktır. Ancak bu hızlı ve büyük blokların sorunu her seferinde çok daha fazla verinin birikmesi olacak ve zamanla bu blokzincirlere katılmak isteyen FULL NODE’ların çok fazla ve uzun sürede data indirmesine sebep olacaktır.
Bundan dolayı Ethereum veya Bitcoin büyük bloklar basamıyorlar ve merkeziyetsizliklerini koruyorlar. Çünkü bir blokzincirdeki merkeziyetsizlik oranı o blokzincire rahatlıkla katılabilecek node sayısı ile ölçülmektedir. İşte Mina Protocol bütün bu blokzinciri SNARK’layarak blokzincire katılmak için asgari boyutu minik bir zkSNARK kanıtına indirmektedir (22 Kb).
Fotoğrafın, fotoğrafının, fotoğrafının, fotoğrafının, fotoğrafı.. 🙂 Ancak son celsede elinizde her zaman tek fotoğraf kalacak ve son fotoğraf her zaman bir önceki fotoğrafın verilerini içerecektir. İşte zkSNARK’ların SUCCINCT yapısı Mina Protocol’ün hep 22 Kb kalmasını sağlayacaktır. Mükemmel değil mi? 🙂
Tobbykitty abimize çok teşekkürler, yarın kaldığımız yerden devam.
Sağlıklı, mutlu ve huzurlu kalın...