ZK-rollup: guida ai rollups Zero Knowledge

In questa guida parliamo di Zk-Rollups, una delle soluzioni di scaling più interessanti per la scalabilità di una blockchain.

Abbiamo parlato nelle scorse puntate delle principali soluzioni di scaling per Ethereum, tra cui abbiamo visto quelle con i layer 2 ed i rollups.

In particolare un rollup è una soluzione che consente di comprimere transazioni in modo efficiente per velocizzare l’esecuzione delle transazioni.

Una transazione, come sapete, non è altro che un’operazione che coinvolge due indirizzi su una blockchain. Ethereum riesce a processare poche transazioni al secondo e per questo motivo ad un certo punto è emersa la necessità di aumentare questo numero ai fini dell’efficienza.

Le soluzioni di scalabilità per Ethereum stanno impiegando sempre di più i rollup come tecnologia. Abbiamo già parlato di Optimistic Rollup in un articolo precedente. In questo articolo, invece, ci concentreremo sui rollup Zero Knowledge o Zk-Rollups, anche alla luce delle news che arrivano dal mondo crypto.

Due principali concorrenti si stanno contendendo il mercato dei rollups Zero Knowledge e sono Polygon zkEVM e zkSync che stanno provando a fare una versione ZK che sia EVM compatibile.

Cerchiamo allora di spiegare alcuni concetti base introduttivi per poi capire come funziona un Rollup e quali sono le differenze principali tra Zk Rollups e Optimistic Rollup.

Se ti interessa fare trading in modo sicuro puoi utilizzare le piattaforme regolamentate come ad esempio quella del broker eToro.

  1. Registrati su eToro
  2. Fai pratica con il conto demo
  3. Deposita denaro sul tuo account
  4. Prova il copy trading

Cos’è un Rollup?

Un rollup è una tecnologia di Layer2 che consente di migliorare la scalabilità della rete Ethereum.

I rollup consentono l’esecuzione delle transazioni al di fuori del layer 1. Col termine Rollup si indica una tecnologia in grado di “impacchettare”(o “arrotolare”) più transazioni in un’unica transazione per essere processate.

Una transazione coinvolge banalmente due o più indirizzi o “address”.

A seconda del modo in cui i dati vengono poi ancorati alla blockchain layer 1 di Ethereum possiamo distinguere tra Optimistic Rollup o ZK-Rollup.

I rollup eseguono l’esecuzione delle transazioni al di fuori del livello 1 e poi i dati vengono inviati al livello 1 dove viene raggiunto il consenso.

Possiamo avere una tecnologia diversa a seconda dei meccanismi utilizzati per inviare i dati alla blockchain di Ethereum. In particolare possiamo dividere i Rollups in:

  • Optimistic Rollup: è un modello che presuppone che le transazioni siano valide “a priori”. Se un validatore ritiene che un potenziale blocco sia non valido si torna indietro e si analizza nello specifico fino a trovare l’errore. La sicurezza dunque viene offerta grazie alla possibilità di eseguire prove su potenziali errori nel caso in cui si sospetti una transazione non valida.
  • ZK Rollups: questo tipo di rollup detto Zero Knowledge Rollup (a conoscenza zero) pressupone invece che i calcoli vengano eseguiti off chain e successivamente venga inviata una prova di validità alla chain. Cioè utilizza le prove di validità al di fuori della chain principale comprimendo le transazioni prima di inviare la prova definitiva alla blockchain di Ethereum. Da qui il termine a conoscenza zero.

I rollup Zero Knowledge sono più efficienti in quanto hanno bisogno solo della prova di validità invece di tutti i dati delle transazioni come invece richiedono gli Optimistic.

Che cosa sono gli Zk-Rollups?

Gli ZK-Rollup sono dei rollup a conoscenza zero, ovvero soluzioni di scalabilità layer 2 costruite su Ethereum che consentono di aumentare il numero delle transazioni (TPS) al secondo, spostando la memorizzazione ed i calcoli sulle transazioni al di fuori della chain principale.

I rollup Zero Knowledge (Zk-Rollups) sono in grado di aumentare notevolmente la scalabilità di Ethereum pubblicando sulla mainnet solo una porzione di dati molto ridotta.

