a16z kripto tarafından başlatılan iki yeni SNARK aracını ayrıntılı olarak açıklayın

Bu makale, Odaily Planet Daily tercümanı Jessica tarafından derlenen orijinal yazar Justin Thaler'dan 16 z'den geliyor.

a16z kripto tarafından başlatılan iki yeni SNARK aracının ayrıntılı açıklaması

10 Ağustos'ta bir 16z kripto para birimi, birlikte yaygın olarak kullanılan araç zincirlerinin performansını bir kat veya daha fazla artırabilen SNARK tasarımına yeni bir yaklaşımı temsil eden yeni SNARK tabanlı araçlar Lasso ve Jolt'u piyasaya sürdü; geliştirici deneyimi ve denetimi kolaylaştırır.

SNARK (Succinct Non-Interactive Argument of Knowledge), herkesin güvenilmeyen bir doğrulayıcıya belirli özellikleri karşılayan bir "tanık" tanıdığını kanıtlayabildiği bir kriptografik protokoldür.

  • Web 3'te göze çarpan bir kullanım örneği, L2'nin L1'e bir dizi işleme yetki veren dijital imzayı bildiklerini kanıtlamasıdır, böylece imzanın kendisinin L1 ağı tarafından saklanması ve doğrulanması gerekmez, bu da ölçeklenebilirliği artırır.
  • Blok zinciri dışındaki uygulamalar şunları içerir: güvenilmeyen donanım cihazları tarafından üretilen tüm çıktıların geçerliliğini hızlı bir şekilde kanıtlamak, kullanıcıların bunlara güvenebilmesini sağlamak. Bireyler, güvenilir bir makamın kendilerine doğum tarihlerini açıklamadan yaş kısıtlamalı içeriğe erişebilecek yaşta olduklarını kanıtlayan kimlik bilgileri verdiğini sıfır bilgili bir şekilde kanıtlayabilir. Ağ üzerinden şifreli veri gönderen herkes, daha fazla ayrıntı vermeden verilerin ağ politikasına uygun olduğunu yöneticilere kanıtlayabilir.

Pek çok SNARK, doğrulayıcı için cazip bir maliyet olmaya devam etse de, SNARK'lar genellikle ispat hesaplamasında yaklaşık altı kat ek yük getirir. Kanıtlayıcı tarafından üstlenilen ekstra iş, büyük ölçüde paralelleştirilmiştir, ancak milyonlarca katın ek yükü, SNARK'ların uygulama kapsamını ciddi şekilde sınırlar.

**Daha fazla performans avantajına sahip SNARK, L 2'yi hızlandıracak ve ayrıca inşaatçıların henüz öngörülmemiş uygulamaların kilidini açmasına izin verecektir. **Bu nedenle iki yeni ilgili teknolojiyi kullanıma sunuyoruz: Prover maliyetini önemli ölçüde artırabilecek yeni bir arama parametresi olan Lasso; zkVM olarak adlandırılan yeni bir çerçeve ve daha geniş bir ön uç tasarımı sağlamak için Lasso'yu kullanan Jolt SNARK'ları tasarlamak için. Birlikte, SNARK tasarımlarının performansını, geliştirici deneyimini ve denetlenebilirliğini geliştirerek web 3'teki yapıları geliştirirler.

Lasso'nun ilk uygulamamız, popüler SNARK araç zinciri halo 2'deki arama parametrelerine kıyasla 10 katın üzerinde hızlanma gösterdi. Lasso kod tabanı tamamen optimize edildiğinde, ~40x hızlanma bekliyoruz. Jolt, Lasso'nun yanı sıra başka yenilikler de içeriyor ve mevcut zkVM'ye benzer veya daha iyi hızlanma elde etmesini bekliyoruz.

Parametreleri bulun, Kement ve Sarsıntı

Bir SNARK ön ucu, bir bilgisayar programını bir SNARK arka ucunun alabileceği bir devreye dönüştüren bir derleyicidir. (Not: Bir devre, yalnızca "ilkel işlemlerin" mevcut olduğu, son derece sınırlı bir hesaplama modelidir. toplama ve çarpma.)

Modern SNARK tasarımlarındaki önemli bir araç, güvenilmeyen bir kanıtlayıcının büyük bir vektörü kriptografik olarak göndermesine ve ardından bu vektörün her girişinin önceden belirlenmiş bir tablo ortasında yer aldığını kanıtlamasına izin veren, arama parametreleri adı verilen bir protokoldür. Arama parametreleri, küçük eklemeler ve çarpmalarla doğal olarak hesaplanmayan işlemleri verimli bir şekilde işleyerek devrelerin küçük kalmasına yardımcı olabilir.

