Directed Acyclic Graphs (DAG): la soluzione ai problemi legati ai fork

I Directed Acyclic Graphs o DAG espandono il potenziale della blockchain, o meglio, ne tolgono un limite. Ma cosa sono?

Il termine “blockchain” è così diffuso che è facile presumere che sia sinonimo di with distributed ledger technology (DLT). Ma la blockchain è solo un tipo di DLT.

Un’altra forma di DLT, un Directed Acyclic Graphs, o “DAG” in breve, risponde a un’importante limitazione della blockchain: i fork di rete.

directed acyclic graphs dag blockchain fork
Adobe Stock

Quindi cos’è un DAG, come funziona e in che modo i DAG risolvono i problemi di fork della blockchain? Immergiamoci.

Cos’è un Directed Acyclic Graphs (DAG)

Partiamo per ordine. L’indizio è nel nome. “Grafico”, sai già di cosa si tratta. Immagina un diagramma o una mappa mentale in cui un punto (o vertice in matematica, dove ha avuto origine il concetto DAG) è collegato a molti altri vertici tramite frecce o bordi.

“Aciclico” significa che non è ciclico: non va in loop e non si ripete. Invece, è “Diretto”; va in una direzione specifica e non in cicli.

Ogni DLT basato su DAG modifica la struttura DAG sottostante per soddisfare le proprie esigenze e offerte uniche. Ma invece di una chain lineare di blocchi, un DAG è un grafico in cui le transazioni possono essere sviluppate simultaneamente.

Invece di attendere il completamento della transazione precedente prima di convalidare una nuova transazione, come con una blockchain, le transazioni su un Directed Acyclic Graphs possono essere elaborate molto più velocemente e in parallelo.

Sebbene i DAG siano stati sviluppati per la prima volta in matematica e informatica, svolgono anche un ruolo importante nella tecnologia blockchain. O più specificamente, è diventata un’alternativa alla blockchain nello spazio DLT e molte persone credono che sia la soluzione a specifici inconvenienti della blockchain che derivano tutti dal fork.

La blockchain, un insieme di blochi

Una blockchain è una serie lineare di blocchi di dati che si susseguono. Ogni blocco contiene un identificatore univoco e immutabile del blocco precedente. Attraverso questo identificatore, i blocchi sono record di dati protetti crittograficamente, protetti dai record di dati in corso. Ad esempio, i blocchi più vecchi non possono essere manipolati o eliminati e sono immutabili.

In una blockchain, tutto inizia con un blocco di genesi; il primo blocco che nasce quando viene lanciata una nuova chain. Ogni volta che invii una transazione alla rete ,”Voglio pagare 50 delle mie criptovalute a Mario”, i produttori di blocchi mettono quella transazione in un blocco. Quindi un blocco è essenzialmente un elenco di transazioni.

Il Forking nella tecnologia blockchain

Un “fork” è quando due blocchi vengono emessi contemporaneamente. Ciò può accadere a causa di un ritardo della rete: qualcuno potrebbe creare un blocco prima di ricevere l’ultimo blocco. Oppure può essere più malevolo. Qualcuno potrebbe provare a creare una nuova catena dalla genesi nel tentativo di riscrivere l’intera storia di una catena. Ciò cancellerebbe le partecipazioni di token di tutti annullando tutte le transazioni.

Ogni tipo di blockchain, che sia proof-of-stake, proof-of-work o Directed Acyclic Graph, include una regola su cosa fare di fronte a un fork. In una blockchain, uno di questi due blocchi deve essere “orfano”, cioè eliminato e ignorato. Non solo le transazioni del blocco orfano non sono incluse nel libro mastro, ma non contribuiscono nemmeno alla sicurezza. Se ciò accade troppo frequentemente, la blockchain diventa inutilizzabile e insicura.

In genere, la regola sulla scelta dei fork è una variante della “regola della chain più lunga”, in cui si ritiene che la chain più lunga sia quella corretta. In questo modo, ogni blocco vota effettivamente per i blocchi precedenti. Quindi, una volta che una transazione è davvero in profondità nella blockchain, diventa altamente improbabile che una nuova chain più lunga possa essere creata senza quella transazione. Pertanto, maggiore è il numero di produttori di blocchi, più sicura è considerata la transazione. Ciò è dovuto alla difficoltà di manipolare una transazione confermata da così tanti partecipanti.

Quali sono gli svantaggi legati al fork delle blockchain