Questo è possibile grazie al fatto di inviare le prove di validità delle transazioni (validity proof) e non altri dati come invece fanno gli optimistic rollup. Questi dati offrono un riepilogo dello stato e la prova crittografica della validità delle transazioni.

Questi rollup funzionano in modo diverso rispetto agli optimistic rollups. La prova delle validità delle transazioni avviene infatti a priori attraverso la validity proof.

Ovvero utilizzano le prove di validità per dimostrare in modo istantaneo se le transazioni sono valide o meno, e impacchettano un gran numero di transazioni eseguite off chain inviandole in un’unica soluzione ad Ethereum.

Un’altra differenza fondamentale rispetto agli optimistic rollup consiste nel fatto che gli ZK-rollups non sono compatibili con la Ethereum Virtual Machine (EVM).

Alcuni esempi di layer 2 su Ethereum che sfruttano ZK-rollup sono:

  • Starknet: utilizzato ad esempio da Loopring, ImmutableX e dYdX
  • zkSync: utilizzato da applicazioni decentralizzate come come Yearn Finance ed altre

Vedremo tra poco come funzionano dal punto di vista tecnico gli zk-rollups.

👍 Cosa èLayer 2 che consente di migliorare la scalabilità della rete Ethereum.
✅ CaratteristicheNon compatibile con EVM / Validity Proof
✅Tipi di RollupsOptimistic / ZK / ZK EVM compatibili
🥇Migliori piattaforma per fare trading su EthereumeToro / Capital.com
🥇Miglior exchange per comprare ETHBinance

Il problema della scalabilità di Ethereum

Abbiamo parlato più volte delle caratteristiche fondamentali di una blockchain che deve essere:

  • decentralizzata
  • sicura
  • efficiente dal punto di vista della velocità di transazioni

Per approfondire tutti i concetti potete consultare la nostra guida sul funzionamento di una blockchain.

Molte delle blockchain che conosciamo sono decentralizzate e sicure ma sacrificano la velocità e dunque diventano difficili da utilizzare. Pensiamo ad esempio al settore dei pagamenti in cui ci sono circuiti come VISA in grado di processare migliaia di transazioni al secondo, ma in modo centralizzato.

Per questo motivo una rete che vuole essere veloce e decentralizzata dovrebbe puntare a migliorare la velocità senza sacrificare la sicurezza. Reti come Ethereum stanno evolvendo utilizzando soluzioni di scaling per aumentare l’efficienza della rete assicurando comunque standard di sicurezza molto alti.

Ma come può aumentare l’efficienza di una rete decentralizzata?

Abbiamo detto che Ethereum è una blockchain sicura ma estremamente lenta, in grado di processare appena 15 TPS (transazioni per secondo).

Ethereum in questi anni ha avuto grande adozione ed un volume di scambi elevato cheha portato ad alcuni problemi:

  • congestione della rete
  • commissioni elevate
  • esperienza d’uso negativa da parte degli utenti costretti a pagare costi elevati e ad attese prolungate

In questo contesto si rende necessaria una soluzione per migliorare la scalabiilità e l’efficienza

Generalmente si può scalare una blockchain tramite 2 metodi:

  • Soluzioni di scaling layer 1
  • Soluzioni di scaling con layer 2

Abbiamo parlato dei layer in un articolo dal titolo “Layer 0,1,2” di come funzionano i livelli e perché sono importanti per una blockchain.

Scalabilità con Layer 2

L’obiettivo principale della scalabilità è quello di incrementare la velocità delle transazioni assicurando sicurezza e decentralizzatione.

Le principali soluzioni sviluppate su Ethereum utilizzano i layer 2, ovvero protocolli costruiti sulla blockchain esistente (L1) ad un livello superiore.

Un layer 2 è quindi costruito sulla blockchain esistente e rappresenta una soluzione di scalabilità di tipo off-chain, ovvero opera fuori dalla blockchain layer 1.

Un layer 2 opera in modo del tutto indipendente rispetto ad un layer 1. Questo consente di lasciare immutata la chain principale, che quindi non ha bisogno di modifiche, aggiungendo uno “strato” superiore al quale vengono delegate molte operazioni.

