Da Blockchain a DAG (II)

Mar 12 2023
La vita passata e presente di MEERDAG Prefazione La prospettiva di sviluppo della blockchain 3.0 è stata una volta molto discussa, tra cui DAG è considerata la nuova generazione più promettente della tecnologia blockchain dopo Bitcoin ed Ethereum.

La vita passata e presente di MEERDAG

Prefazione

Una volta si discuteva molto della prospettiva di sviluppo della blockchain 3.0, tra cui DAG è considerata la nuova generazione più promettente di tecnologia blockchain dopo Bitcoin ed Ethereum. Quindi qual è l'origine della blockchain DAG? Qual è il suo concetto tecnico?

Aviv Zohar e Yonatan Sompolinsky

DAG e blockchain erano originariamente due tecnologie diverse, ma la combinazione delle due, il concetto di "DAG blockchain" e la sua prima apparizione alla ribalta, è stata resa possibile da due israeliani, Yonatan Sompolinsky e Aviv Zohar, i pionieri di questo concetto pionieristico .

Il protocollo GHOST proposto da Aviv Zohar è stato adottato da Ethereum nella fase iniziale. Questo protocollo risolve i problemi di sicurezza causati dai fork della catena. La struttura dei dati della blockchain biforcuta si evolve da una singola catena a una catena ad albero. Successivamente, Aviv Zohar ha ulteriormente proposto il protocollo inclusivo. Secondo le regole del protocollo inclusivo, la struttura dei dati della blockchain si evolve in un grafico aciclico diretto (DAG). Con la continua esplorazione di DAG da parte di DAGlabs, il concetto di framework BlockDAG e l'architettura tecnica sono stati gradualmente stabiliti, durante i quali sono stati successivamente rilasciati il ​​protocollo SPECTRE, il protocollo PHANTOM e il protocollo GHOSTDAG.

All'inizio del progetto Qitmeer stava esplorando i protocolli di consenso che affrontano la scalabilità (disponibilità) senza sacrificare il decentramento (partizionamento della tolleranza ai guasti) e la sicurezza (coerenza) e ha scoperto che coincideva con la filosofia di progettazione di BlockDAG.

In senso stretto, BlockDAG può essere inteso come un quadro tecnico di un protocollo di consenso, che mira a migliorare ulteriormente la tecnologia DAG con elevate prestazioni di concorrenza con la premessa di garantire decentralizzazione e sicurezza. Il meccanismo di consenso PoW basato sulla prova del lavoro può garantire che la rete blockchain sia sufficientemente decentralizzata, quindi il mining di blocchi per generare blocchi è diventata una caratteristica tecnica importante, quindi si chiama BlockDAG.

Il team Qitmeer ha apportato molte ottimizzazioni a livello ingegneristico per gli algoritmi di consenso di GHOSTDAG e SPECTRE e ha creato un protocollo MeerDAG con le proprie caratteristiche mantenendo i vantaggi di entrambi i protocolli.

1. Struttura di base del DAG

1.1 Che aspetto ha un DAG?

Conosciamo tutti molto bene la struttura dei dati dell'albero di Merkle. All'interno di ogni blocco di Bitcoin, l'albero Merkle viene utilizzato per registrare le informazioni sulle transazioni, vedi l'immagine qui sotto

Immagine 1

Si può vedere che l'albero di Merkle appartiene a una struttura ad albero orientata, ogni vertice nell'albero può puntare solo a un vertice precedente e l'intero dato ha un'ovvia direzione di flusso. La struttura DAG consente a ciascun vertice di puntare a più vertici precedenti e anche l'intero flusso di dati ha una direzione ovvia. Un'altra struttura dati è un grafico diretto. A differenza di DAG, un grafico diretto consente ai dati di tornare indietro e il flusso di dati dell'intera struttura non è molto evidente. Vedere l'immagine 2 per la differenza tra i tre.

Immagine 2

1.2 Blockchain è una struttura DAG speciale

Dopo aver avuto una comprensione intuitiva della struttura DAG, cerchiamo di capire perché la blockchain è considerata una struttura DAG speciale?

