Dalla blockchain alla DAG: liberarsi degli intermediari

In questo articolo ti parlerò del DAG (Directed Acyclic Graph) e della sua applicazione nei registri distribuiti, e lo confronteremo con la blockchain.

Dalla blockchain alla DAG: liberarsi degli intermediari

DAG non è una novità nel mondo delle criptovalute. Potresti averne sentito parlare come una soluzione ai problemi di scalabilità della blockchain. Ma oggi non parleremo di scalabilità, ma di ciò che rende le criptovalute diverse da tutto il resto: decentralizzazione, mancanza di intermediari e resistenza alla censura.

Dalla blockchain alla DAG: liberarsi degli intermediari

Ti mostrerò anche che DAG è in realtà più resistente alla censura e non ci sono intermediari per accedere al registro.

Dalla blockchain alla DAG: liberarsi degli intermediari

Nelle blockchain che conosciamo, gli utenti non hanno accesso diretto al registro stesso. Quando vuoi aggiungere una transazione al registro, devi “chiedere” al produttore di blocchi (noto anche come “minatore”) di farlo. Sono i miner a decidere quale transazione aggiungere al blocco successivo e quale no. Sono i miner che hanno accesso esclusivo ai blocchi e il diritto di decidere quale transazione sarà accettata per l’inclusione nel registro.

I minatori sono intermediari che si frappongono tra te e il registro distribuito.

Dalla blockchain alla DAG: liberarsi degli intermediari

In pratica, di solito un piccolo numero di pool di minatori controlla collettivamente più della metà della potenza di calcolo della rete. Per Bitcoin si tratta di quattro pool, per Ethereum due. Se entrano in collusione, possono bloccare tutte le transazioni che desiderano.

Dalla blockchain alla DAG: liberarsi degli intermediari

Negli ultimi anni sono state proposte molte varianti di blockchain, che differiscono nei principi di scelta dei produttori di blocchi. Ma gli stessi produttori di blocchi non vanno da nessuna parte, sono ancora “alla barriera”: ogni transazione deve passare attraverso il produttore di blocchi, e se lui non la accetta, la transazione, infatti, non esiste.

Dalla blockchain alla DAG: liberarsi degli intermediari

Questo è un problema inevitabile con la blockchain. E se vogliamo risolverlo, dobbiamo cambiare radicalmente il design ed eliminare completamente i blocchi e i produttori di blocchi. E invece di costruire una catena di blocchi, collegheremo le transazioni stesse, includendo in ciascuna transazione gli hash di diverse transazioni precedenti. Di conseguenza, otteniamo una struttura nota in matematica come grafico aciclico diretto - DAG.

Ora tutti hanno accesso diretto al registro, senza intermediari. Quando desideri aggiungere una transazione al registro, è sufficiente aggiungerla. Seleziona diverse transazioni principali, aggiungi i tuoi dati, firmi e invii la transazione ai peer sulla rete. Pronto. Non c'è nessuno che ti impedisca di farlo, quindi la tua transazione è già nel registro.

Questo è il modo più decentralizzato e a prova di censura per aggiungere transazioni al registro senza intermediari. Perché tutti aggiungono semplicemente le proprie transazioni al registro senza chiedere il permesso a nessuno.

Dalla blockchain alla DAG: liberarsi degli intermediari

I DAG possono essere considerati la terza fase nell'evoluzione dei registri. All’inizio c’erano registri centralizzati, dove una parte ne controllava l’accesso. Poi sono arrivate le blockchain, che avevano già diversi controllori che registravano le transazioni nel registro. Infine, non ci sono controllori nel DAG; gli utenti aggiungono direttamente le loro transazioni.

Dalla blockchain alla DAG: liberarsi degli intermediari

Ora che abbiamo questa libertà, non dovrebbe portare al caos. Dobbiamo avere un accordo sullo stato del registro. E questo accordo, o consenso, di solito significa accordo su due cose:

  1. Che cosa è successo?
  2. In che ordine è successo?

