Sono passati solo un paio di giorni dal Rare Bloom Event (https://twitter.com/RareBloomEvent), una conferenza organizzata negli Stati Uniti, precisamente a Denver, nello stato del Colorado, durante la quale il team di SundaeSwap ha annunciato con questo tweet:

di aver creato un prototipo del proprio DEX che integra Hydra, e sul “Cardano” Twitter e YouTube non si parla d’altro. 

Non si avevano notizie importanti su Hydra da mesi, febbraio 2022 per la precisione, e questo tweet riaccende decisamente l’entusiasmo per una delle funzionalità più attese da tutta la comunità.

Per questo motivo abbiamo deciso di raccogliere un po’ di materiale e tradurlo per la nostra community italiana.

Prima di scendere nei dettagli di cosa sia e come funzioni Hydra, vi riassumo i passi principali di questa intervista che Lex Friedman ha fatto a Charles Hoskinson in merito ai L2 (Layer 2 o Livello 2 in italiano), che hanno come obiettivo il “velocizzare” le blockchain.

Cos’è Hydra e come si distingue dalla metodologia Rollups e quali sono i compromessi su cui si basa

Il Livello 1 delle maggiori blockchain offre garanzie elevate di sicurezza, ma è tipicamente lento e costoso, specialmente se si parla, ad esempio, di micropagamenti. Per tale motivo, nel tempo, sono stati sviluppati i cosiddetti Livelli 2. 

Nel video Charles Hoskinson porta come esempio un sistema di “mance” (tips), come per esempio quelle effettuate su Twitter tramite Lightning Network. Questi tipi di pagamenti non possono essere eseguiti sul Livello 1 poiché sarebbero troppo costosi e la blockchain non riuscirebbe a sopportare il traffico generato.

Tutte le tecnologie di Livello 2 come Lighting, Hydra e Rollups hanno come obiettivo quello di comprimere in qualche modo gruppi di transazioni e pubblicarne solo il risultato sulla blockchain. Questo dovrebbe accadere cercando di mantenere quanto più possibile attributi di sicurezza e decentralizzazione, contenendo i costi.

Hydra si ispira molto al Lightning Network di bitcoin e si propone di estenderne le proprietà e funzionalità in maniera da offrire una serie di strumenti agli sviluppatori Cardano per consentire davvero un salto di qualità in termini di scalabilità.

Questi tipi di tecnologie si chiamano di Livello 2 poiché funzionano off-chain. Il passaggio da on-chain a off-chain consente l’accesso a maggiori risorse sia in termini di hardware che di rete e consente di effettuare operazioni che non sarebbero possibili esclusivamente sul Livello 1. Parliamo ad esempio dell’utilizzo di famosi algoritmi di compressione Rollups come SNARK or zk-SNARK. Tutto ciò di solito è possibile raggiungendo un compromesso in termini di sicurezza.

Come accennato, Hydra e Lightning hanno tante caratteristiche in comune, ma il team di ricerca Hydra ha formulato, in una pubblicazione scientifica, una soluzione per cui Hydra non solo riuscirebbe ad avvalersi della “velocità” di Lightning, ma riuscirebbe anche a trasferire al Livello 2 tutte quelle proprietà di sicurezza ed elasticità proprie del Livello 1.

Lightning e Rollups sono soluzioni molto efficaci quando si parla, ad esempio, di micro pagamenti, ma sono meno efficienti nel caso in cui ci sia da gestire uno stato, come per esempio accade con gli smart contracts.

Nel video Charles Hoskinson spiega che un DEX non può utilizzare Lightning o Rollups per velocizzare gli swap (scambi), mentre Hydra è stata progettata con la gestione dello stato (e quindi degli smart contracts) fin dal principio.

Hydra, dice Charles Hoskinson, è una collezione di “idee” che descrivono come gestire lo stato. Il paper che è stato scritto originariamente è per una testa singola: il passo successivo consiste nel comporre molteplici “teste” ed infine introdurre le “code”. La gestione delle “code” consentirebbe una comunicazione asincrona che permetterebbe di essere resistenti ai guasti (nodi validatori delle teste temporaneamente irraggiungibili o spenti). Una volta tornati in linea, i nodi validatori sarebbero in grado di continuare a processare le transazioni in sospeso e garantire la consegna e gestione dei fondi senza che essi vengano perduti.

Altra caratteristica di Hydra è l’estensibilità. Ad IOG sanno bene che non è possibile creare in un colpo solo una soluzione di scalabilità perfetta e che funzioni in ogni caso. Per questo motivo viene utilizzato un approccio incrementale che permette di concentrarsi su una funzionalità alla volta e nel frattempo raccogliere il feedback della community.

I Rollups (arrotolamento in italiano) si distinguono poiché raggruppano e “comprimono” un gruppo di transazioni assieme. Assieme a questa “compressione” viene generata una “proof” (verifica o garanzia). Alcuni esempi sono i recursive SNARKS come mina protocol. 

Queste metodologie consentono di risparmiare tantissimo in termini di spazio poiché le transazioni vengono compresse e, di solito, la “proof” di correttezza è molto piccola.

Quando si ha a che fare con token emessi come risultato di una Rollup, si può ricorrere a verificare due cose: che i token veramente esistano e che essi non siano stati spesi due volte. 

Un esempio un po’ futuristico di “testa Hydra” potrebbe essere quello di poter integrare Cardano con altre blockchain proprio attraverso una testa e costituire, così, un bridge molto più veloce che gode delle stesse proprietà di sicurezza ed elasticità del Livello 1.

Ciò per esempio non è possibile con i Rollups poiché il loro obiettivo è quello di ottimizzare off-chain ciò che accade on-chain.

Un esempio di interoperabilità tra chain potrebbe essere un DEX che costituisce un ponte tra Lightning di bitcoin ed una testa Hydra su Cardano, in maniera molto più sicura dei bridge attualmente utilizzati. Questo consentirebbe di offrire btc su Cardano (wrapped bitcoin), ma purtroppo non il contrario, poiché la rete bitcoin non consente di wrappare token.

Charles conclude dicendo che in generale funzionalità di Livello 2 dovrebbero estendere quello che offre L1, quindi non c’è un L2 vincitore, ma ci saranno una serie di protocolli che perfezioneranno una particolare funzione per migliorare in generale l’usabilità del L1. 

Un esempio molto attuale di L2 su Cardano è Atala Prism, un framework per la gestione di Identità digitali. Un framework di questo tipo è conveniente da implementare su L2 poiché consente una personalizzazione che garantirebbe il rispetto delle leggi locali, mentre su L1 sarebbe troppo rigido e difficile da adottare.

Proprio come i “microservizi” (microservices) dell’informatica tradizionale, le applicazioni L2 possono essere viste come un portafoglio di funzionalità aggiuntive di una blockchain.

Dopo questa analisi di alto livello fatta con l’aiuto dell’intervista di Lex a Charles, possiamo passare ad analizzare più da vicino cosa sia Hydra e come funzioni.

Cos’è Hydra e perchè ce n’è bisogno

Su una blockchain, un protocollo di consenso crea un ambiente sicuro e trustless (senza bisogno di fiducia) che garantisce che le parti siano in accordo su una sequenza di transazioni. Su Cardano tale protocollo si chiama Ouroboros. 

Sebbene Ouroboros sia già molto performante ed economico, per garantire che la blockchain possa sostenere il traffico di milioni di utenti e transazioni, è necessario progettare e realizzare un’infrastruttura che consenta a Cardano di scalare con l’uso.

Hydra è una soluzione di scalabilità di Livello 2 che cerca di risolvere proprio queste problematiche, provando a:

  • massimizzare il flusso di transazioni
  • ridurre al minimo la latenza
  • sostenere costi bassi o nulli
  • ridurre notevolmente i requisiti di persistenza (occupare meno spazio su disco)

Scalabilità isomorfica

Letto cosí il titolo è criptico e non significa nulla. Quello che Cardano prova a realizzare con Hydra è il trasferimento delle proprietà di sicurezza, versatilità e sofisticazione del Livello 1 al Livello 2 e contemporaneamente la drastica riduzione del tempo necessario a validare una transazione (la cosiddetta finalità).

Assieme al miglioramento delle performance, Hydra consente anche di “trasferire la gestione dello stato” e quindi l’esecuzione di smart contract, all’interno di una “testa” Hydra.

Detto in parole povere, se una dApp (smart contract) funziona su Livello 1, la stessa dApp funzionerà automaticamente anche su Livello 2, ma con fee molto più basse, finalizzazione delle transazioni di lunga inferiore al secondo (invece dei 10 secondi in media del Livello 1) e mantenendo la stessa sicurezza del Livello 1.

Sebbene IOG, l’azienda che sviluppa Cardano, abbia rilasciato molteplici dimostrazioni di come funzioni Hydra, vedere la demo di SundaeSwap girare in una “testa” Hydra fa un effetto completamente diverso, decisamente molto più suggestivo:

In questo breve video vedete quanto tempo impiega SundaeSwap a processare uno swap (scambio) tra due token, molto meno di 1 secondo.

Alcuni miti da sfatare

In ambito blockchain spesso si parla di TPS (transaction per second – o transazioni al secondo). Nel caso di Cardano questa metrica dice nulla o poco, poiché una transazione può essere “gigante” e contenere molteplici trasferimenti.

Come si evince da questo tweet, un utente ha inviato 16mila e più ada a 217 wallet diversi (quindi come se fossero 217 transazioni), tutte raggruppate in un’unica transazione il cui costo è stato 0.78 $ADA. Qual è in questo caso il TPS? 

Questa caratteristica di Cardano è dovuta all’utilizzo del modello UTxO invece di quello Accounting utilizzato da Ethereum. Una transazione del genere è possibile su Ethereum solo utilizzando un Livello 2, non nativamente sul Livello 1.

Erroneamente in passato si è detto che Hydra consentirebbe 1 milione di transazioni al secondo. Questa è ovviamente una stima teorica.

Oltre al TPS ed al milione di transazioni, c’è da dire che solo una parte del traffico delle transazioni verrà spostato sulle “teste hydra”. Lo scambio di ada tra 2 wallet tipicamente rimarrà su layer 1. Quindi la maggior parte degli utenti Cardano non trarrà vantaggio, almeno inizialmente, delle “teste hydra”.

Come funziona Hydra

Dalla mitologia, Hydra è un drago dalle tante teste. Proprio questo è il motivo per cui Cardano ha adottato questo nome, poiché la sua soluzione per la scalabilità richiede la configurazione e lancio di una “testa” dove le transazioni, così come gli smart contracts, possono essere eseguiti più velocemente.

Come accennato in precedenza, una “testa Hydra” implementa un “canale isomorfo con stato”. Si può pensare ad una “testa hydra” come se fosse una “mini cardano blockchain” che ha le stesse proprietà della blockchain principale Cardano (isomorfo), ha un canale per comunicare tra i diversi partecipanti e che consente di gestire anche lo “stato” del ledger (quindi l’esecuzione degli smart contracts). Il tutto però molto più velocemente del livello 1.

Ricapitolando:

  • Stato: un mini ledger e consente l’esecuzione degli smart contracts (gli stessi del livello 1)
  • Isomorfo: le stesse proprietà (ad esempio sicurezza e utxo) del livello 1 vengono propagate al livello 2
  • Canale: consente ai partecipanti della testa di comunicare in sicurezza

Questa mini-blockchain, dopo esser stata creata, ha una vita “parallela” al livello 1. Il suo protocollo di consenso è differente ma più semplice, tutti i partecipanti devono “concordare” sull’esito delle transazioni. Per tale motivo nessuno può perdere i propri token: basta bloccare una transazione per fermare e terminare una “testa hydra”. 

Quando, per un qualsiasi motivo, una “testa hydra” termina, lo stato attuale del mini-ledger, viene riportato sul Livello 1.

Dal punto di vista implementativo, una “testa Hydra” è una dApp con uno smart contract (cosí come li conosciamo già su Cardano), che però gode di proprietà aggiuntive.

Un ottimo modo per capire come funziona una “testa hydra” è attraverso il paragone con un tavolo da poker.

Esempio Testa Hydra – Parallelo tavolo da poker

I giocatori si siedono al tavolo da gioco, la “testa hydra” appunto, e portano con sé le fiches.

Queste fiches vengono “lockate” (bloccate), all’interno dello smart contract.

A questo punto, la “testa Hydra” viene lanciata ed i giocatori possono iniziare a giocare.

Ovviamente solo i giocatori, attraverso i turni del gioco, possono scambiarsi i token a seconda dell’esito della giocata.

La partita viene svolta indipendentemente da quello che accade sul livello 1. Infatti, nella “testa hydra” sono visibili solo le fiches che i giocatori hanno portato al tavolo (cioè i token lockati nello smart contract), e viceversa. Il Livello 1 può infatti vedere, ma non può accedere ai token (le fiches) lockate nello smart contract. Proprio come accade attualmente per tutti gli smart contracts.

La partita può terminare per una serie di motivi, alcuni dei quali sono ad esempio: un partecipante si rifiuta di giocare o c’è un vincitore esplicito. A quel punto la partita si conclude ed il risultato della distribuzione dei token viene riportato sul Livello 1.

Nell’esempio in cui c’è un unico vincitore, una volta in cui la partita finisce, il vincitore può riscuotere tutti i token (le fiches) che erano stati lockati inizialmente nello smart contract.

Sebbene il risultato della partita venga riportato sulla blockchain (livello 1), la “storia” della partita resta invece solo nella “testa hydra”. Ed è proprio questo il meccanismo di “compressione” di cui si parlava in precedenza.

Come anticipato in precedenza l’utilizzo del TPS (transazioni al secondo) come metrica per quantificare la “velocità” di hydra, non è la più appropriata. Di seguito riassumiamo quelli che sono invece le metriche più oggettive per capire gli aspetti su cui punta Hydra per velocizzare il processo delle transazioni:

  • Throughput o portata: il volume di dati processato da un sistema in un determinato intervallo di tempo
  • Finalità: il tempo richiesto affinché il risultato di un’azione diventi immutabile, permanente e concordato da tutti gli attori del sistema.
  • Concorrenza: la quantità di lavoro che può essere effettuato da sistemi diversi senza che essi interferiscono, e quindi rallentano, l’uno l’altro

Hydra aspira ad avere finalità immediata, questo significa che sebbene siano necessari un paio di blocchi per inizializzare una “testa hydra” una volta lanciata, il consenso all’interno della “testa hydra” è quasi immediato. Una rete internet performante in unione con eUTxO consente inoltre di processare transazioni in parallelo.

Questi sono i punti di forza di Hydra, e averlo visto in azione su SundaeSwap uno dei DEX principali di Cardano fa pensare che tutto sommato non manchi poi tanto, ma sopratutto che strumenti come questi possano essere utilizzati non solo da piattaforme tecnologicamente avanzate, ma anche da comuni utenti come noi nel nostro quotidiano.