Se il fork della blockchain è correlato alla velocità di generazione dei blocchi e alla velocità di trasmissione. Quando la velocità di produzione del blocco supera la velocità di trasmissione, verranno trasmessi più blocchi contemporaneamente e si verificheranno dei fork. Più fork, peggiore è la sicurezza. Per ridurre i fork, Bitcoin trova un equilibrio tra performance e sicurezza: viene generato un blocco ogni dieci minuti. Supponiamo ora che il tempo per ciascun blocco sia abbastanza lungo da non consentire l'estrazione di un nuovo blocco prima che venga trasmesso il blocco precedente. Quindi la struttura di questa blockchain è un'unica catena, vedi immagine 3

Immagine 3

Infatti, a causa di ritardi di rete e altri motivi, si verificheranno inevitabilmente biforcazioni, quindi l'effettiva struttura blockchain sarà come mostrato nell'immagine 4, e solo una delle catene principali valide (bianca) sarà selezionata attraverso il principio della catena più lunga del consenso contabile. Le informazioni sulla transazione nei blocchi rimanenti (rossi) non sono valide e non verranno adottate.

Immagine 4

Ora metti da parte il consenso del libro mastro, ovvero ignora come selezionare una catena principale efficace. Dal punto di vista della struttura di rete sottostante, nell'immagine 5 è mostrata una tipica struttura blockchain e nell'immagine 6 è mostrata una tipica struttura DAG.

Immagine 5
Immagine 6

Si può vedere che l'unica differenza tra le due strutture è che il blocco DAG può puntare a più blocchi precedenti, mentre la blockchain può puntare solo all'unico blocco precedente. In particolare, l'intestazione del blocco della blockchain può contenere solo il valore hash di un blocco, puntando all'unico blocco padre; mentre l'intestazione del blocco sotto la struttura DAG può contenere i valori hash di più blocchi, che puntano a diversi blocchi precedenti. Come mostrato nell'immagine 7.

Immagine 7

Ora introduciamo il coefficiente di fork K, che si riferisce al numero di fork che la rete può consentire.

Quando K=0, l'intera rete non consente fork, come mostrato nell'immagine 3.

Questa rete che non consente fork è la blockchain.

Bitcoin soddisfa questa definizione; sebbene Ethereum abbia fork di blocchi di zio, questi blocchi di zio vengono utilizzati solo per giudicare il peso della catena principale e alla fine non verranno aggiunti alla catena principale (record di blocco di zio Le informazioni sulla transazione non sono incluse nella catena principale ), quindi anche Ethereum soddisfa questa definizione.

Il valore K della rete DAG deve essere un numero intero maggiore di 0. Quindi, da un punto di vista strutturale, DAG è un'estensione della struttura blockchain, e la blockchain è un DAG speciale e semplificato.

1.3 L'impatto della struttura del DAG sulle prestazioni

Per dirla semplicemente, possiamo considerare DAG come una struttura di rete che consente fork e il numero di fork consentiti è determinato dal coefficiente di fork K.

Quindi cosa significa esattamente una rete che consente i fork? Significa che la velocità di generazione del blocco può superare la velocità di trasmissione. Da un lato, questo porta a più transazioni impacchettate per unità di tempo; d'altra parte, quando un blocco A viene trasmesso dall'intera rete, anche un altro blocco biforcuto B viene trasmesso dall'intera rete, e infine alcuni nodi confermeranno solo A, altri nodi confermeranno solo B, quindi DAG consente ai nodi in rete per registrare informazioni diverse contemporaneamente. La combinazione di questi due aspetti fa sì che DAG presenti le caratteristiche di alta concorrenza e debole sincronizzazione.

DAG è una sorta di contabilità asincrona, che può migliorare notevolmente la velocità delle informazioni di elaborazione della rete, ovvero TPS.

La blockchain è una rete di forte contabilità sincrona, che richiede a ciascun nodo della rete di registrare le stesse informazioni contemporaneamente. Tuttavia, questo requisito spesso limita la capacità della rete blockchain di elaborare le informazioni, rendendo il TPS relativamente basso.