Bununla birlikte, Ethereum Vakfı'ndan Barry Whitehat'ın geçen yıl belirttiği gibi, "devreleri yalnızca arama parametrelerini kullanarak verimli bir şekilde tanımlayabilirsek, bu daha basit araçlara ve devrelere yol açacaktır". Tasarladığımız devre sadece arama yapıyor. Zamanla, arama parametreleri "neredeyse her şey için polinom kısıtlamalarından daha verimli hale gelecektir".

Bu vizyon, geliştiricilerin programları polinom kısıtlamalarında derleyen özel alana özgü diller kullanarak programlar yazarak veya kısıtlamaları doğrudan elle kodlayarak SNARK'ları dağıttığı günümüz işlerinin tam tersidir. Bu araç zinciri çok iş gerektirir ve güvenlik açısından kritik hataların içeri girmesi için çok fazla yüzey alanı sağlar. Karmaşık araçlar ve devrelerde bile SNARK'ların performansı hala yavaştır ve bu da uygulanabilirliklerini sınırlar.

Lasso ve Jolt üç temel konuyu ele alıyor: performans, geliştirici deneyimi ve denetlenebilirlik ve birlikte tekilliği bulma vizyonunu gerçekleştiriyorlar. Lasso ve Jolt ayrıca SNARK tasarımındaki kabul görmüş bilgeliğin çoğunu yeniden düşünmeye zorluyor.

Gerekli arka planı sağladıktan sonra, aşağıda SNARK performansıyla ilgili bazı yaygın fikirler yeniden ele alınmakta ve bunların Lasso ve Jolt gibi yenilikler ışığında nasıl optimize edilebileceği açıklanmaktadır.

SNARK tasarım arka planı: neden bu kadar yavaş?

Çoğu SNARK arka ucu, bir polinom taahhüt şeması kullanarak devredeki her geçidin değerini kriptografik olarak taahhüt eden kanıtlayıcıya sahiptir. Kanıtlayıcı daha sonra sunulan değerin gerçekten de tanık denetleyicinin doğru uygulamasına karşılık geldiğini kanıtlar.

Taahhüt maliyeti olarak bir polinom taahhüdü şemasındaki kanıtlayıcı çalışmaya atıfta bulunuyorum. **SNARK'lar, polinom taahhüt şemalarından ek ispat maliyetlerine sahiptir. Ancak taahhüt maliyetleri genellikle darboğaz oluşturur. ** Kement ve Sarsıntı da. Taahhüt maliyetinin ana kanıtlama maliyeti olmadığı bir SNARK tasarlanırsa, bu, polinom taahhüt şemasının ucuz olduğu anlamına gelmez. Aksine, diğer maliyetlerin olması gerekenden daha yüksek olduğu anlamına gelir.

Sezgisel olarak taahhütlerin amacı, kanıt sistemlerinin basitliğini kriptografik olarak güvenli bir şekilde artırmaktır. Bir kanıtlayıcı büyük bir değer vektörü gönderdiğinde, tıpkı normal kanıt sistemlerinin tüm tanığı doğrulayıcıya göndermesi gibi, kabaca kanıtlayıcı tüm vektörü doğrulayıcıya gönderiyor gibidir. Taahhüt şemaları, doğrulayıcıları tüm tanığı gerçekten almaya zorlamadan bunu başarabilir; bu, SNARK tasarımındaki taahhüt şemasının amacının doğrulayıcı maliyetlerini kontrol etmek olduğu anlamına gelir.

Ancak bu kriptografik yöntemler, özellikle SNARK'ın polinom taahhüt şemaları dışında kullandığı bilgi-teorik yöntemlerle karşılaştırıldığında kanıtlayıcı için çok pahalıdır. Bilgi-teorik yöntemler yalnızca sonlu alan işlemlerine dayanır. Ve bir saha operasyonu, keyfi bir saha elemanı göndermek için gereken süreden çok daha hızlıdır.