Possiamo facilmente rispondere alla prima domanda: una volta che una transazione creata correttamente è stata aggiunta al registro, è avvenuta. E punto. Le informazioni a riguardo possono raggiungere tutti i partecipanti in momenti diversi, ma alla fine tutti i nodi riceveranno questa transazione e sapranno che è avvenuta.

Se fosse una blockchain, i minatori deciderebbero cosa succede. Qualunque cosa il minatore decida di includere in un blocco è ciò che accade. Tutto ciò che non include nel blocco non accade.

Nelle blockchain, i miner risolvono anche un secondo problema di consenso: l’ordine. Possono ordinare le transazioni all'interno del blocco come desiderano.

Come determinare l'ordine delle transazioni in un DAG?

Dalla blockchain alla DAG: liberarsi degli intermediari

Solo perché il nostro grafico è diretto, abbiamo già un certo ordine. Ogni transazione fa riferimento ad una o più precedenti, madri. I genitori, a loro volta, si riferiscono ai loro genitori e così via. I genitori ovviamente compaiono prima delle transazioni figlie. Se una qualsiasi delle transazioni può essere raggiunta dalle transizioni dei collegamenti genitore-figlio, conosciamo esattamente l'ordine tra le transazioni in quella catena di transazioni.

Dalla blockchain alla DAG: liberarsi degli intermediari

Ma l’ordine tra le transazioni non può sempre essere determinato solo dalla forma del grafico. Ad esempio, quando due transazioni si trovano su rami paralleli del grafico.

Dalla blockchain alla DAG: liberarsi degli intermediari

Per risolvere l'ambiguità in questi casi, ci affidiamo ai cosiddetti fornitori di ordini. Li chiamiamo anche "testimoni". Si tratta di utenti comuni il cui compito è inviare costantemente transazioni alla rete in modo ordinato, ovvero in modo che ciascuna delle loro transazioni precedenti possa essere raggiunta tramite transizioni lungo i collegamenti genitore-figlio. I fornitori degli ordini sono utenti fidati e l'intera rete fa affidamento su di loro per non violare questa regola. In modo da razionalmente fidati di loro, richiediamo che ogni fornitore di ordini sia una persona o organizzazione conosciuta (non anonima) e abbia qualcosa da perdere se infrange le regole, come la reputazione o un'attività basata sulla fiducia.

Dalla blockchain alla DAG: liberarsi degli intermediari

I fornitori degli ordini vengono scelti dagli utenti e ogni utente include un elenco dei suoi fornitori di fiducia in ogni transazione che invia alla rete. Questo elenco è composto da 12 fornitori. Si tratta di un numero sufficientemente piccolo da consentire a una persona di verificare l'identità e la reputazione di ciascuno di essi e sufficiente per garantire che la rete continui a funzionare in caso di inevitabili problemi con una minoranza di fornitori di ordini.

Questo elenco di fornitori varia da utente a utente, ma gli elenchi di transazioni vicine possono differire fino a un fornitore.

Dalla blockchain alla DAG: liberarsi degli intermediari

Ora che disponiamo di fornitori di ordini, possiamo isolare le loro transazioni in un DAG e ordinare tutte le altre transazioni attorno all'ordine da loro creato. È possibile creare un tale algoritmo (vedi. Libro bianco di Obyte per i dettagli tecnici).

Ma l’ordine dell’intera rete non può essere determinato istantaneamente; abbiamo bisogno di tempo affinché i fornitori degli ordini inviino un numero sufficiente di transazioni per verificare l’ordine finale delle transazioni passate.

E poiché l'ordine è determinato solo dalle posizioni delle transazioni dei fornitori nel DAG, tutti i nodi della rete prima o poi riceveranno tutte le transazioni e giungeranno alla stessa conclusione riguardo all'ordine delle transazioni.