Ci sono tre problemi principali legati al fork nelle blockchain.

  • Creazione lenta di blocchi: la creazione di troppi blocchi contemporaneamente porta a un fork, che compromette la sicurezza della rete. Quindi, ogni blocco deve propagarsi completamente prima che venga creato il blocco successivo. E questo causa ritardi e colli di bottiglia nella rete.
  • Commissioni: poiché i tassi di produzione di blocchi devono essere lenti per preservare la sicurezza, il numero di produttori di blocchi deve essere limitato. Quindi i produttori di blocchi hanno il monopolio e gli utenti devono pagare commissioni per incentivare i produttori di blocchi a includere le loro transazioni. Questo può essere costoso e pone le basi per una potenziale corruzione o manipolazione dei blocchi.
  • Inefficienza: in una blockchain, tutti i blocchi sono sequenziali. Ciò significa che l’elaborazione dei blocchi deve essere eseguita consecutivamente e in batch. Tuttavia, nel giorno di più processori, questo è molto meno efficiente in termini di utilizzo dell’hardware rispetto all’elaborazione parallela continua.

I DLT basati su DAG come IOTA (che chiama la sua architettura DAG “il groviglio”) superano questi inconvenienti.

I Directed Acyclic Graphs in soccorso alle blockchain

I DAG alleviano il problema del fork nella blockchain, aprendo una serie di vantaggi competitivi. Ad esempio, su Supponiamo che vengano emessi due blocchi contemporaneamente. E se invece di rendere orfano uno dei blocchi, portando a una sicurezza degradata, il blocco successivo includesse entrambi i blocchi nella sua storia? Pertanto, i blocchi creati contemporaneamente non degradano la sicurezza poiché nessuno dei due risulterà orfano. Questo risolverebbe i problemi sopra descritti.

In un DAG, quando invii il tuo blocco alla rete di nodi, deve prima convalidare almeno altri due blocchi. Quindi l’utente è responsabile della convalida del blocco e non un produttore di blocchi di terze parti. La rete conferma il blocco e assicura che venga aggiunto al registro di tutti.

Questo significa:

Creazione di blocchi più rapida: poiché i blocchi possono essere prodotti contemporaneamente, la velocità di creazione dei blocchi può aumentare senza compromettere la sicurezza. Inoltre, i colli di bottiglia vengono evitati grazie alla capacità dei blocchi di essere elaborati in parallelo anziché uno dopo l’altro, come in una blockchain. Ciò porta a una convalida più rapida e a tempi di finalizzazione della transazione più rapidi.

Commissioni inferiori o nulle: le transazioni su un DAG sono anche meno costose perché non è necessario pagare produttori di blocchi. Ciò consente ai protocolli basati su DAG di addebitare costi minimi o nulli.

Maggiore efficienza: i blocchi non sequenziali possono essere prodotti in parallelo; questo richiede meno risorse hardware.

In breve: la parallelizzazione, l’assenza di intermediari, la capacità di lavorare in un ambiente asincrono e l’approccio senza leader offrono una soluzione di consenso e libro mastro altamente performante.

Diversi tipi di Directed Acyclic Graphs (DAG)

La Fondazione IOTA è uno dei pionieri DAG nello spazio DLT. Ha lanciato il Tangle nel 2017 e lo ha perfezionato attraverso il suo sistema Tangle Improvement Proposal (TIP). I TIP sono proposte di miglioramento che chiunque può presentare per migliorare lo stack tecnologico IOTA.

Mentre il Tangle e le blockchain hanno la stessa funzione di mantenere il loro stato di registro, il Tangle supera le difficoltà che devono affrontare le blockchain. Questo succede naturalmente alla blockchain come suo prossimo passo evolutivo, offrendo funzionalità per stabilire soluzioni di registro distribuito più efficienti e scalabili.

Ma non limitarti a crederci sulla parola; per vederne uno in azione, Tangle Explorer offre una visualizzazione dell’attività sul mainnet DAG di IOTA.

Altri esempi di DLT che utilizzano DAG includono Aptos, Avalanche, Constellation, COTI, Hedera-Hashgraph, Nano e Obyte. L’uso dei DAG nel consenso DLT è alla base di molti algoritmi di consenso all’avanguardia come Tendermint.

Il futuro della tecnologia blockchain sono i DAG

Abbiamo appena toccato la punta dell’iceberg. C’è molto altro da esplorare sui Directed Acyclic Graphs (DAG) e su come questa soluzione di fork blockchain può essere utilizzata efficacemente nella tecnologia di registro distribuito. Offrendo una convalida più rapida, tempi di finalizzazione delle transazioni più rapidi e transazioni molto più economiche, i DAG fanno molto per risolvere i problemi di scalabilità e la confusione sulle blockchain

Impostazioni privacy