Hesaplama taahhütleri, kullanılan polinom taahhüt şemasına bağlı olarak çoklu üsleri (çoklu skaler çarpmalar veya MSM'ler olarak da bilinir) veya FFT'leri ve Merkle karmalarını içerir. Lasso ve Jolt, herhangi bir polinom taahhüt şemasını kullanabilir, ancak IPA/Bulletproofs, KZG/PST, Hyrax, Dory veya Zeromorph gibi MSM tabanlı şemalar kullanılarak başlatıldığında özellikle cazip bir maliyete sahiptir.

Lasso ve Jolt neden önemlidir?

Kement, kanıtlayıcının önceki çalışmadan daha az ve daha küçük değerler vaat ettiği yeni bir arama parametresidir. Bu, 20x veya daha fazla bir hızlanma olabilir, burada 2 ila 4x hızlanma daha az taahhüt edilen değerden gelir ve diğer bir 10x hızlanma, Lasso'daki tüm taahhüt edilen değerlerin küçük olmasından kaynaklanır. Önceki birçok arama parametresinin aksine Lasso (ve Jolt), çok yer kaplayan ve büyük örnekler için darboğaz oluşturabilen FFT'lerden de kaçınır.

Ayrıca Lasso, bu tablolar "yapılandırılmış" (kesin teknik anlamda) olduğu sürece, büyük tablolarla bile çalışır. Bu tablolar, herkesin açıkça uygulaması için çok büyüktür, ancak Lasso yalnızca fiilen eriştiği tablo öğeleri için ödeme yapar. Özellikle - önceki arama parametreleriyle karşılaştırıldığında - tablo yapılandırılmışsa, o zaman hiçbir tarafın tablodaki tüm değerleri şifrelenmiş biçimde işlemesine gerek yoktur.

Kement, iki farklı yapısal kavram kullanır: ayrıştırılabilirlik ve LDE yapısı. (LDE, Düşük Dereceli Genişletilmiş Polinom adı verilen teknik bir kavramın kısaltmasıdır.) Ayrıştırılabilirlik kabaca, bir tablonun tek bir aramasının daha küçük bir tabloda daha az sayıda arama yapılarak yanıtlanabileceği anlamına gelir. Bu, LDE yapısından daha katı bir gerekliliktir, ancak Lasso, ayrıştırılabilir tablolara uygulandığında özellikle etkilidir.

sarsıntı

Jolt (Sadece Bir Arama Tablosu), Lasso'nun devasa arama tablolarını kullanma becerisiyle açılan yeni bir önyüzdür. Jolt, Komut Seti Mimarisi (ISA) olarak da bilinen sanal makine/CPU soyutlamasını hedefler. Bu soyutlamayı destekleyen SNARK'lara zkVM adı verilir. Örneğin, RISC-Zero projesinin de hedeflediği RISC-V komut setini (çarpma uzantısı dahil) ele alalım. Bu, bilgisayar mimarisi topluluğu tarafından SNARK'lar düşünülmeden geliştirilmiş popüler bir açık kaynaklı ISA'dır.

Her RISC-V talimatı fi için, Jolt'un ana fikri, fi'nin tüm değerlendirme tablosunu içeren bir arama tablosu oluşturmaktır. Temel olarak her RISC-V talimatı için, ortaya çıkan arama tablosu ayrıştırılabilir ve kement uygulanır.

SNARK tasarımında kabul görmüş bilgeliği yeniden gözden geçirmek

Lasso ve Jolt ayrıca SNARK tasarımında kabul edilen bilgeliğin bir kısmını da alt üst ediyor.

**#1. Geniş alanlı SNARK'lar israftır. Genellikle büyük ölçekler için geçerli olan eliptik eğri tekniklerinden kaçındıkları için herkes FRI, Ligero, Brakedown veya varyantlarını kullanmalıdır. **

Buradaki alan boyutu kabaca SNARK ispatında görünen sayıların boyutuna karşılık gelir. Çok büyük sayıların toplanması ve çarpılması maliyetli olduğundan, geniş alanlardaki SNARK'ların israf olduğu fikri, hiçbir zaman büyük sayılara sahip olmayan protokoller tasarlamamız gerektiği anlamına gelir. MSM tabanlı taahhütler, tipik olarak büyük alanlar (~2 256 boyutunda) üzerinde tanımlanan eliptik eğriler kullanır, bu nedenle bu vaatlerin düşük performansla ilgili bir ünü vardır.

Küçük alanları kullanmanın mantıklı olup olmadığı (bir seçenek olsalar bile) büyük ölçüde uygulamaya bağlıdır. Lasso ve Jolt daha da ileri gider. MSM tabanlı bir taahhüt şemasıyla bile kanıtlayıcının işinin alan boyutundan neredeyse bağımsız olabileceğini gösteriyorlar. Bunun nedeni, MSM tabanlı taahhütler için, taahhüt edilen değerlerin boyutunun, bu değerlerin bulunduğu alanların boyutundan daha önemli olmasıdır.

Mevcut SNARK'lar, kanıtlayıcının birçok rastgele alan öğesini taahhüt etmesini sağlar. Örneğin, Plonk adlı popüler bir SNARK arka ucundaki kanıtlayıcı, devre geçidi başına yaklaşık 7 rasgele alan öğesi (ve diğer rasgele olmayan alan öğeleri) işler. Kanıtlanmış hesaplamalarda görünen tüm değerler küçük olsa bile bu rastgele alan öğeleri büyük olabilir.

Bunun aksine, Lasso ve Jolt kanıtlayıcının yalnızca küçük bir değer göndermesini gerektirir (Lasso'nun kanıtlayıcısı ayrıca önceki arama parametresinden daha az değer sunar). Bu, MSM tabanlı şemaların performansını büyük ölçüde artırır. En azından Lasso ve Jolt, kanıtlayıcı performansın önemli olduğu durumlarda topluluğun MSM tabanlı taahhütleri terk etmesi gerektiği fikrini ortadan kaldırmalıdır.

**#2 Daha basit komut seti, daha hızlı zkVM'ye yol açar. **

Jolt'un (komut başına) karmaşıklığı, her talimat için değerlendirme tablosu ayrıştırılabilir olduğu sürece, yalnızca talimatın girdi boyutuna bağlıdır. Jolt, şaşırtıcı derecede karmaşık talimatların, özellikle tüm RISC-V'lerin ayrıştırılabilir olduğunu gösterdi.

Bu, daha basit sanal makinelerin (zkVM) zorunlu olarak daha küçük devrelere ve ilişkili daha hızlı kanıtlayıcılara (VM'nin her adımı) yol açtığı şeklindeki yaygın inanışın aksinedir. Bu, özellikle SNARK dostu olacak şekilde tasarlanmış olan Kahire VM'si gibi özellikle basit zkVM'lerin arkasındaki yol gösterici motivasyondur.

Aslında, daha basit sanal makineler için Jolt, kanıtlayıcı için önceki SNARK'lara göre daha düşük bir taahhüt maliyeti elde ediyor. Örneğin, Kahire VM yürütmesi için SNARK prover, VM'nin her adımında 51 alan öğesi gönderir. Kahire tarafından dağıtılan SNARK'lar şu anda 251 bitlik alanlarda çalışmaktadır (63 bit, bir SNARK'ın kullanabileceği alan boyutunun alt sınırıdır). Jolt'un kanıtlayıcısı, RISC-V CPU'lar için adım başına ~60 alan öğesi üzerinde çalışır (64 bitten fazla veri türü tanımlar). Gönderilen alan öğelerinin küçük olduğu gerçeğini hesaba kattıktan sonra, Jolt prover'ın maliyeti kabaca 6 rasgele 256-bit alan öğesi göndermenin maliyetine eşittir.

**#3 Büyük hesaplamaları küçük parçalara ayırmanın performans cezası yoktur. **

Bu görüşe dayanarak, bugünün projeleri herhangi bir büyük devreyi küçük bloklara ayırır, her bloğu ayrı ayrı kanıtlar ve sonuçları SNARK'lar aracılığıyla yinelemeli olarak toplar. Bu dağıtımlar, popüler SNARK'lardaki performans darboğazlarını hafifletmek için bu yaklaşımı kullanır. Örneğin, FRI tabanlı SNARK'lar, küçük devreler için bile 100 GB'a yakın prova alanı gerektirir. Ayrıca, SNARK'lar büyük devrelere "aynı anda" uygulanırsa bir darboğaz haline gelebilecek ultra doğrusal bir işlem olan FFT'ye ihtiyaç duyarlar.

Gerçek şu ki, bazı SNARK'lar (Lasso ve Jolt gibi) ölçek ekonomileri sergiliyor (şu anda konuşlandırılmış SNARK'larda bulunan eksi ekonomiler yerine). Bu, kanıtlanan ifade ne kadar büyük olursa, doğrudan tanık kontrolüne göre kanıtlama yükünün o kadar küçük olduğu anlamına gelir (yani, doğruluğu garanti etmeden bir tanık devresini değerlendirmek için gereken çalışma). Teknik düzeyde, ölçek ekonomileri iki yerden gelir.

n boyutundaki MSM'ler için Pippenger hızlandırması: saf algoritmaya göre log(n) faktörü iyileştirmesi. n ne kadar büyükse, iyileştirme o kadar büyük olur.

Kement gibi arama parametrelerinde, kanıtlayıcı, arama tablosunun boyutuna bağlı olan ancak aranan değer sayısıyla hiçbir ilgisi olmayan "bir seferlik" bir maliyet öder. Tek seferlik kanıtlama maliyeti tabloya yapılan tüm aramalarda amortismana tabi tutulur. Daha büyük bloklar, daha fazla arama anlamına gelir, bu da daha iyi amortisman anlamına gelir.

Bugün büyük devrelerle uğraşmanın popüler yolu, şeyleri mümkün olan en küçük parçalara ayırmaktır. Her bir parçanın boyutuyla ilgili ana kısıtlama, özyinelemeli toplama ispatının kanıtlayıcı için bir darboğaz haline gelmesine neden olacak kadar küçük olamayacaklarıdır.

Lasso ve Jolt, temelde zıt bir yaklaşım önermektedir. İnsanlar ölçek ekonomisine sahip SNARK'ları kullanmalıdır. Ardından, büyük hesaplamayı mümkün olduğu kadar büyük parçalara ayırın ve sonuçları tekrarlayın. Her parçanın boyutundaki ana sınırlama, parça büyüdükçe büyüyen prova alanıdır.

**#4 Yükseklik kısıtlamaları, verimli SNARK'lar için gereklidir. **

Jolt, ara temsili olarak R 1 CS'yi kullanır. Jolt'ta Yükseklik veya Özel kısıtlamalar kullanmanın hiçbir faydası yoktur. Jolt'taki kanıtlayıcının maliyetinin çoğu, aramayı hafife alan sonuçta ortaya çıkan kısıtlama sisteminin tatmin edilebilirliğini kanıtlamak yerine Lasso parametresine bakmakta yatar.

Jolt evrenseldir, dolayısıyla çok yönlülüğünü kaybetmez. Bu nedenle, günümüzün popüler SNARK'larından iyileştirilmiş performans elde etme çabasıyla geliştiricilerin tasarım yüksekliği kısıtlamalarına (genellikle manuel olarak belirtilen) yoğun odaklanmasına karşı çıkıyor.

Tabii ki, bazı bağlamlar yine de yükseklik veya özel kısıtlamalardan yararlanabilir. Önemli bir örnek, 5 derecelik kısıtlaması taahhüt maliyetini yaklaşık 3 kat azaltabilen Minroot VDF'dir.

**#5 Seyrek polinom taahhüt şemaları pahalıdır ve mümkün olduğunca kaçınılmalıdır. **

Bu, yakın zamanda tanıtılan CCS adlı kısıtlama sistemine ve onu destekleyen SNARK'lara yönelik ana eleştiridir - Spartan ve Marlin, CCS, bugün uygulamada yaygın olan tüm kısıtlama sistemlerinin açık bir genellemesidir.

Bu eleştiri asılsızdır. Aslında, Lasso ve Jolt'un teknik özü, Spartan - Spark'daki seyrek polinom taahhüt şemasıdır. Spark'ın kendisi, herhangi bir (seyrek olmayan) polinom taahhüt şemasının, seyrek polinomları destekleyen bir şemaya genel bir dönüşümüdür.

Lasso, kanıtlayıcının yalnızca "küçük" değerleri taahhüt etmesini sağlamak için Spark'ı optimize eder ve genişletir, ancak bu optimizasyonlar olmadan bile eleştiri haklı değildir. Aslında, Spartan'ın kanıtlayıcısı, SNARK'lardan (seyrek polinom taahhütlerinden kaçınan Plonk gibi) daha az (rastgele) alan öğesi taahhüt eder.

Spartan'ın yaklaşımı, özellikle tekrar eden yapılara sahip devreler için ek performans avantajlarına sahiptir. Bu devreler için toplama kapıları, Spartalı kanıtlayıcının kriptografik çalışmasına katkıda bulunmaz. Bu iş, kısıtlama sayısıyla değil, belirli bir kısıtlama sistemindeki değişken sayısıyla büyür. Plonk'tan farklı olarak, Spartan kanıtlayıcıların aynı değişkenin birden çok farklı "kopyasını" göndermesine gerek yoktur.

Lasso ve Jolt'un SNARK'ların tasarlanma şeklini önemli ölçüde değiştireceği, performansı ve denetlenebilirliği iyileştireceği konusunda iyimseriz. Bu, kanıtlayıcının taahhüt maliyetini en aza indirme konusunda esrarengiz bir yeteneğe sahip kilit bir araçtır.

View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Reward
  • Comment
  • Share
Comment
0/400
No comments
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)