Dalla blockchain alla DAG: liberarsi degli intermediari

Quindi, siamo d'accordo su ciò che consideriamo accaduto: qualsiasi transazione che finisce nel DAG è avvenuta. Siamo d'accordo anche sull'ordine degli eventi: questo è evidente dalle relazioni delle transazioni, oppure è dedotto dall'ordine delle transazioni inviato dai fornitori degli ordini. Quindi abbiamo un consenso.

Dalla blockchain alla DAG: liberarsi degli intermediari

Abbiamo questa versione di consenso in Obyte. Anche se l’accesso al registro Obyte è completamente decentralizzato, il consenso sull’ordine delle transazioni è ancora centralizzato perché 10 fornitori su 12 sono controllati dal creatore (Anton Churyumov) e solo due di loro sono indipendenti. Cerchiamo candidati disposti a diventare uno dei fornitori di ordini indipendenti per aiutarci a decentralizzare l'ordinamento del registro.

Recentemente è emerso un terzo candidato indipendente disposto a installare e mantenere un nodo fornitore di ordini: l'Università di Nicosia.

Dalla blockchain alla DAG: liberarsi degli intermediari

Ora come possiamo controllare le doppie spese?

Secondo le regole, se vengono trovate due transazioni spendendo la stessa moneta, vince la transazione che arriva per prima nell'ordine finale di tutte le transazioni. Il secondo è invalidato dall’algoritmo di consenso.

Dalla blockchain alla DAG: liberarsi degli intermediari
Se è possibile stabilire un ordine tra due transazioni spendendo la stessa moneta (tramite connessioni genitore-figlio), tutti i nodi rifiutano immediatamente tale tentativo di raddoppiare la spesa.

Dalla blockchain alla DAG: liberarsi degli intermediari

Nel caso in cui l'ordine non sia visibile dalle relazioni principali tra due di tali transazioni, entrambe vengono accettate nel registro e dovremo attendere il consenso e la creazione dell'ordine tra di loro utilizzando i fornitori degli ordini. Quindi la transazione precedente vincerà e la seconda non sarà più valida.

Dalla blockchain alla DAG: liberarsi degli intermediari

Anche se la seconda transazione diventa non valida, rimane comunque nel registro perché ha già transazioni successive che fanno riferimento ad essa, che non hanno violato nulla e non sapevano che questa transazione sarebbe diventata non valida in futuro. Altrimenti dovremmo rimuovere il genitore delle transazioni successive valide, il che violerebbe il principio fondamentale della rete: qualsiasi transazione corretta viene accettata nel registro.

Dalla blockchain alla DAG: liberarsi degli intermediari

Questa è una regola molto importante che permette all’intero sistema di resistere ai tentativi di censura. 

Immaginiamo che tutti i fornitori di ordini colludano nel tentativo di "censurare" una transazione specifica. Possono ignorarlo e non sceglierlo mai come "genitore" per le loro transazioni, ma ciò non è sufficiente, la transazione può comunque essere inclusa indirettamente come genitore di qualche altra transazione emessa da qualsiasi utente della rete che non sia collusivo. Nel corso del tempo, una tale transazione riceverà sempre più figli, nipoti e pronipoti da utenti ordinari, crescendo come una palla di neve, e anche tutti i fornitori di ordini concordati dovranno ignorare queste transazioni. Alla fine dovranno censurare l’intera rete, il che equivale a un sabotaggio.

Dalla blockchain alla DAG: liberarsi degli intermediari

In questo modo il DAG rimane resistente alla censura anche in caso di collusione tra i fornitori di ordini, superando così la blockchain resistente alla censura in cui non possiamo fare nulla se i minatori decidono di non includere nessuna transazione. Ciò deriva dalla proprietà principale di DAG: la partecipazione al registro è completamente indipendente e senza intermediari e le transazioni sono irreversibili.

Fonte: habr.com

Aggiungi un commento