logo academy

Cosa sono e come funzionano i rollup: optimistic vs zero-knowledge

2 maggio, 2023

9 min

Cosa sono e come funzionano i rollup: optimistic vs zero-knowledge
Intermedio

Cosa sono i rollup e come funzionano? Spieghiamo le caratteristiche delle forme optimistic e zero knowledge (zk), chiarendo differenze e caratteristiche comuni.

Cosa sono i rollup? 

Studiando Ethereum ti sarai sicuramente imbattuto nel termine “rollup”, optimistic o zero-knowledge, ma cosa sono e come funzionano? In breve, è una tecnologia layer 2 che aumenta la scalabilità della blockchain principale, raccogliendo diverse transazioni in un solo “pacchetto”, così da migliorare velocità, finalità e abbassare le commissioni degli scambi. 

Vitalik Buterin stesso si è impegnato a spiegare cosa sono i rollup, perché rappresentano un passaggio fondamentale nella roadmap per realizzare il “world computer” che ha immaginato. La blockchain di Ethereum, infatti, è pensata per ospitare applicazioni decentralizzate (DApp) di ogni genere, oltre al semplice scambio di valore Peer-to-Peer. Il suo network, quindi, dovrebbe essere in grado di gestire volumi di traffico immensi, senza sacrificare le prestazioni o aumentare eccessivamente i costi.

Il trilemma della scalabilità, però, presenta una sfida: le blockchain layer 1, ovvero infrastrutture di base dal funzionamento autonomo (come Bitcoin o Ethereum), per essere più flessibili e performanti rischiano di sacrificare un aspetto tra decentralizzazione e sicurezza. Tuttavia, esistono soluzioni senza compromessi: livelli di supporto (layer 2 e sidechain) che operano in parallelo alla mainnet, spostando i carichi di lavoro off-chain.

Date queste premesse, possiamo capire cosa sono i rollup e come funzionano: uno dei possibili modelli per sciogliere il trilemma della scalabilità, oltre agli state channel (come nel Lightning Network) e alle plasma chain.

Come funzionano i rollup?

I rollup, dall’inglese “arrotolare”, possono essere optimistic o zero-knowledge, ma entrambi condividono una struttura di base e alcuni passaggi fondamentali. Prima di affrontare singolarmente i due tipi, quindi, definiamo in generale cosa sono e come funzionano i rollup. 

In entrambi i casi, infatti, le transazioni sono innanzitutto eseguite su un layer 2 e raggruppate in lotti da un aggregator o sequencer; le informazioni raccolte sono quindi compresse ed inviate alla blockchain principale (Ethereum), dove verranno processate come un unico scambio e inserite in un blocco. In questo modo, i rollup aumentano le transazioni al secondo (TPS) che possono essere processate dal layer 1, oltre a distribuire il costo delle commissioni (gas fee) tra i diversi partecipanti.

Per capire davvero come funzionano i rollup, dobbiamo considerare il ruolo del set di smart contract che accoglie i blocchi sulla blockchain principale. Questi programmi, infatti, memorizzano e verificano i dati ricevuti, così da registrare immutabilmente i cambiamenti di stato validi. Questi corrispondono essenzialmente ad aggiornamenti nel saldo degli wallet coinvolti nelle transazioni, essendo Ethereum basato sull’account model

In particolare, lo stato di un rollup è rappresentato dalla radice di un Merkle tree, una struttura ramificata organizzata gerarchicamente. Questa “state root” è codice crittografico riassuntivo, simile ad un hash: rappresenta lo stadio “finale” nei bilanci di mittenti e destinatari, a seguito di tutte le transazioni raccolte nel rollup. 

Oltre alle “radici di stato”, i rollup devono fornire una batch root: un altro codice crittografico, derivante da un secondo Merkle tree che comprende le informazioni sulle singole transazioni in un lotto. Capire il ruolo delle root è fondamentale per comprendere cosa sono e come funzionano i rollup: permettono a chiunque di ricostruire la “cronologia” delle transazioni, dimostrarne l’inclusione nel rollup e verificare la correttezza dello stato finale. 

Infatti, questi codici sono la base per generare la “prova” che tutte le transazioni del gruppo siano legittime. Questo passaggio, tuttavia, può avvenire in due momenti diversi, a seconda che si tratti di un optimistic roll-up o di uno zk rollup (zero-knowledge): confrontiamo le due tipologie.

Gli optimistic rollup e la fraud proof

Prima di entrare nel dettaglio di cosa sono i rollup e come funzionano i tipi optimistic e zero-knowledge, facciamo un’ultima considerazione tecnica. I nodi aggregatori di layer 2, per produrre i “pacchetti” di  transazioni, devono fornire una garanzia. Come nel Proof-of-Stake, devono depositare un certo quantitativo di coin o token per partecipare al processo di rollup. In questo modo, sono incentivati ad essere affidabili ed onesti: se un blocco di rollup contenesse informazioni errate, tali da renderlo invalido, le monete lasciate in “pegno” sarebbero distrutte, o comunque sottratte al nodo fraudolento.

