Cos'è un Grafo Aciclico Diretto (DAG) nelle criptovalute?
Home
Articoli
Cos'è un Grafo Aciclico Diretto (DAG) nelle criptovalute?

Cos'è un Grafo Aciclico Diretto (DAG) nelle criptovalute?

Intermedio
Pubblicato Jul 19, 2020Aggiornato Dec 27, 2022
8m

Introduzione

Quando pensiamo alle criptovalute, probabilmente balzano alla mente i termini "blockchain" o "tecnologia a registro distribuito". Dal lancio di Bitcoin, sono state create centinaia di altre criptovalute. La maggior parte si basa su un'architettura network simile. Le loro strutture di dati permettono agli utenti di trasferire valore o interagire con applicazioni decentralizzate.
In una blockchain, un nuovo blocco viene aggiunto periodicamente a una crescente catena di blocchi. Ciascun blocco è collegato al precedente con una specie di link crittografico (nello specifico, una hash). Ognuno di questi blocchi contiene recenti transazioni trasmesse dagli utenti.
Spesso, però, c'è un periodo di attesa tra la trasmissione di una transazione e la sua inclusione in un blocco. Puoi pensare a questa situazione come aspettare un treno nella stazione. In base alle dimensioni dei vagoni (la dimensione del blocco), e al numero di altre persone che aspettano (le transazioni in sospeso), potresti non riuscire neanche a salire sul prossimo treno. E magari neanche sul successivo. Potresti dover aspettare da secondi a ore prima che la transazione venga confermata.
Per molti, questo è un compromesso decente. Dopo tutto, garantisce un livello di sicurezza molto alto senza dover contare su un coordinatore centralizzato. Per altri, la tecnologia blockchain ha una data di scadenza. I detrattori credono che, a lungo andare, i problemi di scalabilità della tecnologia blockchain impediranno l'adozione di massa.

Alcuni credono che il futuro dei network di pagamento in criptovalute sia in un'architettura completamente diversa – i grafi aciclici diretti (o DAG).


Cos'è un DAG?

Un DAG è un tipo diverso di struttura dei dati – puoi considerarlo come un database che connette tra loro diversi pezzi di informazione. Il termine "grafo aciclico diretto" è già complicato di suo, quindi iniziamo scomponendolo.


Un Grafo Aciclico Diretto.


Concettualmente, i DAG appaiono in modo simile alla raffigurazione qui sopra. Sono composti da vertici (le sfere) e archi (le linee che le collegano). Sono diretti perché si dirigono in una direzione (puoi vederlo illustrato dalle frecce). Sono aciclici (ovvero, non ciclici) perché i vertici non tornano indietro su sé stessi – se inizi da un punto e segui il grafo, non puoi tornare a quello stesso punto. Questo sarà più chiaro tra poco.

Tali strutture di dati vengono generalmente utilizzate per modellare dati. Potresti utilizzare un DAG in campi scientifici o medici per osservare la relazione tra variabili e determinare come si influenzano a vicenda. Per esempio, potresti considerare cose come l'alimentazione, i cicli di sonno e dei sintomi fisici, per poter tracciare collegamenti tra di loro e stabilire come influiscono su un paziente.

Per i nostri scopi, siamo più interessati a come possono aiutare a raggiungere il consenso in un network di criptovaluta distribuito.


Come funziona un DAG?

In una criptovaluta basata su DAG, ogni vertice nella struttura rappresenta una transazione. Qui non esiste la nozione di blocchi, né è necessario il mining per estendere il database. Quindi, invece di raccogliere le transazioni in blocchi, ogni transazione viene impilata sopra un'altra. Comunque, c'è una piccola operazione di  Proof-of-Work quando un nodo trasmette una transazione. Questo garantisce che il network non venga riempito di spam, oltre a convalidare le transazioni precedenti.

Per aggiungere una nuova transazione, questa deve essere costruita sopra le più vecchie. Supponiamo che Alice crei una nuova transazione. Per essere riconosciuta, questa transazione deve fare riferimento alle precedenti. Un po' come un blocco in Bitcoin fa riferimento al suo precedente, ma in questo caso ci sono multiple transazioni referenziate. 

In alcuni sistemi, un algoritmo selezionerà le transazioni (o "punte") su cui una nuova transazione deve costruire. Le punte con maggiore probabilità di essere selezionate sono quelle che hanno accumulato più peso – una misura del numero di conferme nel percorso verso la punta.

Le transazioni su cui Alice costruirà sono non confermate. Quando Alice le include nel riferimento, diventano confermate. La transazione di Alice è ora non confermata, quindi qualcun altro deve costruirvi sopra prima che venga accettata.

È molto più probabile che gli utenti confermino le transazioni "più pesanti" in modo che il sistema continui a crescere. Altrimenti, niente impedirebbe agli utenti di costruire continuamente su transazioni più vecchie.

Con le blockchain, la protezione contro la doppia spesa è piuttosto semplice. Gli stessi fondi non possono essere spesi due volte in un blocco – i nodi possono individuare facilmente qualsiasi tentativo e respingeranno il blocco che contiene transazioni in conflitto. Dato che produrre blocchi è costoso per i miner, sono incentivati a comportarsi nel modo giusto.

