ZK specializat vs. ZK general: care este viitorul?

Specializare și generalizare, care este viitorul ZK? Permiteți-mi să încerc să răspund la această întrebare cu o diagramă:

ZK specializat vs. ZK general

După cum se arată în diagramă, este posibil să ajungem în viitor la un punct optim magic pe sistemul de coordonate al compromisului?

Nu, viitorul calculului verificabil în afara lanțului este o curbă continuă care estompează granițele dintre ZK specializat și ZK general. Permiteți-mi să explic evoluția istorică a acestor termeni și modul în care ei vor converge în viitor.

În urmă cu doi ani, infrastructura ZK „specializată” însemna cadre de circuite de nivel scăzut precum circom, Halo2 și arkworks. Aplicațiile ZK construite folosind aceste cadre erau în esență circuite ZK scrise manual. Erau rapide și rentabile pentru sarcini specifice, dar de obicei dificil de dezvoltat și de întreținut. Ele sunt asemănătoare diferitelor cipuri de circuite integrate specializate (plachete de siliciu fizic) din industria actuală a circuitelor integrate, cum ar fi cipurile NAND și cipurile controler.

Cu toate acestea, în ultimii doi ani, infrastructura ZK specializată a devenit treptat mai „generalizată”.

Acum avem cadrele ZKML, coprocesorul ZK și ZKSQL care oferă SDK-uri ușor de utilizat și extrem de programabile pentru construirea diferitelor categorii de aplicații ZK fără a scrie o singură linie de cod de circuit ZK. De exemplu, coprocesorul ZK permite contractelor inteligente să acceseze fără încredere stările istorice, evenimentele și tranzacțiile blockchain și să execute calcule arbitrare pe aceste date. ZKML permite contractelor inteligente să utilizeze rezultatele inferenței AI într-un mod lipsit de încredere pentru a gestiona o gamă largă de modele de învățare automată.

Aceste cadre evoluate îmbunătățesc semnificativ programabilitatea în domeniile lor țintă, menținând în același timp performanțe ridicate și costuri reduse datorită straturilor subțiri de abstractizare (SDK/API) care sunt apropiate de circuitele bare-metal.

Acestea sunt asemănătoare cu GPU, TPU și FPGA de pe piața IC: specialiști în domenii programabile.

ZKVM a făcut, de asemenea, pași mari în ultimii doi ani. În special, toate ZKVM-urile de uz general sunt construite pe cadre ZK specializate, de nivel scăzut. Ideea este că puteți scrie aplicații ZK în limbaje de nivel înalt (chiar mai ușor de utilizat decât SDK/API), care se compilează într-o combinație de circuite specializate și seturi de instrucțiuni (RISC-V sau similar cu WASM). Acestea sunt precum cipurile CPU din industria IC.

ZKVM este un strat de abstractizare deasupra cadrelor ZK de nivel scăzut, la fel ca și coprocesoarele ZK.

După cum spunea odată o persoană înțeleaptă, un strat de abstractizare poate rezolva toate problemele informatice, dar creează în același timp o altă problemă. Compromisurile, aceasta este cheia. În mod fundamental, pentru ZKVM, facem un compromis între performanță și generalitate.

Acum doi ani, performanța „bare-metal” a ZKVM era într-adevăr slabă. Cu toate acestea, în doar doi ani, performanța ZKVM s-a îmbunătățit semnificativ.

De ce?

Deoarece aceste ZKVM-uri „de uz general” au devenit mai „specializate”. Un motiv cheie pentru îmbunătățirea performanței este „precompilarea”. Aceste precompilări sunt circuite ZK specializate, capabile să calculeze programe comune de nivel înalt, cum ar fi SHA2 și diverse verificări ale semnăturilor, mult mai rapid decât descompunerea lor în fragmente de circuite de instrucțiuni.

Astfel, tendința este acum destul de clară.

Infrastructura ZK specializată devine mai generalizată, în timp ce ZKVM-urile generale devin mai specializate.

Optimizările din ultimii ani ale ambelor soluții au dus la un compromis mai bun decât înainte: progrese într-un punct fără sacrificarea altuia. Acesta este motivul pentru care ambele părți simt că „suntem cu siguranță viitorul”.

Cu toate acestea, știința informatică ne spune că, la un moment dat, vom întâlni „zidul optim Pareto” (linia verde punctată), unde nu putem îmbunătăți o performanță fără a sacrifica alta.

Prin urmare, apare o întrebare de un milion de dolari:

O tehnologie o va înlocui complet pe alta la momentul potrivit?

Împrumutând informații din industria circuitelor integrate: dimensiunea pieței CPU este de 126 de miliarde de dolari, în timp ce întreaga industrie a circuitelor integrate (inclusiv toate circuitele integrate „specializate”) este de 515 miliarde de dolari. Sunt convins că, dintr-o perspectivă micro, istoria se va repeta și aici, iar acestea nu se vor înlocui reciproc.

Acestea fiind spuse, astăzi nimeni nu ar spune: „Hei, folosesc un computer acționat în întregime de un CPU de uz general” sau „Hei, acesta este un robot sofisticat acționat de circuite integrate specializate”.

Da, ar trebui, într-adevăr, să privim această problemă dintr-o perspectivă macro, iar în viitor, va exista o curbă de compromis care să permită dezvoltatorilor să aleagă în mod flexibil în funcție de nevoile lor.

În viitor, infrastructura ZK specializată și ZKVM general pot lucra împreună. Acest lucru poate fi realizat în mai multe forme. Cea mai simplă metodă este deja realizabilă acum. De exemplu, puteți utiliza un coprocesor ZK pentru a genera unele rezultate ale calculelor în istoricul tranzacțiilor blockchain, dar logica de afaceri a calculelor pe aceste date este foarte complexă și nu poate fi exprimată simplu în SDK/API.

Ceea ce puteți face este să obțineți dovezi ZK de înaltă performanță și cu costuri reduse ale datelor și ale rezultatelor calculelor intermediare, apoi să le agregați într-o VM de uz general prin dovezi recursive.

Deși mi se pare interesant acest tip de dezbatere, știu că toți construim acest viitor de calcul asincron condus de calculul verificabil în afara lanțului pentru blockchain. Pe măsură ce cazurile de utilizare pentru adoptarea în masă de către utilizatori apar în anii următori, cred că această dezbatere va ajunge în cele din urmă la o concluzie.