En los primeros días, las cadenas públicas requerían nodos en toda la red para mantener la coherencia de los datos para garantizar la seguridad y la descentralización. Sin embargo, con el desarrollo del ecosistema blockchain, la presión de almacenamiento sigue aumentando, lo que da lugar a una tendencia a la centralización de las operaciones de los nodos. En esta etapa, la Capa 1 necesita resolver urgentemente el problema de costos de almacenamiento causado por el crecimiento de TPS.
Ante este problema, los desarrolladores deben proponer un nuevo esquema de almacenamiento de datos históricos bajo la premisa de tener en cuenta la seguridad, el costo de almacenamiento, la velocidad de lectura de datos y la versatilidad de la capa DA.
En el proceso de resolver este problema, han surgido muchas tecnologías e ideas nuevas, como Sharding, DAS, Verkle Tree, componentes intermedios DA, etc. Intentaron optimizar el esquema de almacenamiento de la capa DA reduciendo la redundancia de datos y mejorando la eficiencia de la verificación de datos.
El esquema actual de DA se divide aproximadamente en dos categorías desde el punto de vista de la ubicación del almacenamiento de datos, a saber, el DA de la cadena principal y el DA de terceros. El DA de la cadena principal se basa en la perspectiva de limpiar regularmente los datos y fragmentar el almacenamiento de datos para reducir la presión de almacenamiento en los nodos. Los requisitos de diseño de DA de terceros están diseñados para servir al almacenamiento y tener una solución razonable para grandes cantidades de datos. Por lo tanto, se trata principalmente de un compromiso entre la compatibilidad de una sola cadena y la compatibilidad de varias cadenas, y se proponen tres soluciones: DA dedicada de la cadena principal, DA modular y DA de cadena pública de almacenamiento.
La cadena pública basada en pagos tiene requisitos extremadamente altos para la seguridad de los datos históricos, y es adecuada para usar la cadena principal como capa DA. Sin embargo, para las cadenas públicas que han estado funcionando durante mucho tiempo y una gran cantidad de mineros están ejecutando la red, es más apropiado adoptar un DA de terceros que no implique una capa de consenso y tenga en cuenta la seguridad. La cadena pública integral es más adecuada para el uso del almacenamiento DA dedicado a la cadena principal con mayor capacidad de datos, menor costo y seguridad. Pero dada la necesidad de cadena cruzada, el DA modular también es una buena opción.
En general, blockchain se está desarrollando en la dirección de reducir la redundancia de datos y la división del trabajo multicadena.
1. fondo
Como libro mayor distribuido, la cadena de bloques necesita almacenar datos históricos en todos los nodos para garantizar la seguridad y la descentralización del almacenamiento de datos. Dado que la corrección de cada cambio de estado está relacionada con el estado anterior (la fuente de la transacción), para garantizar la corrección de la transacción, una cadena de bloques debería, en principio, almacenar todo el historial desde la primera transacción hasta la transacción actual. Tomando Ethereum como ejemplo, incluso si el tamaño promedio de cada bloque se estima en 20 kb, el tamaño total del bloque actual de Ethereum ha alcanzado los 370 GB, y un nodo completo tiene que registrar el estado y los recibos de transacciones además del bloque en sí. Contando esta parte, el volumen total de almacenamiento de un solo nodo ha superado 1 TB, lo que hace que el funcionamiento del nodo se concentre en un pequeño número de personas.
La última altura de bloque de Ethereum, fuente de la imagen: Etherscan
2. Métricas de rendimiento de DA
2.1 Seguridad
En comparación con la estructura de almacenamiento de bases de datos o listas vinculadas, la inmutabilidad de blockchain proviene del hecho de que los datos recién generados se pueden verificar a través de datos históricos, por lo que garantizar la seguridad de sus datos históricos es la primera consideración en el almacenamiento de la capa DA. Para la evaluación de la seguridad de los datos del sistema blockchain, a menudo analizamos la cantidad de redundancia de datos y el método de verificación de la disponibilidad de los datos
Número de redundancia: Para la redundancia de datos en el sistema blockchain, puede desempeñar principalmente los siguientes roles: primero, si el número de redundancia en la red es mayor, cuando el validador necesita verificar el estado de la cuenta en un bloque histórico para verificar la transacción actual, puede obtener la mayor cantidad de muestras como referencia y seleccionar los datos registrados por la mayoría de los nodos. En las bases de datos tradicionales, debido a que los datos solo se almacenan en forma de pares clave-valor en un nodo determinado, el costo de ataque es extremadamente bajo para cambiar los datos históricos solo en un solo nodo y, en teoría, cuanto más redundantes sean los datos, más creíbles serán los datos. Al mismo tiempo, cuantos más nodos se almacenen, menos probable será que se pierdan los datos. Esto también se puede comparar con los servidores centralizados que almacenan juegos Web2, y una vez que se cierren todos los servidores backend, habrá un cierre completo. Sin embargo, más no es mejor, porque cada redundancia aportará espacio de almacenamiento adicional, y demasiada redundancia de datos aportará una presión de almacenamiento excesiva al sistema, y una buena capa de DA debe elegir un método de redundancia adecuado para lograr un equilibrio entre la seguridad y la eficiencia del almacenamiento.
Comprobación de la disponibilidad de los datos: La redundancia garantiza que haya suficientes registros de datos en la red, pero también es necesario verificar la precisión y la integridad de los datos que se van a utilizar. En esta etapa, el método de verificación comúnmente utilizado en la cadena de bloques es el algoritmo de compromiso criptográfico, que retiene un pequeño compromiso criptográfico para que toda la red lo registre, y este compromiso se obtiene mezclando los datos de la transacción. Para probar la autenticidad de un dato histórico, es necesario restaurar la promesa criptográfica a través de los datos, verificar si la promesa criptográfica obtenida por la restauración es consistente con los registros de toda la red y, si es consistente, se pasa la verificación. Los algoritmos de verificación de contraseñas más utilizados son Merkle Root y Verkle Root. El algoritmo de verificación de disponibilidad de datos de alta seguridad solo requiere muy pocos datos de verificación y puede verificar rápidamente los datos históricos.
2.2 Costos de almacenamiento
Con la premisa de garantizar la seguridad básica, el siguiente objetivo principal que debe alcanzarse en la capa DA es reducir los costes y aumentar la eficiencia. La primera es reducir los costos de almacenamiento, es decir, reducir la huella de memoria causada por el almacenamiento de datos por tamaño de unidad, sin considerar la diferencia en el rendimiento del hardware. En esta etapa, la principal forma de reducir los costos de almacenamiento en la cadena de bloques es adoptar la tecnología de fragmentación y utilizar el almacenamiento recompensado para garantizar que los datos se almacenen de manera efectiva y reducir la cantidad de copias de seguridad de datos. Sin embargo, no es difícil ver a partir de los métodos de mejora anteriores que existe una relación entre el costo de almacenamiento y la seguridad de los datos, y reducir la ocupación de almacenamiento a menudo significa una disminución de la seguridad. Por lo tanto, una buena capa DA debe equilibrar el costo de almacenamiento con la seguridad de los datos. Además, si la capa DA es una cadena pública independiente, también es necesario reducir el costo minimizando el proceso intermedio de intercambio de datos, y los datos de índice deben dejarse para llamadas de consulta posteriores en cada proceso de tránsito, por lo que cuanto más largo sea el proceso de llamada, más datos de índice quedarán y aumentará el costo de almacenamiento. Por último, el coste del almacenamiento de datos está directamente relacionado con la durabilidad de los datos. En general, cuanto mayor sea el costo de almacenamiento de los datos, más difícil será para la cadena pública almacenar datos de manera persistente.
2.3 Velocidad de lectura de datos
Una vez que se logra la reducción de costos, el siguiente paso es el aumento de la eficiencia, que es la capacidad de llamar rápidamente a los datos de la capa DA cuando es necesario utilizarlos. Este proceso implica dos pasos, el primero es buscar los nodos que almacenan datos, este proceso es principalmente para la cadena pública que no ha logrado la consistencia de datos de toda la red, si la cadena pública ha logrado la sincronización de datos de los nodos de toda la red, se puede ignorar el consumo de tiempo de este proceso. En segundo lugar, en los principales sistemas de cadena de bloques en esta etapa, incluidos Bitcoin, Ethereum y Filecoin, el método de almacenamiento de nodos es la base de datos Leveldb. En Leveldb, los datos se almacenan de tres maneras. La primera es que los datos que se escriben sobre la marcha se almacenan en un archivo de tipo memtable, y cuando el memtable está lleno, el tipo de archivo se cambia de memtable a memtable inmutable. Ambos tipos de archivos se almacenan en la memoria, pero el archivo Memtable inmutable ya no se puede cambiar y solo puede leer datos de él. El almacenamiento en caliente utilizado en la red IPFS almacena los datos en esta parte, y se pueden leer rápidamente de la memoria cuando se llama, pero la memoria móvil de un nodo ordinario a menudo está a nivel de gigabyte, lo que es fácil de escribir lentamente, y cuando el nodo se cae y otras condiciones anormales, los datos en la memoria se perderán permanentemente. Si desea que sus datos se almacenen de forma persistente, debe almacenarlos como un archivo SST en una unidad de estado sólido (SSD), pero primero debe leer los datos en la memoria, lo que ralentiza en gran medida la velocidad de indexación de datos. Por último, en el caso de los sistemas con almacenamiento fragmentado, la restauración de datos requiere el envío de solicitudes de datos a varios nodos y su restauración, lo que también ralentizará la velocidad de lectura de datos.
Método de almacenamiento de datos Leveldb, fuente de la imagen: Leveldb-handbook
2.4 Comunalidad de la capa DA
Con el desarrollo de DeFi y los problemas de los CEX, la demanda de transacciones entre cadenas de activos descentralizados también está creciendo. Ya sea que se trate de un mecanismo de cadena cruzada de bloqueo de hash, notario público o cadena de retransmisión, es inevitable determinar los datos históricos de las dos cadenas al mismo tiempo. El quid de este problema radica en la separación de datos en las dos cadenas, y la comunicación directa no se puede lograr en diferentes sistemas descentralizados. Por lo tanto, en esta etapa, se propone una solución cambiando el modo de almacenamiento de la capa DA, que almacena los datos históricos de múltiples cadenas públicas en la misma cadena pública de confianza, y solo necesita llamar a los datos de esta cadena pública al verificar. Esto requiere que la capa DA sea capaz de establecer un método de comunicación seguro con diferentes tipos de cadenas públicas, es decir, la capa DA tiene una buena versatilidad.
3. Exploración de tecnologías relacionadas con DA
3.1 Fragmentación
En un sistema distribuido tradicional, un archivo no se almacena de forma completa en un nodo, sino que los datos originales se dividen en varios bloques y se almacena un bloque en cada nodo. Y los bloques tienden a no almacenarse en un solo nodo, sino a tener copias de seguridad adecuadas en otros nodos, que generalmente se establece en 2 en los sistemas distribuidos convencionales existentes. Este mecanismo de fragmentación puede reducir la presión de almacenamiento en un solo nodo, ampliar la capacidad total del sistema a la suma de la capacidad de almacenamiento de cada nodo y garantizar la seguridad del almacenamiento a través de una redundancia de datos adecuada. El enfoque de fragmentación adoptado en una cadena de bloques es muy similar, pero existen diferencias en los detalles. En primer lugar, debido a que cada nodo de la cadena de bloques no es confiable de forma predeterminada, se necesita una cantidad de datos lo suficientemente grande como para realizar una copia de seguridad de la autenticidad de los datos posteriores en el proceso de implementación de Sharding, por lo que el número de copias de seguridad de este nodo debe ser mucho mayor que 2. Idealmente, en un sistema blockchain con este esquema de almacenamiento, si el número total de validadores es T y el número de fragmentos es N, entonces el número de copias de seguridad debería ser T/N. El segundo es el procedimiento de almacenamiento de Block, el sistema distribuido tradicional tiene menos nodos, por lo que a menudo es un nodo para adaptarse a múltiples bloques de datos, el primero es mapear los datos al anillo hash a través del algoritmo hash consistente, y luego cada nodo almacena una serie de bloques de datos en un cierto rango, y se puede aceptar que un nodo no asigna una tarea de almacenamiento en un determinado almacenamiento. En la cadena de bloques, si cada nodo se asigna a un bloque ya no es un evento aleatorio sino un evento inevitable, y cada nodo seleccionará aleatoriamente un bloque para el almacenamiento, que se completa calculando el número de fragmentos con el resultado del hash de datos con los datos originales del bloque y la información propia del nodo. Suponiendo que cada dato se divide en N bloques, el tamaño de almacenamiento real de cada nodo es solo 1/N del tamaño original. Al establecer N adecuadamente, se puede lograr un equilibrio entre el TPS creciente y la presión de almacenamiento del nodo.
Cómo se almacenan los datos después de la fragmentación, fuente de la imagen: Kernel Ventures
3.2 DAS (muestreo de disponibilidad de datos)
La tecnología DAS se basa en la optimización adicional de la fragmentación en términos de métodos de almacenamiento. En el proceso de fragmentación, debido al simple almacenamiento aleatorio de nodos, se puede perder un determinado bloque. En segundo lugar, para los datos fragmentados, también es muy importante cómo confirmar la autenticidad e integridad de los datos durante el proceso de restauración. En DAS, ambos problemas se abordan a través del código Eraser y los compromisos polinómicos KZG.
Código de borrador: Teniendo en cuenta la gran cantidad de validadores en Ethereum, la probabilidad de que un bloque no sea almacenado por ningún nodo es casi nula, pero teóricamente todavía existe la posibilidad de que ocurra una situación tan extrema. Para mitigar esta posible amenaza de pérdida de almacenamiento, en lugar de dividir directamente los datos originales en bloques para su almacenamiento, los datos originales se asignan a los coeficientes de un polinomio de n-ésimo orden, y luego se toman 2n puntos en el polinomio, y el nodo selecciona aleatoriamente uno de ellos para el almacenamiento. Para este polinomio de n-ésimo orden, solo se necesitan n+1 puntos para restaurar, por lo que solo la mitad de los bloques deben ser seleccionados por los nodos para restaurar los datos originales. A través del código Eraser, se mejora la seguridad del almacenamiento de datos y la capacidad de la red para recuperar datos.
Promesa polinómica KZG: Una parte muy importante del almacenamiento de datos es la verificación de la autenticidad de los datos. En las redes que no utilizan el código Eraser, hay varias formas de validar el proceso, pero si el código Eraser anterior se introduce para mejorar la seguridad de los datos, entonces es más apropiado utilizar compromisos polinómicos KZG. El polinomio KZG promete verificar directamente el contenido de un solo bloque en forma de polinomios, eliminando así la necesidad de restaurar polinomios a datos binarios, y la forma de verificación es generalmente similar a la del árbol de Merkle, pero no se requieren datos específicos del nodo Path, solo se necesitan datos de raíz y bloque KZG para verificar su autenticidad.
3.3 Modo de verificación de datos de la capa DA
La validación de datos garantiza que los datos a los que se llama desde el nodo no se hayan manipulado ni se hayan perdido. Con el fin de reducir la cantidad de datos y el costo computacional requerido en el proceso de verificación tanto como sea posible, la capa DA actualmente adopta la estructura de árbol como el método de verificación principal. La forma más simple es usar el árbol de Merkle para la verificación, que se registra en forma de un árbol binario completo, y solo necesita mantener una raíz de Merkle y el valor hash del subárbol en el otro lado de la ruta del nodo que se va a verificar, y la complejidad temporal de la verificación es el nivel O(logN) (logN se establece de forma predeterminada en log2(N) si el número no está basado). Aunque el proceso de validación se ha simplificado enormemente, la cantidad de datos en el proceso de validación generalmente ha aumentado con el aumento de datos. Con el fin de resolver el problema de aumentar la cantidad de verificación, se propone otro método de verificación, Verkle Tree, en esta etapa. Además de almacenar valor, cada nodo en el Árbol Verkle también vendrá con un Compromiso Vectorial, a través del valor del nodo original y esta prueba de compromiso, puede verificar rápidamente la autenticidad de los datos, sin llamar al valor de otros nodos hermanos, lo que hace que el número de cálculos para cada verificación solo esté relacionado con la profundidad del Árbol Verkle, que es una constante fija, lo que acelera enormemente la velocidad de verificación. Sin embargo, el cálculo de Vector Commitment requiere la participación de todos los nodos hermanos en la misma capa, lo que aumenta en gran medida el costo de escribir y cambiar datos. Sin embargo, para los datos históricos, que se almacenan permanentemente y no se pueden manipular, Verkle Tree es extremadamente adecuado. Además, también hay variantes del Árbol de Merkle y el Árbol de Verkle en forma de K-ary, y su mecanismo de implementación específico es similar, pero se cambia el número de subárboles debajo de cada nodo, y la comparación de su rendimiento específico se puede ver en la siguiente tabla.
Comparación de los métodos de verificación de datos y el rendimiento del tiempo, fuente de la imagen: Verkle Trees
3.4 Middleware DA genérico
La continua expansión de la ecología blockchain ha provocado un aumento en el número de cadenas públicas. Debido a las ventajas y la insustituibilidad de cada cadena pública en sus respectivos campos, es casi imposible que la cadena pública de capa 1 se unifique en un corto período de tiempo. Sin embargo, con el desarrollo de DeFi y los problemas de los CEX, la demanda de activos comerciales descentralizados entre cadenas también está creciendo. Como resultado, el almacenamiento de datos multicadena de capa DA, que puede eliminar los problemas de seguridad en los intercambios de datos entre cadenas, ha recibido cada vez más atención. Sin embargo, para aceptar datos históricos de diferentes cadenas públicas, es necesario que la capa DA proporcione un protocolo descentralizado para el almacenamiento estandarizado y la verificación de flujos de datos, como kvye, un middleware de almacenamiento basado en Arweave, que toma la iniciativa de capturar datos de la cadena y puede almacenar todos los datos de la cadena en una forma estándar en Arweave para minimizar las diferencias en el proceso de transmisión de datos. En términos relativos, Layer2, que se especializa en proporcionar almacenamiento de datos de capa DA para una determinada cadena pública, interactúa con los datos a través de nodos de intercambio internos, lo que reduce el costo de la interacción y mejora la seguridad, pero tiene limitaciones relativamente grandes y solo puede proporcionar servicios a cadenas públicas específicas.
4. Esquema de almacenamiento de nivel DA
4.1 DA de la cadena principal
Clase 4.1.1 DankSharding
No existe un nombre definido para este tipo de esquema de almacenamiento, y el representante más destacado de este tipo de esquema de almacenamiento es DankSharding en Ethereum, por lo que en este artículo se utiliza el esquema similar a DankSharding. Este tipo de solución utiliza principalmente las dos tecnologías de almacenamiento DA mencionadas anteriormente, Sharding y DAS. En primer lugar, la fragmentación divide los datos en partes apropiadas y, a continuación, permite que cada nodo extraiga un bloque de datos en forma de DAS para su almacenamiento. Si hay suficientes nodos en toda la red, podemos tomar un mayor número de fragmentos N, de modo que la presión de almacenamiento de cada nodo sea solo 1/N del original, para lograr N veces la expansión total del espacio de almacenamiento. Al mismo tiempo, para garantizar que un bloque no se almacene en ningún bloque en el caso extremo, DankSharding codifica los datos utilizando Eraser Code, y solo la mitad de los datos se pueden restaurar por completo. Finalmente, el proceso de validación de datos utiliza la estructura del árbol de Verkle y el compromiso polinómico para lograr una validación rápida.
4.1.2 Almacenamiento a corto plazo
Una de las formas más sencillas de procesar datos para DA en la cadena principal es almacenar datos históricos durante un corto período de tiempo. En esencia, la cadena de bloques desempeña el papel de un libro de contabilidad público, realizando cambios en el contenido del libro mayor bajo la premisa de que toda la red sea testigo, sin necesidad de almacenamiento permanente. Tomando Solana como ejemplo, aunque sus datos históricos están sincronizados con Arweave, los nodos de la red principal solo conservan los datos de la transacción de los últimos dos días. En la cadena pública basada en registros de cuentas, los datos históricos de cada momento conservan el estado final de la cuenta en la cadena de bloques, lo que es suficiente para proporcionar una base de verificación para el siguiente momento de cambio. Para proyectos con necesidades especiales de datos antes de este período de tiempo, pueden almacenarlos en otras cadenas públicas descentralizadas o por terceros de confianza. Esto significa que las personas que tienen necesidades de datos adicionales deben pagar por el almacenamiento de datos históricos.
4.2 DA de terceros
4.2.1 DA dedicado a la cadena principal: EthStorage
DA para la cadena principal:D Lo más importante en la capa A es la seguridad de la transmisión de datos, y lo más seguro en este sentido es el DA de la cadena principal. Sin embargo, el almacenamiento de la cadena principal está limitado por el espacio de almacenamiento y la competencia por los recursos, por lo que cuando la cantidad de datos de red crece rápidamente, si desea lograr un almacenamiento de datos a largo plazo, el DA de terceros será una mejor opción. Si el DA de terceros tiene una mayor compatibilidad con la red principal, puede realizar el intercambio de nodos y tener una mayor seguridad en el proceso de intercambio de datos. Por lo tanto, bajo la premisa de considerar la seguridad, habrá enormes ventajas para el DA dedicado a la cadena principal. Tomando Ethereum como ejemplo, uno de los requisitos básicos del DA dedicado de la cadena principal es que pueda ser compatible con EVM para garantizar la interoperabilidad con los datos y contratos de Ethereum, y los proyectos representativos incluyen Topia, EthStorage, etc. Entre ellos, EthStorage es actualmente el más desarrollado en términos de compatibilidad, porque además de la compatibilidad a nivel de EVM, también configura interfaces relevantes para conectarse con herramientas de desarrollo de Ethereum como Remix y Hardhat para lograr compatibilidad a nivel de herramienta de desarrollo de Ethereum.
EthStorage: EthStorage es una cadena pública independiente de Ethereum, pero los nodos que se ejecutan en ella son superiores a los nodos de Ethereum, es decir, los nodos que ejecutan EthStorage también pueden ejecutar Ethereum al mismo tiempo, y EthStorage se puede operar directamente a través del código de operación en Ethereum. En el modelo de almacenamiento de EthStorage, que solo mantiene una pequeña cantidad de metadatos en la red principal de Ethereum para su indexación, esencialmente crea una base de datos descentralizada para Ethereum. En la solución actual, EthStorage ha implementado la interacción entre la red principal de Ethereum y EthStorage mediante la implementación de un contrato de EthStorage en la red principal de Ethereum. Si Ethereum quiere depositar datos, necesita llamar a la función put() en el contrato, y los parámetros de entrada son dos variables de bytes key, data, donde data representa los datos a depositar, y key es su identificación en la red Ethereum, que puede verse como similar a la existencia de CID en IPFS. Después de que el par (clave, datos) se almacene con éxito en la red EthStorage, EthStorage generará un kvldx y lo devolverá a la red principal de Ethereum, que corresponde a la clave en Ethereum, y este valor corresponde a la dirección de almacenamiento de los datos en EthStorage, por lo que el problema de almacenar una gran cantidad de datos ahora se cambia para almacenar un solo par (clave, kvldx), lo que reduce en gran medida el costo de almacenamiento de la red principal de Ethereum. Si necesita realizar una llamada a los datos almacenados anteriormente, debe usar la función get() en EthStorage e ingresar el parámetro clave, y puede realizar una búsqueda rápida de los datos en EthStorage a través de kvldx almacenados en Ethereum.
Contrato de EthStorage, fuente de la imagen: Kernel Ventures
En cuanto a la forma en que los nodos almacenan los datos, EthStorage toma prestado el patrón de Arweave. En primer lugar, se fragmenta una gran cantidad de pares (k,v) de ETH, y cada fragmentación contiene un número fijo de pares de datos (k,v), de los cuales también hay un límite en el tamaño específico de cada par (k,v), a fin de garantizar la equidad del tamaño de la carga de trabajo en el proceso de almacenamiento de recompensas para los mineros. Para la emisión de recompensas, debe verificar si el nodo almacena datos. En este proceso, EthStorage divide una fragmentación (tamaño de terabyte) en un gran número de fragmentos y mantiene una raíz de Merkle en la red principal de Ethereum para su validación. A continuación, el minero debe proporcionar un nonce para generar las direcciones de varios fragmentos a través de un algoritmo aleatorio con el hash del bloque anterior en EthStorage, y el minero debe proporcionar los datos de estos fragmentos para demostrar que realmente ha almacenado toda la fragmentación. Sin embargo, este nonce no se puede seleccionar arbitrariamente, de lo contrario, el nodo seleccionará un nonce adecuado que solo corresponda a su fragmento almacenado para pasar la verificación, por lo que este nonce debe hacer que el fragmento generado cumpla con los requisitos de la red después de mezclar y hashear, y solo el primer nodo en enviar el nonce y la prueba de acceso aleatorio puede obtener la recompensa.
4.2.2 DA modular: Celestia
Módulo Blockchain: En esta etapa, las transacciones que deben ser ejecutadas por la cadena pública de Capa 1 se dividen principalmente en las siguientes cuatro partes: (1) diseñar la lógica subyacente de la red, seleccionar validadores de cierta manera, escribir bloques y distribuir recompensas a los mantenedores de la red, (2) empaquetar y procesar transacciones y publicar transacciones relacionadas, (3) verificar las transacciones que se colocarán en la cadena y determinar el estado final, y (4) almacenar y mantener datos históricos en la cadena de bloques. Dependiendo de las funciones realizadas, podemos dividir la cadena de bloques en cuatro módulos, a saber, la capa de consenso, la capa de ejecución, la capa de liquidación y la capa de disponibilidad de datos (capa DA).
Diseño modular de la cadena de bloques: Durante mucho tiempo, estos cuatro módulos se han integrado en una cadena pública, y dicha cadena de bloques se denomina cadena de bloques monolítica. Esta forma es más estable y fácil de mantener, pero también ejerce mucha presión sobre una sola cadena pública. En la práctica, estos cuatro módulos se restringen entre sí y compiten por los limitados recursos informáticos y de almacenamiento de la cadena pública. Por ejemplo, el aumento de la velocidad de procesamiento de la capa de procesamiento ejercerá más presión de almacenamiento sobre la capa de disponibilidad de datos, y garantizar la seguridad de la capa de ejecución requerirá mecanismos de autenticación más complejos que ralentizarán el procesamiento de transacciones. Por lo tanto, el desarrollo de cadenas públicas a menudo se enfrenta a compensaciones entre estos cuatro módulos. Con el fin de romper el cuello de botella de mejorar el rendimiento de esta cadena pública, los desarrolladores propusieron un esquema modular de cadena de bloques. La idea central de la cadena de bloques modular es separar uno o varios de los cuatro módulos anteriores y entregarlos a una implementación de cadena pública separada. De esta manera, en la cadena pública, solo puede concentrarse en la mejora de la velocidad de transacción o la capacidad de almacenamiento, y romper las limitaciones anteriores causadas por el efecto de tablero corto en el rendimiento general de la cadena de bloques.
DA modular: El complejo enfoque de separar la capa DA del negocio de la cadena de bloques y entregarla a una sola cadena pública se considera una solución viable para los crecientes datos históricos de la capa 1. La exploración en esta zona aún se encuentra en sus primeras etapas, siendo Celestia el proyecto más representativo en este momento. En cuanto al método de almacenamiento específico, Celestia toma prestado el método de almacenamiento de Danksharding, que consiste en dividir los datos en varios bloques, extraer una parte de ellos por cada nodo para su almacenamiento y verificar la integridad de los datos con el compromiso polinómico KZG. Al mismo tiempo, Celestia utiliza una codificación avanzada de borrado RS 2D para reescribir los datos originales en forma de matriz kk y, finalmente, solo se puede recuperar el 25% de los datos originales. Sin embargo, el almacenamiento de fragmentación de datos esencialmente solo multiplica la presión de almacenamiento de los nodos en toda la red por un factor en el volumen total de datos, y la presión de almacenamiento y el volumen de datos de los nodos aún mantienen un crecimiento lineal. A medida que la capa 1 continúa mejorando la velocidad de las transacciones, la presión de almacenamiento de los nodos aún puede alcanzar un umbral inaceptable algún día. Para resolver este problema, se introdujo el componente IPLD en Celestia para su procesamiento. Para los datos de la matriz kk, no se almacenan directamente en Celestia, sino en la red LL-IPFS, y solo el código CID de esos datos en IPFS se mantiene en el nodo. Cuando un usuario solicita un fragmento de datos históricos, el nodo envía el CID correspondiente al componente IPLD y utiliza el CID para llamar a los datos sin procesar en IPFS. Si existen datos en IPFS, se devuelven a través de componentes y nodos de IPLD y, si no es así, no se pueden devolver.
Cómo se leen los datos de Celestia, fuente de la imagen: Celestia Core
Celestia: Tomando Celestia como ejemplo, podemos echar un vistazo a la aplicación de la cadena de bloques modular para resolver el problema de almacenamiento de Ethereum. El nodo Rollup enviará los datos de la transacción empaquetada y verificada a Celestia y almacenará los datos en Celestia, en este proceso, Celestia solo almacena los datos sin demasiada conciencia, y finalmente de acuerdo con el tamaño del espacio de almacenamiento, el nodo Rollup pagará los tokens tia correspondientes a Celestia como tarifas de almacenamiento. El almacenamiento en Celstia aprovecha DAS y la codificación de borrado similar a la de EIP4844, pero la codificación de borrado polinómica en EIP4844 se actualiza a la codificación de borrado RS 2D y la seguridad del almacenamiento se actualiza nuevamente, lo que requiere solo un 25% de fracturas para restaurar todos los datos de la transacción. Esencialmente, es solo una cadena pública POS de bajo costo, y si desea resolver el problema de almacenamiento de datos históricos de Ethereum, necesita muchos otros módulos específicos para trabajar con Celestia. Por ejemplo, en términos de rollups, uno de los modos de rollup más recomendados en el sitio web oficial de Celestia es Sovereign Rollup. A diferencia de los rollups comunes en la capa 2, solo se calcula y verifica la transacción, es decir, se completa la operación de la capa de ejecución. Sovereign Rollup abarca todo el proceso de ejecución y liquidación, lo que minimiza el procesamiento de transacciones en Celestia, lo que puede maximizar la seguridad del proceso general de transacción cuando la seguridad general de Celestia es más débil que la de Ethereum. En términos de garantizar la seguridad de los datos llamados por Celestia en la red principal de Ethereum, la solución más convencional es el contrato inteligente de puente de gravedad cuántica. Para los datos almacenados en Celestia, genera una raíz de Merkle (prueba de disponibilidad de datos) y permanece en el contrato de puente gravitacional cuántico en la red principal de Ethereum, y cada vez que Ethereum llama a datos históricos en Celestia, compara su resultado hash con Merkle Root, y si lo hace, significa que de hecho son datos históricos verdaderos.
4.2.3 Tienda cadena pública DA
En términos del principio de la tecnología DA de la cadena principal, muchas tecnologías similares a Sharding se toman prestadas de la cadena pública de almacenamiento. Entre los DA de terceros, algunos de ellos han completado algunas tareas de almacenamiento directamente con la ayuda de la cadena pública de almacenamiento, como los datos de transacciones específicas en Celestia que se colocan en la red LL-IPFS. En la solución DA de terceros, además de crear una cadena pública separada para resolver el problema de almacenamiento de la capa 1, una forma más directa es conectar directamente la cadena pública de almacenamiento con la capa 1 para almacenar los enormes datos históricos en la capa 1. En el caso de las cadenas de bloques de alto rendimiento, el volumen de datos históricos es aún mayor, y el tamaño de los datos de la cadena pública de alto rendimiento Solana se acerca a los 4 PG cuando se ejecuta a toda velocidad, lo que está completamente fuera del rango de almacenamiento de los nodos ordinarios. La solución elegida por Solana fue almacenar datos históricos en Arweave, una red de almacenamiento descentralizada, y solo mantener 2 días de datos en los nodos de la red principal para su verificación. Con el fin de garantizar la seguridad del proceso almacenado, Solana y la cadena Arweave han diseñado un protocolo de puente de almacenamiento, Solar Bridge. Los datos verificados por el nodo Solana se sincronizan con Arweave y se devuelve la etiqueta correspondiente. Con esta etiqueta, los nodos de Solana pueden ver los datos históricos de la blockchain de Solana en cualquier momento. En Arweave, no es necesario que los nodos de la red mantengan la coherencia de los datos y la utilicen como umbral para participar en el funcionamiento de la red, sino que adoptan el método de almacenamiento de recompensas. En primer lugar, Arweave no utiliza una estructura de cadena tradicional para construir bloques, sino más bien una estructura de gráficos. En Arweave, un nuevo bloque apunta no solo al bloque anterior, sino también a un bloque de recuperación generado aleatoriamente. La ubicación exacta de un bloque de recuperación está determinada por el hash de su bloque anterior y su altura de bloque, y la ubicación del bloque de recuperación es desconocida hasta que se extrae el bloque anterior. Sin embargo, en el proceso de generación de nuevos bloques, se requiere que los nodos tengan los datos de Recall Block para usar el mecanismo POW para calcular el hash de la dificultad especificada, y solo los mineros que primero calculan el hash que coincide con la dificultad pueden ser recompensados, alentando a los mineros a almacenar la mayor cantidad posible de datos históricos. Al mismo tiempo, cuantas menos personas almacenen un bloque histórico, menos competidores tendrá el nodo a la hora de generar un nonce de dificultad, animando a los mineros a almacenar bloques con menos copias de seguridad en la red. Por último, para garantizar que los nodos puedan almacenar datos de forma permanente en Arweave, se introduce el mecanismo de puntuación de nodos de WildFire. Los nodos tienden a comunicarse con nodos que pueden proporcionar más datos históricos más rápidamente, mientras que los nodos con calificaciones más bajas a menudo no tienen acceso a los últimos datos de bloques y transacciones en primer lugar, por lo que no pueden tomar la delantera en la competencia por POW.
Cómo se construyen los bloques Arweave, fuente de la imagen: Arweave Yellow-Paper
5. Comparación exhaustiva
A continuación, compararemos los pros y los contras de cada uno de los cinco escenarios de almacenamiento en función de las cuatro dimensiones de las métricas de rendimiento de DA.
Seguridad: La mayor fuente de problemas de seguridad de datos es la pérdida causada por la transmisión de datos y la manipulación maliciosa de nodos deshonestos, y en el proceso de cadena cruzada, debido a que la independencia y el estado de las dos cadenas públicas no se comparten, es el área más afectada de la seguridad de la transmisión de datos. Además, la capa 1 que requiere una capa DA dedicada en esta etapa a menudo tiene un grupo de consenso sólido, y su propia seguridad será mucho mayor que la de las cadenas públicas de almacenamiento ordinarias. Por lo tanto, el esquema de la cadena principal DA tiene mayor seguridad. Después de garantizar la seguridad de la transmisión de datos, el siguiente paso es garantizar la seguridad de los datos de las llamadas. Si solo se consideran los datos históricos a corto plazo utilizados para verificar las transacciones, toda la red almacenada temporalmente realiza copias de seguridad de los mismos datos, mientras que el número promedio de copias de seguridad de datos en el esquema similar a DankSharding es solo 1/N del número de nodos en toda la red, una mayor redundancia de datos puede hacer que sea menos probable que los datos se pierdan y también puede proporcionar más muestras de referencia para la verificación. Por lo tanto, el almacenamiento temporal tendrá una mayor seguridad de los datos. En el esquema DA de terceros, el DA dedicado de la cadena principal utiliza nodos comunes con la cadena principal, y los datos se pueden transmitir directamente a través de estos nodos de retransmisión durante el proceso de cadena cruzada, por lo que también tendrá una seguridad relativamente mayor que otras soluciones DA.
Costo de almacenamiento: El mayor contribuyente a los costos de almacenamiento es la cantidad de redundancia de datos. En la solución de almacenamiento a corto plazo de la DA de la cadena principal, la sincronización de datos de los nodos de toda la red se utiliza para el almacenamiento, y los nodos de toda la red deben respaldar cualquier dato recién almacenado, que tiene el costo de almacenamiento más alto. El alto costo de almacenamiento, a su vez, determina que este método solo sea adecuado para el almacenamiento temporal en redes de alto TPS. El segundo es el método de almacenamiento de la fragmentación, incluida la fragmentación en la cadena principal y la fragmentación en DA de terceros. Dado que la cadena principal tiende a tener más nodos, habrá más copias de seguridad para cada bloque, por lo que la solución de fragmentación de la cadena principal tendrá un costo más alto. El costo de almacenamiento más bajo es el DA de la cadena pública de almacenamiento que adopta el método de almacenamiento de recompensa, y la cantidad de redundancia de datos en este esquema a menudo fluctúa en torno a una constante fija. Al mismo tiempo, también se ha introducido un mecanismo de ajuste dinámico en el DA de la cadena pública de almacenamiento para atraer a los nodos a almacenar menos datos de copia de seguridad aumentando las recompensas para garantizar la seguridad de los datos.
Velocidad de lectura de datos: La velocidad de almacenamiento de los datos se ve afectada principalmente por la ubicación de almacenamiento de los datos en el espacio de almacenamiento, la ruta del índice de datos y la distribución de los datos en los nodos. Entre ellos, el lugar donde se almacenan los datos en el nodo tiene un mayor impacto en la velocidad, ya que almacenar los datos en la memoria o SSD puede hacer que la velocidad de lectura varíe decenas de veces. El DA de la cadena pública de almacenamiento adopta principalmente el almacenamiento SSD, porque la carga en la cadena incluye no solo los datos de la capa DA, sino también los datos personales con alta ocupación de memoria, como videos e imágenes cargados por los usuarios. Si la red no utiliza SSD como espacio de almacenamiento, es difícil soportar la enorme presión de almacenamiento y satisfacer las necesidades de almacenamiento a largo plazo. En segundo lugar, en el caso de los DA de terceros y los DA de la cadena principal que utilizan datos de almacenamiento en memoria, el DA de terceros primero debe buscar los datos de índice correspondientes en la cadena principal y, a continuación, transferir los datos del índice al DA de terceros a través de la cadena y devolver los datos a través del puente de almacenamiento. Por el contrario, los DA de la cadena principal pueden consultar datos directamente desde los nodos y, por lo tanto, tienen velocidades de recuperación de datos más rápidas. Por último, dentro del DA de la cadena principal, el método Sharding debe llamar al bloque desde varios nodos y restaurar los datos originales. Como resultado, el almacenamiento a corto plazo es más lento que el almacenamiento a corto plazo sin particionamiento.
Universalidad de la capa DA: La universalidad DA de la cadena principal es cercana a cero, porque es imposible transferir datos de una cadena pública con espacio de almacenamiento insuficiente a otra cadena pública con espacio de almacenamiento insuficiente. En los DA de terceros, la versatilidad de la solución y su compatibilidad con una cadena principal en particular son un par de indicadores contradictorios. Por ejemplo, en un esquema DA específico de la cadena principal diseñado para una determinada cadena principal, se han realizado un gran número de mejoras en el tipo de nodo y el nivel de consenso de la red para adaptarse a la cadena pública, por lo que estas mejoras pueden ser un gran obstáculo a la hora de comunicarse con otras cadenas públicas. Sin embargo, dentro del DA de terceros, en comparación con el DA modular, el DA de cadena pública de almacenamiento funciona mejor en términos de versatilidad. La cadena pública de almacenamiento DA tiene una comunidad de desarrolladores más grande y más instalaciones de expansión, que pueden adaptarse a la situación de las diferentes cadenas públicas. Al mismo tiempo, el DA de la cadena pública de almacenamiento obtiene datos de forma más activa a través de la captura de paquetes, en lugar de recibir pasivamente la información transmitida desde otras cadenas públicas. Por lo tanto, puede codificar datos a su manera, realizar el almacenamiento estandarizado de flujos de datos, facilitar la gestión de la información de datos de diferentes cadenas principales y mejorar la eficiencia del almacenamiento.
Comparación del rendimiento de la solución de almacenamiento, fuente de la imagen: Kernel Ventures
6. resumen
En esta etapa, las cadenas de bloques están experimentando una transición de las criptomonedas a una Web3 más inclusiva, lo que aporta algo más que una gran cantidad de proyectos en la cadena de bloques. Con el fin de dar cabida a tantos proyectos que se ejecutan al mismo tiempo en la Capa 1, al tiempo que se garantiza la experiencia de los proyectos Gamefi y Socialfi, la Capa 1, representada por Ethereum, ha adoptado métodos como Rollups y Blobs para mejorar el TPS. Entre las cadenas de bloques nacientes, el número de cadenas de bloques de alto rendimiento también está creciendo. Pero un TPS más alto significa no solo un mayor rendimiento, sino también una mayor presión de almacenamiento en la red. Para los datos históricos masivos, en esta etapa se propone una variedad de métodos de DA basados en la cadena principal y terceros para adaptarse al crecimiento de la presión de almacenamiento en la cadena. Cada método de mejora tiene sus pros y sus contras, y tiene una aplicabilidad diferente en diferentes contextos.
Las cadenas de bloques basadas en pagos tienen requisitos extremadamente altos para la seguridad de los datos históricos y no persiguen un TPS particularmente alto. Si este tipo de cadena pública aún se encuentra en la etapa preparatoria, puede adoptar un método de almacenamiento similar a DankSharding, que puede lograr un gran aumento en la capacidad de almacenamiento al tiempo que garantiza la seguridad. Sin embargo, si se trata de una cadena pública como Bitcoin, que se ha formado y tiene un gran número de nodos, existe un gran riesgo en realizar mejoras apresuradas en la capa de consenso, por lo que es posible adoptar un DA dedicado para la cadena principal con alta seguridad en el almacenamiento fuera de la cadena para tener en cuenta los problemas de seguridad y almacenamiento. Pero vale la pena señalar que la funcionalidad de blockchain no es estática, sino que cambia constantemente. Por ejemplo, en los primeros días, las funciones de Ethereum se limitaban principalmente a los pagos y al uso de contratos inteligentes para simplemente automatizar activos y transacciones, pero con la continua expansión del territorio blockchain, varios proyectos de Socialfi y Defi se han agregado gradualmente a Ethereum, haciendo que Ethereum se desarrolle en una dirección más integral. Recientemente, con el estallido de la ecología de inscripción en Bitcoin, la tarifa de transacción de la red Bitcoin ha aumentado casi 20 veces desde agosto, lo que refleja que la velocidad de transacción de la red Bitcoin en esta etapa no puede satisfacer la demanda de transacciones, y los comerciantes solo pueden aumentar la tarifa de transacción para que la transacción pueda procesarse lo antes posible. Ahora, la comunidad de Bitcoin necesita hacer un compromiso, ya sea aceptar tarifas altas y velocidades de transacción lentas, o reducir la seguridad de la red para aumentar la velocidad de las transacciones pero ir en contra del propósito original del sistema de pago. Si la comunidad de Bitcoin opta por esta última, también será necesario ajustar el esquema de almacenamiento correspondiente ante la creciente presión de datos.
Las tarifas de transacción de la red principal de Bitcoin fluctúan, fuente de la imagen: OKLINK
Para la cadena pública con funciones integrales, tiene una mayor búsqueda de TPS, y el crecimiento de los datos históricos es aún mayor, y es difícil adaptarse al rápido crecimiento de TPS a largo plazo adoptando una solución similar a DankSharding. Por lo tanto, es más adecuado migrar los datos a un DA de terceros para su almacenamiento. Entre ellos, el DA dedicado a la cadena principal tiene la mayor compatibilidad, y puede ser más ventajoso si solo se considera el problema de almacenamiento de una sola cadena pública. Sin embargo, en la cadena pública de capa 1 actual, la transferencia de activos entre cadenas y la interacción de datos también se han convertido en una búsqueda común de la comunidad blockchain. Si tenemos en cuenta el desarrollo a largo plazo de todo el ecosistema blockchain, almacenar los datos históricos de diferentes cadenas públicas en la misma cadena pública puede eliminar muchos problemas de seguridad en el proceso de intercambio y verificación de datos, por lo que la forma de DA modular y el almacenamiento de DA de cadena pública puede ser una mejor opción. Bajo la premisa de una universalidad cercana, DA modular se enfoca en brindar servicios de la capa DA de la cadena de bloques e introduce datos históricos de gestión de datos de índice más refinados, lo que puede hacer una clasificación razonable de datos de diferentes cadenas públicas y tiene más ventajas en comparación con el almacenamiento de cadenas públicas. Sin embargo, el esquema anterior no tiene en cuenta el costo del ajuste de la capa de consenso en la cadena pública existente, lo cual es extremadamente riesgoso y, una vez que hay un problema, puede conducir a vulnerabilidades sistémicas y hacer que la cadena pública pierda el consenso de la comunidad. Por lo tanto, si se trata de una solución transitoria en el proceso de escalado de blockchain, el almacenamiento temporal más simple de la cadena principal puede ser más adecuado. Finalmente, las discusiones anteriores se basan en el desempeño en el proceso de operación real, pero si el objetivo de una cadena pública es desarrollar su propia ecología y atraer a más partes y participantes del proyecto, también puede preferir proyectos que sean apoyados y financiados por su propia fundación. Por ejemplo, en el caso de un rendimiento general igual o incluso ligeramente inferior al del esquema de almacenamiento de la cadena pública, la comunidad de Ethereum también preferirá EthStorage como proyecto de capa 2 respaldado por la Fundación Ethereum para seguir desarrollando el ecosistema de Ethereum.
Con todo, la creciente complejidad de las cadenas de bloques actuales también trae consigo mayores requisitos de espacio de almacenamiento. Si hay suficientes validadores de capa 1, no es necesario que todos los nodos de toda la red hagan una copia de seguridad de los datos históricos, y solo es necesario hacer una copia de seguridad de un número determinado para garantizar una seguridad relativa. Al mismo tiempo, la división del trabajo de las cadenas públicas es cada vez más detallada, con la Capa 1 responsable del consenso y la ejecución, Rollup responsable del cálculo y la verificación, y luego utilizando una cadena de bloques separada para el almacenamiento de datos. Cada parte puede centrarse en una función sin estar limitada por el rendimiento de las demás. Sin embargo, cuánto o qué porcentaje de nodos almacenar datos históricos para lograr un equilibrio entre seguridad y eficiencia, y cómo garantizar la interoperabilidad segura entre diferentes blockchains, es una pregunta en la que los desarrolladores de blockchain deben pensar y mejorar constantemente. Para los inversores, pueden prestar atención al proyecto principal de DA dedicado a la cadena en Ethereum, porque Ethereum ya tiene suficientes partidarios en esta etapa como para no depender de otras comunidades para expandir su influencia. Más necesidades son mejorar y desarrollar sus propias comunidades y atraer más proyectos para aterrizar en el ecosistema Ethereum. Sin embargo, para las cadenas públicas en la posición de cazadores, como Solana y Aptos, la cadena única en sí no tiene un ecosistema tan completo, por lo que puede estar más inclinada a unir las fuerzas de otras comunidades para construir un enorme ecosistema de cadena cruzada para expandir su influencia. Por lo tanto, para la capa 1 emergente, los DA genéricos de terceros merecen más atención.
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
Kernel Ventures: Un artículo sobre DA y diseño de capas de datos históricos
Por Jerry Luo, Kernel Ventures
TL;DR
En los primeros días, las cadenas públicas requerían nodos en toda la red para mantener la coherencia de los datos para garantizar la seguridad y la descentralización. Sin embargo, con el desarrollo del ecosistema blockchain, la presión de almacenamiento sigue aumentando, lo que da lugar a una tendencia a la centralización de las operaciones de los nodos. En esta etapa, la Capa 1 necesita resolver urgentemente el problema de costos de almacenamiento causado por el crecimiento de TPS.
Ante este problema, los desarrolladores deben proponer un nuevo esquema de almacenamiento de datos históricos bajo la premisa de tener en cuenta la seguridad, el costo de almacenamiento, la velocidad de lectura de datos y la versatilidad de la capa DA.
En el proceso de resolver este problema, han surgido muchas tecnologías e ideas nuevas, como Sharding, DAS, Verkle Tree, componentes intermedios DA, etc. Intentaron optimizar el esquema de almacenamiento de la capa DA reduciendo la redundancia de datos y mejorando la eficiencia de la verificación de datos.
El esquema actual de DA se divide aproximadamente en dos categorías desde el punto de vista de la ubicación del almacenamiento de datos, a saber, el DA de la cadena principal y el DA de terceros. El DA de la cadena principal se basa en la perspectiva de limpiar regularmente los datos y fragmentar el almacenamiento de datos para reducir la presión de almacenamiento en los nodos. Los requisitos de diseño de DA de terceros están diseñados para servir al almacenamiento y tener una solución razonable para grandes cantidades de datos. Por lo tanto, se trata principalmente de un compromiso entre la compatibilidad de una sola cadena y la compatibilidad de varias cadenas, y se proponen tres soluciones: DA dedicada de la cadena principal, DA modular y DA de cadena pública de almacenamiento.
La cadena pública basada en pagos tiene requisitos extremadamente altos para la seguridad de los datos históricos, y es adecuada para usar la cadena principal como capa DA. Sin embargo, para las cadenas públicas que han estado funcionando durante mucho tiempo y una gran cantidad de mineros están ejecutando la red, es más apropiado adoptar un DA de terceros que no implique una capa de consenso y tenga en cuenta la seguridad. La cadena pública integral es más adecuada para el uso del almacenamiento DA dedicado a la cadena principal con mayor capacidad de datos, menor costo y seguridad. Pero dada la necesidad de cadena cruzada, el DA modular también es una buena opción.
En general, blockchain se está desarrollando en la dirección de reducir la redundancia de datos y la división del trabajo multicadena.
1. fondo
Como libro mayor distribuido, la cadena de bloques necesita almacenar datos históricos en todos los nodos para garantizar la seguridad y la descentralización del almacenamiento de datos. Dado que la corrección de cada cambio de estado está relacionada con el estado anterior (la fuente de la transacción), para garantizar la corrección de la transacción, una cadena de bloques debería, en principio, almacenar todo el historial desde la primera transacción hasta la transacción actual. Tomando Ethereum como ejemplo, incluso si el tamaño promedio de cada bloque se estima en 20 kb, el tamaño total del bloque actual de Ethereum ha alcanzado los 370 GB, y un nodo completo tiene que registrar el estado y los recibos de transacciones además del bloque en sí. Contando esta parte, el volumen total de almacenamiento de un solo nodo ha superado 1 TB, lo que hace que el funcionamiento del nodo se concentre en un pequeño número de personas.
La última altura de bloque de Ethereum, fuente de la imagen: Etherscan
2. Métricas de rendimiento de DA
2.1 Seguridad
En comparación con la estructura de almacenamiento de bases de datos o listas vinculadas, la inmutabilidad de blockchain proviene del hecho de que los datos recién generados se pueden verificar a través de datos históricos, por lo que garantizar la seguridad de sus datos históricos es la primera consideración en el almacenamiento de la capa DA. Para la evaluación de la seguridad de los datos del sistema blockchain, a menudo analizamos la cantidad de redundancia de datos y el método de verificación de la disponibilidad de los datos
Número de redundancia: Para la redundancia de datos en el sistema blockchain, puede desempeñar principalmente los siguientes roles: primero, si el número de redundancia en la red es mayor, cuando el validador necesita verificar el estado de la cuenta en un bloque histórico para verificar la transacción actual, puede obtener la mayor cantidad de muestras como referencia y seleccionar los datos registrados por la mayoría de los nodos. En las bases de datos tradicionales, debido a que los datos solo se almacenan en forma de pares clave-valor en un nodo determinado, el costo de ataque es extremadamente bajo para cambiar los datos históricos solo en un solo nodo y, en teoría, cuanto más redundantes sean los datos, más creíbles serán los datos. Al mismo tiempo, cuantos más nodos se almacenen, menos probable será que se pierdan los datos. Esto también se puede comparar con los servidores centralizados que almacenan juegos Web2, y una vez que se cierren todos los servidores backend, habrá un cierre completo. Sin embargo, más no es mejor, porque cada redundancia aportará espacio de almacenamiento adicional, y demasiada redundancia de datos aportará una presión de almacenamiento excesiva al sistema, y una buena capa de DA debe elegir un método de redundancia adecuado para lograr un equilibrio entre la seguridad y la eficiencia del almacenamiento.
Comprobación de la disponibilidad de los datos: La redundancia garantiza que haya suficientes registros de datos en la red, pero también es necesario verificar la precisión y la integridad de los datos que se van a utilizar. En esta etapa, el método de verificación comúnmente utilizado en la cadena de bloques es el algoritmo de compromiso criptográfico, que retiene un pequeño compromiso criptográfico para que toda la red lo registre, y este compromiso se obtiene mezclando los datos de la transacción. Para probar la autenticidad de un dato histórico, es necesario restaurar la promesa criptográfica a través de los datos, verificar si la promesa criptográfica obtenida por la restauración es consistente con los registros de toda la red y, si es consistente, se pasa la verificación. Los algoritmos de verificación de contraseñas más utilizados son Merkle Root y Verkle Root. El algoritmo de verificación de disponibilidad de datos de alta seguridad solo requiere muy pocos datos de verificación y puede verificar rápidamente los datos históricos.
2.2 Costos de almacenamiento
Con la premisa de garantizar la seguridad básica, el siguiente objetivo principal que debe alcanzarse en la capa DA es reducir los costes y aumentar la eficiencia. La primera es reducir los costos de almacenamiento, es decir, reducir la huella de memoria causada por el almacenamiento de datos por tamaño de unidad, sin considerar la diferencia en el rendimiento del hardware. En esta etapa, la principal forma de reducir los costos de almacenamiento en la cadena de bloques es adoptar la tecnología de fragmentación y utilizar el almacenamiento recompensado para garantizar que los datos se almacenen de manera efectiva y reducir la cantidad de copias de seguridad de datos. Sin embargo, no es difícil ver a partir de los métodos de mejora anteriores que existe una relación entre el costo de almacenamiento y la seguridad de los datos, y reducir la ocupación de almacenamiento a menudo significa una disminución de la seguridad. Por lo tanto, una buena capa DA debe equilibrar el costo de almacenamiento con la seguridad de los datos. Además, si la capa DA es una cadena pública independiente, también es necesario reducir el costo minimizando el proceso intermedio de intercambio de datos, y los datos de índice deben dejarse para llamadas de consulta posteriores en cada proceso de tránsito, por lo que cuanto más largo sea el proceso de llamada, más datos de índice quedarán y aumentará el costo de almacenamiento. Por último, el coste del almacenamiento de datos está directamente relacionado con la durabilidad de los datos. En general, cuanto mayor sea el costo de almacenamiento de los datos, más difícil será para la cadena pública almacenar datos de manera persistente.
2.3 Velocidad de lectura de datos
Una vez que se logra la reducción de costos, el siguiente paso es el aumento de la eficiencia, que es la capacidad de llamar rápidamente a los datos de la capa DA cuando es necesario utilizarlos. Este proceso implica dos pasos, el primero es buscar los nodos que almacenan datos, este proceso es principalmente para la cadena pública que no ha logrado la consistencia de datos de toda la red, si la cadena pública ha logrado la sincronización de datos de los nodos de toda la red, se puede ignorar el consumo de tiempo de este proceso. En segundo lugar, en los principales sistemas de cadena de bloques en esta etapa, incluidos Bitcoin, Ethereum y Filecoin, el método de almacenamiento de nodos es la base de datos Leveldb. En Leveldb, los datos se almacenan de tres maneras. La primera es que los datos que se escriben sobre la marcha se almacenan en un archivo de tipo memtable, y cuando el memtable está lleno, el tipo de archivo se cambia de memtable a memtable inmutable. Ambos tipos de archivos se almacenan en la memoria, pero el archivo Memtable inmutable ya no se puede cambiar y solo puede leer datos de él. El almacenamiento en caliente utilizado en la red IPFS almacena los datos en esta parte, y se pueden leer rápidamente de la memoria cuando se llama, pero la memoria móvil de un nodo ordinario a menudo está a nivel de gigabyte, lo que es fácil de escribir lentamente, y cuando el nodo se cae y otras condiciones anormales, los datos en la memoria se perderán permanentemente. Si desea que sus datos se almacenen de forma persistente, debe almacenarlos como un archivo SST en una unidad de estado sólido (SSD), pero primero debe leer los datos en la memoria, lo que ralentiza en gran medida la velocidad de indexación de datos. Por último, en el caso de los sistemas con almacenamiento fragmentado, la restauración de datos requiere el envío de solicitudes de datos a varios nodos y su restauración, lo que también ralentizará la velocidad de lectura de datos.
Método de almacenamiento de datos Leveldb, fuente de la imagen: Leveldb-handbook
2.4 Comunalidad de la capa DA
Con el desarrollo de DeFi y los problemas de los CEX, la demanda de transacciones entre cadenas de activos descentralizados también está creciendo. Ya sea que se trate de un mecanismo de cadena cruzada de bloqueo de hash, notario público o cadena de retransmisión, es inevitable determinar los datos históricos de las dos cadenas al mismo tiempo. El quid de este problema radica en la separación de datos en las dos cadenas, y la comunicación directa no se puede lograr en diferentes sistemas descentralizados. Por lo tanto, en esta etapa, se propone una solución cambiando el modo de almacenamiento de la capa DA, que almacena los datos históricos de múltiples cadenas públicas en la misma cadena pública de confianza, y solo necesita llamar a los datos de esta cadena pública al verificar. Esto requiere que la capa DA sea capaz de establecer un método de comunicación seguro con diferentes tipos de cadenas públicas, es decir, la capa DA tiene una buena versatilidad.
3. Exploración de tecnologías relacionadas con DA
3.1 Fragmentación
Cómo se almacenan los datos después de la fragmentación, fuente de la imagen: Kernel Ventures
3.2 DAS (muestreo de disponibilidad de datos)
La tecnología DAS se basa en la optimización adicional de la fragmentación en términos de métodos de almacenamiento. En el proceso de fragmentación, debido al simple almacenamiento aleatorio de nodos, se puede perder un determinado bloque. En segundo lugar, para los datos fragmentados, también es muy importante cómo confirmar la autenticidad e integridad de los datos durante el proceso de restauración. En DAS, ambos problemas se abordan a través del código Eraser y los compromisos polinómicos KZG.
Código de borrador: Teniendo en cuenta la gran cantidad de validadores en Ethereum, la probabilidad de que un bloque no sea almacenado por ningún nodo es casi nula, pero teóricamente todavía existe la posibilidad de que ocurra una situación tan extrema. Para mitigar esta posible amenaza de pérdida de almacenamiento, en lugar de dividir directamente los datos originales en bloques para su almacenamiento, los datos originales se asignan a los coeficientes de un polinomio de n-ésimo orden, y luego se toman 2n puntos en el polinomio, y el nodo selecciona aleatoriamente uno de ellos para el almacenamiento. Para este polinomio de n-ésimo orden, solo se necesitan n+1 puntos para restaurar, por lo que solo la mitad de los bloques deben ser seleccionados por los nodos para restaurar los datos originales. A través del código Eraser, se mejora la seguridad del almacenamiento de datos y la capacidad de la red para recuperar datos.
Promesa polinómica KZG: Una parte muy importante del almacenamiento de datos es la verificación de la autenticidad de los datos. En las redes que no utilizan el código Eraser, hay varias formas de validar el proceso, pero si el código Eraser anterior se introduce para mejorar la seguridad de los datos, entonces es más apropiado utilizar compromisos polinómicos KZG. El polinomio KZG promete verificar directamente el contenido de un solo bloque en forma de polinomios, eliminando así la necesidad de restaurar polinomios a datos binarios, y la forma de verificación es generalmente similar a la del árbol de Merkle, pero no se requieren datos específicos del nodo Path, solo se necesitan datos de raíz y bloque KZG para verificar su autenticidad.
3.3 Modo de verificación de datos de la capa DA
La validación de datos garantiza que los datos a los que se llama desde el nodo no se hayan manipulado ni se hayan perdido. Con el fin de reducir la cantidad de datos y el costo computacional requerido en el proceso de verificación tanto como sea posible, la capa DA actualmente adopta la estructura de árbol como el método de verificación principal. La forma más simple es usar el árbol de Merkle para la verificación, que se registra en forma de un árbol binario completo, y solo necesita mantener una raíz de Merkle y el valor hash del subárbol en el otro lado de la ruta del nodo que se va a verificar, y la complejidad temporal de la verificación es el nivel O(logN) (logN se establece de forma predeterminada en log2(N) si el número no está basado). Aunque el proceso de validación se ha simplificado enormemente, la cantidad de datos en el proceso de validación generalmente ha aumentado con el aumento de datos. Con el fin de resolver el problema de aumentar la cantidad de verificación, se propone otro método de verificación, Verkle Tree, en esta etapa. Además de almacenar valor, cada nodo en el Árbol Verkle también vendrá con un Compromiso Vectorial, a través del valor del nodo original y esta prueba de compromiso, puede verificar rápidamente la autenticidad de los datos, sin llamar al valor de otros nodos hermanos, lo que hace que el número de cálculos para cada verificación solo esté relacionado con la profundidad del Árbol Verkle, que es una constante fija, lo que acelera enormemente la velocidad de verificación. Sin embargo, el cálculo de Vector Commitment requiere la participación de todos los nodos hermanos en la misma capa, lo que aumenta en gran medida el costo de escribir y cambiar datos. Sin embargo, para los datos históricos, que se almacenan permanentemente y no se pueden manipular, Verkle Tree es extremadamente adecuado. Además, también hay variantes del Árbol de Merkle y el Árbol de Verkle en forma de K-ary, y su mecanismo de implementación específico es similar, pero se cambia el número de subárboles debajo de cada nodo, y la comparación de su rendimiento específico se puede ver en la siguiente tabla.
Comparación de los métodos de verificación de datos y el rendimiento del tiempo, fuente de la imagen: Verkle Trees
3.4 Middleware DA genérico
La continua expansión de la ecología blockchain ha provocado un aumento en el número de cadenas públicas. Debido a las ventajas y la insustituibilidad de cada cadena pública en sus respectivos campos, es casi imposible que la cadena pública de capa 1 se unifique en un corto período de tiempo. Sin embargo, con el desarrollo de DeFi y los problemas de los CEX, la demanda de activos comerciales descentralizados entre cadenas también está creciendo. Como resultado, el almacenamiento de datos multicadena de capa DA, que puede eliminar los problemas de seguridad en los intercambios de datos entre cadenas, ha recibido cada vez más atención. Sin embargo, para aceptar datos históricos de diferentes cadenas públicas, es necesario que la capa DA proporcione un protocolo descentralizado para el almacenamiento estandarizado y la verificación de flujos de datos, como kvye, un middleware de almacenamiento basado en Arweave, que toma la iniciativa de capturar datos de la cadena y puede almacenar todos los datos de la cadena en una forma estándar en Arweave para minimizar las diferencias en el proceso de transmisión de datos. En términos relativos, Layer2, que se especializa en proporcionar almacenamiento de datos de capa DA para una determinada cadena pública, interactúa con los datos a través de nodos de intercambio internos, lo que reduce el costo de la interacción y mejora la seguridad, pero tiene limitaciones relativamente grandes y solo puede proporcionar servicios a cadenas públicas específicas.
4. Esquema de almacenamiento de nivel DA
4.1 DA de la cadena principal
Clase 4.1.1 DankSharding
No existe un nombre definido para este tipo de esquema de almacenamiento, y el representante más destacado de este tipo de esquema de almacenamiento es DankSharding en Ethereum, por lo que en este artículo se utiliza el esquema similar a DankSharding. Este tipo de solución utiliza principalmente las dos tecnologías de almacenamiento DA mencionadas anteriormente, Sharding y DAS. En primer lugar, la fragmentación divide los datos en partes apropiadas y, a continuación, permite que cada nodo extraiga un bloque de datos en forma de DAS para su almacenamiento. Si hay suficientes nodos en toda la red, podemos tomar un mayor número de fragmentos N, de modo que la presión de almacenamiento de cada nodo sea solo 1/N del original, para lograr N veces la expansión total del espacio de almacenamiento. Al mismo tiempo, para garantizar que un bloque no se almacene en ningún bloque en el caso extremo, DankSharding codifica los datos utilizando Eraser Code, y solo la mitad de los datos se pueden restaurar por completo. Finalmente, el proceso de validación de datos utiliza la estructura del árbol de Verkle y el compromiso polinómico para lograr una validación rápida.
4.1.2 Almacenamiento a corto plazo
Una de las formas más sencillas de procesar datos para DA en la cadena principal es almacenar datos históricos durante un corto período de tiempo. En esencia, la cadena de bloques desempeña el papel de un libro de contabilidad público, realizando cambios en el contenido del libro mayor bajo la premisa de que toda la red sea testigo, sin necesidad de almacenamiento permanente. Tomando Solana como ejemplo, aunque sus datos históricos están sincronizados con Arweave, los nodos de la red principal solo conservan los datos de la transacción de los últimos dos días. En la cadena pública basada en registros de cuentas, los datos históricos de cada momento conservan el estado final de la cuenta en la cadena de bloques, lo que es suficiente para proporcionar una base de verificación para el siguiente momento de cambio. Para proyectos con necesidades especiales de datos antes de este período de tiempo, pueden almacenarlos en otras cadenas públicas descentralizadas o por terceros de confianza. Esto significa que las personas que tienen necesidades de datos adicionales deben pagar por el almacenamiento de datos históricos.
4.2 DA de terceros
4.2.1 DA dedicado a la cadena principal: EthStorage
DA para la cadena principal:D Lo más importante en la capa A es la seguridad de la transmisión de datos, y lo más seguro en este sentido es el DA de la cadena principal. Sin embargo, el almacenamiento de la cadena principal está limitado por el espacio de almacenamiento y la competencia por los recursos, por lo que cuando la cantidad de datos de red crece rápidamente, si desea lograr un almacenamiento de datos a largo plazo, el DA de terceros será una mejor opción. Si el DA de terceros tiene una mayor compatibilidad con la red principal, puede realizar el intercambio de nodos y tener una mayor seguridad en el proceso de intercambio de datos. Por lo tanto, bajo la premisa de considerar la seguridad, habrá enormes ventajas para el DA dedicado a la cadena principal. Tomando Ethereum como ejemplo, uno de los requisitos básicos del DA dedicado de la cadena principal es que pueda ser compatible con EVM para garantizar la interoperabilidad con los datos y contratos de Ethereum, y los proyectos representativos incluyen Topia, EthStorage, etc. Entre ellos, EthStorage es actualmente el más desarrollado en términos de compatibilidad, porque además de la compatibilidad a nivel de EVM, también configura interfaces relevantes para conectarse con herramientas de desarrollo de Ethereum como Remix y Hardhat para lograr compatibilidad a nivel de herramienta de desarrollo de Ethereum.
EthStorage: EthStorage es una cadena pública independiente de Ethereum, pero los nodos que se ejecutan en ella son superiores a los nodos de Ethereum, es decir, los nodos que ejecutan EthStorage también pueden ejecutar Ethereum al mismo tiempo, y EthStorage se puede operar directamente a través del código de operación en Ethereum. En el modelo de almacenamiento de EthStorage, que solo mantiene una pequeña cantidad de metadatos en la red principal de Ethereum para su indexación, esencialmente crea una base de datos descentralizada para Ethereum. En la solución actual, EthStorage ha implementado la interacción entre la red principal de Ethereum y EthStorage mediante la implementación de un contrato de EthStorage en la red principal de Ethereum. Si Ethereum quiere depositar datos, necesita llamar a la función put() en el contrato, y los parámetros de entrada son dos variables de bytes key, data, donde data representa los datos a depositar, y key es su identificación en la red Ethereum, que puede verse como similar a la existencia de CID en IPFS. Después de que el par (clave, datos) se almacene con éxito en la red EthStorage, EthStorage generará un kvldx y lo devolverá a la red principal de Ethereum, que corresponde a la clave en Ethereum, y este valor corresponde a la dirección de almacenamiento de los datos en EthStorage, por lo que el problema de almacenar una gran cantidad de datos ahora se cambia para almacenar un solo par (clave, kvldx), lo que reduce en gran medida el costo de almacenamiento de la red principal de Ethereum. Si necesita realizar una llamada a los datos almacenados anteriormente, debe usar la función get() en EthStorage e ingresar el parámetro clave, y puede realizar una búsqueda rápida de los datos en EthStorage a través de kvldx almacenados en Ethereum.
Contrato de EthStorage, fuente de la imagen: Kernel Ventures
En cuanto a la forma en que los nodos almacenan los datos, EthStorage toma prestado el patrón de Arweave. En primer lugar, se fragmenta una gran cantidad de pares (k,v) de ETH, y cada fragmentación contiene un número fijo de pares de datos (k,v), de los cuales también hay un límite en el tamaño específico de cada par (k,v), a fin de garantizar la equidad del tamaño de la carga de trabajo en el proceso de almacenamiento de recompensas para los mineros. Para la emisión de recompensas, debe verificar si el nodo almacena datos. En este proceso, EthStorage divide una fragmentación (tamaño de terabyte) en un gran número de fragmentos y mantiene una raíz de Merkle en la red principal de Ethereum para su validación. A continuación, el minero debe proporcionar un nonce para generar las direcciones de varios fragmentos a través de un algoritmo aleatorio con el hash del bloque anterior en EthStorage, y el minero debe proporcionar los datos de estos fragmentos para demostrar que realmente ha almacenado toda la fragmentación. Sin embargo, este nonce no se puede seleccionar arbitrariamente, de lo contrario, el nodo seleccionará un nonce adecuado que solo corresponda a su fragmento almacenado para pasar la verificación, por lo que este nonce debe hacer que el fragmento generado cumpla con los requisitos de la red después de mezclar y hashear, y solo el primer nodo en enviar el nonce y la prueba de acceso aleatorio puede obtener la recompensa.
4.2.2 DA modular: Celestia
Módulo Blockchain: En esta etapa, las transacciones que deben ser ejecutadas por la cadena pública de Capa 1 se dividen principalmente en las siguientes cuatro partes: (1) diseñar la lógica subyacente de la red, seleccionar validadores de cierta manera, escribir bloques y distribuir recompensas a los mantenedores de la red, (2) empaquetar y procesar transacciones y publicar transacciones relacionadas, (3) verificar las transacciones que se colocarán en la cadena y determinar el estado final, y (4) almacenar y mantener datos históricos en la cadena de bloques. Dependiendo de las funciones realizadas, podemos dividir la cadena de bloques en cuatro módulos, a saber, la capa de consenso, la capa de ejecución, la capa de liquidación y la capa de disponibilidad de datos (capa DA).
Diseño modular de la cadena de bloques: Durante mucho tiempo, estos cuatro módulos se han integrado en una cadena pública, y dicha cadena de bloques se denomina cadena de bloques monolítica. Esta forma es más estable y fácil de mantener, pero también ejerce mucha presión sobre una sola cadena pública. En la práctica, estos cuatro módulos se restringen entre sí y compiten por los limitados recursos informáticos y de almacenamiento de la cadena pública. Por ejemplo, el aumento de la velocidad de procesamiento de la capa de procesamiento ejercerá más presión de almacenamiento sobre la capa de disponibilidad de datos, y garantizar la seguridad de la capa de ejecución requerirá mecanismos de autenticación más complejos que ralentizarán el procesamiento de transacciones. Por lo tanto, el desarrollo de cadenas públicas a menudo se enfrenta a compensaciones entre estos cuatro módulos. Con el fin de romper el cuello de botella de mejorar el rendimiento de esta cadena pública, los desarrolladores propusieron un esquema modular de cadena de bloques. La idea central de la cadena de bloques modular es separar uno o varios de los cuatro módulos anteriores y entregarlos a una implementación de cadena pública separada. De esta manera, en la cadena pública, solo puede concentrarse en la mejora de la velocidad de transacción o la capacidad de almacenamiento, y romper las limitaciones anteriores causadas por el efecto de tablero corto en el rendimiento general de la cadena de bloques.
DA modular: El complejo enfoque de separar la capa DA del negocio de la cadena de bloques y entregarla a una sola cadena pública se considera una solución viable para los crecientes datos históricos de la capa 1. La exploración en esta zona aún se encuentra en sus primeras etapas, siendo Celestia el proyecto más representativo en este momento. En cuanto al método de almacenamiento específico, Celestia toma prestado el método de almacenamiento de Danksharding, que consiste en dividir los datos en varios bloques, extraer una parte de ellos por cada nodo para su almacenamiento y verificar la integridad de los datos con el compromiso polinómico KZG. Al mismo tiempo, Celestia utiliza una codificación avanzada de borrado RS 2D para reescribir los datos originales en forma de matriz kk y, finalmente, solo se puede recuperar el 25% de los datos originales. Sin embargo, el almacenamiento de fragmentación de datos esencialmente solo multiplica la presión de almacenamiento de los nodos en toda la red por un factor en el volumen total de datos, y la presión de almacenamiento y el volumen de datos de los nodos aún mantienen un crecimiento lineal. A medida que la capa 1 continúa mejorando la velocidad de las transacciones, la presión de almacenamiento de los nodos aún puede alcanzar un umbral inaceptable algún día. Para resolver este problema, se introdujo el componente IPLD en Celestia para su procesamiento. Para los datos de la matriz kk, no se almacenan directamente en Celestia, sino en la red LL-IPFS, y solo el código CID de esos datos en IPFS se mantiene en el nodo. Cuando un usuario solicita un fragmento de datos históricos, el nodo envía el CID correspondiente al componente IPLD y utiliza el CID para llamar a los datos sin procesar en IPFS. Si existen datos en IPFS, se devuelven a través de componentes y nodos de IPLD y, si no es así, no se pueden devolver.
Cómo se leen los datos de Celestia, fuente de la imagen: Celestia Core
Celestia: Tomando Celestia como ejemplo, podemos echar un vistazo a la aplicación de la cadena de bloques modular para resolver el problema de almacenamiento de Ethereum. El nodo Rollup enviará los datos de la transacción empaquetada y verificada a Celestia y almacenará los datos en Celestia, en este proceso, Celestia solo almacena los datos sin demasiada conciencia, y finalmente de acuerdo con el tamaño del espacio de almacenamiento, el nodo Rollup pagará los tokens tia correspondientes a Celestia como tarifas de almacenamiento. El almacenamiento en Celstia aprovecha DAS y la codificación de borrado similar a la de EIP4844, pero la codificación de borrado polinómica en EIP4844 se actualiza a la codificación de borrado RS 2D y la seguridad del almacenamiento se actualiza nuevamente, lo que requiere solo un 25% de fracturas para restaurar todos los datos de la transacción. Esencialmente, es solo una cadena pública POS de bajo costo, y si desea resolver el problema de almacenamiento de datos históricos de Ethereum, necesita muchos otros módulos específicos para trabajar con Celestia. Por ejemplo, en términos de rollups, uno de los modos de rollup más recomendados en el sitio web oficial de Celestia es Sovereign Rollup. A diferencia de los rollups comunes en la capa 2, solo se calcula y verifica la transacción, es decir, se completa la operación de la capa de ejecución. Sovereign Rollup abarca todo el proceso de ejecución y liquidación, lo que minimiza el procesamiento de transacciones en Celestia, lo que puede maximizar la seguridad del proceso general de transacción cuando la seguridad general de Celestia es más débil que la de Ethereum. En términos de garantizar la seguridad de los datos llamados por Celestia en la red principal de Ethereum, la solución más convencional es el contrato inteligente de puente de gravedad cuántica. Para los datos almacenados en Celestia, genera una raíz de Merkle (prueba de disponibilidad de datos) y permanece en el contrato de puente gravitacional cuántico en la red principal de Ethereum, y cada vez que Ethereum llama a datos históricos en Celestia, compara su resultado hash con Merkle Root, y si lo hace, significa que de hecho son datos históricos verdaderos.
4.2.3 Tienda cadena pública DA
En términos del principio de la tecnología DA de la cadena principal, muchas tecnologías similares a Sharding se toman prestadas de la cadena pública de almacenamiento. Entre los DA de terceros, algunos de ellos han completado algunas tareas de almacenamiento directamente con la ayuda de la cadena pública de almacenamiento, como los datos de transacciones específicas en Celestia que se colocan en la red LL-IPFS. En la solución DA de terceros, además de crear una cadena pública separada para resolver el problema de almacenamiento de la capa 1, una forma más directa es conectar directamente la cadena pública de almacenamiento con la capa 1 para almacenar los enormes datos históricos en la capa 1. En el caso de las cadenas de bloques de alto rendimiento, el volumen de datos históricos es aún mayor, y el tamaño de los datos de la cadena pública de alto rendimiento Solana se acerca a los 4 PG cuando se ejecuta a toda velocidad, lo que está completamente fuera del rango de almacenamiento de los nodos ordinarios. La solución elegida por Solana fue almacenar datos históricos en Arweave, una red de almacenamiento descentralizada, y solo mantener 2 días de datos en los nodos de la red principal para su verificación. Con el fin de garantizar la seguridad del proceso almacenado, Solana y la cadena Arweave han diseñado un protocolo de puente de almacenamiento, Solar Bridge. Los datos verificados por el nodo Solana se sincronizan con Arweave y se devuelve la etiqueta correspondiente. Con esta etiqueta, los nodos de Solana pueden ver los datos históricos de la blockchain de Solana en cualquier momento. En Arweave, no es necesario que los nodos de la red mantengan la coherencia de los datos y la utilicen como umbral para participar en el funcionamiento de la red, sino que adoptan el método de almacenamiento de recompensas. En primer lugar, Arweave no utiliza una estructura de cadena tradicional para construir bloques, sino más bien una estructura de gráficos. En Arweave, un nuevo bloque apunta no solo al bloque anterior, sino también a un bloque de recuperación generado aleatoriamente. La ubicación exacta de un bloque de recuperación está determinada por el hash de su bloque anterior y su altura de bloque, y la ubicación del bloque de recuperación es desconocida hasta que se extrae el bloque anterior. Sin embargo, en el proceso de generación de nuevos bloques, se requiere que los nodos tengan los datos de Recall Block para usar el mecanismo POW para calcular el hash de la dificultad especificada, y solo los mineros que primero calculan el hash que coincide con la dificultad pueden ser recompensados, alentando a los mineros a almacenar la mayor cantidad posible de datos históricos. Al mismo tiempo, cuantas menos personas almacenen un bloque histórico, menos competidores tendrá el nodo a la hora de generar un nonce de dificultad, animando a los mineros a almacenar bloques con menos copias de seguridad en la red. Por último, para garantizar que los nodos puedan almacenar datos de forma permanente en Arweave, se introduce el mecanismo de puntuación de nodos de WildFire. Los nodos tienden a comunicarse con nodos que pueden proporcionar más datos históricos más rápidamente, mientras que los nodos con calificaciones más bajas a menudo no tienen acceso a los últimos datos de bloques y transacciones en primer lugar, por lo que no pueden tomar la delantera en la competencia por POW.
Cómo se construyen los bloques Arweave, fuente de la imagen: Arweave Yellow-Paper
5. Comparación exhaustiva
A continuación, compararemos los pros y los contras de cada uno de los cinco escenarios de almacenamiento en función de las cuatro dimensiones de las métricas de rendimiento de DA.
Seguridad: La mayor fuente de problemas de seguridad de datos es la pérdida causada por la transmisión de datos y la manipulación maliciosa de nodos deshonestos, y en el proceso de cadena cruzada, debido a que la independencia y el estado de las dos cadenas públicas no se comparten, es el área más afectada de la seguridad de la transmisión de datos. Además, la capa 1 que requiere una capa DA dedicada en esta etapa a menudo tiene un grupo de consenso sólido, y su propia seguridad será mucho mayor que la de las cadenas públicas de almacenamiento ordinarias. Por lo tanto, el esquema de la cadena principal DA tiene mayor seguridad. Después de garantizar la seguridad de la transmisión de datos, el siguiente paso es garantizar la seguridad de los datos de las llamadas. Si solo se consideran los datos históricos a corto plazo utilizados para verificar las transacciones, toda la red almacenada temporalmente realiza copias de seguridad de los mismos datos, mientras que el número promedio de copias de seguridad de datos en el esquema similar a DankSharding es solo 1/N del número de nodos en toda la red, una mayor redundancia de datos puede hacer que sea menos probable que los datos se pierdan y también puede proporcionar más muestras de referencia para la verificación. Por lo tanto, el almacenamiento temporal tendrá una mayor seguridad de los datos. En el esquema DA de terceros, el DA dedicado de la cadena principal utiliza nodos comunes con la cadena principal, y los datos se pueden transmitir directamente a través de estos nodos de retransmisión durante el proceso de cadena cruzada, por lo que también tendrá una seguridad relativamente mayor que otras soluciones DA.
Costo de almacenamiento: El mayor contribuyente a los costos de almacenamiento es la cantidad de redundancia de datos. En la solución de almacenamiento a corto plazo de la DA de la cadena principal, la sincronización de datos de los nodos de toda la red se utiliza para el almacenamiento, y los nodos de toda la red deben respaldar cualquier dato recién almacenado, que tiene el costo de almacenamiento más alto. El alto costo de almacenamiento, a su vez, determina que este método solo sea adecuado para el almacenamiento temporal en redes de alto TPS. El segundo es el método de almacenamiento de la fragmentación, incluida la fragmentación en la cadena principal y la fragmentación en DA de terceros. Dado que la cadena principal tiende a tener más nodos, habrá más copias de seguridad para cada bloque, por lo que la solución de fragmentación de la cadena principal tendrá un costo más alto. El costo de almacenamiento más bajo es el DA de la cadena pública de almacenamiento que adopta el método de almacenamiento de recompensa, y la cantidad de redundancia de datos en este esquema a menudo fluctúa en torno a una constante fija. Al mismo tiempo, también se ha introducido un mecanismo de ajuste dinámico en el DA de la cadena pública de almacenamiento para atraer a los nodos a almacenar menos datos de copia de seguridad aumentando las recompensas para garantizar la seguridad de los datos.
Velocidad de lectura de datos: La velocidad de almacenamiento de los datos se ve afectada principalmente por la ubicación de almacenamiento de los datos en el espacio de almacenamiento, la ruta del índice de datos y la distribución de los datos en los nodos. Entre ellos, el lugar donde se almacenan los datos en el nodo tiene un mayor impacto en la velocidad, ya que almacenar los datos en la memoria o SSD puede hacer que la velocidad de lectura varíe decenas de veces. El DA de la cadena pública de almacenamiento adopta principalmente el almacenamiento SSD, porque la carga en la cadena incluye no solo los datos de la capa DA, sino también los datos personales con alta ocupación de memoria, como videos e imágenes cargados por los usuarios. Si la red no utiliza SSD como espacio de almacenamiento, es difícil soportar la enorme presión de almacenamiento y satisfacer las necesidades de almacenamiento a largo plazo. En segundo lugar, en el caso de los DA de terceros y los DA de la cadena principal que utilizan datos de almacenamiento en memoria, el DA de terceros primero debe buscar los datos de índice correspondientes en la cadena principal y, a continuación, transferir los datos del índice al DA de terceros a través de la cadena y devolver los datos a través del puente de almacenamiento. Por el contrario, los DA de la cadena principal pueden consultar datos directamente desde los nodos y, por lo tanto, tienen velocidades de recuperación de datos más rápidas. Por último, dentro del DA de la cadena principal, el método Sharding debe llamar al bloque desde varios nodos y restaurar los datos originales. Como resultado, el almacenamiento a corto plazo es más lento que el almacenamiento a corto plazo sin particionamiento.
Universalidad de la capa DA: La universalidad DA de la cadena principal es cercana a cero, porque es imposible transferir datos de una cadena pública con espacio de almacenamiento insuficiente a otra cadena pública con espacio de almacenamiento insuficiente. En los DA de terceros, la versatilidad de la solución y su compatibilidad con una cadena principal en particular son un par de indicadores contradictorios. Por ejemplo, en un esquema DA específico de la cadena principal diseñado para una determinada cadena principal, se han realizado un gran número de mejoras en el tipo de nodo y el nivel de consenso de la red para adaptarse a la cadena pública, por lo que estas mejoras pueden ser un gran obstáculo a la hora de comunicarse con otras cadenas públicas. Sin embargo, dentro del DA de terceros, en comparación con el DA modular, el DA de cadena pública de almacenamiento funciona mejor en términos de versatilidad. La cadena pública de almacenamiento DA tiene una comunidad de desarrolladores más grande y más instalaciones de expansión, que pueden adaptarse a la situación de las diferentes cadenas públicas. Al mismo tiempo, el DA de la cadena pública de almacenamiento obtiene datos de forma más activa a través de la captura de paquetes, en lugar de recibir pasivamente la información transmitida desde otras cadenas públicas. Por lo tanto, puede codificar datos a su manera, realizar el almacenamiento estandarizado de flujos de datos, facilitar la gestión de la información de datos de diferentes cadenas principales y mejorar la eficiencia del almacenamiento.
Comparación del rendimiento de la solución de almacenamiento, fuente de la imagen: Kernel Ventures
6. resumen
En esta etapa, las cadenas de bloques están experimentando una transición de las criptomonedas a una Web3 más inclusiva, lo que aporta algo más que una gran cantidad de proyectos en la cadena de bloques. Con el fin de dar cabida a tantos proyectos que se ejecutan al mismo tiempo en la Capa 1, al tiempo que se garantiza la experiencia de los proyectos Gamefi y Socialfi, la Capa 1, representada por Ethereum, ha adoptado métodos como Rollups y Blobs para mejorar el TPS. Entre las cadenas de bloques nacientes, el número de cadenas de bloques de alto rendimiento también está creciendo. Pero un TPS más alto significa no solo un mayor rendimiento, sino también una mayor presión de almacenamiento en la red. Para los datos históricos masivos, en esta etapa se propone una variedad de métodos de DA basados en la cadena principal y terceros para adaptarse al crecimiento de la presión de almacenamiento en la cadena. Cada método de mejora tiene sus pros y sus contras, y tiene una aplicabilidad diferente en diferentes contextos.
Las cadenas de bloques basadas en pagos tienen requisitos extremadamente altos para la seguridad de los datos históricos y no persiguen un TPS particularmente alto. Si este tipo de cadena pública aún se encuentra en la etapa preparatoria, puede adoptar un método de almacenamiento similar a DankSharding, que puede lograr un gran aumento en la capacidad de almacenamiento al tiempo que garantiza la seguridad. Sin embargo, si se trata de una cadena pública como Bitcoin, que se ha formado y tiene un gran número de nodos, existe un gran riesgo en realizar mejoras apresuradas en la capa de consenso, por lo que es posible adoptar un DA dedicado para la cadena principal con alta seguridad en el almacenamiento fuera de la cadena para tener en cuenta los problemas de seguridad y almacenamiento. Pero vale la pena señalar que la funcionalidad de blockchain no es estática, sino que cambia constantemente. Por ejemplo, en los primeros días, las funciones de Ethereum se limitaban principalmente a los pagos y al uso de contratos inteligentes para simplemente automatizar activos y transacciones, pero con la continua expansión del territorio blockchain, varios proyectos de Socialfi y Defi se han agregado gradualmente a Ethereum, haciendo que Ethereum se desarrolle en una dirección más integral. Recientemente, con el estallido de la ecología de inscripción en Bitcoin, la tarifa de transacción de la red Bitcoin ha aumentado casi 20 veces desde agosto, lo que refleja que la velocidad de transacción de la red Bitcoin en esta etapa no puede satisfacer la demanda de transacciones, y los comerciantes solo pueden aumentar la tarifa de transacción para que la transacción pueda procesarse lo antes posible. Ahora, la comunidad de Bitcoin necesita hacer un compromiso, ya sea aceptar tarifas altas y velocidades de transacción lentas, o reducir la seguridad de la red para aumentar la velocidad de las transacciones pero ir en contra del propósito original del sistema de pago. Si la comunidad de Bitcoin opta por esta última, también será necesario ajustar el esquema de almacenamiento correspondiente ante la creciente presión de datos.
Las tarifas de transacción de la red principal de Bitcoin fluctúan, fuente de la imagen: OKLINK
Para la cadena pública con funciones integrales, tiene una mayor búsqueda de TPS, y el crecimiento de los datos históricos es aún mayor, y es difícil adaptarse al rápido crecimiento de TPS a largo plazo adoptando una solución similar a DankSharding. Por lo tanto, es más adecuado migrar los datos a un DA de terceros para su almacenamiento. Entre ellos, el DA dedicado a la cadena principal tiene la mayor compatibilidad, y puede ser más ventajoso si solo se considera el problema de almacenamiento de una sola cadena pública. Sin embargo, en la cadena pública de capa 1 actual, la transferencia de activos entre cadenas y la interacción de datos también se han convertido en una búsqueda común de la comunidad blockchain. Si tenemos en cuenta el desarrollo a largo plazo de todo el ecosistema blockchain, almacenar los datos históricos de diferentes cadenas públicas en la misma cadena pública puede eliminar muchos problemas de seguridad en el proceso de intercambio y verificación de datos, por lo que la forma de DA modular y el almacenamiento de DA de cadena pública puede ser una mejor opción. Bajo la premisa de una universalidad cercana, DA modular se enfoca en brindar servicios de la capa DA de la cadena de bloques e introduce datos históricos de gestión de datos de índice más refinados, lo que puede hacer una clasificación razonable de datos de diferentes cadenas públicas y tiene más ventajas en comparación con el almacenamiento de cadenas públicas. Sin embargo, el esquema anterior no tiene en cuenta el costo del ajuste de la capa de consenso en la cadena pública existente, lo cual es extremadamente riesgoso y, una vez que hay un problema, puede conducir a vulnerabilidades sistémicas y hacer que la cadena pública pierda el consenso de la comunidad. Por lo tanto, si se trata de una solución transitoria en el proceso de escalado de blockchain, el almacenamiento temporal más simple de la cadena principal puede ser más adecuado. Finalmente, las discusiones anteriores se basan en el desempeño en el proceso de operación real, pero si el objetivo de una cadena pública es desarrollar su propia ecología y atraer a más partes y participantes del proyecto, también puede preferir proyectos que sean apoyados y financiados por su propia fundación. Por ejemplo, en el caso de un rendimiento general igual o incluso ligeramente inferior al del esquema de almacenamiento de la cadena pública, la comunidad de Ethereum también preferirá EthStorage como proyecto de capa 2 respaldado por la Fundación Ethereum para seguir desarrollando el ecosistema de Ethereum.
Con todo, la creciente complejidad de las cadenas de bloques actuales también trae consigo mayores requisitos de espacio de almacenamiento. Si hay suficientes validadores de capa 1, no es necesario que todos los nodos de toda la red hagan una copia de seguridad de los datos históricos, y solo es necesario hacer una copia de seguridad de un número determinado para garantizar una seguridad relativa. Al mismo tiempo, la división del trabajo de las cadenas públicas es cada vez más detallada, con la Capa 1 responsable del consenso y la ejecución, Rollup responsable del cálculo y la verificación, y luego utilizando una cadena de bloques separada para el almacenamiento de datos. Cada parte puede centrarse en una función sin estar limitada por el rendimiento de las demás. Sin embargo, cuánto o qué porcentaje de nodos almacenar datos históricos para lograr un equilibrio entre seguridad y eficiencia, y cómo garantizar la interoperabilidad segura entre diferentes blockchains, es una pregunta en la que los desarrolladores de blockchain deben pensar y mejorar constantemente. Para los inversores, pueden prestar atención al proyecto principal de DA dedicado a la cadena en Ethereum, porque Ethereum ya tiene suficientes partidarios en esta etapa como para no depender de otras comunidades para expandir su influencia. Más necesidades son mejorar y desarrollar sus propias comunidades y atraer más proyectos para aterrizar en el ecosistema Ethereum. Sin embargo, para las cadenas públicas en la posición de cazadores, como Solana y Aptos, la cadena única en sí no tiene un ecosistema tan completo, por lo que puede estar más inclinada a unir las fuerzas de otras comunidades para construir un enorme ecosistema de cadena cruzada para expandir su influencia. Por lo tanto, para la capa 1 emergente, los DA genéricos de terceros merecen más atención.