zkGalaxy için Geliştirici Kılavuzu

zkGalaxy için Geliştirici Kılavuzu

Giriş

zkGalaxy PlatoBlockchain Veri Zekası için Geliştirici Kılavuzu. Dikey Arama. Ai.
Vitalik'in zkEVM'ler için performans ve uyumluluk arasındaki ödünleşimi

Bu, bir zkEVM'yi desteklemeye yönelik yaklaşımları ayırt etmek için son derece kullanışlı bir buluşsal yöntemdir. Ancak zkEVM'ler, sıfır bilgi uygulamaları oluşturmaya yönelik tüm olası yolların bir alt kümesidir. zk hesaplamasının benzersiz özelliklerinden yararlanmak isteyen bir programcı için, yani özlülük, sıfır bilgi ve doğruluk, bir zkEVM en iyi seçim olmayabilir. Tüm geliştirici araçları setini düzenleyerek, uygulamanız için doğru zk yığını etrafında karar verme sürecine yardımcı olan bir kılavuz sağlamayı umuyorum.

Geçen bir veya iki yılda, zk araçlarında muazzam miktarda ilerleme oldu. Sıradan yazılım geliştiricilerin, matematik ve mühendisliğin altında yatan ürkütücü şeyleri derinlemesine anlamadan zk'nin güçlü özelliklerinden yararlanabilecekleri bir noktaya yaklaşıyorlar. Öte yandan, uzman kullanıcılara yönelik araçlarda, zk uzmanlarına zk yığını üzerinde son derece hassas kontrol sağlayan bir çoğalma oldu.

Karmaşıklığı Soyutlamanın Gücü

Modern yazılım, uzman üretkenliğini en üst düzeye çıkarmak için sayısız soyutlama katmanı üzerine kuruludur. Mühendislikte soyutlamanın biraz sezgisel olan pek çok avantajı vardır - bir web geliştiricisinin işletim sistemlerinin nasıl çalıştığını derinlemesine anlaması gerekmez. 

İyi, yeniden kullanılabilir soyutlama katmanları oluşturmanın anahtarı, bir katmanın karmaşıklığını özetlemek ve ardından yığında daha yüksek katmanların kullanması için basit ama anlamlı arayüzler sağlamaktır. Doğru bir şekilde yapıldığında bu, farklı uzmanlık ve bilgi alanlarına sahip geliştiricilerin yığın genelinde faydalı araçlar oluşturmasına olanak tanır.

Şaşırtıcı olmayan bir şekilde, aynı ilkeler zk sistemleri için de geçerlidir ve bu soyutlama katmanları, bir zk acemisinin bunları kullanmaya ve bugün uygulamalar oluşturmaya başlaması için yeterince olgun hale gelmektedir.

zk teknoloji yığını
Her katmanda bazı örnek araçlar/teknolojiler içeren zk Stack

Düşük seviyeli zk Geliştirme

Arkworks-rs

Arkworks-rs bir zkSNARK uygulamasının alt bileşenlerinin verimli ve güvenli uygulamalarını sağlayan bir Rust kitaplıkları ekosistemidir. Arkworks, geliştiricilerin mevcut diğer kitaplıklarla ortak noktaları yeniden uygulamak zorunda kalmadan bir zk uygulaması için yazılım yığınını özelleştirmeleri için gerekli arabirimleri sağlar.

Arkworks'ten önce, yeni bir zk uygulaması oluşturmanın tek yolu her şeyi sıfırdan oluşturmaktı. Arkworks-rs'nin özel yapım, dikey olarak entegre edilmiş araçlara göre en önemli avantajları, esneklik düzeyi, mükerrer mühendislikte azalma ve denetim çabasında azalmadır. Arkworks'ün bileşenler arasındaki mantıklı arabirim hatları, ekipleri her şeyi sıfırdan yeniden inşa etmeye zorlamadan, zk teknolojilerindeki hızlı inovasyonun ortasında yığını alakalı tutabilen bir yükseltilebilirlik hızı sağlar.

Kimin icin?

