I codici Parity-Check (LDPC) sono stati a lungo un punto di riferimento delle moderne comunicazioni digitali, offrendo una correzione di errore quasi-Shannon-limit con algoritmi di decodifica efficienti. Nel contesto della tecnologia blockchain, dove l'integrità dei dati è fondamentale ma spesso sfidata da crescenti esigenze di storage e scalabilità della rete, i codici LDPC presentano uno strumento complementare convincente.

Fondamenti dei codici LDPC

I codici LDPC sono codici lineari di blocco definiti da una matrice di controllo paritario radiante, una matrice che contiene un numero molto piccolo di voci non zero rispetto alle sue dimensioni. Questa parsimonia è la chiave per il loro decodifica iterativa efficiente, tipicamente eseguita utilizzando la propagazione di credenze (algoritmo di prodotto disum) sul grafico Tanner associato.

Il vantaggio principale dei codici LDPC rispetto ai precedenti codici di correzione degli errori come Reed-Solomon o i codici convoluzionali è la loro capacità di raggiungere tassi bit-error molto bassi con una complessità moderata. La decodifica è parallelizzabile, rendendoli adatti per applicazioni ad alto rendimento. La capacità di correzione è regolabile in base alla variazione della velocità di codice (rasso di bit di rilevamento delle informazioni ai bit totali di disponibilità) e la configurazione di matrice di controllo di controllo di configurazione di calcolo efficiente del contesto.

Verifica dell’integrità dei dati in blockchains

Meccanismi tradizionali

I sistemi blockchain assicurano l'integrità dei dati principalmente attraverso la crittografia. Ogni blocco contiene un hash del blocco precedente, formando una catena immutabile. Gli alberi merkle, una struttura in cui i nodi foglia sono blocchi di dati e nodi non foglia sono le ceneri dei loro figli, permettono una verifica efficiente di grandi dataset con solo O(log n) memoria per le prove.

Inoltre, come scale blockchains per gestire i terabyte di dati (ad esempio, in reti di archiviazione decentrate come Filecoin o Arweave, o in termini di disponibilità di dati sharding proposte come Ethereum's Danksharding), il costo di immagazzinare tutti i dati su ogni nodo diventa proibitivo.

Il ruolo dei codici LDPC nell'integrità dati Blockchain

Miglioramento della correzione di errore e di cancellazione

L'integrazione dei codici LDPC in un sistema blockchain comporta la codifica dei blocchi di dati in più parole di codice prima che siano impegnati nella catena. Il blocco dei dati originale può essere diviso in k] simboli di informazioni, quindi espanso in ]]] simboli di codice ]]k/DP meno[FLT

Questa capacità è particolarmente preziosa nei protocolli che si basano sul campionamento della disponibilità dei dati (DAS). In DAS, un cliente leggero e casualmente campiona un piccolo numero di pezzi da un blocco. Utilizzando un codice LDPC, il cliente può verificare con alta probabilità che il blocco sia completamente disponibile, perché se un avversario nasconde troppi pezzi, il client leggero probabilmente non riesce a decodificare.

Confronto con altri codici

I codici di codifica LDP-Solomon, la scelta tradizionale per la codifica di cancellazione nei sistemi blockchain (ad esempio, nei codici BIP152 originali di Bitcoin o nelle proposte di disponibilità dei dati iniziali di Ethereum), richiedono la codifica O(n log n) e non sono efficienti per le dimensioni di blocchi di grandi dimensioni.

Tuttavia, i codici LDPC hanno svantaggi: non sono universalmente ottimali per tutte le dimensioni del blocco; la migliore prestazione di decodifica richiede spesso grandi lunghezze di blocco (1000-10000 bit), che possono aggiungere latenza. Il design di una buona matrice di controllo di parità per una specifica applicazione blockchain è non-triviale e può richiedere l'elusione del ciclo (ad esempio, evitando i cicli di cortometraggio nel grafico Tanner) contrasto per prevenire errori

Considerazioni di attuazione

Architettura di codifica e decodifica

Per l'integrazione con la catena o con il consenso, l'encoder e il decoder LDPC devono essere implementati nell'ambiente di esecuzione (ad esempio, come precompilato in Ethereum Virtual Machine) o eseguiti fuori catena da validatori.

Il consumo di memoria è una preoccupazione: sebbene la matrice di controllo di parità sia scarsa, memorizzandola come una matrice completa per grandi n] può essere infesibile.

Implicazioni di sicurezza

I codici LDPC non forniscono la sicurezza crittografica da soli. Un attaccante con la capacità di corrompere i simboli non può essere impedito di farlo, ma il codice può correggere un certo numero di errori. Se la velocità di errore supera la capacità di correzione del codice, i dati diventano irrecuperabili. In un'impostazione blockchain, questo potrebbe portare a errori di vita o attacchi rollback.

Un'altra preoccupazione di sicurezza è che un avversario può generare false matrici di controllo di parità o rivendicare risultati falsi decodifica. Per contrastare questo, i parametri di codice (descrizione matrice, tasso di codice, seme per struttura) devono essere impegnati all'intestazione del blocco, e tutti i nodi onesti devono usare la stessa matrice. Questo requisito si allinea con le proprietà di trasparenza di blockchain: ogni nodo può verificare la codifica indipendentemente.

Scalabilità e produttività

I codici LDPC eccelleno negli scenari ad alto rendimento perché la decodifica è altamente parallelizzabile utilizzando GPU o circuiti integrati specifici per applicazioni (ASIC). Per le reti blockchain che elaborano centinaia di transazioni al secondo, la latenza codifica/decodifica deve rimanere al di sotto dell'intervallo di blocco.

Per i clienti leggeri, la capacità di decodificare da un sottoinsieme casuale di simboli significa che possono raggiungere alte probabilità di disponibilità dei dati con solo poche centinaia di kilobyte di dati scaricati per blocco. Questo contrasta con la verifica a pieno nodo che richiede il download dell'intero blocco.

Applicazioni e progetti pratici

Disponibilità dei dati Livelli

Celestia, una blockchain modulare focalizzata sulla disponibilità dei dati, originariamente considerata utilizzando 2D Reed–Solomon ma ha ricercato i codici LDPC per i suoi prossimi aggiornamenti. Allo stesso modo, la proposta di calcolo di Ethereum riduce l'efficienza di un programma di codifica 2D con Reed-Solomon lungo le righe e le colonne, ma le stesse varianti di LDPC di calcolo possono essere studiate per l'efficienza di LDPC.

Un notevole documento di ricerca del [[]]Ethereum Research team[[]] ha analizzato i trade-off tra diversi codici di cancellazione per il campionamento della disponibilità dei dati.

Reti di stoccaggio decentrate

La sostituzione o l'integrazione con i codici LDPC potrebbe consentire a queste reti di ridurre il rapporto di overhead di storage (meno replica) mantenendo lo stesso livello di recuperabilità. Per Filecoin, dove i minatori di storage provano il possesso tramite Proofs of Retrievability (PoRs), i codici LDPC possono funzionare come il codice di base per la sfida di generazione LR.

Nelle applicazioni di blockchain della supply chain e del settore sanitario, dove l'immutabilità dei dati viene combinata con lo storage di blob off-chain, i codici LDPC possono proteggere dalla putrefazione bit nei repository cloud. I simboli dispersi possono essere memorizzati su più provider cloud, e la blockchain agisce come root dei metadati, garantendo che qualsiasi combinazione legittima di simboli possa ricostruire i dati originali, anche se alcuni provider perdono i dati o diventano compromessi.

Sfide e problemi aperti

Nonostante gli attributi promettenti, diverse sfide rimangono prima che i codici LDPC possano essere ampiamente adottati nei sistemi blockchain.

  • Code Design:[] La progettazione di una matrice di controllo di parità rada che raggiunge bassi livelli di errore per lunghezze di blocco tipiche in blockchain (chilobiti diversi ai megabyte) è non banale. I codici casuali possono avere problemi di convergenza; i codici strutturati QC-LDPC devono essere accuratamente ottimizzati per evitare il degrado delle prestazioni.
  • Consensus Overhead:[] L'introduzione della codifica di cancellazione a livello di consenso può complicare il protocollo di propagazione del blocco. I validatori devono attendere abbastanza shard prima di commettere un processo che aumenta la latenza. L'interazione tra il tempo di ricostruzione LDPC e i timeout di consenso deve essere accuratamente calibrato.
  • Cerca sicurezza per i clienti leggeri: Mentre i codici LDPC permettono ai clienti leggeri di verificare la disponibilità dei dati con un piccolo numero di campioni, la prova di sicurezza si basa sull'ipotesi che il codice abbia buone proprietà di espansione (cioè, qualsiasi grande insieme di simboli mancanti sarà rilevato).
  • L'integrazione con l'infrastruttura blockchain esistente. Molti blockchains a livello‐1 hanno strutture di blocco fisse e verifica nativo di prove Merkle. Aggiungendo la verifica LDPC richiede forche dure o componenti off-chain. L'interoperabilità con i protocolli client di luce attuali (ad esempio, Helios for Ethereum) deve essere mantenuta.
  • Efficienza energetica: La decodifica LDPC è iterativa e può consumare una potenza significativa sui dispositivi mobili o IoT che agiscono come clienti leggeri. Per tali dispositivi, il numero di iterazioni decodifica deve essere ridotto al minimo. Le strategie di risoluzione precoce adattative possono aiutare, ma introducono complessità.

Le direzioni future

La ricerca all'intersezione della teoria del codificatore e del blockchain continua ad evolversi. Una direzione promettente è l'uso di [ LDPC (SC-LDPC)[] codici, che hanno struttura regolare e proprietà di saturazione della soglia di esposizione - il che significa che si avvicinano al limite di Shannon più strettamente rispetto al classico LDPC.

Un'altra area è la combinazione di codici LDPC con prove di conoscenza zero (ZKPs). Ad esempio, un prover potrebbe dimostrare di possedere abbastanza simboli di codice validi senza rivelare i dati originali, utilizzando un circuito zk-SNARK sulle equazioni di controllo di parità LDPC. Ciò consentirebbe controlli di disponibilità dati privati o di recupero dati privati su blocchi pubblici.

Infine, lo sviluppo di decodificatori LDPC ad accelerazione hardware su misura per nodi blockchain — forse utilizzando FPGAs — potrebbe portare il tempo di decodifica per blocchi di dimensioni terabyte fino a secondi, consentendo la visione di blockchains massicciamente scalabili con integrità dei dati verificabile.

Conclusioni

I codici di controllo a bassa densità offrono un potente, efficiente e teoricamente un metodo valido per migliorare la verifica dell'integrità dei dati nei sistemi blockchain. Con l'attivazione di correzione degli errori rapidi, campionamento scalabile della disponibilità dei dati e ridondanza ridotta dello storage, i codici LDPC affrontano diversi punti di riferimento fondamentali che le architetture di blockchain attuali affrontano.