Web3.com Ventures Analiza de cercetare originală
0xFishylosof

Introducere
„zk-Rollups” a fost probabil cel mai tare cuvânt de interes pentru Web 3 al anului. Odată cu lansarea rețelei principale zk-Sync v2.0 „baby alpha” în ultimele zile, această entuziasm a atins apogeul [1]. Dar în spatele tuturor acestor cuvinte la modă, la ce se referă cu adevărat „zk-Rollups”? Și unde intervine zk-Sync? În acest articol, mă voi strădui să mă aprofundez în principiile și practica zk-Rollups, să explic principalele caracteristici tehnice ale zk-Sync v2.0 ca proiect și să explorez potențialele implicații viitoare pentru această tehnologie mult așteptată.
Principiile zk-Rollups
De ce avem nevoie de zk-Rollups în primul rând? Sigur, Ethereum este grozav. Dar în starea sa actuală, rețeaua este fundamental o diseconomie de scară. Pe măsură ce activitatea în rețea crește, prețurile gazelor devin prohibitivi de scumpi, în special dacă există o explozie de activitate în rețea dintr-o dată. Pe măsură ce Ethereum câștigă popularitate în utilizare și tracțiune în ultimii ani, scalabilitatea sa limitată actuală a devenit călcâiul lui Ahile al rețelei.
Aici intervin „rollup-urile” — rollup-urile Ethereum sunt, în esență, un „plugin” care oferă Ethereum magnitudini suplimentare de scalabilitate și astfel repară diseconomia sa inerentă de scară. Intuiția din spatele ideii este simplă. Imaginează-ți că ai 5 obiecte pe care trebuie să le transporti de la punctul A la punctul B. Modalitatea „obișnuită” de a face acest lucru ar fi să iei Obiectul 1, să iei Obiectul 2, etc. unul după altul. Dar aceasta este evident lentă și incomodă. Un „rollup” este, în esență, „rularea” tuturor celor 5 obiecte într-o singură geantă, permițându-ți astfel să faci o singură călătorie în loc de 5.
Dar există două avertismente:
Cum ne asigurăm că rollup-ul poate „încape” totul?
Cum ne asigurăm că rollup-ul nu este falsificat?
zk-Rollups sunt unul dintre principalele tipuri de tehnologii de rollup (cealaltă fiind Optimistic Rollups) care valorifică „dovezile cu zero cunoștințe” pentru a rezolva aceste două probleme. Pentru a aborda aceste probleme, un zk-Rollup va grupa un anumit număr de tranzacții împreună, va efectua calculul pe L2 și va trimite atât modificările de stare, cât și o „dovadă de validitate” unui verificator pe L1, arătând că calculele au fost efectuate cu integritate. Această „dovadă de validitate” are loc sub forma unei „Dovezi cu Zero Cunoștințe”, o modalitate matematică de a spune cuiva că știi ceva fără a-i spune ce știi.

Un exemplu simplu de Dovadă cu Zero Cunoștințe este un autogradant de cod (pentru teme CS). Autogradantul este un „verificator” care îți oferă o mulțime de cazuri de test generate aleatoriu, iar tu ești un „dovadă” care trebuie să poată trece toate cazurile de test pentru a dovedi că ai codul corect. Tot timpul, nu împărtășești codul tău cu autogradantul direct. Și voila, ai realizat o „Dovadă cu Zero Cunoștințe”, demonstrând că știi ceva fără a spune ce știi. [2]