Arkworks, tüm zk yazılım yığını üzerinde hassas kontrole ihtiyaç duyan ancak tüm fazlalık parçaları sıfırdan oluşturmak istemeyen projeler içindir. Bir devre DSL'nin özel bir sürümünü düşünüyorsanız, örneğin, yeni bir ispat sisteminin prototipini yapıyorsanız, ancak taahhüt şemasından veya karşılık gelen eliptik eğriden emin değilseniz, arkworks, paylaşılan arabirimler yerine, paylaşılan arabirimlerle birkaç seçenek arasında hızla geçiş yapmanıza izin verecektir. sıfırdan başlamaktansa.

Artılar

  • Modülerlik sayesinde esneklik
  • Daha az kod tekrarı
    • Düşük mühendislik maliyeti
    • Azaltılmış denetim/hata yüzey alanı
  • Herhangi bir bileşeni büyük yeniden düzenleme olmadan yükseltin
  • Hızla gelişen bir zk ortamında yeni ilkel öğelerle denemesi kolay

Eksiler

  • Tüm yazılım yığınının derinlemesine anlaşılmasını gerektirir
    • Çok fazla kontrol, gerektiği gibi anlaşılmadığı takdirde ayak tabancalarına yol açabilir
  • Granüler kontrol, yığının tüm seviyelerinde uzmanlık gerektirir
    • Arkworks bazı makul varsayılanlar sağlar.

zk Etki Alanına Özgü Diller (DSL)

Bazı hesaplamalar hakkında kanıt oluşturmak için, öncelikle bu hesaplamanın bir zkSNARK sisteminin anlayabileceği bir biçimde ifade edilmesi gerekir. Etki alanına özgü birkaç dil, uygulama geliştiricilerin hesaplamalarını bu şekilde ifade etmelerine izin veren programlama dilleri yaratmıştır. Bunlar şunları içerir: Aztek Kara, Starknet'in KahireçevreZoKrate'ler, ve Aleo'nun Aslan burcu diğerleri arasında. Altta yatan ispat sistemi ve matematiksel ayrıntılar genellikle uygulama geliştiricisine açıklanmaz.

Geliştirici Deneyimi

zkApp geliştiricileri, programlarını etki alanına özgü dillerde yazma konusunda yetkin hale gelmelidir. Bu dillerden bazıları tanıdık programlama dillerine çok benzerken, diğerlerinin öğrenilmesi oldukça zor olabilir. Bunlardan birkaçını inceleyelim:

Kahire – Starknet'te uygulama oluşturmak için gerekli Starkware DSL. Kahire zkVM tarafından yorumlanabilen Kahire'ye özgü derleme dilinde derlenir.

ZoKrate'ler — ZoKrates, devre yazmak için üst düzey bir dil de dahil olmak üzere yaygın SNARK ihtiyaçları için bir araç takımıdır. ZoKrates ayrıca eğriler, kanıtlama şeması ve arka uç etrafında bir miktar esnekliğe sahiptir ve geliştiricilerin basit CLI argümanıyla çalışırken değiştirilebilir.

çevre — Circom, devreler oluşturmak için amaca yönelik oluşturulmuş bir dildir. Şu anda, üretimdeki devreler için fiili dildir. Dil özellikle ergonomik değildir. Dilin kendisi, devreler yazdığınızın farkında olmanızı sağlar.

Aslan burcu — Leo, Aleo blok zincirinin dili olarak geliştirildi. Leo, Rust benzeri bir sözdizimine sahiptir ve özellikle bir blok zincirinin içindeki durum geçişleri için yapılmıştır.

Noir – Rust'tan ilham alan sözdizimi. Dilin kendisi yerine IR etrafında tasarlanmıştır, bu da keyfi bir ön uca sahip olabileceği anlamına gelir. 

zkGalaxy PlatoBlockchain Veri Zekası için Geliştirici Kılavuzu. Dikey Arama. Ai.
Aztec Noir derleme yığını, özellikle modüler bir mimariye sahiptir.

Kimin icin?

