Oggi parleremo degli zk rollup. Non è uno degli argomenti più facili, perciò preparati!
✔️ Zk Rollup è una soluzione di livello 2 che aumenta la velocità della blockchain aggregando ed elaborando più transazioni in un unico blocco.
✔️ La prova di conoscenza zero consiste nel dimostrare che si conosce una cosa particolare, come l'hash (codice) di un blocco, senza rivelare altre informazioni.
✔️ Un rollup zk viene spesso utilizzato quando la rete principale diventa troppo lenta e costosa, alleggerendo la rete e rendendola più veloce ed economica.
✔️ I rollup zk diventeranno sempre più comuni grazie alla loro scalabilità e ai vantaggi in termini di risparmio, anche se sono ancora difficili da implementare.
Ci sono due parti in uno zk rollup. Zk è l’abbreviazione di zero knowledge (zero conoscenza). La zero knowledge proof implica dimostrare di conoscere un qualcosa, come un hash (code) di un blocco, senza conoscere altre informazioni, come un nome, indirizzo, e altro.
La parte rollup significa “arrotolare”. In questo contesto, significa che diverse transazioni vengono raggruppate ed elaborate in un blocco.
Entrambe le parti si riferiscono alla velocità. Con gli zk rollup, la velocità della blockchain viene aumentata significativamente.
Uno zk rollup è una soluzione di layer 2. Viene spesso implementato quando la rete principale diventa troppo lenta e costosa, come nel caso di Ethereum. La rete principale della blockchain, layer 1, è dunque supportata dallo zk rollup, alleggerendola di conseguenza e rendendola più veloce ed economica.
Immaginiamo di essere sviluppatori su Ethereum? Dobbiamo rendere la rete più veloce e meno costosa. Decidiamo di implementare zk rollup per alleggerire la catena principale.
Ora, quando vengono effettuate le transazioni, saranno raggruppate off-chain in un agglomerato su una sub-chain. Su questa sub-chain, il nuovo stato della rete sarà poi comunicato alla rete principale (Ethereum), oltre ad altri dati (zero knowledge proof) per dimostrare che è corretta.
Di conseguenza, la catena principale dovrà elaborare il rollup e la zk proof e non migliaia di transazioni. Dunque, è possibile scalare Ethereum da 10-15 transazioni a migliaia al secondo.
Dunque i dati di transazione saranno ancora archiviati sulla rete principale, perciò lo stato della blockchain sarà comunque corretto e comunicato a tutti coloro che tengono traccia della rete. Di conseguenza, ogni validatore saprà comunque quanti ETH hanno tutti.
Lo stato dello zk rollup è gestito sulla rete Ethereum tramite uno smart contract. Per dimostrare questo stato, devono fornire la prova crittografica che hanno anche effettuato tutte queste transazioni. Gli zk rollup usano anche la compressione di dati, come per gli indirizzi, per rendere tutto più veloce ed economico. Una volta che viene fornita la prova, il gruppo di transazioni raccolto sarà istantaneamente eseguito sulla catena principale.
Dato che gli aggiornamenti dello stato di sicurezza sono eseguiti sulla catena principale (Ethereum), gli zk rollup sono molto più sicuri rispetto alle side chain.
La maggior parte degli zk rollup usano un supernodo, una sorta di superutente che aggrega tutte le transazioni. C'è il rischio che qualcuno venga censurato, che in questo caso significa che il superutente potrebbe decidere di non convalidare determinate transazioni. Se questo accade, qualcuno può inviare le proprie transazioni direttamente al contratto "arrotolato" sulla Mainnet.
Gli utenti possono richiedere l’inclusione nel prossimo rollup e dunque risparmiare in questo modo.
Gli operatori o superutenti controllano una transazione e vedono se un utente è parte dello stato della rete. Inoltre, possono controllare che ci siano abbastanza fondi su un account. La transazione deve essere corretta e la chiave privata deve corrispondere a quella del mittente nel rollup. Anche il nonce (per evitare la doppia spesa) è incluso nel rollup.
Quando il rollup ha raccolto abbastanza transazioni, le aggrega. Viene usato uno zk SNARK per fornire una prova che i dati siano corretti.
Dopodiché, un “circuito di prova” lavora su questi dati e controlla che tutto sia corretto. Una volta fatto, l’operatore invia i dati allo smart contract di verifica sul layer 1 della blockchain. Qui tutto viene testato nuovamente per accertarne la correttezza, dopodiché le transazioni vengono messe nel ledger e il nuovo stato della blockchain è noto.
È perfino possibile che venga creato il Proof-of-Proof. Queste cosiddette prove ricorsive aggregano zk proof sul layer 2, dopodiché tutte le prove sono accettate insieme sulla layer 1, poi una batteria di blocchi sono istantaneamente accettati, il che aggiunge maggior scalabilità per una rete rollup.
Se si volesse partecipare a un rollup come utente per ridurre i costi di transazione, è necessario depositare fondi su uno smart contract di rollup alla layer 1. Una volta che l’operatore avrà accettato tali fondi, si potranno eseguire transazioni a costo ridotto in questo rollup.
Gli zk rollup dunque aumentano la scalabilità e riducono i costi degli utenti. Tuttavia, sono piuttosto difficili da implementare, ed è per questo che vengono usati ancora poco. Le possibilità che superutenti dannosi minaccino la rete sono alte. Con l'aumento delle capacità degli sviluppatori, lo zk rollup diventerà certamente più comune, in quanto molti utenti di certe reti trovano i costi e la velocità di transazione inaccettabili.