Quindi la domanda è: che tipo di consenso dovrebbe essere utilizzato per questa rete di contabilità asincrona che consente i fork? Nel precedente articolo, menzioneremo in dettaglio il meccanismo di consenso basato sul DAG. Il meccanismo di consenso è suddiviso in consenso di blocco e consenso di libro mastro. Il consenso di blocco di DAG può essere lo stesso di quello di blockchain. Ad esempio, viene utilizzato anche POW. Poiché i fork sono consentiti, il tempo di generazione del blocco può essere impostato molto breve. Il consenso del blocco può anche essere diverso dalla blockchain. Ad esempio, il progetto IOTA annulla direttamente il processo di confezionamento e generazione di blocchi. Finché si verifica una transazione, verrà scritta immediatamente sulla rete (ogni blocco nel diagramma DAG non è un blocco ma una penna. transazione), ottenendo così la capacità di elaborazione delle transazioni ad altissima velocità.

Il consenso del libro mastro DAG è molto più complesso della blockchain. Come impedire ai nodi di fare il male? Come controllare quando ci sono due transazioni contraddittorie? Come prevenire la "doppia spesa"? Con la complessità della struttura di rete sottostante, anche il consenso del libro mastro riceve requisiti più elevati. Sarà evidenziato negli articoli successivi.

1.4 TXDAG e BlockDAG

La differenza tra BlockDAG generalizzato (grafico a blocchi) e TxDAG (DAG transazionale, DAG transazionale). In generale o in termini di strutture dati, BlockDAG e TxDAG sono solo due diverse strutture dati. La differenza è che il primo impacchetta più transazioni in blocchi e il libro mastro è organizzato per blocchi; mentre quest'ultimo non ha il concetto di blocchi, e il libro mastro è composto da transazioni, che possono anche essere intese come una sola transazione in un blocco. Poiché la transazione ha molte informazioni descrittive sulla transazione comune, ovvero le informazioni di intestazione, questa parte di informazioni può essere memorizzata nel blocco e la transazione deve solo salvare le diverse parti della transazione, in modo che il processo HASH (mining) viene saltato e la catena viene caricata direttamente. Poiché BlockDAG non solo mantiene l'elevata concorrenza di DAG,

1.5 Vantaggi del DAG

Rispetto alla blockchain, DAG è in realtà la differenza tra un grafico e una catena. Per una catena, non può occuparsi solo di una parte, perché c'è solo un grado interno e uno esterno della catena, e i nodi sulla catena non possono essere suddivisi in più nodi da elaborare, ma è possibile per i grafici, poiché i grafici possono avere più gradi esterni, i nodi collegati da più gradi esterni possono essere elaborati contemporaneamente.

Per la rete a catena, non è che la capacità di elaborazione dei nodi non sia forte, ma la struttura della catena non può essere calcolata in parallelo e il tempo perso è principalmente tempo di attesa: uno è avviare una transazione, che deve essere sincronizzata con tutti i nodi; l'altro è il tempo di conferma, quando c'è una conferma del nodo che deve essere sincronizzata con l'intera rete. Per DAG, non esiste questo problema. Quando il portafoglio avvia una transazione, non ha bisogno di aspettare quante transazioni ha prima. Deve solo passare attraverso la verifica parziale, la trasmissione in rete e altre verifiche parziali, che equivalgono a decentralizzare la conferma della transazione. I nodi stanno facendo un lavoro simile ai puzzle, unendo le proprie transazioni con quelle confermate da altri.

Pertanto, si conclude che DAG presenta i seguenti vantaggi:

(1). Velocità di transazione veloce

Pur raggiungendo lo stesso livello di decentralizzazione e sicurezza di Bitcoin ed Ethereum, l'elaborazione locale DAG e il regolamento parallelo possono aumentare notevolmente la velocità delle transazioni, aumentando il throughput delle transazioni (TPS) e il ritardo finale di oltre due ordini di grandezza.