Uygulamasında zk'nin benzersiz özelliklerinden yararlanmak isteyen tüm uygulama geliştiricileri. Bu dillerden bazıları, ZCash ve Starknet gibi zincirler aracılığıyla milyarlarca doların hareket ettiği savaş testinden geçmiştir. Tartışacağımız projelerden bazıları üretimde kullanıma tam olarak hazır olmasa da, Arkworks gibi bir araç setinin sağladığı daha ince kontrollere ihtiyacınız yoksa, devrelerinizi bu dillerden birinde yazmak şu anda en iyi stratejidir.

Artılar

  • Kullanıcıların altta yatan zk ayrıntılarını anlaması gerekmez
  • Bugün uygun biraz üretim tecrübesi ile
  • zincir üzerinde doğrulanabilir
  • Ekosistem agnostiği

Eksiler

  • Kullanıcıların yeni bir DSL öğrenmesi gerekiyor
  • Bu dillerin her biri etrafında birleştirilmiş araçlar ve destek
  • Temel kanıtlama yığını üzerinde çok az kontrol veya hiç kontrol yok (şimdilik)

Bir zkEVM'nin birincil amacı, bir Ethereum durum geçişi almak ve kısa ve öz bir sıfır bilgi doğruluk kanıtı kullanarak geçerliliğini kanıtlamaktır. Vitalik'in gönderisinde belirtildiği gibi, bunu ince farklar ve karşılık gelen takaslarla yapmanın birkaç yolu vardır. 

Tüm bunlar arasındaki temel teknik fark, dil yığınında tam olarak hesaplamanın bir kanıtlama sisteminde kullanılabilecek bir forma (aritmetikleştirme) dönüştürüldüğü yerdir. Bazı zkEVM'lerde bu, üst düzey dillerde (Solidity, Vyper, Yul) olurken, diğer yaklaşımlar EVM'yi işlem kodu düzeyine kadar kanıtlamaya çalışır. Bu yaklaşımlar arasındaki değiş tokuşlar Vitalik'in gönderisinde derinlemesine ele alındı, ancak bunu bir cümleyle özetleyeceğim: Yığındaki dönüştürme/aritmetikleştirme ne kadar düşük olursa, performans cezası o kadar büyük olur.

EVM işlem kodlarının zk'de kanıtlanması neden pahalıdır?

Bir sanal makine için kanıt oluşturmanın ana zorluğu, devre boyutunun yürütülen her komut için TÜM olası komutların boyutuyla orantılı olarak büyümesidir. Bunun nedeni, devrenin her programda hangi komutların yürütüleceğini bilmemesi ve dolayısıyla hepsini desteklemesi gerekmesidir.

zkGalaxy PlatoBlockchain Veri Zekası için Geliştirici Kılavuzu. Dikey Arama. Ai.
Evrensel devrelerde, yürütülen her komutun, desteklenen tüm komutların toplamına orantılı bir maliyeti vardır.

Bunun pratikte anlamı, yalnızca en basit talimatı yürütürken bile mümkün olan en pahalı talimat için (performans maliyeti olarak) ödemenizdir. Bu, genellenebilirlik ve performans arasında doğrudan bir değiş tokuşa yol açar; genellenebilirlik için daha fazla talimat ekledikçe, bunun için ödeme yaparsınız. her kanıtladığınız talimat!

Bu, evrensel devrelerle ilgili temel bir sorundur, ancak teknolojilerdeki yeni gelişmeler IVC (artımlı doğrulanabilir hesaplama) gibi, bu sınırlama, hesaplamayı her biri özel, daha küçük alt devrelere sahip daha küçük parçalara bölerek iyileştirilebilir.