Anche i DAG hanno un meccanismo per prevenire la doppia spesa. È abbastanza simile, ma senza i miner. Quando un nodo conferma le transazioni più vecchie, verifica l'intero percorso fino alla prima transazione del DAG per assicurarsi che il mittente abbia un saldo sufficiente. Potrebbero esserci percorsi diversi, ma solo uno deve essere verificato.



Se gli utenti costruiscono su un percorso non valido, corrono il rischio di vedere la loro transazione ignorata. La loro potrebbe essere legittima, ma se la precedente non lo era, nessuno vorrà estendere quel particolare percorso.

All'inizio potrebbe sembrare poco intuitivo – non si rischia di finire in una situazione in cui esistono diversi rami non consapevoli l'uno dell'altro? E in questo caso, non sarebbe possibile spendere gli stessi fondi su questi rami differenti?



È una possibilità, risolta con un algoritmo di selezione che favorisce le punte con un peso accumulato maggiore. Questo significa che, nel tempo, si arriverà a un ramo molto più forte degli altri. Quelli più deboli saranno abbandonati e il network continuerà a costruire sul più pesante. 

Come per le blockchain, anche qui non c'è una finalità assoluta – non puoi mai essere sicuro al 100% che una transazione non venga invertita. È incredibilmente improbabile, ma potresti teoricamente "annullare" un blocco di Bitcoin o Ethereum, invertendo tutte le transazioni al suo interno. Più blocchi vengono aggiunti dopo quello in cui si trova la tua transazione, più puoi esserne sicuro. Per questo si consiglia di aspettare sei conferme prima di spendere fondi.
In un DAG come il Tangle di IOTA, troviamo il concetto di fiducia di conferma. L'algoritmo di selezione viene eseguito 100 volte, e puoi contare quante volte la tua transazione è stata approvata, direttamente o indirettamente, nelle punte selezionate. Più questa percentuale è alta, maggiore sarà la fiducia che la tua transazione rimarrà "regolata".

Questo sistema potrebbe sembrare indicativo di una cattiva esperienza utente, ma non è così. Se Alice invia 10 MagicDAGToken a Bob, non deve preoccuparsi di selezionare le punte giuste del grafo. Sotto la superficie, il suo wallet potrebbe svolgere il seguente processo:

  • Seleziona punte pesanti (ricorda, sono quelle con il maggior numero di conferme accumulate).
  • Segui il percorso all'indietro attraverso le transazioni precedenti per verificare che le punte abbiano un saldo sufficiente da spendere.
  • Una volta soddisfatto, aggiungi la transazione al DAG, confermando le transazioni su cui viene costruita.
Per Alice, questo sembrerà semplicemente la procedura tipica del mondo delle criptovalute. Inserisce l'indirizzo di Bob e l'importo che vuole spendere, poi clicca su invia. La lista descritta sopra è la Proof of Work che ogni partecipante esegue quando crea una transazione.



Pro e contro dei grafi aciclici diretti

Pro dei DAG

Velocità

Senza restrizioni dei tempi tra blocchi, chiunque può trasmettere ed elaborare transazioni in qualsiasi momento. Non ci sono limiti sul numero di transazioni che gli utenti possono trasmettere, ammesso che confermino le più vecchie nel processo.


Nessun mining

I DAG non usano gli algoritmi di consenso PoW nel modo a cui siamo abituati. La loro impronta ecologica è quindi una frazione di quella di criptovalute che si basano sul mining per proteggere il proprio network blockchain.


Nessun costo di transazione

Non essendoci miner, gli utenti non devono pagare commissioni per trasmettere le proprie transazioni. Detto questo, alcuni network richiedono il pagamento di un costo minimo a nodi speciali. Le commissioni basse (o, ancora meglio, nulle) sono attraenti per i micropagamenti, in quanto il loro scopo viene vanificato con grandi commissioni network.


Nessun problema di scalabilità

Senza restrizioni dei tempi tra blocchi, i DAG possono elaborare molte più transazioni al secondo rispetto ai network blockchain tradizionali. Molti sostenitori credono che questo li renderà importanti nei casi d'uso dell'Internet of Things (IoT), in cui diversi tipi di dispositivi interagiscono tra loro.


Contro dei DAG

Non interamente decentralizzati

I protocolli che si basano su DAG hanno vari elementi di centralizzazione. Per alcuni, dovrebbe essere una soluzione a breve termine per spingere il network nella fase iniziale, ma resta da vedere se i DAG possono prosperare senza l'intervento di terze parti. In caso contrario, risultano vulnerabili a vettori di attacco che potrebbero paralizzare le loro reti.


Non testati su scala

Anche se le criptovalute basate su DAG sono in circolazione da qualche anno, hanno ancora molta strada da fare prima di vedere un uso diffuso. Perciò, è difficile prevedere quali incentivi potrebbero avere gli utenti per sfruttare il sistema in futuro.


In chiusura

I Grafi Aciclici Diretti sono senza dubbio una tecnologia interessante per lo sviluppo di network di criptovalute. Finora, il numero di progetti che usano la struttura di dati è relativamente basso, e devono ancora evolversi completamente. 
Detto ciò, se riescono a realizzare il loro potenziale, potrebbero alimentare ecosistemi fortemente scalabili. La tecnologia DAG presenta una miriade di casi d'uso in aree che richiedono grandi capacità e commissioni minime, come l'Internet of Things (IoT) e i micropagamenti.