(2). Forte espandibilità

Poiché DAG supporta la contabilità asincrona, i nodi nella rete possono elaborare nuove transazioni in parallelo senza attendere la sincronizzazione dei dati di altri nodi, evitando perdite di tempo, migliorando l'efficienza delle transazioni e consentendo a ciascun nodo che partecipa alla contabilità di essere notevolmente esteso rapidamente. Pertanto, DAG è molto adatto per progetti di pagamento, come micropagamenti transfrontalieri e scenari di business finanziario inclusivo sostenuti dal Qitmeer Team.

(3). Più difficile da modificare maliziosamente

Rispetto alla struttura a catena, è molto più difficile modificare maliziosamente in un DAG perché il DAG ha molti out-degrees e in-degrees, e se un nodo viene modificato, i corrispondenti in-degrees devono essere modificati.

2. Passato e presente di MEERDAG

2.1 Origine della tecnologia DAG

Nel 2013 su bitcointalk.org, il famoso luogo di nascita della blockchain, uno studioso della Israeli Hebrew University con ID Avivz78 ha proposto di introdurre il concetto DAG come algoritmo di consenso nella struttura della blockchain e ha creato il protocollo GHOST.

Immagine 8

Dopo che il protocollo GHOST è stato proposto, Yonatan Sompolinsky ha proposto un'altra nuova idea in cui i blocchi appena generati puntano a tutti i blocchi a estremità biforcuta noti, ovvero un blocco ha più padri, a quel punto

la catena a blocchi cambia da una singola catena a una struttura composta da più catene biforcute insieme, e tale struttura a catena è chiamata DAG (grafico aciclico diretto).

Immagine 9

Nel 2016 è stato rilasciato il documento del protocollo tecnico SPECTRE, che ha ulteriormente migliorato i dettagli dell'architettura tecnica, ha costituito il prototipo del protocollo blockDAG di prima generazione e ha proposto la grande idea del ritardo di rete senza parametrizzazione (o adattamento del parametro di ritardo).

Immagine 10

Nel 2018, DAGlabs ha lanciato il protocollo PHANTOM. Risolto il problema che il protocollo SPECTRE non può scambiare l'ordinamento lineare e ha continuato a ottimizzarlo per formare il protocollo GHOSTDAG, che è il primo protocollo BlockDAG di livello industriale e segna anche la maturità di BlockDAG.

Immagine 11

Alla fine del documento sul protocollo GHOSTDAG, Yonatan Sompolinsky ha immaginato un possibile protocollo che combina GHOSTDAG + SPECTRE, ma non lo ha introdotto in dettaglio

3. Considerazioni sulla selezione tecnologica di MEERDAG

3.1 Riflessioni sulla scelta della tecnologia MEERDAG

Nella prima fase di Qitmeer Network, Mecca Network, ha coinciso con l'impennata dell'esplorazione della tecnologia di espansione, di fronte a molte soluzioni di espansione mainstream on-chain e off-chain, quando si selezionava la tecnologia della catena pubblica Qitmeer, ha anche dovuto affrontare una scelta difficile.

In termini di selezione della tecnologia di espansione, l'industria si trova generalmente di fronte a un problema di triangolo impossibile. È impossibile ottenere contemporaneamente scalabilità (Scalability), decentralizzazione (Decentralization) e sicurezza (Security) e solo due dei tre possono essere raggiunti. Anche il team di Qitmeer in quel momento ha dovuto affrontare un problema del genere. Dopo aver studiato molte soluzioni di espansione, il team ha finalmente scelto una tecnologia chiamata BlockDAG.

3.2 Breve introduzione al protocollo SPECTRE

