Celestia Labs propone una significativa innovazione nell’architettura delle blockchain, separando le due componenti fondamentali di una blockchain: il meccanismo di consenso e il livello di esecuzione. In questo modo, Celestia permette a chiunque di implementare rapidamente un registro distribuito decentralizzato senza dover stabilire una nuova rete per il consenso.
Costruire una blockchain scalabile senza sacrificare la decentralizzazione e la sicurezza rappresenta probabilmente la sfida più grande per i developer che lavorano sull’architettura delle blockchain attuali.
I problemi di scalabilità di Ethereum sono stati un argomento di discussione nel settore delle criptovalute per tutto il 2021, aprendo la strada all’adozione di altri Layer 1 e allo sviluppo di altre tecnologie di scalabilità come Rollups, Sidechains, State Channels, ecc.
Questa crescita di vari Layer 1 è stata entusiasmante per tutto l’ecosistema e ha in gran parte facilitato l’adozione di DeFi e NFT, tra gli altri.
Di conseguenza, ora disponiamo di blockchain scalabili, ma affrontiamo anche un problema di interoperabilità tra le catene. Diverse applicazioni vivono su catene diverse e necessitano di un modo efficiente e veloce per scambiare dati tra loro.
Per questo motivo, abbiamo bisogno di soluzioni per la scalabilità, ma anche per l’interoperabilità e la composabilità, ed è qui che il progetto desidera eccellere.
Celestia, le blockchain attuali e la disponibilità dei dati
Se non sei familiare con il funzionamento delle transazioni su una blockchain, i blocchi hanno essenzialmente due funzioni principali:
L’intestazione del blocco: contiene le informazioni di base sul blocco, inclusa la radice Merkle delle transazioni (La radice di Merkle è una struttura dati, centrale nella crittografia, che valida le transazioni hashando le coppie TX-ID).
I dati delle transazioni: questa parte costituisce la maggior parte del blocco, è di dimensioni variabili e contiene l’elenco di tutte le transazioni presenti nel blocco.
Generalmente esistono due tipi di nodi in una rete blockchain:
I nodi completi: sono nodi che scaricano e controllano la validità di tutte le transazioni sul registro distribuito. Questo richiede molte risorse (costoso), ma sono i nodi più sicuri, poiché non possono essere ingannati nell’accettare blocchi contenenti transazioni non valide.
Client leggeri: se non hai risorse sufficienti per eseguire un nodo completo, puoi eseguire un client leggero. Un client leggero non scarica né valida alcuna transazione. Invece, scarica solo l’intestazione del blocco e presuppone che il blocco contenga solo transazioni valide. I client leggeri sono quindi meno sicuri dei nodi completi.
Questa mancanza di informazioni nei client leggeri crea un dilemma comunemente chiamato “Il Problema della Disponibilità dei Dati”. In altre parole, se i dati delle transazioni non sono stati correttamente validati, non possiamo sapere se esiste o meno una transazione malevola nascosta nel blocco.
Per evitare questo problema, Ethereum richiede a tutti i nodi di scaricare tutti i dati delle transazioni. Ovviamente, ciò rappresenta di per sé un problema di scalabilità.
Cosa consentirà Celestia in termini di disponibilità dei dati?
Risolvendo il problema della disponibilità dei dati, Celestia ripensa il modo in cui si sviluppano le applicazioni decentralizzate e mira a ridurre significativamente la barriera all’ingresso per le nuove blockchain.
Una blockchain “pigra”
Per costruire la blockchain più basilare al mondo, sono principalmente necessari due elementi: l’ordine delle transazioni e la disponibilità dei dati. A partire da questi due elementi e sapendo che questi dati sono corretti e verificati, qualsiasi Dapp funzionale può essere costruita.
È questo aspetto di Celestia, dove si separano le due componenti principali di una blockchain e dove solo la disponibilità dei dati delle transazioni è garantita, che la rende “pigra” (il progetto era precedentemente conosciuto come Lazy Ledger).
A differenza di ETH, che include l’ambiente di esecuzione, il consenso e la disponibilità dei dati in modo monolitico, Celestia dissocia l’esecuzione della blockchain e si concentra esclusivamente sull’organizzazione delle transazioni e sulla fornitura della “disponibilità dei dati”, semplificando notevolmente lo sviluppo di applicazioni su questo registro distribuito.
Celestia, un passo importante verso l’interoperabilità
In linea con la visione di Cosmos e Polkadot, Celestia crede in un mondo capace di sostenere milioni di blockchain. È in questa prospettiva che hanno costruito questo strato inferiore molto modulare che permette ai developer di lanciare blockchain in sovrapposizione a Celestia. E così, permettere a chiunque di eseguire la propria blockchain su Celestia e concentrarsi strettamente sullo sviluppo di applicazioni.
L’ecosistema Celestia
Celestia è costruita sul SDK Cosmos e protetta dal consenso proof of stake (PoS) di Tendermint.
Ora sappiamo che la blockchain non ha un ambiente di esecuzione, il che permette al consenso di essere responsabile unicamente dell’ordine delle transazioni e di garantire la disponibilità dei dati (Precisazione: essendo una blockchain PoS, avranno bisogno di una verifica minima dello stato, quindi ci sarà un po’ di esecuzione sulla blockchain).
Otteniamo una catena dove la produzione di blocchi è ancora centralizzata, ma la validazione dei blocchi è affidabile e altamente decentralizzata.
Vitalik Buterin, roadmap ‘endgame’ di ETH 2.0.
Nel suo recente articolo “Endgame”, Vitalik Buterin (cofondatore di ETH) discute di produzione e validazione dei blocchi. Mette in luce l’idea che sia costoso per i produttori di blocchi generarli (molto costoso, poche persone possono permetterselo, dunque centralizzato), ma non sia costoso per gli utenti finali verificare che i produttori di blocchi si comportino onestamente (poco costoso, molte persone possono permetterselo, quindi decentralizzato).
I recenti sviluppi di L2 e il successo delle blockchain con applicazioni specifiche (Terra con Anchor e Cosmos con Osmosis) hanno confermato che il mondo delle blockchain specifiche e il multichain giocheranno un ruolo importante nel futuro. Se queste blockchain continuano ad attrarre utenti, molte di queste catene monolitiche saranno confrontate con lo stesso problema di Ethereum oggi.
Grazie a Celestia, una diversa visione della decentralizzazione può esistere, una visione più modulare: una produzione centralizzata dei blocchi (nella blockchain principale, L1) e una validazione decentralizzata e resistente alla censura dei blocchi (in Celestia).
La comunicazione inter-chain(catena) grazie a Celestia
I cluster di Celestia
È un termine con cui siamo familiari da tempo: un “cluster”, nel mondo reale, è un gruppo/insieme di cose simili strettamente correlate tra loro.
Nel mondo delle blockchain, un cluster è un insieme di catene che possono comunicare tra loro. Un cluster può, ad esempio, essere un insieme di rollups in una determinata blockchain (come nel caso dei rollups di Ethereum), o di blockchain autonomi come Polygon, Avalanche o Solana. Questi cluster possono poi comunicare tra loro e garantire una comunicazione inter-cluster.
Ogni catena del cluster può validare la macchina di stato (che memorizza lo stato del registro) delle altre catene del cluster. Ad esempio, tutti i rollups di Ethereum sono compatibili con l’EVM, quindi è possibile validare le prove di frode o di ZK dei rollups all’interno dell’EVM. Tuttavia, non è praticabile in pratica validare lo stato di Solana all’interno dell’EVM, quindi Solana non può condividere un cluster con Ethereum.
Come abbiamo visto finora, Celestia non fornisce un ambiente per smart contracts, a differenza di ETH, ma solo un consenso e una disponibilità dei dati. L’ecosistema Celestia non è un cluster in sé, poiché non applica alcun meccanismo specifico di comunicazione inter-catena tra le catene basate su Celestia, ma offre la base per costruire cluster.
Celestia fornisce il livello di disponibilità dei dati, mentre altri possono costruire i loro livelli di esecuzione e smart contracts sopra di esso. Tutte le catene del cluster devono verificare che i blocchi delle altre catene siano stati inclusi nella catena di disponibilità dei dati e sono quindi in grado di verificare i dati con un minimo di fiducia.
Come funziona Celestia?
Ora che conosciamo in parte l’idea dietro il progetto, parliamo ora dell’aspetto tecnico e cerchiamo di scoprire come funziona tecnicamente questa blockchain.
I codici correttori (ERASURE CODES)
Nella sua tecnica di disponibilità dei dati, Celestia utilizza un concetto ben noto in informatica chiamato codici correttori. Questo consiste in uno schema di codifica che permette ai nodi leggeri, con solo un campione dei dati del blocco, di verificare con alta probabilità che il resto del blocco sia stato pubblicato correttamente.
In termini semplici, i codici correttori sono uno dei metodi di disponibilità dei dati, in cui i dati sono divisi, codificati, memorizzati in nodi di archiviazione e poi verificati dai nodi leggeri.
Supponiamo che un nodo completo faccia il suo lavoro e che fornisca un risultato sotto forma di equazioni, con dati come x = 3 e y = 10.
Il processo di codifica creerà una serie di equazioni del tipo:
- x + y = 13
- 2x + y = 16
- 2x + 2y = 26
Per conoscere il risultato originale, è necessario che una parte delle equazioni possa essere decodificata. Abbiamo 3 equazioni, ma possiamo ottenere l’informazione originale a partire da due di esse.
La libreria Namespaced Merkle Tree (NMT):
Celestia ha implementato una libreria NMT che è un albero di Merkle ordinato per spazi di nomi. È un elemento chiave, perché rende i rollups su Celestia agnostici. In questo modo, qualsiasi rollup può scaricare i dati che sono rilevanti per lui e ignorare i dati degli altri rollups.
L’encoding dimensionale Reed Solomon Merkle Tree (rsmt2d):
Come detto precedentemente, Celestia utilizza un encoding speciale per assicurarsi che un intero blocco sia stato pubblicato. Questo meccanismo di encoding si integra con il NMT per calcolare le radici di Merkle delle righe e delle colonne dal blocco codificato, rendendo estremamente difficile per i nodi completi nascondere dati.
I componenti IPFS e IPLD
Celestia Labs ha deciso di modificare l’IPFS e codificare un plugin IPLD per permettere il campionamento in una rete P2P, creando una libreria per i client leggeri e altri tipi di nodi per validare la disponibilità dei blocchi.
Nodi di Celestia
Per rendere la rete ancora più modulare e imparziale, Celestia Labs ha costruito diversi tipi di nodi all’interno della rete:
- Nodi completi: offrono le garanzie di sicurezza più elevate. Dispongono di intestazioni di blocco estese, del corpo completo del blocco, di tutte le transazioni e producono prove di frode.
- Nodi parziali: sono capaci di produrre prove di frode per transazioni non valide e di contribuire alla validazione dei codici correttori.
- Nodi leggeri: effettuano un campionamento della disponibilità dei dati e sono sicuri in caso di minoranza onesta.
- Nodi superleggeri: non effettuano campionamenti della disponibilità dei dati e sono garantiti da una maggioranza onesta.
- Nodi di archiviazione: offrono le stesse garanzie di sicurezza dei nodi completi e garantiscono l’archiviazione completa dei corpi dei blocchi sotto forma di codici correttori.
- Nodi di archiviazione parziali: offrono le stesse garanzie di sicurezza dei nodi parziali e una capacità di archiviazione parziale dei blocchi.
- Nodi validatori: sono identici ai nodi completi, ma devono anche creare e firmare i messaggi di consenso (proposte, voti, ecc.).
La capacità di elaborazione dei dati della catena principale aumenta con il numero di nodi. Questi nodi possono migliorare le prestazioni e la sicurezza della rete, poiché non producono blocchi, si limitano a verificarli.
Il dilemma a cui sono confrontate le attuali implementazioni su layer 1 è che elementi come la scalabilità si concentrano sulla produzione di blocchi piuttosto che sulla loro verifica. La visione di Celestia è di fare entrambe le cose per evolvere la rete.
Il diagramma seguente illustra l’evoluzione di Celestia: più ci sono nodi, maggiore è la dimensione massima dei blocchi.
Perché questo modello di sicurezza funzioni, deve esserci un numero minimo di nodi leggeri che garantiscono il recupero dei dati del blocco originale da tutti i campioni che raccolgono individualmente (una caratteristica dei codici correttori).
Roadmap di Celestia
Il Devnet di Celestia è attivo da novembre 2021 e comprende tre componenti principali: Celestia-node, Celestia-app e Optimint. Il Testnet dovrebbe essere completato nel 2022. Per partecipare al progetto, è necessario iscriversi alla lista d’attesa qui.
Il team di Celestia
Il team di Celestia Labs ha una vasta esperienza nella costruzione e nella scalabilità delle blockchain, con membri provenienti da grandi progetti come Ethereum, Harmony e Cosmos. Mustafa Al-Bassam ha cofondato Chainspace. Ismail Khoffi, ex ingegnere presso Tendermint e la Fondazione Interchain.
John Adler, è stato uno dei primi a scrivere su come i rollups potrebbero funzionare prima di creare gli optimistic rollups che conosciamo oggi. E infine Nick White, che è nientemeno che il cofondatore di Harmony.
Per concludere, è difficile sovrastimare l’importanza di ciò che Celestia sta cercando di risolvere. Ridurre la verifica dei blocchi alla verifica della disponibilità dei dati è un grande passo avanti nell’ecosistema, considerando la grande difficoltà che rappresenta la scalabilità negli attuali L1.
Se il team riesce a risolvere il problema dell’evoluzione e dell’interoperabilità in modo sicuro, abbassando al contempo la barriera all’ingresso per il lancio di nuove blockchain, favoriranno in modo significativo l’innovazione e aumenteranno i nuovi casi d’uso.