La correttezza dei rollup optimistic, in particolare, è verificata a posteriori e solo “su richiesta”: sono detti ottimistici proprio perché assumono come valide le transazioni raccolte, dunque inviano alla blockchain principale blocchi senza “prove”. Tuttavia, esiste uno schema anti-frode che prevede un periodo di tempo fisso di 7 giorni (challenge period) entro il quale altri nodi del layer 2 possono contestare i risultati, fornendo una fraud proof. Essenzialmente, ri-eseguono off-chain le transazioni contenute nel rollup e, nel caso giungano a “state root” diversi, lo segnalano allo smart contract del layer 1, che procederà alle dovute verifiche. 

In particolare, per spiegare meglio cosa sono e come funzionano i rollup optimistic, la blockchain principale può risolvere la disputa in uno o più round, determinando oggettivamente chi ha ragione tra l’aggregatore che ha creato il blocco e il nodo challenger che ha generato la fraud proof. In caso di un solo round di verifica, sono richieste ulteriori informazioni al layer 2, così da poter processare una ad una le transazioni contenute nel rollup; questo richiede il pagamento di gas fee più elevate. 

In alternativa, i nodi contendenti possono “discutere” in più fasi, specificando al layer 1 la precisa informazione su cui sono in disaccordo. In caso di multi-round, infatti, si procede secondo un “protocollo di bisezione”: il rollup viene diviso in metà sempre più piccole, fino a che lo sfidante riconosce quella che contiene il possibile errore. Se fosse quest’ultimo a vincere la contesa, riceverebbe parte dello stake dell’aggregatore.

In ogni caso, gli utenti devono attendere la conclusione del “challenge period” prima di ritirare i fondi inviati al layer 1, anche se il rollup non riceve obiezioni. La sicurezza dell’intero sistema è difesa dalla possibilità di “critica” in questo periodo. La validità degli optimistic rollup, infatti, si basa sull’esistenza di almeno un nodo onesto: l’aggregatore o l’oppositore che fornisce la fraud proof.

Gli ZK rollup e la validity proof

Approfondiamo cosa sono i rollup e come funzionano, considerando la tipologia zero knowledge (ZK). Questi seguono uno schema di verifica diverso: i “supernodi” aggregatori accompagnano delle validity proof ai rollup, per dimostrare con certezza crittografica che gli stati proposti siano corretti. Questo riduce al minimo la quantità di informazioni che il rollup deve contenere, perché per definizione una prova zero knowledge consente di dimostrare la correttezza di un’affermazione senza rivelare i dati che la compongono.

Infatti, il layer 1 si limita a verificare la validity proof e a cambiare la “root state” dello smart contract, così da riflettere i cambiamenti causati dal rollup. In confronto agli optimistic, quindi, gli zk rollup sono più “leggeri” e finalizzati istantaneamente, perché non hanno bisogno del challenge period; questo permette ai fondi di essere trasferiti su layer 1 e ritirati in brevissimo tempo. Inoltre, le prove zero knowledge possono essere ricorsive, in pratica una validity proof può verificarne altre. Un solo ZK-SNARK o STARK potrebbe infatti aggregare più blocchi di rollup, così da inviarli insieme al layer 1 e finalizzarli contemporaneamente; questo aumenta esponenzialmente la scalabilità

Tuttavia, le validity proof sono di base già complesse da produrre, tanto da richiedere hardware specifici. Questo comporta un rischio di centralizzazione e censura ma, come per gli optimistic rollup, gli aggregatori disonesti sono puniti con lo slashing dei fondi. Inoltre, se un utente sospetta che le sue transazioni non siano state prese in carico, può verificarlo attraverso le Merkle root ed eventualmente inviarle in autonomia al contratto di rollup. 

Un’ultima caratteristica da considerare nell’affrontare cosa sono e come funzionano i rollup, è la loro compatibilità o equivalenza all’Ethereum Virtual Machine (EVM): in pratica, l’ambiente di programmazione di ETH, avente le sue funzioni e linguaggi specifici. I layer 2 EVM-compatible possono accogliere gli smart contract progettati per Ethereum, così da migliorare le loro performance attraverso i rollup. È più semplice sviluppare tecnologie optimistic EVM-compatible, come Optimism e Arbitrum, ma non mancano esempi zero knowledge, come la zkEVM di Polygon e ZKSync.

I rollup sono il futuro di Ethereum?

Oltre a Polygon, molti altri progetti (come Consensys e Scroll) stanno sviluppando soluzioni per la scalabilità di ETH. La stessa roadmap del progetto di Vitalik è cambiata a seguito del successo dei rollup: prima del passaggio al Proof-of-Stake con il Merge, infatti, Ethereum doveva implementare lo sharding. La prima versione di questa soluzione di scalabilità, tuttavia, è stata resa superflua dai rollup di progetti come Arbitrum e Optimism, ma in futuro verrà riproposta nella forma di ​​Danksharding.

Ora che sappiamo cosa sono i rollup e come funzionano e abbiamo approfondito i modelli optimistic e zero knowledge, potremmo quindi apprezzarne le prime reali applicazioni, che spaziano dalla verifica dell’identità digitale al play-to-earn (come i videogiochi di ImmutableX). I rollup sono la chiave per realizzare il network multiuso sognato da Vitalik, oppure i prossimi aggiornamenti di Ethereum li renderanno superflui? L’imminente fase The Surge, forse, ce lo svelerà.

Correlati