Orijinal başlık: ZK Toplamaları: Odadaki Fil
Orijinal yazar: Jaehyun Ha
Orijinal derleme: Deep Chao TechFlow
Blockchain endüstrisinin mevcut durumu sıfır bilgi (ZK) dönemine benzetilebilir. ZK, gittiğiniz her yerde öne çıkıyor ve adında ZK'yi içermeyen yeni nesil bir blockchain projesi bulmak giderek daha nadir hale geliyor. Teknik açıdan bakıldığında ZK'nın daha ölçeklenebilir ve özel bir blockchain ekosistemine katkıda bulunabilecek umut verici bir teknoloji olduğu inkar edilemez. Bununla birlikte, ZK'nin karmaşık teknik geçmişi nedeniyle, ister perakende ister kurumsal olsun, birçok yatırımcı genellikle ZK projelerine, ZK teknolojisinin nasıl fayda sağladığını tam olarak anlamadan, havalı, yeni göründüğü ve blockchain üçlemini çözebileceği "inancına" dayanarak yatırım yapar. her proje.
Bu ZK serisinde, ZK toplamalarının sakıncalı gerçeklerini (dezavantajları ve dezavantajları) ve bunların faydalı uygulamalarını keşfedeceğiz. İlk olarak, blockchaindeki ZK kanıtlarının (ZKP'ler) iki temel özelliğini analiz edeceğiz: "sıfır bilgi" ve "basitlik". Daha sonra, şu anda hizmette olan çok sayıda ZK toplamasının "sıfır bilgi" yönünden gerçekten nasıl faydalanmadığını tartışacağız. Daha sonra, uygulama karmaşıklığı gibi iyi bilinen sorunlardan kaçınarak, ZK toplamasının uygulanmasının yararlı olmaktan çok zararlı olabileceği alanlara bakacağız. Son olarak, ZK ilkelerini etkili bir şekilde hayata geçiren ve ZK teknolojisinin kullanımından gerçekten net faydalar sağlayan olağanüstü projeleri öne çıkaracağız.
İnceleme: ZK Toplamalarında İşlem Yaşam Döngüsü
Toplama, zincir dışı işlem paketlerini yürüterek ve ardından en son L2 durumunun özet verilerini L1'de depolayarak L1'in üretim sınırlamalarını çözen bir ölçeklendirme çözümüdür. Bunlar arasında ZK Rollups'ın öne çıkan özelliği, zincirdeki zincir dışı hesaplamaların geçerliliğine dair kanıt sunarak fonları hızlı bir şekilde çekebilme yeteneğidir. ZK toplamalarıyla ilgili sorunlara girmeden önce, işlem yaşam döngüsünü kısaca gözden geçirelim.
Şekil 2: ZK özetlerindeki işlem yaşam döngüsü Kaynak: Presto Araştırma Merkezi
1. Her L2 kullanıcısı işlemlerini oluşturur ve sıralayıcıya gönderir.
2. Sıralayıcı, birden fazla işlemi toplayıp sıralar ve ardından yeni toplama durumunu hesaplamak için bu işlemleri zincir dışında yürütür. Daha sonra, sıralayıcı bu yeni toplama durumunu zincir üstü durum akıllı sözleşmesine bir "toplu" biçimde gönderir ve veri kullanılabilirliğini sağlamak için karşılık gelen L2 işlem verilerini veri blokları halinde sıkıştırır.
3. Grup, grubun yürütülmesine ilişkin geçerlilik kanıtını (veya ZKP'yi) oluşturan kanıtlayıcıya gönderilir. Bu geçerlilik kanıtı daha sonra ek verilerle (yani önceki durum kökü) birlikte L1'in doğrulayıcı akıllı sözleşmesine gönderilir ve bu, doğrulayıcının neyi doğruladığını belirlemesine yardımcı olur.
4. Doğrulayıcı sözleşme kontrolünün geçerli olduğu kanıtlandıktan sonra toplamanın durumu güncellenecek ve gönderilen partideki L2 işlemleri tamamlanmış sayılacaktır.
(Bu açıklamanın ZK Toplama sürecinin basitleştirilmiş bir versiyonu olduğunu ve her uygulamanın protokolden protokole farklılık gösterebileceğini lütfen unutmayın. Roller arasında ayrım yaparsak L2'de toplayıcılar, yürütücüler ve teklifçiler gibi daha fazla varlık olabilir. Veri blokları Katmanlar amaçlarına bağlı olarak bloklar, blok grupları ve gruplar gibi farklı da olabilir. Yukarıdaki açıklama, merkezi bir sıralayıcının işlemleri yürütme ve aynı zamanda toplu iş için birleşik bir veri bloğu formatı oluşturma konusunda güçlü yetkiye sahip olduğu bir senaryoyu varsayar.)
(Bu açıklamanın ZK Toplama sürecinin basitleştirilmiş bir versiyonu olduğunu ve her uygulamanın protokolden protokole farklılık gösterebileceğini lütfen unutmayın. Roller arasında ayrım yaparsak L2'de toplayıcılar, yürütücüler ve teklifçiler gibi daha fazla varlık olabilir. Veri blokları Katmanlar amaçlarına bağlı olarak bloklar, blok grupları ve gruplar gibi farklı da olabilir. Yukarıdaki açıklama, merkezi bir sıralayıcının işlemleri yürütme ve aynı zamanda toplu iş için birleşik bir veri bloğu formatı oluşturma konusunda güçlü yetkiye sahip olduğu bir senaryoyu varsayar.)
İyimser Toplamalardan farklı olarak, ZKP'ler (ZK-SNARK'lar veya ZK-STARK'lar gibi) sayesinde ZK Toplamaları, tüm işlemleri tekrarlamaya gerek kalmadan basit bir kanıtı doğrulayarak binlerce işlemin yürütme doğruluğunu doğrulayabilir. Peki nedir bu ZKP ve hangi özelliklere sahip?
ZKP'lerin iki özelliği: sıfır bilgi ve basitlik
Adından da anlaşılacağı gibi ZKP temelde bir kanıttır. Kanıt, sağlayıcının iddialarını tam olarak destekleyen herhangi bir şey olabilir. Bob'un (sağlayıcı) Alice'i (doğrulayıcı) dizüstü bilgisayarı üzerinde yetkisi olduğuna ikna etmek istediğini varsayalım. Bunu kanıtlamanın en basit yolu Bob'un Alice'e şifreyi söylemesi ve Alice'in dizüstü bilgisayarına şifreyi girmesi ve Bob'un gerçekten izne sahip olduğunu doğrulamasıdır. Ancak bu doğrulama süreci hem Alice hem de Bob için tatmin edici değildir. Eğer Bob çok uzun ve karmaşık bir şifre ayarlarsa, Alice'in bu şifreyi doğru girmesi çok zor olacaktır (Alice'in kopyalayıp yapıştıramayacağı varsayılırsa). Daha gerçekçi bir ifadeyle Bob, yetkisini kanıtlamak için şifresini Alice'e açıklamaya istekli olmayabilir.
Peki ya Bob'un şifresini açıklamasına gerek kalmadan Alice'in bilgisayarın izinlerini hızlı bir şekilde doğrulayabileceği bir kimlik doğrulama süreci olsaydı? Örneğin Bob, Şekil 3'te gösterildiği gibi Alice'in önünde dizüstü bilgisayarının kilidini açmak için parmak izi tanımayı kullanabilir (bunun mükemmel bir ZKP örneği olmadığını unutmayın). Burası hem Alice hem de Bob'un ZKP'lerin iki temel özelliğinden yararlanabileceği yerdir: sıfır bilgi özelliği ve basitlik özelliği.
Şekil 3: Sıfır bilgi ve basitlikle üst düzey sezgi Kaynak: imgflip
Sıfır Bilgi (ZK)
Sıfır bilgi özelliği, sağlayıcı tarafından oluşturulan kanıtın, kanıtın geçerliliği dışında gizli tanık (yani özel veriler) hakkında herhangi bir bilgiyi açığa çıkarmaması ve doğrulayıcıyı verilerden habersiz bırakması anlamına gelir. Blockchain'de bu özellik bireysel kullanıcıların gizliliğini korumak için kullanılabilir. ZKP'ler her işleme uygulanırsa kullanıcılar, işlemlerinin ayrıntılarını (transferler, hesap bakiyesi güncellemeleri, akıllı sözleşme dağıtımı ve infaz) halka duyurulur.
Basitlik
Basitlik özelliği, ZK'nin büyük boyutlu bir beyandan kısa ve hızlı bir şekilde doğrulanabilir kanıt oluşturma yeteneğini ifade eder; başka bir deyişle, büyük bir şeyi kompakt bir forma sıkıştırır. Blockchain'de bu özellikle toplamalar için kullanılır. ZKP'leri kullanarak, L2'deki doğrulayıcı, L1'deki doğrulayıcıya kısa bir kanıt göndererek işlemin doğru şekilde yürütüldüğünü iddia edebilir (terabayt düzeyindeki bir işlemin geçerliliği, 10~100 KB'lik bir kanıtla ifade edilebilir). Doğrulayıcılar daha sonra, tüm işlemleri tekrarlamak yerine kısa bir kanıtı doğrulayarak yürütmenin geçerliliğini kısa bir sürede (yani 10 milisaniye ila 1 saniye) kolayca doğrulayabilir.
ZK Rollup harika, ancak bu gizlilik anlamına gelmiyor
ZKP'nin yukarıdaki özellikleri ZK Toplamalarında iyi bir şekilde kullanılmaktadır. Doğrulayıcılar, sağlayıcı tarafından alınan ZKP'lerden orijinal işlem verilerini çıkaramasa da, kısa kanıtların doğrulanması, sağlayıcının taleplerini (yani yeni L2 durumunu) etkili bir şekilde doğrulamalarına olanak tanır. Bununla birlikte, mevcut ZK Toplamalarının sıfır bilgi ve basitlik özelliklerine tamamen bağlı olduğunu iddia etmek yanıltıcı olacaktır. Bu, sağlayıcılar ve doğrulayıcılar arasındaki etkileşime odaklanıldığında doğru olabilir, ancak ZK Toplamalarında sıralayıcılar, sağlayıcılar ve toplama düğümleri gibi başka bileşenler de vardır. Peki onlara da "sıfır bilgi" ilkesi garanti ediliyor mu?
Herhangi bir ZK Toplamasında ZKP'lerle tam gizlilik elde etme zorluğu, diğer bölümlerin herkese açık kalması ve bazı bölümlerin ZK aracılığıyla özel hale gelmesi durumunda ortaya çıkabilecek uzlaşmalardan kaynaklanmaktadır. ZK Rollups'taki işlem yaşam döngüsünü düşünün; kullanıcıdan sıralayıcıya bir işlem gönderildiğinde gizlilik korunuyor mu? Peki ya sağlayıcılar? Yoksa L2 grupları DA katmanına gönderildiğinde bireysel hesap bilgilerinin gizliliği korunuyor mu? Bu senaryoların hiçbiri şu anda geçerli değil.
Şekil 4: ZK toplamalarındaki gizlilik sızıntıları Kaynak: Presto Research
Çoğu ana ZK Toplamasında, sıralayıcı veya sağlayıcı (veya güçlü izinlere sahip diğer merkezi varlık), transfer tutarları, hesap bakiyesi güncellemeleri, sözleşme dağıtımı ve yürütülmesi dahil olmak üzere işlem ayrıntılarına ilişkin net bir görünürlüğe sahiptir. Basit bir örnek vermek gerekirse herhangi bir ZK Rollup blok gezginini ziyaret ederek bahsi geçen tüm detayları kolaylıkla gözlemleyebilirsiniz. Sadece bu da değil, merkezi sıralayıcının herhangi bir nedenle hizmet vermeyi durdurduğu ve başka bir toplama düğümünün toplama durumunu geri yüklemeye çalıştığı bir durumu düşünün. DA katmanının (çoğu durumda L1 Ethereum) halka açık L2 verilerinden bilgi çıkaracak ve L2 durumunu yeniden oluşturacaktır. Bu işlem sırasında DA katmanında saklanan L2 işlemlerini tekrar oynatabilen herhangi bir düğüm, her kullanıcının hesabının durumu hakkındaki bilgileri kurtarabilir.
Bu nedenle, "sıfır bilgi" terimi mevcut ZK Toplamalarında parçalı biçimde uygulanmaktadır. Bu yanlış sayılamayacak olsa da ZK'nin sıfır bilginin tam mahremiyet anlamına geldiği yönündeki yaygın algıdan açıkça farklıdır. Mevcut ZK Toplamalarının yeniliği, "sıfır bilgi" yerine "basitlik" özelliğinden yararlanmak, yani işlemleri zincir dışında yürütmek ve doğrulayıcılar için kısa kanıtlar oluşturmak, böylece yürütmenin geçerliliğini yeniden doğrulamaya gerek kalmadan hızlı ve ölçeklenebilir bir şekilde doğrulayabilmeleridir. onları infaz ediyorum.
Bu nedenle, Starknet gibi bazı ZK Toplamaları, karışıklığı önlemek için kendilerini "geçerlilik toplamaları" olarak adlandırırken, Aztec gibi gerçek ZK gizliliğini sağlayan diğerleri, kendilerini ZK-ZK toplamaları olarak etiketler.
ZK Toplamalarının pratikliğine ilişkin derinlemesine bir değerlendirme
Daha önce de belirtildiği gibi, ZK Toplamalarının çoğu ZK gizliliğini tam olarak uygulamamaktadır. Peki bundan sonraki hedefimiz ne? ZK'yi Rollup'ın her bölümüne tam olarak dağıtarak tam işlem gizliliği elde etmek mi istiyorsunuz? Aslında bu basit bir soru değil. Teknolojiyi daha da olgunlaştırmak için önemli teknolojik ilerlemelere ihtiyaç duymanın yanı sıra, ZK'nin ideoloji (örneğin özel işlemler için yasa dışı kullanım) ve pratiklik (örneğin gerçekten işe yarıyor mu?) açısından hala tartışmalı sorunları var. Tam işlem gizliliği etiğini tartışmak bu makalenin kapsamı dışında olduğundan, blockchain projelerinde karşılaşılan ZK Rollup'larla ilgili iki pratik konuya odaklanacağız.
1. Nokta: ZKP'yi oluşturmak hızlı determinizm için bir darboğaz olabilir
Öncelikle ZK Toplamalarının kullanışlılığını tartışalım. ZK Rollups'ın en ilgi çekici özelliği, ZKP sayesinde işlemlerinin "hızlı sonuçlandırılması" nedeniyle varlık çekme gecikmelerinin azalmasıdır. Artan TPS ve düşük işlem ücretleri ek avantajlardır. ZK Rollups özelliğinin en etkili kullanımı oyun sektöründedir çünkü oyun içi para yatırma ve çekme işlemleri çok sıktır ve bu da her saniye çok sayıda oyun içi işlemin gerçekleşmesine neden olur.
Ancak ZK Rollup'lar gerçekten oyun için en iyi teknoloji yığını olarak değerlendirilebilir mi? Bu bakımdan ZK Rollups'taki "hızlı son" kavramını daha derinlemesine düşünmemiz gerekiyor. Bir kullanıcının ZK Rollup'a dayalı bir teknoloji yığınında çalışan bir Web3 oyununun keyfini çıkardığını hayal edin. Kullanıcılar oyun içi öğeleri oyun içi para birimiyle takas eder ve bu varlığı oyundan çekmeye çalışır.
Ancak ZK Rollup'lar gerçekten oyun için en iyi teknoloji yığını olarak değerlendirilebilir mi? Bu bakımdan ZK Rollups'taki "hızlı son" kavramını daha derinlemesine düşünmemiz gerekiyor. Bir kullanıcının ZK Rollup'a dayalı bir teknoloji yığınında çalışan bir Web3 oyununun keyfini çıkardığını hayal edin. Kullanıcılar oyun içi öğeleri oyun içi para birimiyle takas eder ve bu varlığı oyundan çekmeye çalışır.
Varlıkları çekmek için oyun içi işlemin tamamlanması gerekir. Bu, işlemin geri döndürülemez olduğundan emin olmak için işlemin yeni Toplama durumu taahhüdüne dahil edilmesi, ilgili ZKP'nin L1'e sunulması ve L1 Ethereum'daki kanıtın sonunun beklenmesi gerektiği anlamına gelir. Tüm bu süreçler anında gerçekleşebilirse, ZK Rollups'ın sıklıkla öne sürdüğü "anında işlem onayı"na ulaşabilir ve kullanıcıların varlıkları anında geri çekmesine olanak tanıyabiliriz.
Ancak gerçek bundan çok uzaktır. L2beat tarafından sağlanan farklı ZK Rollup'ların bitiş zamanı istatistiklerine göre zkSync Era ortalama 2 saat, Linea 3 saat, Starknet ise ortalama 8 saat sürmektedir. Bunun nedeni, bir ZKP oluşturmanın zaman alması ve ayrıca işlem ücretlerini azaltmak için bir topluluğa daha fazla işlemin (yani tek bir kanıtın) dahil edilmesinin de ek zaman almasıdır. Başka bir deyişle, kanıt oluşturma ve gönderme hızı, ZK Toplamalarının hızlı bir şekilde sonlandırılmasında potansiyel bir darboğazdır ve Web3 oyunlarındaki kullanıcı deneyimini olumsuz etkileyebilir.
Şekil 5: ZKP üretimi, ZK toplamalarının hızlı determinizmi açısından potansiyel bir darboğaz kaynağı olabilir: imgflip
Öte yandan, Ronin gibi oyun için optimize edilmiş zincirler (Pixels ve Axie Infinity gibi Web3 oyunlarını destekler), merkeziyetsizlik ve güvenlikten ödün verirken ultra hızlı sonuçlandırma sağlar. Ronin, ZK veya Rollup tabanlı bir zincir değildir: PoA (Yetki Kanıtı) + DPoS (Yetkilendirilmiş Hisse Kanıtı) konsensüs algoritması altında çalışan bir EVM blok zinciridir. Devredilen hisselerin sayısına göre 22 doğrulayıcı seçer ve bu doğrulayıcılar daha sonra PoA tarzında (yani yalnızca 22 doğrulayıcı arasında bir oylama süreci) bloklar oluşturur ve doğrular. Sonuç olarak Ronin'de işlemler hızlı bir şekilde tamamlanıyor, bloklara dahil edilmede neredeyse hiç gecikme olmuyor ve doğrulama süreleri kısa. Shillin hard fork'undan sonra her işlemin sonuçlanması ortalama yalnızca 6 saniye sürüyor. Ronin tüm bunları ZKP'ye ihtiyaç duymadan gerçekleştiriyor.
Elbette Ronin'in kusurları var. Merkezi bir doğrulayıcı tarafından yönetilmesi, onu %51 saldırılarına karşı nispeten daha savunmasız hale getiriyor. Ayrıca, Ethereum'u yerleşim katmanı olarak kullanmadığı için Ethereum'un güvenliğini devralamaz. Zincirler arası köprülerin kullanılmasının güvenlik riskleri de vardır. Ancak kullanıcı açısından bakıldığında: Umursuyorlar mı? Şu anda, merkezi olmayan sıralamaya sahip olmayan ZK Toplamalarının da tek bir başarısızlık noktası (SPOF) sorunu vardır. Ethereum bunları garanti eder çünkü işlemin geri alınması olasılığını azaltır, ancak merkezi bir sıralayıcı veya doğrulayıcının başarısız olması durumunda ZK Toplamaları da donabilir. ZK Toplamalarındaki "ZK"nin yalnızca yürütme doğruluğunun geçerliliğini doğrulamak için kullanıldığını tekrar unutmayın. Aynı işlevselliği sağlayan ancak daha hızlı ve daha ucuz başka bir proje varsa, ZK Rollups artık Web3 oyun kullanıcıları ve geliştiricileri tarafından tercih edilen teknoloji yığını olarak görülmeyebilir.
2. Nokta: Sürüm durumu farklılıkları iki ucu keskin bir kılıçtır
Bir diğer nokta ise ZK Rollup protokol uygulamasının pratikliğidir. Bunların arasında, burada ZK toplamalarında veri kullanılabilirliğini sağlama yöntemlerinden biri olan durum farkı sürümüne odaklanıyoruz (bkz. Dencun Yükseltmesi Kilidini Açma: DA Katmanlarını Ölçeklendirmenin Görünmeyen Gerçeği, Jaehyun Ha, 12Nisan24).
Toplamalardaki verilerin kullanılabilirliğini anlamanın basit bir yolu, amatör bir tırmanıcının Everest Dağı'na tırmanışını gösterdiğini ve belgelediğini hayal etmektir. En kolay yol, ana kamptan dağın tepesine kadar her adımı videoya kaydetmektir. Video dosyası büyük olsa da herkes tırmanıcının yükselişini doğrulayabilir ve potansiyel olarak görüntüleri yeniden oynatabilir. Bu metafor, veri kullanılabilirliğini sağlamaya yönelik orijinal işlemsel veri yayınlama yaklaşımıyla karşılaştırılabilir. İyimser Toplamalar bu yaklaşımı takip eder, böylece sıralayıcının durum taahhütlerine güvenilemeyeceğinden, bireysel yarışmacılar tekrar oynatır ve doğru uygulamayı doğrular. ZK Toplamalarında, Polygon zkEVM ve Scroll, ham L2 işlem verilerini L1'de sıkıştırılmış biçimde depolamak için bu yaklaşımı kullanır, böylece herkes gerektiğinde toplamanın durumunu geri yüklemek için L2 işlemini yeniden oynatabilir.
Amatör tırmanıcı örneğine dönecek olursak, bir başka doğrulama yöntemi de ünlü bir tırmanıcının amatör dağcılarla birlikte Everest'e tırmanarak tırmanışın gerçekten tamamlandığını dünyaya kanıtlaması olabilir. Tırmanış güvenilir bir kişi tarafından doğrulandığından, tırmanıcıların artık her adımı kayıt altına almasına gerek yok. Sadece başlangıç noktasının ve dağın zirvesinin fotoğrafını çeken diğerleri, tırmanıcının zirveye ulaştığını varsayacaktır. Bu metafor, veri kullanılabilirliğini sağlamak için kullanılan durum farkı yaklaşımını yansıtmaktadır. ZK Toplamalarında, zkSync Era ve StarkNet bu yaklaşımı benimser ve yalnızca L2 işleminin L1'de yürütülmesinden önceki ve sonraki durum farkını saklar, böylece herkes gerektiğinde Toplamanın durumunu geri yüklemek için başlangıç durumundan durum farkını hesaplayabilir.
Şekil 6: Orijinal işlem sürümü ve durum farkı sürümü Kaynak: Presto Research
Bu durum farkı yöntemi şüphesiz orijinal işlem verisi yayınlama yönteminden daha uygun maliyetlidir çünkü ara işlemlerin saklanması adımından tasarruf edebilir, böylece L1'in depolama maliyetini azaltabilir. Bu genellikle bir sorun olmasa da burada potansiyel bir kusur var: Bu yaklaşım, L2 işlem geçmişinin tamamının kurtarılmasına izin vermiyor ve bu, bazı DApp'ler için sorun olabilir.
Örnek olarak DeFi borç verme protokolü Compound'u ele alalım. Durum farklılıklarına dayalı olarak ZK Rollup teknoloji yığını üzerine kurulduğu varsayılmaktadır. Bu protokoller, arz ve borç verme oranlarını her saniye hesaplamak için tam işlem geçmişi gerektirir. Peki ZK Toplama sıralayıcısı başarısız olursa ve diğer Toplama düğümleri en son durumu geri yüklemeye çalışırsa ne olur? Durumu geri yüklemek mümkündür, ancak oranlar hatalı bir şekilde geri yüklenecektir çünkü her bir ara işlem yerine yalnızca gruplar arasındaki anlık görüntüleri izleyebilir.
Sonuç olarak
Bu makale temel olarak günümüzün ZK Toplamalarının çoğunda "ZK"nin bulunmadığını ve DApp'lerin birçok yerinde ZKP ve ZK programlarını kullanmanın en iyi seçim olmayabileceğini ileri sürüyor. ZK teknolojisi kendisinde bir sorun olmadığı için suçlanmaktan kendini masum hissedebilir, ancak teknolojik gelişmelerden faydalanma sürecinde DApp'lerin potansiyel performans düşüşlerine neden olabilir. Ancak bu, ZK teknolojisinin bu sektör için yararsız olduğu anlamına gelmiyor. ZKP'ler ve ZK toplamaları nihayet olgunlaştığında, kesinlikle blockchain üçlemine daha iyi çözümler sağlayacaklar. Aslında, ZK gizliliğini koruyan ZK'ye dayalı projeler zaten mevcut ve ayrıca ZKP ve ZK evrişiminden etkili bir şekilde yararlanan birçok DApp türü de var.
Tüm Yorumlar