Il livello 1 si occupa della sicurezza, mentre il livello 2 svolge tutti i compiti legati alla scalabilità rendendo più utilizzabile la rete per gli utenti.

Le soluzioni di scaling layer2 per Ethereum attualmente esistenti sono:

  • Side chain: Polygon sfrutta ad esempio una rete di sidechain indipendenti per processare tante transazioni al secondo. Potete consultare la nostra guida su Polygon per un approfondimento.
  • Plasma chain: chain che eseguono transazioni fuori da Ethereum con propri meccanismi di convalida, essenzialmente sono delle copie più piccole della chain Ethereum. Polygon nasce inizialmente proprio come Plasma Chain
  • Rollups: soluzioni che impacchettano le transazioni da inviare ad Ethereum in modo più efficiente. Le tecnologie più note sono gli Optimistic Rollup (usate da Arbitrub ed Optimism) e gli ZK Rollups (Zero Knowledge)
  • State Channels: in cui due parti creano un canale firmando le rispettive transazioni bloccando i fondi

Per approfondimenti potete consultare questo video sul nostro canale YouTube che spiega con degli esempi quali sono le soluzioni di scalabilità più adottate per Ethereum.

In questo articolo approfondiamo il funzionamento dei rollup ZK (Zero Knowledge).

Come funziona uno ZK-Rollup

Abbiamo detto che i rollup di tipo ZK (o Zero Knowledge) raggruppano le transazioni eseguite off chain e calcolano quali dati devono essere pubblicati sulla blockchain layer 1, ovvero informazioni sullo stato e di validità.

Questi calcoli eseguiti fuori dalla chain principale riducono sensibilmente il peso e la quantità dei dati che devono essere pubblicati sul layer 1.

Lo stato di uno ZK-rollup è gestito da uno smart contract sulla rete Ethereum. Per aggiornare questo stato, i nodi ZK-rollup devono presentare una prova di validità per la verifica cioè una garanzia crittografica che il cambiamento di stato proposto dal rollup è davvero il risultato dell’esecuzione di quel batch di transazioni.

Ciò significa che i rollup ZK devono solo fornire prove di validità per finalizzare le transazioni su Ethereum, invece di pubblicare tutti i dati delle transazioni sulla chain come avveniva con i rollup di tipo ottimistico.

Vediamo come funziona in questo schema uno ZK-Rollup:

come vedete le transazioni vengono inviate ovvero scritte sulla blockchain di Ethereum tramite una calldata.

Le calldata sono il meccanismo che consente di memorizzare i dati inclusi nelle chiamate esterne alle funzioni degli smart contract.

Grazie alle informazioni contenute nelle calldata pubblicate sulla blockchain, è possibile ricostruire lo stato del rollup. Ethereum rende quindi queste informazioni a disposizione di tutti i partecipanti alla rete.

I dati sono inoltre compressi ulteriormente per risparmiare spazio al fine di ridurre anche le gas fees per gli utenti.

Architettura ZK-Rollups

Nei rollup a conoscenza zero si forma una vera e propria ZK-Rollup chain ovvero un protocollo in grado di operare tramite smart contract su Ethereum. Gli ZK-Rollups sono in grado di eseguire le transazioni off chain e poi le impacchettano in batch in un contratto detto rollup on-chain.

Si tratta in pratica di un record di transazioni (batch) che non può essere modificato e forma una catena di ZK-Rollups.

Da un punto di vista dell’architettura abbiamo due componenti:

  • Smart contract On-chain: abbiamo detto che zk-rollup funziona con contratti intelligenti su Ethereum. Uno di quelli utilizzati si occupa di memorizzare i blocchi del rollup e fare il monitoraggio dello stato. Un altro esempio di smart contract on chain è quello che si occupa di verificare le prove crittografiche inviate dai nodi che producono i blocchi (block producer)
  • Virtual Machine Off chain: abbiamo detto che ZK-Rollup non è compatibile EVM. Questo perché viene utilizzato una virtual machine off chain che si occupa di eseguire e archiviare le transazioni. E’ una sorta di livello secondario per il protocollo Zk-Rollups. Le transizioni di stato in questa virtual machine sono garantite grazie alle prove di validità verificate sulla mainnet di Ethereum