SPECTRE è un protocollo blockDAG che supporta la conferma rapida. L'algoritmo di consenso di SPECTRE è un algoritmo di voto. Una volta trovata una transazione in conflitto, il blocco contenente la transazione in conflitto verrà utilizzato come candidato per accettare voti da tutti i blocchi, con un voto per ogni blocco. Il voto di SPECTRE ha un effetto di amplificazione. Ad esempio, un blocco seguirà la maggioranza dei voti su cui si è concentrato in passato, quindi la velocità di convergenza è molto elevata e una leggera differenza nel numero di voti può comportare un enorme vantaggio per il vincitore. Lascia che i blocchi onesti votino per i blocchi onesti, e i successivi blocchi onesti daranno il potere di impilamento precedente, in modo che gli attacchi dannosi falliscano e la sicurezza della rete sia garantita.

SPECTRE può solo garantire una rapida conferma dei blocchi onesti. Per due blocchi in conflitto il cui tempo di rilascio è vicino, il tempo di conferma di SPECTRE è incerto. Questo è il concetto di attività debole proposto da SPECTRE, cioè non si può garantire che tutti i blocchi possano essere Conferma definitiva entro un tempo ragionevole.

SPECTRE è un protocollo di consenso basato sul sistema di transazione. Nel sistema delle transazioni, solo i malfattori possono creare transazioni a doppia spesa. Vale a dire, le transazioni a doppia spesa non avranno molto impatto sui blocchi onesti. Inoltre, effettuare transazioni a doppia spesa è molto rigoroso sul controllo del tempo ed è difficile causare attacchi in circostanze normali. Pertanto, Qitmeer Team ritiene che il problema della debole attività di SPECTRE sia accettabile nei progetti reali.

3.3 Breve introduzione al protocollo GHOSTDAG

Come puoi vedere dal profilo SPECTRE sopra, SPECTRE è molto bravo a risolvere i problemi delle transazioni in conflitto e a difendersi dagli attacchi. Se un progetto viene utilizzato solo a scopo di pagamento come Bitcoin, è sufficiente la rapida conferma del protocollo SPECTRE. Ma se vuoi integrare contratti intelligenti, SPECTRE non può farlo.

