Dal blockchain al DAG: liberarsi dagli intermediari

In questo articolo parlerò del DAG (Directed Acyclic Graph, grafico aciclico diretto) e del suo utilizzo nei registri distribuiti, e lo confronteremo con la blockchain.

Dal blockchain al DAG: liberarsi dagli intermediari

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

Dal blockchain al DAG: liberarsi dagli intermediari

Mostrerò anche che il DAG è in effetti più resistente alla censura e non ha intermediari per accedere al registro.

Dal blockchain al DAG: liberarsi dagli intermediari

Nelle blockchain a noi familiari, gli utenti non hanno accesso diretto al registro stesso. Quando desiderate aggiungere una transazione al registro, dovete 'chiedere' di farlo al produttore di blocchi (block producer, noto anche come 'miner'). Sono infatti i miner a decidere quale transazione aggiungere al prossimo blocco e quale no. Solo i miner hanno accesso esclusivo ai blocchi e il diritto di decidere di quale transazione accettare l'aggiunta al registro.

I miner sono gli intermediari che si frappongono tra voi e il registro distribuito.

Dal blockchain al DAG: liberarsi dagli intermediari

In pratica, solitamente un numero limitato di pool di miner controlla collettivamente oltre la metà della potenza computazionale della rete. Per Bitcoin si tratta di quattro pool, per Ethereum di due. In caso di collusione, possono bloccare qualsiasi transazione desiderino.

Dal blockchain al DAG: liberarsi dagli intermediari

Negli ultimi anni sono state proposte numerose variazioni di blockchain, che si differenziano nei principi di selezione dei produttori di blocchi. Tuttavia, i produttori di blocchi non sono scomparsi, restano sempre 'in attesa': ogni transazione deve passare attraverso il produttore di blocchi, e se egli non la accetta, la transazione, di fatto, non esiste.

Dal blockchain al DAG: liberarsi dagli intermediari

Questo è un problema inevitabile per la blockchain. E se vogliamo risolverlo, dobbiamo cambiare radicalmente il design ed eliminare completamente blocchi e produttori di blocchi. Invece di costruire una catena di blocchi, collegheremo le transazioni stesse, includendo in ogni transazione gli hash di diverse transazioni precedenti. Di conseguenza, otterremo una struttura nota in matematica come grafo aciclico orientato - DAG.

Ora ognuno ha accesso diretto al registro, senza intermediari. Quando vuoi aggiungere una transazione al registro, la aggiungi semplicemente. Selezioni alcune transazioni genitore, aggiungi i tuoi dati, firmi e invii la tua transazione alla piramide nella rete. Fatto. Non c'è nessuno che possa impedirtelo, quindi la tua transazione è già nel registro.

Questo è il modo più decentralizzato e resistente alla censura per aggiungere transazioni al registro senza intermediari. Perché chiunque può semplicemente aggiungere le proprie transazioni al registro, senza chiedere il permesso a nessuno.

Dal blockchain al DAG: liberarsi dagli intermediari

Il DAG può essere considerato la terza fase dell'evoluzione dei registri. Inizialmente c'erano registri centralizzati, dove una parte controllava l'accesso. Poi sono arrivati i blockchain, in cui c'erano già più controllori che registravano le transazioni nel registro. E infine, nel DAG non ci sono controllori, gli utenti aggiungono direttamente le proprie transazioni.

Dal blockchain al DAG: liberarsi dagli intermediari

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

  1. Cosa è successo?
  2. In che ordine è avvenuto?

Alla prima domanda possiamo rispondere facilmente: una volta che una transazione correttamente creata è stata aggiunta al registro, essa è avvenuta. E basta. Le informazioni su questo possono giungere a tutti i partecipanti in momenti diversi, ma alla fine tutti i nodi riceveranno questa transazione e sapranno che è avvenuta.

Se fosse una blockchain, i miner deciderebbero cosa sta avvenendo. Tutto ciò che il miner decide di includere nel blocco – quello avviene. Tutto ciò che non include nel blocco – non avviene.

Nelle blockchain, i miner decidono anche il secondo problema del consenso: l'ordine. Sono autorizzati a ordinare le transazioni all'interno del blocco come vogliono.

Come possiamo determinare l'ordine delle transazioni nel DAG?

Dal blockchain al DAG: liberarsi dagli intermediari

Solo perché il nostro grafo è diretto, abbiamo già un certo ordine. Ogni transazione fa riferimento a una o più transazioni precedenti, genitoriali. I genitori, a loro volta, si riferiscono ai loro genitori, e così via. I genitori, ovviamente, appaiono prima delle transazioni figlie. Se una qualsiasi delle transazioni può essere raggiunta tramite i passaggi seguendo i riferimenti "genitore-figlio", sappiamo esattamente l'ordine tra le transazioni in questa catena di transazioni.

Dal blockchain al DAG: liberarsi dagli intermediari

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

Dal blockchain al DAG: liberarsi dagli intermediari

Per risolvere l'ambiguità in tali casi, ci affidiamo a quelli che chiamiamo fornitori di ordine. Li chiamiamo anche "testimoni". Sono utenti normali il cui compito è inviare costantemente transazioni nella rete mantenendo l'ordine, cioè in modo che ciascuna delle loro transazioni precedenti possa essere raggiunta seguendo i riferimenti "genitore-figlio". I fornitori di ordine – utenti fidati, e l'intera rete si affida al fatto che non violeranno questa regola. Per far sì che razionale affidarsi a loro; richiediamo che ogni fornitore di ordine sia una persona o un'organizzazione riconosciuta (non anonima) e abbia qualcosa da perdere in caso di violazione delle regole, come ad esempio la reputazione o un business basato sulla fiducia.