Anche in questo caso, come per gli optimistic rollup, parliamo di una soluzione di scaling ibrida.

La sicurezza è garantita da Ethereum che si occupa di certificare la validità degli aggiornamenti di stato del rollup Zero Knowledge. Da qui si evince come gli ZK-Rollups siano più sicuri ad esempio delle sidechain.

Le transazioni

Le transazioni vengono di solito firmate ed inviare ai componenti del layer 2 per essere inclusi nel batch.

In alcuni casi ad occuparsi di questa operazione è un sequencer, un nodo che esegue le transazioni e le aggrega nel batch da inviare al layer 1.

In questa architettura è dunque è il sequencer a fare dal block producer per il livello L2 e ad aggiungere le transazioni al contratto Zk-Rollup.

Ci possono essere poi dei nodi validatori che depositano dei fondi a garanzia nel contratto di rollup per essere selezionati per la produzione del batch successivo. Questa quota a garanzia può diminuire in caso di comportamento fraudolento con lo slashing dunque ogni nodo è incentivato a pubblicare dei blocchi validi.

Come specificato in precedenza i dati delle transazioni sono pubblicati su Ethereum come calldata e resi disponibili in un’area dati dello smart contract in modo da essere accessibili.

I rollup ZK utilizzano le calldata per pubblicare i dati compressi delle transazioni sulla chain layer 1. Il nodo che si occupa del rollup aggiunge il batch alla coda chiamando una funzione apposita del rollup contract e passa il risultato ovvero i dati compressi come argomenti della funzione calldata.

E’ quindi una sorta di interfaccia interrogabile che consente di ricostruire la correttezza.

Stato e Merkle Tree

Abbiamo già visto come negli Optimistic Rollup, lo stato viene organizzato a livello logico come un albero (Merkle tree) che è chiamato albero degli stati. Alla radice dell’albero (root) abbiamo un hash che fa riferimento all’ultimo stato del rollup. Ogni transizione di stato produce un calcolo e dunque un nuovo stato del rollup su cui verrà calcolata una nuova root.

Anche uno ZK-Rollup utilizza una struttura simile ed ha uno stato che comprende gli account su Layer 2 ed i saldi. L’hash crittografico della radice (root) è memorizzato nello smart contract on chain (Rollup contract) che si occupa di tenere traccia dei cambiamenti di stato del rollup ZK.

Dopo aver eseguito un certo numero di transazioni il rollup passa ad un nuovo stato. L’operatore che ha iniziato la transizione di stato calcola un nuovo stato (state root) e lo passa al contratto on chain. Se la prova di validità del batch è verificata dallo smart contract di verifica (detto verifier contract), la nuova radice Merkle root diventa la radice del ZK-rollup.

Il componente che si occupa dello Zk-Rollup, inoltre, crea anche una radice del batch (la radice del Merkle tree che comprende tutte le transazioni di un singolo batch). Quando viene inviato un nuovo batch ad Ethereum, il rollup contract memorizza la radice del batch, consentendo a chiunque di dimostrare che una transazione è stata effettivamente inclusa nel batch. Un esempio può essere una richiesta di prelievo.

Gli utenti dovranno fornire i dettagli della transazione, la radice del batch e la radice del merkle tree che mostra che è stata inclusa in quel batch.

Sorge quindi un problema. Come fare a sapere che lo stato successivo è corretto? Se tutti possono inviare batch con un qualsiasi stato successivo senza alcun controllo, potrebbe di fatto trasferire tutti i fondi all’interno del rollup a sé stesso.

Per questo motivo è necessario verificare il rollup. Il tipo di verifica è determinato dal tipo di rollup.

Negli optimistic rollup si sfrutta la fraud proof, gli zk-rollups invece utilizzano un meccanismo diverso.

Vediamo quale.

Validity Proof: ZK-SNARK

Gl Zk-Rollup utilizzano un meccanismo di verifica chiamato validity proof.

