Uzmanlaşma ve genelleme, ZK’nın geleceği hangisinde? Bu soruyu bir diyagramla yanıtlamaya çalışayım:
Diyagramda gösterildiği gibi, gelecekte değiş-tokuş koordinat sistemi üzerinde sihirli bir optimum noktaya yakınsamamız mümkün mü?
Hayır, zincir dışı doğrulanabilir hesaplamanın geleceği, özel ve genel ZK arasındaki sınırları bulanıklaştıran sürekli bir eğridir. Bu terimlerin tarihsel gelişimini ve gelecekte nasıl birleşeceklerini açıklamama izin verin.
İki yıl önce, “özel” ZK altyapısı circom, Halo2 ve arkworks gibi düşük seviyeli devre çerçeveleri anlamına geliyordu. Bu çerçeveler kullanılarak oluşturulan ZK uygulamaları esasen elle yazılmış ZK devreleriydi. Belirli görevler için hızlı ve uygun maliyetliydi ancak genellikle geliştirilmesi ve bakımı zordu. Günümüz IC endüstrisindeki NAND çipleri ve denetleyici çipleri gibi çeşitli özel entegre devre çiplerine (fiziksel silikon gofretler) benzerler.
Ancak son iki yılda, uzmanlaşmış ZK altyapısı giderek daha “genel” hale geldi.
Artık tek bir satır ZK devre kodu yazmadan farklı ZK uygulama kategorileri oluşturmak için kullanımı kolay ve son derece programlanabilir SDK’lar sunan ZKML, ZK yardımcı işlemcisi ve ZKSQL çerçevelerimiz var. Örneğin, ZK yardımcı işlemcisi akıllı sözleşmelerin blok zincirinin geçmiş durumlarına, olaylarına ve işlemlerine güvenle erişmesine ve bu veriler üzerinde keyfi hesaplamalar yapmasına olanak tanır. ZKML, akıllı sözleşmelerin çok çeşitli makine öğrenimi modellerini işlemek için yapay zeka çıkarım sonuçlarını güvene dayalı olmayan bir şekilde kullanmasını sağlar.
Bu gelişmiş çerçeveler, çıplak metal devrelere yakın olan ince soyutlama katmanları (SDK/API) sayesinde yüksek performans ve düşük maliyeti korurken hedef alanlarındaki programlanabilirliği önemli ölçüde geliştirmektedir.
IC pazarındaki GPU, TPU ve FPGA’ya benzerler: programlanabilir alan uzmanları.
ZKVM de son iki yılda büyük adımlar atmıştır. Özellikle, tüm genel amaçlı ZKVM’ler düşük seviyeli, özel ZK çerçevelerinin üzerine inşa edilmiştir. Buradaki fikir, özel devreler ve komut setlerinin (RISC-V veya WASM benzeri) bir kombinasyonuna derlenen yüksek seviyeli dillerde (SDK/API’den bile daha kullanıcı dostu) ZK uygulamaları yazabilmenizdir. IC endüstrisindeki CPU çipleri gibidirler.
ZKVM, tıpkı ZK yardımcı işlemcileri gibi, düşük seviyeli ZK çerçevelerinin üzerinde bir soyutlama katmanıdır.
Bilge bir kişinin bir zamanlar dediği gibi, bir soyutlama katmanı tüm bilgisayar bilimi sorunlarını çözebilir ancak aynı anda başka bir sorun yaratır. Değiş tokuşlar, anahtar budur. Temel olarak, ZKVM için performans ve genellik arasında değiş tokuş yapıyoruz.
İki yıl önce ZKVM’nin “bare-metal” performansı gerçekten de düşüktü. Ancak, sadece iki yıl içinde ZKVM’nin performansı önemli ölçüde iyileşti.
Neden?
Çünkü bu “genel amaçlı” ZKVM’ler daha “özel” hale gelmiştir. Performans artışının önemli bir nedeni “ön derleme “dir. Bu ön derlemeler, SHA2 ve çeşitli imza doğrulamaları gibi yaygın yüksek seviyeli programları komut devresi parçalarına ayırmaktan çok daha hızlı hesaplayabilen özel ZK devreleridir.
Dolayısıyla, eğilim artık oldukça nettir.
Uzmanlaşmış ZK altyapısı daha genel hale gelirken, genel ZKVM’ler daha uzmanlaşmış hale geliyor.
Son birkaç yıldır her iki çözümde de yapılan optimizasyonlar, eskisinden daha iyi bir denge noktasına ulaşılmasını sağladı: bir noktayı feda etmeden diğerinde ilerleme kaydetmek. Bu yüzden her iki taraf da “kesinlikle gelecek biziz” diye düşünüyor.
Ancak bilgisayar bilimi bilgeliği bize bir noktada “Pareto optimal duvarı” (yeşil kesikli çizgi) ile karşılaşacağımızı ve bir performansı diğerinden feragat etmeden iyileştiremeyeceğimizi söyler.
Dolayısıyla milyon dolarlık bir soru ortaya çıkıyor:
Doğru zamanda bir teknoloji diğerinin yerini tamamen alacak mı?
IC endüstrisinden ödünç alınan bilgiler: CPU pazar büyüklüğü 126 milyar dolarken, tüm IC endüstrisi (“uzmanlaşmış” IC’ler dahil) 515 milyar dolardır. Mikro açıdan bakıldığında, tarihin burada tekerrür edeceğinden ve birbirlerinin yerini almayacaklarından eminim.
Bununla birlikte, bugün hiç kimse “Hey, tamamen genel amaçlı bir CPU tarafından çalıştırılan bir bilgisayar kullanıyorum” veya “Hey, bu özel IC’ler tarafından çalıştırılan süslü bir robot” demez.
Evet, bu konuya gerçekten de makro bir perspektiften bakmalıyız ve gelecekte, geliştiricilerin ihtiyaçlarına göre esnek bir şekilde seçim yapmalarına olanak tanıyan bir değiş tokuş eğrisi olacaktır.
Gelecekte, özel ZK altyapısı ve genel ZKVM birlikte çalışabilir. Bu birden fazla biçimde gerçekleştirilebilir. En basit yöntem şimdiden gerçekleştirilebilir. Örneğin, blok zinciri işlem geçmişinde bazı hesaplama sonuçları üretmek için bir ZK yardımcı işlemcisi kullanabilirsiniz, ancak bu veriler üzerindeki hesaplama iş mantığı çok karmaşıktır ve SDK/API’de basitçe ifade edilemez.
Yapabileceğiniz şey, verilerin ve ara hesaplama sonuçlarının yüksek performanslı ve düşük maliyetli ZK kanıtlarını elde etmek, ardından bunları özyinelemeli kanıtlar aracılığıyla genel amaçlı bir VM’de toplamaktır.
Bu tür tartışmaları ilginç bulsam da, hepimizin blockchain. Önümüzdeki yıllarda kitlesel kullanıcı benimsemesine yönelik kullanım örnekleri ortaya çıktıkça, bu tartışmanın nihayet bir sonuca ulaşacağına inanıyorum.