Bugünün zkEVM uygulamaları, bu sorunun etkisini azaltmak için farklı stratejiler kullanıyor… Örneğin, zkSync, daha pahalı işlemleri (çoğunlukla hash'ler ve ECDSA gibi kriptografik ön derlemeler) ana yürütme kanıtlama devresinden ayrı devrelere ayırır. snark özyinelemesi ile sonlandırın. zkSync, maliyetlerinin çoğunun birkaç karmaşık talimattan kaynaklandığını fark ettikten sonra bu yaklaşımı benimsedi.

zkGalaxy PlatoBlockchain Veri Zekası için Geliştirici Kılavuzu. Dikey Arama. Ai.
İşlem maliyetlerine birkaç pahalı işlem hakimdir.

Temelde, EVM'ye daha eşdeğer bir komut seti kanıtlamanın daha pahalı olmasının nedeni, EVM'nin zk hesaplamaları için tasarlanmamış olmasıdır. EVM'yi yığında daha önce terk etmek, zkEVM'lerin zk için daha iyi duruma getirilmiş ve dolayısıyla kanıtlaması daha ucuz olan komut setlerinde çalışmasına olanak tanır.

Kimin icin?

Bir zkEVM için ideal müşteriler, L1 Ethereum'da bulunanlardan çok daha ucuz işlemlere ihtiyaç duyan akıllı sözleşme uygulamalarıdır. Bu geliştiriciler, zk uygulamalarını sıfırdan yazmak için gerekli uzmanlığa veya bant genişliğine sahip değildir. Bu nedenle uygulamalarını Solidity gibi aşina oldukları daha üst düzey dillerde yazmayı tercih ediyorlar. 

Neden bu kadar çok ekip bunu inşa ediyor?

Ethereum'u Ölçeklendirme şu anda zk teknolojisinin en çok talep edilen uygulamasıdır.

zkEVM, L1 dApp geliştiricilerini kısıtlayan tıkanıklık sorununu sorunsuz bir şekilde azaltan bir Ethereum ölçeklendirme çözümüdür.

Geliştirici deneyimi

Bir zkEVM'nin amacı, mevcut Ethereum gelişimine mümkün olduğunca yakın bir geliştirici deneyimini desteklemektir. Tam Sağlamlık desteği, ekiplerin birden çok kod tabanı oluşturması ve sürdürmesi gerekmediği anlamına gelir. Bunu mükemmel bir şekilde yapmak biraz pratik değildir çünkü zkEVM'lerin makul bir süre içinde makul boyutta kanıtlar üretebilmek için bazı uyumluluklardan ödün vermesi gerekir.

Hızlı Örnek Olay incelemesi: zkSync ve Scroll

zkSync ve Scroll arasındaki temel fark, yığının neresinde/ne zaman aritmetikleştirme yaptıklarıdır; yani, normal EVM yapılarından SNARK dostu bir temsile dönüştürdükleri yerdir. zkSync için bu, YUL bayt kodunu kendi özel zk komut setine dönüştürdüklerinde olur. Scroll için bu, gerçek yürütme izlemesi gerçek EVM işlem kodlarıyla oluşturulduğunda en sonunda gerçekleşir.

Dolayısıyla, zkSync için, zk bayt kodu oluşturulana kadar her şey EVM ile etkileşim kurmakla aynıdır. Scroll için, gerçek bayt kodu yürütülene kadar her şey aynıdır. Bu, destek için performanstan vazgeçen ince bir farktır. Örneğin zkSync, tamamen farklı bir bayt kodu olduğu için hata ayıklayıcı gibi EVM bayt kodu araçlarını kutudan çıkar çıkmaz desteklemeyecektir. Scroll, zk için tasarlanmamış bir komut setinden iyi performans almakta daha fazla zorluk çekecek olsa da. Her iki stratejinin de artıları ve eksileri vardır ve nihayetinde göreceli başarılarını etkileyecek pek çok dışsal faktör vardır.

zkLLVM Devre Derleyici

???? Adına rağmen, LLVM bir VM (sanal makine) değildir. LLVM, dilden bağımsız bir ara temsil (IR) tarafından bağlanan bir dizi derleyici aracın adıdır.

= sıfır; Vakıf (isim hakkında, bu bir SQL enjeksiyon şakası merak ediyorsanız), herhangi bir LLVM ön uç dilini bir SNARK içinde kanıtlanabilen bir ara temsile dönüştürebilen bir derleyici oluşturmaktır. zkLLVM, Rust, C, C++ gibi birçok üst düzey dili destekleyen endüstri standardı bir araç zinciri olan mevcut LLVM altyapısının bir uzantısı olarak tasarlanmıştır.

Nasıl çalışır

zkGalaxy PlatoBlockchain Veri Zekası için Geliştirici Kılavuzu. Dikey Arama. Ai.
zkLLVM mimarisinin kaba taslağı

Bazı hesaplamaları kanıtlamak isteyen bir kullanıcı, bu hesaplamayı basitçe C++'da uygular. zkLLVM, değiştirilmiş clang derleyicisi (şu anda C++) tarafından desteklenen bu üst düzey kaynak kodunu alır ve devrenin bazı ara temsillerini oluşturur. Bu noktada devre ispatlanmaya hazırdır ancak kullanıcı bazı dinamik girdilere dayanarak devreyi ispatlamak isteyebilir. Dinamik girişleri işlemek için zkLLVM'de, tüm girişlerin ve tanıkların tamamen önceden işlendiği ve devre yanında kanıtlanmaya hazır olduğu bir atama tablosu oluşturan, atayan olarak adlandırılan ek bir bileşen bulunur.

Bu 2 bileşen, bir kanıt oluşturmak için gerekli olan her şeydir. Bir kullanıcı teorik olarak bir kanıtı kendisi üretebilir, ancak bu biraz özel bir hesaplama görevi olduğundan, donanıma sahip başka birine kendileri için yapması için ödeme yapmak isteyebilirler. Bu karşı taraf bulma mekanizması için =nil; Vakıf ayrıca, kanıtlayıcıların kendilerine bunu yapmaları için ödeme yapacak olan kullanıcılar için hesaplamayı kanıtlamak için yarıştığı bir "kanıt pazarı" kurmuştur. Bu serbest piyasa dinamiği, kanıtlayıcıların en değerli kanıtlama görevlerini optimize etmesine yol açacaktır.

Ticaret-off

Kanıtlanacak her hesaplama görevi benzersiz olduğundan ve farklı bir devre oluşturduğundan, kanıtlayıcıların üstesinden gelmesi gereken sonsuz sayıda devre vardır. Bu zorunlu genelleştirilebilirlik, bireysel devrelerin optimizasyonunu zorlaştırır. Bir kanıt pazarının tanıtılması, pazarın değerli gördüğü devrelerde uzmanlaşmaya izin verir. Bu pazar olmadan, bu doğal soğuk çalıştırma sorunu nedeniyle bir kanıtlayıcıyı bu devreyi optimize etmeye ikna etmek zor olacaktır.

Diğer değiş tokuş, kontrole karşı klasik soyutlamadır. Bu kullanımı kolay arayüzü almaya istekli olan kullanıcılar, temeldeki kriptografik ilkel öğeler üzerinde kontrolden vazgeçiyor. Kriptografi uzmanlarının sizin için bu kararları vermesine izin vermek genellikle daha iyi olduğundan, birçok kullanıcı için bu yapılması çok geçerli bir değiş tokuştur.

Artılar

  • Kullanıcılar tanıdık yüksek seviyeli dillerde kod yazabilir
  • Tüm zk iç öğeleri kullanıcılardan soyutlanır
  • Ek yük ekleyen belirli bir 'VM' devresine dayanmaz

Eksiler

  • Her programın farklı bir devresi vardır. Optimize etmek zor. (kanıt pazarı bunu kısmen çözer)
  • Dahili zk kitaplıklarını değiştirmek/yükseltmek önemsiz değil (çatallama gerektirir)

Bir zkVM, tüm zk sanal makinelerinin üst kümesini tanımlarken zkEVM, günümüzdeki yaygınlığı nedeniyle ayrı bir konu olarak ele alınmaya değer olan belirli bir zkVM türüdür. Ismarlama kripto VM'lerin yanı sıra ISA'ları temel alan daha genelleştirilmiş zkVM'ler oluşturmak için çalışan birkaç proje daha var.

EVM'yi kanıtlamak yerine sistem, yeni bir VM'de RISC-V veya WASM gibi farklı bir komut seti mimarisini (ISA) kanıtlayabilir. Bu genelleştirilmiş zkVM'ler üzerinde çalışan iki proje, RISC Zero ve zkWASM'dir. Bu stratejinin nasıl çalıştığını ve bazı avantaj/dezavantajlarını göstermek için burada biraz RISC Zero'ya girelim. 

zkGalaxy PlatoBlockchain Veri Zekası için Geliştirici Kılavuzu. Dikey Arama. Ai.
Risc Sıfır korumalı nesil üst düzey mimari

RISC Zero, bir RISC-V mimarisinde yürütülen herhangi bir hesaplamayı kanıtlayabilir. RISC-V, popülaritesi artan açık kaynaklı bir komut seti mimarisi (ISA) standardıdır. RISC (azaltılmış komut seti bilgisayarı) felsefesi, minimum karmaşıklıkla son derece basit bir komut seti oluşturmaktır. Bu, yığındaki üst katmanlardaki geliştiricilerin, donanım uygulamasını basitleştirirken bu mimariyi kullanarak talimatları uygulamada daha büyük bir yük alması anlamına gelir.

Bu felsefe genel bilgi işlem için de geçerlidir, ARM yongaları RISC tarzı komut setlerinden yararlanmaktadır ve mobil yonga pazarına hakim olmaya başlamıştır. Daha basit komut setlerinin ayrıca daha fazla enerjiye ve kalıp alanı verimliliğine sahip olduğu ortaya çıktı.

Bu benzetme, zk kanıtları üretmenin verimliliği için oldukça uygundur. Daha önce tartışıldığı gibi, zk'de bir yürütme izini kanıtlarken, izlemedeki her öğe için tüm talimatların maliyetinin toplamını ödersiniz, bu nedenle daha basit ve daha az toplam talimat daha iyidir.

Nasıl çalışır

Bir geliştiricinin bakış açısından, zk provalarını işlemek için RISC Zero kullanmak, arka uç sunucu mimarisini işlemek için AWS Lambda işlevlerini kullanmaya çok benzer. Geliştiriciler, yalnızca kod yazarak RISC Zero veya AWS Lambda ile etkileşime girer ve hizmet, tüm arka uç karmaşıklığının üstesinden gelir.

RISC Zero için, geliştiriciler Rust veya C++ yazar (nihayetinde RISC-V'yi hedefleyen herhangi bir şey). Sistem daha sonra derleme sırasında oluşturulan ELF dosyasını alır ve bunu VM devresi için giriş kodu olarak kullanır. Geliştiriciler basitçe, herkesin herhangi bir yerden "verify" olarak adlandırabileceği bir alındı ​​(yürütme izinin zk kanıtını içeren) nesnesini döndüren kanıtlamayı çağırır. Geliştiricinin bakış açısından, zk'nin nasıl çalıştığını anlamaya gerek yoktur, temeldeki sistem tüm bu karmaşıklığı halleder.

zkGalaxy PlatoBlockchain Veri Zekası için Geliştirici Kılavuzu. Dikey Arama. Ai.
Risc Zero stajyeri mi?

Artılar

  • Kullanımı kolay. Zk uygulamaları oluşturmak için herhangi bir programcıya kapı açar
  • Kanıtlayanların uzmanlaşabileceği tek devre
    • Ayrıca saldırı için daha az yüzey alanı ve denetim için daha az alan
  • Herhangi bir blockchain ile uyumludur, siz sadece kanıtları yayınlayın

Eksiler

  • Böyle genel bir arabirimi desteklemek için çok fazla ek yük (prova boyutu ve oluşturma hızı) alır
  • Mevcut kitaplıklar için geniş destek elde etmek için kanıt oluşturma tekniklerinde önemli iyileştirmeler gerektirir

Önceden Oluşturulmuş Yeniden Kullanılabilir Devreler

Özellikle blok zinciri uygulamaları veya başka yerlerde yararlı olan bazı temel ve yeniden kullanılabilir devreler için ekipler bu devreleri sizin için zaten oluşturmuş ve optimize etmiş olabilir. Yalnızca kendi kullanım durumunuz için girdi sağlayabilirsiniz. Örneğin bir Merkle içerme kanıtı, kripto uygulamalarında (havadan indirme listeleri, Tornado Cash, vb.) yaygın olarak ihtiyaç duyulan bir şeydir. Bir uygulama geliştiricisi olarak, bu test edilmiş sözleşmeleri her zaman yeniden kullanabilir ve benzersiz bir uygulama oluşturmak için üstteki katmanları değiştirebilirsiniz.

Örneğin, Tornado Cash'in devreleri yeniden kullanılabilir. özel airdrop uygulaması ya da özel oylama uygulaması. Manta ve Semaphore, altta yatan zk ay matematiğini çok az anlayarak veya hiç anlamadan Solidity sözleşmelerinde kullanılabilecek, bunun gibi ortak devre araçlarından oluşan eksiksiz bir araç seti oluşturuyor.

Kılavuz — Destenizi seçmek

Uzun uzadıya tartışıldığı gibi, bir zk uygulaması geliştirmek için, hepsi de kendi benzersiz dengeleri olan sayısız farklı seçenek vardır. Bu tablo, zk uzmanlık düzeyinize ve performans ihtiyaçlarınıza göre iş için en iyi aracı seçebilmeniz için bu karar matrisini özetlemenize yardımcı olacaktır. Bu kapsamlı bir liste değil, gelecekte uzayda daha fazla aracın ortaya çıktığını fark ettikçe buna eklemeyi planlıyorum.

zkGalaxy PlatoBlockchain Veri Zekası için Geliştirici Kılavuzu. Dikey Arama. Ai.
Uygulama geliştiricisinin zkGalaxy kılavuzu

zk App Dev Hile Sayfası

1. Düşük Seviyeli Snark Kitaplıkları

Ne zaman kullanmalı: 

  • Tüm kanıt yığını üzerinde hassas kontrole ihtiyacınız var
  • Ortak bileşenleri yeniden oluşturmaktan kaçınmak istiyor
  • Farklı kombinasyonları denemek istiyorsunuz. ispat şemaları, eğriler ve diğer düşük seviyeli ilkel

Ne zaman kullanılmamalı:

  • Üst düzey kanıtlama arayüzleri arayan bir acemisiniz

Seçenekler: 


3. zk Derleyicileri

Ne zaman kullanmalı: 

  • Evrensel bir devrenin ek yükünü almaya isteksiz
  • Tanıdık dillerde devreler yazmak istiyorum 
  • Son derece özelleştirilmiş devreye ihtiyacınız var

Ne zaman kullanılmamalı: 

  • Altta yatan kriptografik ilkelleri kontrol etmek istiyor
  • Halihazırda büyük ölçüde optimize edilmiş bir devreye ihtiyacınız var

Seçenekler:


5. zkVM

Ne zaman kullanmalı: 

  • Üst düzey bir dilde kod yazmak istiyorum 
  • Bu yürütmenin doğruluğunu kanıtlama ihtiyacı 
  • Bu yürütmenin bazı girdilerini bir doğrulayıcıdan gizlemeniz gerekiyor
  • zk konusunda çok az uzmanlığa sahip olmak veya hiç uzmanlığa sahip olmamak

Ne zaman kullanılmamalı:

  • Son derece düşük gecikmeli ortamlarda (hala yavaştır)
  • Muazzam bir programınız var (şimdilik)

Seçenekler:

2. zk DSL'ler

Ne zaman kullanmalı: 

  • Yeni bir dil öğrenirken rahatsınız
  • Savaşta test edilmiş bazı dilleri kullanmak ister misiniz?
  • Soyutlamalardan vazgeçmeye istekli, minimum devre boyutuna ihtiyacınız var

Ne zaman kullanılmamalı: 

  • Kanıtlama arka ucu üzerinde hassas kontrole ihtiyacınız var (şimdilik, bazı DSL'ler için arka uçları değiştirebilir)

Seçenekler:


4.zkEVM

Ne zaman kullanmalı: 

  • EVM'de zaten çalışan bir dApp'iniz var
  • Kullanıcılarınız için daha ucuz işlemlere ihtiyacınız var 
  • Yeni bir zincire dağıtım çabasını en aza indirmek istiyorsunuz
  • Yalnızca zk'nin (sıkıştırma) özlülük özelliğini önemseyin

Ne zaman kullanılmamalı: 

  • Mükemmel EVM eşdeğerliğine ihtiyacınız var
  • zk'nin gizlilik özelliğine ihtiyacınız var 
  • Blok zinciri olmayan bir kullanım durumunuz var 

Seçenekler: 


6. Önceden Oluşturulmuş Yeniden Kullanılabilir Devreler

Ne zaman kullanmalı: 

  • Merkle dahil etme gibi ortak zk yapı taşlarına dayanan bir akıllı sözleşme uygulamanız var
  • Altta yatan zk işlerinde çok az uzmanlığınız var veya hiç yok

Ne zaman kullanılmaz:

  • Son derece özel ihtiyaçlarınız var
  • Kullanım durumunuz önceden oluşturulmuş devreler tarafından desteklenmiyor 

Seçenekler: 

Sonuç

zk, çeşitli teknolojilerin en ileri noktasındadır ve onu oluşturmak, matematik, kriptografi, bilgisayar bilimi ve donanım mühendisliği konularında derin bir anlayış gerektirir. Yine de, her geçen gün daha fazla soyutlama katmanının kullanıma sunulmasıyla, uygulama geliştiricileri, doktora derecesi olmadan zk'nin gücünden yararlanabilir. Kanıtlama sürelerinin sınırlamaları, yığının tüm seviyelerinde yapılan optimizasyonlarla zaman içinde yavaş yavaş ortadan kalktığından, ortalama bir geliştirici için muhtemelen daha da basit araçlar göreceğiz.

Meraklı yazılımcıları umarım bugün uygulamalarınızda zk kullanmaya başlayabileceğiniz konusunda sizi ikna etmişimdir. Mutlu Hackler 🙂

zkGalaxy PlatoBlockchain Veri Zekası için Geliştirici Kılavuzu. Dikey Arama. Ai.
anon için ne bekliyorsun, git biraz zk uygulamaları geliştir

Açıklamalar: Blockchain Capital, yukarıda belirtilen protokollerin birçoğunda bir yatırımcıdır.

Her blog gönderisinde ifade edilen görüşler, her yazarın kişisel görüşleri olabilir ve Blockchain Capital ve bağlı kuruluşlarının görüşlerini yansıtmayabilir. Ne Blockchain Capital ne de yazar, her blog gönderisinde sağlanan bilgilerin doğruluğunu, yeterliliğini veya eksiksizliğini garanti etmez. Blockchain Capital, yazar veya başka herhangi bir kişi tarafından veya adına herhangi bir blog gönderisinde yer alan bilgilerin doğruluğu, eksiksizliği veya adilliğine ilişkin açık veya zımni hiçbir beyan veya garanti yapılmaz veya verilmez ve hiçbir sorumluluk veya yükümlülük kabul edilmez. bu tür bilgiler için. Her blog gönderisinde yer alan hiçbir şey yatırım, düzenleyici, yasal, uyum veya vergi veya başka bir tavsiye teşkil etmez ve yatırım kararı verilirken bunlara güvenilemez. Blog gönderileri, herhangi bir menkul kıymet satın alma veya satma veya herhangi bir yatırım stratejisi benimseme teklifinin güncel veya geçmiş tavsiyeleri veya talepleri olarak görülmemelidir. Blog gönderileri, birçok olası olay veya faktörün sonucu olarak değişebilecek inançlara, varsayımlara ve beklentilere dayanan projeksiyonlar veya diğer ileriye dönük beyanlar içerebilir. Bir değişiklik olursa, fiili sonuçlar ileriye dönük beyanlarda ifade edilenlerden önemli ölçüde farklı olabilir. Tüm ileriye dönük beyanlar, yalnızca bu beyanların yapıldığı tarih itibariyle geçerlidir ve ne Blockchain Capital ne de her bir yazar, yasaların gerektirdiği durumlar dışında bu beyanları güncelleme yükümlülüğünü üstlenmez. Blockchain Capital tarafından üretilen, yayınlanan veya başka bir şekilde dağıtılan belgelere, sunumlara veya diğer materyallere herhangi bir blog gönderisinde atıfta bulunulduğu ölçüde, bu tür materyaller, burada sağlanan sorumluluk reddi beyanlarına dikkatle okunmalıdır.

Zaman Damgası:

Den fazla Blockchain Capital