Poiché SPECTRE può eseguire solo un ordinamento relativo delle transazioni in conflitto (giudicando l'ordine delle transazioni in conflitto), ma non può eseguire un ordinamento assoluto per tutti i blocchi. Poiché il linguaggio dello smart contract deve essere Turing completo, proprio come scriviamo un pezzo di programma per computer, dobbiamo eseguire varie operazioni in un ordine rigoroso, quindi la rete con funzione di smart contract ha una caratteristica: le transazioni nella rete possono essere cronometrato Esegui l'ordinamento lineare (cronologico) uno dopo l'altro.

In risposta, Yonatan Sompolinsky ha progettato di nuovo il protocollo GHOSTDAG per formare un ordine lineare ai blocchi DAG. SPECTRE e GHOSTDAG sono due protocolli completi e indipendenti, non uno complementare all'altro.

Il meccanismo di mining di GHOSTDAG è lo stesso di SPECTRE, che genererà lo stesso tipo di struttura DAG. La differenza è che GHOSTDAG giudica se il blocco è onesto o dannoso analizzando la connettività del blocco, ordina i blocchi in base alla classificazione e genera un blocco DAG rigoroso. L'ordine lineare della transazione in conflitto è giudicato dall'ordine lineare.

Il protocollo GHOSTDAG non solo consente a DAG di ottenere capacità di ordinamento lineare delle transazioni, ma risolve anche il problema dell'attività debole del protocollo SPECTRE. Il protocollo GHOSTDAG è anche il primo protocollo blockDAG che supporta l'ordinamento lineare delle transazioni.

3.4 Protocollo MEERDAG

Il possibile protocollo che combina GHOSTDAG+SPECTRE che Yonatan Sompolinsky ha previsto alla fine del documento del protocollo GHOSTDAG riguarda più la fornitura di una guida in termini di idee e l'obiettivo è dimostrare il rigore dell'algoritmo, che comporta molti problemi di pratica ingegneristica e deve basarsi sull'effettivo La situazione è costantemente praticata e testata e uno dei problemi più tipici è la prestazione. Se è implementato direttamente secondo l'algoritmo di riferimento nel testo originale, la performance è quasi inaccettabile.

Il team di Qitmeer ritiene che gli scenari applicativi sottostanti della catena pubblica siano principalmente finanza inclusiva, transazioni di risorse digitali e gestione della catena di approvvigionamento.

Considerando il meccanismo di ricompensa del blocco e i requisiti di consenso del libro mastro per le capacità di ordinamento lineare, e allo stesso tempo tenendo conto della velocità di conferma della transazione che è più importante per l'esperienza di scambio di valore.

Il set blu (blocco onesto) di GHOSTDAG è più difficile da stabilizzare e il tempo di conferma sarà molto più lungo di quello di SPECTRE. Tuttavia, poiché la ricompensa del blocco non richiede tempi di conferma elevati, non influirà sulla rete. Il protocollo GHOSTDAG viene scelto come protocollo di consenso di base e il protocollo SPECTRE viene scelto come protocollo di consenso assistito.

MeerDAG, una soluzione di consenso ibrida che combina SPECTRE e GHOSTDAG, è una soluzione di ridimensionamento BlockDAG conforme alle impostazioni blockchain classiche (aperta, equa, sicura, scalabile) ed è maggiormente compatibile con il modello blockchain classico UTXO. Mentre la classica blockchain scarta tutti i blocchi al di fuori della catena più lunga, MeerDAG è un modello cooperativo che conserva il protocollo SPECTRE e conserva tutti i blocchi, in modo da poter raggiungere un throughput elevato e fornire un throughput elevato a livello di transazione reale, nonché una rapida conferma della transazione blockchain Servizi. In secondo luogo, BlockDAG si basa sulla regola della catena più pesante e può raggiungere una tolleranza ai guasti del 51% paragonabile a Bitcoin. Inoltre, la rete BlockDAG non ha nodi speciali e non richiede che i nodi siano online o meno. Nell'estrazione mineraria,

Durante il periodo di Qitmeer Network Medina, la rete ha introdotto test sull'ambiente di potenza di calcolo reale. Il team ha ripetuto continuamente l'algoritmo PoW e migliorato l'efficienza dell'algoritmo, mantenendo pienamente i vantaggi del protocollo GHOSTDAG+SPECTRE e riducendo continuamente la difficoltà di implementazione del protocollo nell'implementazione ingegneristica. Ad esempio: secondo la prima versione dei documenti di GHOSTDAG Algorithm, il calcolo dei coni inversi deve essere esaustivo e la complessità dell'algoritmo è O(n^3). Dopo un gran numero di test a livello ingegneristico, la complessità si riduce di due ordini di grandezza a O(n), il che soddisfa ampiamente i requisiti di usabilità. In base ai requisiti di base per garantire sicurezza, decentralizzazione ed equità, le prestazioni del TPS sono massimizzate.

Qitmeer Team ha combinato in modo innovativo il protocollo GHOSTDAG+SPECTRE per formare il proprio caratteristico protocollo MeerDAG, che è diventato il prototipo tecnico della nuova generazione di BlockDAG. Il posizionamento centrale della rete sottostante BlockDAG di Qitmeer è quello di fungere da rete di circolazione del valore. Sul livello Layer 2, combina il sistema di macchina virtuale pluggable guidato da MeerEVM per creare ricche applicazioni blockchain e abbracciare l'intera ecologia blockchain.

Riferimento:
[1] Dalla blockchain al DAG (2) -- la struttura di base del DAG,https://mp.weixin.qq.com/s/Mc2uEOLtT_Z3OMapNh1TGg
[2] Dalle Blockchain ai blockDAG,https://www.youtube.com/watch?v=tk38AAV_whw
[3] Jeff Zhou:Tecnologia blockchain asincrona ad alta velocità DAG,https://www.jianshu.com/p/45d73e0e74ec
[4]Teoria tecnica FANTASMA, SPETTRO, FANTASMA ,https://mp.weixin.qq.com/s/nGR0ld73oXgs_p_MtDcv-Q
[5]Team Qitmeer – “Libro bianco Qitmeer”