Negli optimistic rollups si usa la fraud proof ovvero il rollup contract tiene traccia di tutta la storia delle radici di stato e degli hash di ogni batch. Se qualcuno scopre che lo stato successivo non è corretto può pubblicare un fraud proof ed il contratto effettua la verifica con una challenge ripristinando lo stato corretto.

Gli ZK-Rollups, invece, usano una validity proof ovvero ogni batch include una prova crittografica chiamata ZK-SNARK che dimostra che lo stato successivo è corretto e deriva dalla corretta esecuzione del batch. Questa prova può essere verificata on chain in modo molto efficiente.

ZK Rollup: Validity Proof

Il rollup contract non accetterà un nuovo stato fino a quando non verrà provato che la nuova radice del Merkle tree deriva dal coretto aggiornamento. Il componente ZK-Rollup che si occupa di questo produce quindi una validity proof sotto forma di prova crittografica.

Una validity proof consente alle parti in gioco di dimostrare la correttezza senza specificare come è stata calcolata, per questo si tratta di prove a conoscenza zero (appunto Zero Knowledge).

ZK Rollups utilizzano le validity proof per confermare la correttezza delle transizioni di stato fuori dalla blockchain di Ethereum senza doverle rieseguire (come avviene negli optimistic).

Queste prove sono dette ZK-SNARK (Zero-Knowledge Succint Non-Interactive Argument of Knowledge). Ogni componente del nome ha un suo significato:

  • Zero-Knowledge: chi invia la prova di validità può dimostrare che è corretta senza fornire l’informazione sul “come”, da qui il termine a conoscenza zero. Non c’è quindi bisogno di conoscere i dati della transazione
  • Succinct: la prova può essere verificata in pochi millisecondi in quanto occupa solo pochi bytes
  • Non-Interactive: la prova consiste in un messaggio singolo da chi invia la prova verso chi la verifica
  • Argument Of Knowledge: significa essenzialmente che le transazioni inviate sono effettivamente corrette

In generale una Validity Proof la possiamo vedere come composta da varie fasi:

  • Proof generation: prima di accettare le transazioni vengono eseguite alcuni controlli come ad esempio la verifica che chi fa la transazione abbia i fondi, la verifica che la transazione sia corretta e così via. Una volta che lo ZK-Rollup ha transazioni sufficienti le aggrega in un batch e le sottopone alla verifica (che comprende come abbiamo visto la generazione dei merkle tree con gli stati). Viene fatto quindi un controllo e per ogni ciclo viene creata una radice con lo stato facendo le verifiche sui conti del mittente e destinatario
  • Proof verification: una volta creati gli stati si arriva alla fase di verifica in cui viene sottoposta la validity proof allo smart contrac sul layer 1 (verifier contract). Questo si occupa di verificare anche i vari stati come il pre-state root, il post-state root cioè il nuovo stato ottenuto dopo l’esecuzione del batch e che riflette il nuovo stato sul layer2, il batch root, i dati delle transazioni di input.

Se queste verifiche vanno a buon fine, ciò significa che esiste una sequenza di transazioni valide che fa passare lo stato precedente (rappresentato dal pre-state root) al nuovo stato (rappresenentato crittograficamente dal post-state root).

Se il pre-state root è uguale alla radice memorizzata dal rollup contract la validity proof ha successo e quindi il rollup contract imposta il suo stato prendendolo dalla validity proof per riflettere effettivamente il cambiamento di stato del rollup.

La comunicazione tra ZK Rollup ed Ethereum

Riepilogando possiamo vedere l’esecuzione di transazioni in uno ZK Rollup come scandita da più fasi:

  • Invio delle transazioni
  • Impacchettamento delle transazioni in un batch da inviare al layer 1 (L1) Ethereum
  • Generazione delle validity proof (tramite ZK-SNARK)
  • Verifica su Layer 1 istantanea

La compressione dei dati

Una transazione su Ethereum richiede circa 110 byte come spazio occupato per il trasferimento. Trasferire invece 1 ETH su un rollup come può essere una soluzione di ZK Rollup richiede pochi bytes quindi quasimolto meno spazio (circa 4 bytes).

Rispetto agli optimistic rollup ci può essere anche occupazione inferiore a livello di spazio. Se ad esempio una parte di transazione non serve per aggiornare lo stato, allora può essere lasciata fuori dalla chain L1. In un optimistic rollup invece questi dati dovrebbero essere inclusi per una eventuale fraud proof.

La compressione dei dati è fondamentale per rendere scalabile i rollup. Senza questi probabilmente si avrebbe un miglioramento ma non così netto come quello assicurato dal fatto di comprimere i transaction data.

ZK-Rollup: vantaggi e svantaggi

Cerchiamo allora, dopo questa panoramica sulle caratteristiche, di riepilogare quali sono i vantaggi di utilizzare zk-rollup nello scaling Ethereum.

Tra i vantaggi ricordiamo:

  • Miglioramento delle prestazioni senza sacrificare la sicurezza
  • Correttezza delle transazioni
  • Gli utenti possono prelevare immediatamente i fondi dal layer 2 senza attese (negli optimistic c’è un ritardo dovuto ai periodi challenge necessari ad inviare eventuali fraud proof)
  • Maggiore efficienza rispetto agli optimistic rollup

Tra gli svantaggi possiamo segnalare:

  • Complessità nella generazione e verifica delle prove di validità
  • Costruire ZK-rollup compatibili con EVM è difficile a causa della complessità della tecnologia
  • I sequencer possono influenzare l’ordine delle transazioni
  • La produzione delle prove di validità richiede hardware specializzato e quindi potrebbe esserci un rischio di centralizzazione a causa dei costi elevati
  • ZK-SNARK richiede una configurazione affidabile che, se gestita male, potrebbe compromettere la sicurezza del rollup

ZkRollups compatibili con EVM (Ethereum Virtual Machine)

Come abbiamo visto gli ZK-Rollups non sono compatibili con l’Ethereum Virtual Machine (EVM) e progettarli è molto complesso e richiede risorse.

Tuttavia ci sono dei progetti interessanti che stanno provando a sviluppare soluzioni di rollup Zero knowledge che siano compatibili. Questa categoria di progetti va sotto il nome di zkEVM e questi consentono l’esecuzione di contratti intelligenti.

L’arrivo di ZK-Rollup compatibili con il mondo EVM dovrebbe consentire lo sviluppo di applicazioni interessanti che potranno usare le prove della tecnologia zero-knowledge e l’infrastruttura di Ethereum.

Vediamo quali sono i più interessanti già sviluppati ed in via di sviluppo.

zkSync

Il primo progetto che vediamo si chiama zkSync e verrà lanciato ufficialmente in mainnet dopo 4 anni di test a fine Ottobre 2022.

Come vedete in questo tweet di oggi, si preparano al lancio ufficiale:

ZkSync in mainnet

ZkSync sta introducendo per la prima volta una tecnologia zk-rollup compatibile col mondo EVM. E’ una delle prime applicazioni di una tecnologia chiamata zero-knowledge proofs”.

Eì in pratica una soluzione di scalabilità per Ethereum che mira a rendere più economica la rete sfruttando la tecnologia degli zk-rollups.

Probabilmente nei prossimi mesi vederemo nascere molte applicazioni decentralizzate (Defi) che si basano su questa tecnologia. ZkSync si pone come alternativa alle attuali soluzioni layer 2, come Arbitrum e Optimism.

Lo sbarco di ZkSync in mainnet avverrà in più fasi per consentire di testare tutte le integrazioni correttamente garantendo l’accesso agli utenti. Durante la prima fase non ci sarà l’accesso alle applicazioni ma verrà studiato il comportamento della rete, le transazioni e il corretto funzionamento degli aspetti tecnici.

Il team ha dichiarato che saranno i primi a lanciare una ZkEVM ( Zero Knowledge Ethereum Virtual Machine) che consentirà di utilizzare la tecnologia abbinata al linguaggio di sviluppo degli smart contract Ethereum ovvero Solidity. Questo, per gli sviluppatori, significa poter creare nuovi protocolli e passare poi a zkSync una volta completate tutte le fasi di lancio.

Sul sito ufficiale è possibile trovare tutti i dettagli del progetto e vedere che ci sono numerosi investitori come Binance Labs, Ethereum Fondation, Huobi Ventures e tanti altri grandi nomi.

Polygon zkEVM

Uno dei principali concorrenti di ZkSync che sta sviluppando delle tecnologie rollup compatibili con EVM è Polygon Matic.

Il progetto si chiama Polygon zkEVM ed è il primo zk-Rollup open source che mira a migliorare l’efficienza e la scalabilità di Ethereum con layer 2.

Polygon zKEVM

Anche Polygon si prepara dunque al lancio della sua soluzione di scaling basata su ZK-Rollup. Questa volta utilizzerà la tecnologia “zero-knowledge proof” (ZK) diventando probabilmente il concorrente più agguerrito di Zk-Sync.

Come abbiamo visto memorizzando solo le prove di validità e comprimendo le transazioni si può migliorare notevolmente l’efficienza.

Con Polygon zkEVM si potranno ottenere dei vantaggi:

  • gli sviluppatori potranno eseguire i loro smart contract esistenti
  • Maggiore velocità grazie alle validity proof
  • Riduzione delle fees di oltre il 90% sui dati on chain
  • tutti gli opcodes EVM supportati
  • Sicurezza e decentralizzazione

Come vedete in questo tweet il progetto è attualmente in testnet:

Polygon zkEVM in testner

Sul sito è già possibile trovare la documentazione del progetto e per chi vuole sviluppare con questa nuova tecnologia.

Zk Rollups : le domande frequenti

Che cosa sono gli zk-rollups?

Zk-Rollups sta per “Zero Knowledge”. Si tratta di rollup a conoscenza zero, ovvero soluzioni di scalabilità layer 2 costruite su Ethereum che consentono di aumentare il numero delle transazioni (TPS) al secondo, spostando la memorizzazione ed i calcoli sulle transazioni al di fuori della chain principale.

Qual è la differenza tra ZK-Rollup e Optimistic Rollup?

Gli optimistic rollup assumono la validità delle transazioni impacchettate ed inviate al layer 1 a priori, gli zk-rollups invece calcolano la prova di validità off chain e la inviano al layer 1 (Ethereum) senza fornire dettagli sui dati. I rollup di tipo ottimistico presentano degli svantaggi e utilizzano un meccanismo di fraud proof. Gli Zk-Rollups sono più efficienti ma richiedono maggiore potenza computazionale.

Cosa sono gli ZK-Rollups EVM compatibili?

Uno dei grandi limiti dei tradizionali rollup a conoscenza zero risiede nel fatto di non essere compatibili con la Ethereum Virtual Machine. Pertanto sono in fase di sviluppo nuovi progetti zKEVM che coniugano zk-rollups e la flessibilità degli smart contract, in modo da consentire lo sviluppo di applicazioni sempre più efficienti e sofisticate.

Zk rollups: riepilogo

Conclusioni

I rollup costituiscono una delle soluzioni di scaling più efficaci per Ethereum. Gli stessi sviluppatori di Ethereum parlano di questa chain come rollup-centric a dimostrare l’importanza di queste tecnologie.

Abbiamo visto cos’è un rollup e fatto un approfondimento sugli ZK Rollup, una soluzione layer 2 impiegata da protocolli come Loopring ed Immutable X.

Abbiamo visto come gli ZK Rollups siano più efficienti rispetto ai rollup di tipo ottimistico ma richiedono una maggiore potenza e complessità di calcoli. Pertanto sono allo studio soluzioni zkEVM che siano anche compatibili con l’Ethereum Virtual Machine.

E’ bene conoscerli e comprenderli per capire anche quale sarà l’evoluzione di Ethereum 2.0 nel futuro.

Per acquistare ETH potete utilizzare uno dei broker proposti sul nostro sito o un exhange.

Per iniziare è fondamentale partire a fare pratica con le demo. Vi lasciamo con i link ufficiali che sono mediati dal server di WebEconomia in modo da garantire l’accesso sicuro:

Sono le migliori piattaforme con conti demo illimitati e sopratutto gratuiti per sempre.