Dal blockchain al DAG: liberarsi dagli intermediari

I fornitori di ordine vengono scelti dagli utenti e ogni utente include un elenco dei propri fornitori fidati in ogni transazione che invia alla rete. Questo elenco è composto da 12 fornitori. È un numero piuttosto ridotto che consente alle persone di verificare l'identità e la reputazione di ciascuno di loro, e sufficiente perché la rete continui a funzionare nel caso di problemi inevitabili con una minoranza dei fornitori di ordine.

Questo elenco di fornitori varia da utente a utente, ma gli elenchi delle transazioni adiacenti possono differire al massimo per un fornitore.

Dal blockchain al DAG: liberarsi dagli intermediari

Ora che abbiamo i fornitori di ordine, possiamo evidenziare le loro transazioni in un DAG e ordinare tutte le altre transazioni attorno all'ordine generato da loro. Esiste la possibilità di creare un algoritmo di questo tipo (vedi Obyte White Paper per dettagli tecnici).

Tuttavia, l'ordine nell'intera rete non può essere stabilito immediatamente; ci vuole tempo affinché i provider d'ordine inviino un numero sufficiente delle loro transazioni per verificare l'ordine finale delle transazioni passate.

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

Dal blockchain al DAG: liberarsi dagli intermediari

Quindi, abbiamo un consenso su ciò che consideriamo accaduto: qualsiasi transazione entrata nel DAG è avvenuta. Abbiamo anche consenso sull'ordine degli eventi: questo è visibile dalle relazioni tra le transazioni o deriva dall'ordine delle transazioni inviate dai provider d'ordine. Pertanto, abbiamo un consenso.

Dal blockchain al DAG: liberarsi dagli intermediari

Questa variante del consenso è presente in Obyte. Anche se l'accesso al registro Obyte è completamente decentralizzato, il consenso sul ordine delle transazioni rimane comunque centralizzato, poiché 10 dei 12 fornitori sono controllati dal creatore (Anton Churyumov), e solo due di essi sono indipendenti. Stiamo cercando candidati disposti a diventare uno dei fornitori indipendenti dell'ordine, per aiutare a decentralizzare l'istituzione dell'ordine nel registro.

Recentemente è emerso un terzo candidato indipendente, desideroso di stabilire e mantenere un nodo del fornitore dell'ordine – l'Università di Nicosia.

Dal blockchain al DAG: liberarsi dagli intermediari

Ora, come controlliamo le doppie spese (double-spends)?

Secondo le regole, quando vengono rilevate due transazioni che spendono la stessa moneta, la transazione che risulta prima nell'ordine finale di tutte le transazioni vince. La seconda viene invalidata dall'algoritmo di consenso.

Dal blockchain al DAG: liberarsi dagli intermediari
Nel caso in cui sia possibile stabilire un ordine tra due transazioni che spendono una moneta (secondo le relazioni genitore-figlio), tutte le nodi rifiutano immediatamente tale tentativo di doppia spesa.

Dal blockchain al DAG: liberarsi dagli intermediari

Se l'ordine non è visibile dalle relazioni parentali tra due transazioni simili, entrambe vengono accettate nel registro e dovremo aspettare il consenso e l'ordinamento tra di esse tramite i fornitori di ordine. In tal caso, vincerà la transazione più precoce, mentre la seconda diventerà non valida.

Dal blockchain al DAG: liberarsi dagli intermediari

Sebbene la seconda transazione diventi non valida, rimane comunque nel registro, poiché ha già delle transazioni successive che la citano, le quali non hanno infranto nulla e non sapevano che in futuro questa transazione sarebbe diventata non valida. Altrimenti, dovremmo rimuovere il genitore dalle buone transazioni successive, compromettendo il principio principale della rete: qualsiasi transazione valida viene accettata nel registro.

Dal blockchain al DAG: liberarsi dagli intermediari

Questa è una regola molto importante, che permette all'intero sistema di essere resistente ai tentativi di censura. 

Immagina che tutti i provider di rete si mettano d'accordo per "censurare" una transazione specifica. Possono ignorarla e non sceglierla mai come "genitore" per le loro transazioni, ma questo non è sufficiente; quella transazione potrebbe comunque essere indirettamente inclusa come genitore di un'altra transazione emessa da un qualsiasi utente della rete che non partecipa all'accordo. Nel tempo, tale transazione avrà sempre più "figli", "nipoti" e "pronipoti" da utenti comuni, espandendosi come una palla di neve, e tutti i provider d'accordo dovranno anche ignorare queste nuove transazioni. Alla fine, dovranno censurare l'intera rete, il che equivale a un sabotaggio.

Dal blockchain al DAG: liberarsi dagli intermediari

In questo modo, il DAG rimane resistente alla censura, anche in caso di collusione tra i provider di rete, superando così il blockchain in termini di resilienza alla censura, poiché non possiamo fare nulla se i miner decidono di non includere una delle transazioni. E questo deriva dalla principale caratteristica del DAG: la partecipazione al registro è completamente indipendente e senza intermediari, e le transazioni sono irreversibili.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster