Table of Contents
Los códigos de baja densidad de Parity-Check (LDPC) han sido desde hace mucho tiempo una piedra angular de las comunicaciones digitales modernas, ofreciendo corrección de errores casi ilimitada con algoritmos de decodificación eficientes. En el contexto de la tecnología de blockchain, donde la integridad de los datos es primordial pero a menudo desafiada por la creciente demanda de almacenamiento y escalabilidad de la red, los códigos LDPC presentan una herramienta complementaria convincente.
Fundamentos de los códigos de la LDPC
Los códigos LDPC son códigos de bloques lineales definidos por una matriz de control de paridad escasa, una matriz que contiene un número muy pequeño de entradas no cero en relación con sus dimensiones. Esta espacidez es la clave de su decodificación iterativa eficiente, normalmente realizada mediante la propagación de creencias (alterismo de producto) en el gráfico Tanner asociado.
La principal ventaja de los códigos LDPC sobre códigos de corrección de errores anteriores como los códigos Reed-Solomon o convolutional es su capacidad para alcanzar tasas de bits muy bajas con complejidad moderada. Decodificación es paralelizable, haciéndolos adecuados para aplicaciones de alta velocidad. La capacidad de corrección es ajustable por la variable de código (ratio de bits de información a bits totales) y el diseño de corrección de datos de paridad-checkin.
Verificación de integridad de datos en las cadenas de bloque
Mecanismos tradicionales
Los sistemas de bloques aseguran la integridad de los datos principalmente mediante el almacenamiento criptográfico. Cada bloque contiene una precipitación del bloque anterior, formando una cadena inmutable. Los árboles de merkle, una estructura donde los nodos de hoja son bloques de datos y nodos no sordos son molestias de sus hijos, permiten una verificación eficiente de grandes conjuntos de datos con sólo memoria O(log n) para pruebas.
Además, como escala de blockchains para manejar terabytes de datos (por ejemplo, en redes de almacenamiento descentralizadas como Filecoin o Arweave, o en propuestas de reducción de disponibilidad de datos como el Danksharding de Ethereum), el costo de almacenar todos los datos en cada nodo se vuelve prohibitivo. Los clientes de luz confían en recortar fragmentos aleatorios y verificar código correcto si faltan datos de recuperación de error
El papel de los códigos de la LDPC en la integridad de los datos de la cadena de bloques
Mejora de la eliminación y corrección de errores
La integración de los códigos LDPC en un sistema de bloqueo implica la codificación de bloques de datos en las palabras clave más largas antes de que se comprometan a la cadena. Los datos originales se pueden dividir en k símbolos de información, luego se expanden en n símbolos de la misma cantidad
Esta capacidad es particularmente valiosa en protocolos que dependen de la disponibilidad de datos muestreo (DAS). En DAS, un cliente ligero muestra al azar un pequeño número de trozos de un bloque. Utilizando un código LDPC, el cliente puede verificar con alta probabilidad que el bloque esté completamente disponible, porque si un adversario esconde demasiados pedazos, el cliente ligero probablemente no decodificará.
Comparación con otros códigos
Los códigos de longitud de la cadena de bloques (por ejemplo, en BIP152 original de Bitcoin o en las propuestas de disponibilidad temprana de datos de Ethereum), requieren un código de codificación / decodificación de O(n) y no son tan eficientes para grandes tamaños de bloque. Los códigos LDPC ofrecen O(n) determinen mejor las tarifas de velocidad
Sin embargo, los códigos LDPC tienen inconvenientes. No son universalmente óptimos para todos los tamaños de bloques; el mejor rendimiento de decodificación a menudo requiere grandes longitudes de bloque (1000-10000 bits), que pueden añadir latencia. El diseño de una buena matriz de paridad-verificar para una aplicación de blockchain específica es no-trivial y puede requerir ciclo-voidancia (por ejemplo, evitando ciclos cortos en la línea de error de Tanner) para evitar.
Consideraciones de la aplicación
Incoding y Decoding Architecture
Para la integración en cadena o en capa de consenso, el encoder y decodificador LDPC deben ser implementados en el entorno de ejecución (por ejemplo, como precompilador en la máquina virtual de Ethereum) o ejecutados fuera de cadena por los validadores. Este último es más común, ya que la superposición computacional de la decodificación LDPC es moderada pero todavía significativa para los cálculos de gases dentro de la transacción.
El consumo de memoria es una preocupación: aunque la matriz de verificación de paridad es escasa, almacenandola como una matriz completa para los códigos de HDPC grandes n]. Las implementaciones utilizan códigos estructurados como códigos de adaptación cuasi-cíclico (QC) de códigos de LDPC, donde la matriz está compuesta de submatizaciones de permutación circulante.
Consecuencias para la seguridad
Los códigos LDPC no proporcionan seguridad criptográfica por sí mismos. Un atacante con la capacidad de corromper símbolos no puede evitarse de hacerlo, pero el código puede corregir hasta cierto número de errores. Si la tasa de error excede la capacidad de corrección del código, los datos se vuelven inalcanzables. En un entorno de blockchain, esto podría conducir a fallas de la tolerancia o ataques de rebote.
Otra preocupación de seguridad es que un adversario puede generar matrices de verificación de paridad falsa o reclamar resultados decodificación falsos. Para contrarrestar esto, los parámetros de código (descripción de la matriz, tasa de código, semilla para estructura) deben ser comprometidos con el encabezado del bloque, y todos los nodos honestos deben usar la misma matriz. Este requisito se alinea con las propiedades de transparencia de la cadena de bloque: cada nodo puede verificar el código de codificación de forma independiente.
Escalabilidad y A través de la
Los códigos LDPC se destacan en escenarios de alto rendimiento porque la decodificación es altamente paralelizable utilizando GPU o circuitos integrados específicos para aplicaciones (ASICs). Para las redes de blockchain procesando cientos de transacciones por segundo, la la latencia de codificación/decodificación debe permanecer por debajo del intervalo de bloques. Con códigos QC-LDPC bien optimizados, los tamaños de bloque de varios megabytes pueden ser procesados en micros en los próximos segundos
Para los clientes ligeros, la capacidad de decodificar desde un subconjunto aleatorio de símbolos significa que pueden lograr altas probabilidades de disponibilidad de datos con sólo unos pocos cientos de kilobytes de datos descargados por bloque. Esto contrasta con la verificación de nodos completos que requiere descargar todo el bloque. Los códigos LDPC permiten así un protocolo de cliente de luz más escalable sin sacrificar garantías de seguridad.
Aplicaciones y proyectos prácticos
Disponibilidad de datos Capas
Varios proyectos de blockchain ya están explorando la codificación de borrado para la disponibilidad de datos. Celestia, una cadena modular centrada en la disponibilidad de datos, originalmente considerada usando 2D ReedSolomon pero desde entonces ha investigado códigos LDPC para sus próximas actualizaciones. De igual manera, la propuesta de Danksharding de Ethereum utiliza un esquema de codificación de 2D con Reed-Solomon a lo largo de los códigos y columnas, pero las variantes de computa
Un notable documento de investigación del Ethereum Research team analizó los intercambios entre diferentes códigos de borrado para muestreo de disponibilidad de datos. Sus hallazgos indicaron que los códigos LDPC superan a Reed-Solomon en términos de velocidad decodificación para grandes tamaños de bloques y ofrecen mejores márgenes de seguridad cuando el adversario.
Redes de almacenamiento descentralizadas
Filecoin y Arweave usan codificación borrado (Reed–Solomon) para garantizar la durabilidad de los datos. Reemplazar o complementar los códigos LDPC podría permitir que estas redes reduzcan la relación de almacenamiento (menos replicación) manteniendo el mismo nivel de recuperabilidad. Para Filecoin, donde los mineros de almacenamiento prueban la posesión mediante pruebas de retráviabilidad (PoRs), los códigos LDPC pueden servir como el protocolo de propulsión de potencia
En aplicaciones de cadena de suministro y bloqueo de salud, donde la inmutabilidad de datos se combina con almacenamiento de bloques fuera de cadena, los códigos LDPC pueden proteger contra la rot de bits en los repositorios de la nube. Los símbolos de paridad dispersos pueden almacenarse en múltiples proveedores de la nube, y la cadena de bloques actúa como una raíz de metadatos asegurando que cualquier combinación legítima de símbolos pueda reconstruir los datos originales, incluso si algunos proveedores pierden datos o se comprometen.
Desafíos y problemas abiertos
A pesar de los atributos prometedores, quedan varios desafíos antes de que los códigos de la LDPC puedan ser ampliamente adoptados en sistemas de blockchain.
- Code Design: El diseño de una matriz de control de paridad escaso que alcanza niveles bajos de errores para longitudes de bloques típicos en blockchain (varios kilobytes a megabytes) es no tripulada. Los códigos aleatorios pueden tener problemas de convergencia; los códigos estructurados QC-LDPC deben ser cuidadosamente optimizados para evitar la degradación del rendimiento.
- Consensus Overhead: La introducción de la codificación de borrado en el nivel de consenso puede complicar el protocolo de propagación de bloques. Los validadores deben esperar suficientes dificultades antes de comprometerse, un proceso que aumenta la latencia. La interacción entre el tiempo de reconstrucción de LDPC y los plazos de consenso debe ser cuidadosamente calibrado.
- Seguridad para los clientes de luz: Mientras que los códigos de LDPC permiten a los clientes ligeros verificar la disponibilidad de datos con un pequeño número de muestras, la prueba de seguridad se basa en la hipótesis de que el código tiene buenas propiedades de expansión (es decir, cualquier conjunto suficientemente grande de símbolos desaparecidos será detectado). No todas las familias de LDPC garantizan esta propiedad; códigos aleatorios son vulnerables a la peor selección de símbolos de símbolos de símbolos.
- La integración con la infraestructura de bloques existente. Muchas capas-1 bloques tienen estructuras de bloque fijo y verificación nativa de las pruebas de Merkle. La verificación de LDPC requiere tenedores duros o componentes de cadena. La interoperabilidad con los protocolos actuales de clientes ligeros (por ejemplo, Helios para el Étereum) debe mantenerse.
- Eficiencia energética: la decodificación de LDPC es iterativa y puede consumir energía significativa en dispositivos móviles o IoT que actúan como clientes ligeros. Para tales dispositivos, el número de iteraciones de decodificación debe ser minimizado. Las estrategias de terminación temprana adaptativas pueden ayudar, pero introducen complejidad.
Future Directions
La investigación en la intersección de la teoría de codificación y la cadena de bloqueo sigue evolucionando. Una dirección prometedora es el uso de códigos de deslizamiento de escala espacial (SC-LDPC), que tienen estructuras regulares y propiedades de la saturación de umbrales de exposición, lo que significa que se acercan al límite de Shannon más cerca que el LDPC clásico.
Otro área es la combinación de códigos LDPC con pruebas de cero conocimiento (ZKPs). Por ejemplo, un proverbio podría demostrar que tienen suficientes símbolos de codeword válidos sin revelar los datos originales, utilizando un circuito zk-SNARK sobre las ecuaciones de verificación de paridad LDPC. Esto permitiría comprobar la disponibilidad de datos privados o recuperación de datos privados en las cadenas de bloqueo público.
Finalmente, el desarrollo de decodificadores LDPC acelerados por hardware adaptados a medida para nodos de blockchain —quizás usando FPGAs— podría reducir el tiempo de decodificación para bloques de tamaño terabyte a segundos, permitiendo la visión de bloques masivomente escalables con integridad de datos verificable.
Conclusión
Los códigos de baja densidad de Parity-Check ofrecen un método potente, eficiente y teóricamente racional para mejorar la verificación de la integridad de los datos en sistemas de blockchain. Al permitir una corrección rápida de errores, muestreo de disponibilidad de datos escalable y reducción de la redundancia de almacenamiento, los códigos LDPC abordan varios obstáculos fundamentales que enfrentan las actuales arquitecturas de blockchain.