Autogradantul de cod de mai sus folosește o „Dovadă cu Zero Cunoștințe interactivă”, unde autogradantul și furnizorul de cod „interacționează” direct unul cu celălalt. În contrast, majoritatea zk-Rollups folosesc o dovadă non-interactivă mai complicată din punct de vedere matematic (cum ar fi un zk-SNARK, sau Dovadă Succintă Noninteractivă de Cunoștințe cu Zero), care economisește atât timp, cât și spațiu comparativ cu o dovadă interactivă. Deși detaliile tehnice ale zk-SNARKs depășesc domeniul de aplicare al acestui articol, principiul de bază al trecerii cazurilor de test este același.
Sfântul Graal al zk-Rollups este o Mașină Virtuală Ethereum cu Zero Cunoștințe (zk-EVM) care permite dezvoltatorilor să porteze orice contract inteligent Ethereum fără modificări pe un lanț zk-Rollup. Dar acest lucru este greu. Deoarece fiecare „problemă” necesită seturi diferite de „cazuri de test”, dezvoltarea unui „algoritm de dovadă” care poate rezolva fiecare caz de test imaginabil este un obstacol tehnic al Dovezilor cu Zero Cunoștințe și zk-Rollups.
Așa cum afirmă Vitalik Buterin:
În general, părerea mea este că, pe termen scurt, rollup-urile optimiste sunt susceptibile să câștige pentru calculul EVM de uz general, iar zk rollup-urile sunt susceptibile să câștige pentru plăți simple, schimburi și alte cazuri de utilizare specifice aplicațiilor, dar pe termen mediu și lung, zk rollup-urile vor câștiga în toate cazurile de utilizare pe măsură ce tehnologia zk-SNARK se îmbunătățește. [3]
Astfel, istoric, zk-Rollups au fost doar tehnologii stabilite pentru cazuri de utilizare specifice aplicațiilor, unde „cazurile de test” sunt bine definite și limitate ca domeniu. Cu toate acestea, mai multe proiecte avansează rapid spre „castelul de pe deal” — un algoritm zk-Rollup generic compatibil cu EVM. [4]
zk-Sync v2.0
zk-Sync v2.0 este doar unul dintre multele proiecte în prezent în desfășurare pentru dezvoltarea unui zk-EVM (altele includ StarkNet, Polygon Hermez și Scroll). Spre deosebire de zk-Sync v1.0, care a necesitat ca utilizatorii să reconstruiască mari secțiuni ale bazelor lor de cod pentru a porta de la EVM la zk-Sync, în zk-Sync v2.0 programatorii pot desfășura aplicațiile lor cu puține sau fără modificări — sau așa cum ar putea să pretindă zk-Sync.
În practică, nu toate zk-EVM-urile sunt create egale. Există un schimb distinct între compozabilitate (cât de aproape este de contractele originale EVM) și performanță (cât de repede vor rula zk-Rollups) [6]. În cadrul acestui schimb, zk-Sync a ales să se optimizeze complet pentru performanță, sacrificând astfel compozabilitatea.
Din perspectiva lui Vitalik Buterin, există patru tipuri distincte de zk-EVM-uri, rezumate în următorul grafic:

Așa cum afirmă Vitalik, în starea sa actuală, zk-Sync v2.0 este un zk-EVM de tip 4, care este capabil să compileze contracte scrise în Solidity și limbaje de nivel înalt folosind propriul său compilator, care este distinct de EVM. Deoarece zk-Sync are control total asupra designului compilatorului său, ei pot să optimizeze agresiv pentru viteză și capacitate de procesare. Costul acestui lucru este că unele DApps și uneltele de depanare EVM ar putea fi incompatibile cu zk-Sync v2.0. În esență, zk-Sync este aceeași carcasă de mașină ca Ethereum, dar cu un motor schimbat [5].
Într-adevăr, în documentația sa pentru dezvoltatori, Matter Labs afirmă că, în timp ce operațiunile „de citire” ale contractelor inteligente pot fi integrate fără nicio modificare în cod, operațiunile „de scriere” ale contractelor inteligente necesită „cod suplimentar” din cauza „diferențelor fundamentale între L1 și L2” [6]. De fapt, acest lucru este ușor înșelător. Nu este atât de mult din cauza unei „diferențe fundamentale” între L1 și L2, ci mai degrabă din cauza tipului de zk-Rollup pe care Matter Labs a decis să-l urmărească — rollup-ul de tip 4. Deoarece zk-Sync este fundamental un rollup de tip 4 care folosește un compilator și bytecode diferit, acest lucru înseamnă că contractele inteligente au adrese diferite, iar infrastructura de depanare care se bazează pe analiza bytecode-ului ar putea să nu poată funcționa pe zk-Sync v2.0 [7].
În viitor, zk-Sync ar putea adăuga suport nativ mai mare pentru byte-code EVM, permițând sistemului să tranziție treptat către un rollup de tip 3 care suportă o gamă mai largă de aceste „cazuri limită”. Dar pentru ca rollup-ul de tip 4 sau tip 3 zk-Rollup al zk-Sync să aibă succes în comparație cu rollup-ul de tip 2 al Polygon Hermez și Scroll Labs, care, în esență, face schimb de viteză pentru o compatibilitate mai largă, trebuie să existe două precondiții importante. În primul rând, există doar o fracție mică de proiecte neimportante care sunt incompatibile cu compilatorul personalizat al zk-Sync. În al doilea rând, există o diferență calitativă în viteza de execuție a zk-Sync în comparație cu un zk-EVM de tip 2.
Din păcate, eu personal cred că acest lucru este puțin probabil să fie cazul. Orice ecosistem avansat de dezvoltare se bazează pe o infrastructură „de schelă” matură, inclusiv instrumente convenabile, modularizate, de depanare și testare. Dacă, așa cum postulează Vitalik, o mare parte din instrumentele de depanare native EVM nu vor putea fi portate pe zk-Sync din cauza diferențelor în bytecode, atunci zk-Sync va trebui să dezvolte propria suită de instrumente de testare și depanare. Aceasta este o sarcină suplimentară care ar putea în cele din urmă să împiedice viteza de adoptare a zk-Sync ca soluție L2, comparativ cu competitorii săi de tip 2 zk-EVM mai compozabili, precum Polygon Hermez și Scroll.
Viitorul pentru zk-Rollups
Cu mulți jucători competitivi în bătălia pentru zk-EVM-uri, se poate argumenta că este doar o chestiune de timp până când vom vedea un zk-EVM complet funcțional. Dar ce urmează? O cale este utilă doar atâta timp cât există clădiri pe drum; forța pe termen lung a unui zk-Rollup provine din proiectele care utilizează acea soluție.
În prezent, DeFi, GameFi și aplicațiile mobile sunt principalii beneficiari ai infrastructurii zk-Rollup. Atât DeFi, cât și GameFi sunt în mod fundamental economii de scară, deoarece prosperă într-un mediu în care mulți oameni le folosesc. Aplicațiile mobile, cum ar fi portofelele mobile, deschid de asemenea porțile consumatorului de masă care este prea leneș (sau nu își permite) un PC desktop. Utilizarea zk-Rollups în aceste situații are, așadar, mult sens.
Dar aceasta nu este cu siguranță limita utilității zk-Rollups. Dacă există ceva, acesta este doar începutul. zk-Rollups sunt pentru Ethereum ceea ce este 5G pentru Internet. Așa cum 5G poate permite o nouă lume de aplicații și sisteme IoT, zk-Rollups ar putea de asemenea să deschidă porțile unei „Blockchain a Lucrurilor”, permițând aparatelor digitale din lumea noastră fizică — frigidere, ceasuri, semafoare și toate celelalte — să fie integrate cu contracte inteligente securizate pe Ethereum.
Unul dintre cele mai mari argumente împotriva IoT este că va permite Big Tech să pătrundă în viața noastră de zi cu zi. Dar cu o „Blockchain a Lucrurilor”, putem să ne bucurăm de conveniențele IoT fără a ne face griji că aparatele noastre inteligente sunt compromise pe o bază de date centralizată. În loc de conveniență sau intimitate, putem avea conveniență și intimitate. Aceasta este lumea pe care zk-Rollups ne-o pot promite.
🐦 @0xfishylosopher
📅 31 octombrie 2022
Această informație este pur educațională și nu ar trebui considerată ca fiind sfaturi financiare. Toate opiniile exprimate sunt cele ale autorului și nu sunt neapărat susținute de Web3.com Ventures.
Referințe
[1] https://blog.matter-labs.io/baby-alpha-has-arrived-5b10798bc623
[2] Adaptat din https://pages.cs.wisc.edu/~mkowalcz/628.pdf
[3] https://vitalik.ca/general/2021/01/05/rollup.html
[4] https://www.coindesk.com/tech/2022/07/20/the-sudden-rise-of-evm-compatible-zk-rollups/
[5] https://cryptobriefing.com/the-race-scale-ethereum-zkevm-rollups/
[6] https://docs.zksync.io/dev/contracts/#porting-smart-contracts
[7] https://vitalik.ca/general/2022/08/04/zkevm.html

