Autor: Kernel Ventures Jerry Luo

Editor (es): Kernel Ventures Rose, Kernel Ventures Mandy, Kernel Ventures Joshua

TLDR:

  1. En la etapa inicial de blockchain, mantener la coherencia de los datos se considera extremadamente importante para garantizar la seguridad y la descentralización. Sin embargo, con el desarrollo del ecosistema blockchain, la presión de almacenamiento también está aumentando, lo que lleva a una tendencia a la centralización en la operación de los nodos. Siendo este el caso, el problema de los costos de almacenamiento provocado por el crecimiento de TPS en la Capa 1 debe resolverse urgentemente.

  2. Ante este problema, los desarrolladores deberían proponer una solución que tenga plenamente en cuenta la seguridad, el coste de almacenamiento, la velocidad de lectura de datos y la versatilidad de la capa DA.

  3. En el proceso de resolver este problema, han surgido muchas tecnologías e ideas nuevas, incluidos Sharding, DAS, Verkle Tree, componentes intermedios DA, etc. Intentan optimizar el esquema de almacenamiento de la capa DA reduciendo la redundancia de datos y mejorando la eficiencia de la validación de datos.

  4. Las soluciones DA se clasifican ampliamente en dos tipos desde la perspectiva de la ubicación de almacenamiento de datos: DA de cadena principal y DA de terceros. Los DA de la cadena principal están diseñados desde la perspectiva de la limpieza regular de datos y el almacenamiento de datos divididos para reducir la presión de almacenamiento en los nodos, mientras que los DA de terceros están diseñados para satisfacer las necesidades de almacenamiento que tienen soluciones razonables para grandes cantidades de datos. Como resultado, principalmente compensamos entre compatibilidad de cadena única y compatibilidad de cadenas múltiples en DA de terceros, y proponemos tres tipos de soluciones: DA específicos de la cadena principal, DA modularizados y DA de cadena pública de almacenamiento.

  5. Las cadenas públicas de tipo pago tienen requisitos muy altos para la seguridad de los datos históricos y, por lo tanto, son adecuadas para utilizar la cadena principal como capa DA. Sin embargo, para las cadenas públicas que han estado funcionando durante mucho tiempo y tienen una gran cantidad de mineros ejecutando la red, es más adecuado adoptar un DA de terceros que no implique el cambio de capa de consenso con una seguridad relativamente alta. Para cadenas públicas integrales, es más adecuado utilizar el almacenamiento DA dedicado de la cadena principal con mayor capacidad de datos, menor costo y seguridad. Sin embargo, considerando la demanda de cadenas cruzadas, el DA modular también es una buena opción.

  6. En general, blockchain avanza hacia la reducción de la redundancia de datos, así como de la división del trabajo entre cadenas múltiples.

1. Antecedentes

Blockchain, como libro de contabilidad distribuido, necesita hacer una copia de los datos históricos almacenados en todos los nodos para garantizar que el almacenamiento de datos sea seguro y suficientemente descentralizado. Dado que la corrección de cada cambio de estado está relacionada con el estado anterior (el origen de la transacción), para garantizar la corrección de la transacción, una cadena de bloques debe almacenar todo el historial de transacciones desde la generación de la primera transacción hasta la actual. transacción. Tomando Ethereum como ejemplo, incluso tomando 20 kb por bloque como tamaño promedio, el tamaño total de los datos actuales en Ethereum ha alcanzado los 370 GB. Para un nodo completo, además del bloque en sí, debe registrar el estado y los recibos de las transacciones. Incluyendo esta parte, la cantidad total de almacenamiento de un solo nodo ha superado 1 TB, lo que centraliza gradualmente el funcionamiento del nodo.

Fuente: Etherscan

La reciente actualización de Ethereum en Cancún tiene como objetivo aumentar el TPS de Ethereum a cerca de 1000, momento en el que el crecimiento anual del almacenamiento de Ethereum superará la suma de su almacenamiento actual. En las cadenas públicas de alto rendimiento, la velocidad de transacción de decenas de miles de TPS puede generar cientos de GB de adición de datos por día. La redundancia de datos común de todos los nodos de la red obviamente no puede adaptarse a tal presión de almacenamiento. Entonces, Layer1 debe encontrar una solución adecuada para equilibrar el crecimiento de TPS y el costo de almacenamiento de los nodos.

2. Indicadores de desempeño de DA

2.1 Seguridad

En comparación con una base de datos o una lista vinculada, la inmutabilidad de blockchain proviene del hecho de que sus datos recién generados pueden verificarse mediante datos históricos, por lo que garantizar la seguridad de sus datos históricos es la primera cuestión a considerar en el almacenamiento de la capa DA. Para juzgar la seguridad de los datos de los sistemas blockchain, a menudo analizamos la cantidad redundante de datos y el método de verificación de la disponibilidad de los datos.

  • Número de redundancia: la redundancia de datos en el sistema blockchain desempeña principalmente las siguientes funciones: primero, una mayor redundancia en la red puede proporcionar más muestras como referencia cuando el verificador necesita verificar el estado de la cuenta, lo que puede ayudar al nodo a seleccionar los datos registrados por el la mayoría de los nodos con mayor seguridad. En las bases de datos tradicionales, dado que los datos solo se almacenan en forma de pares clave-valor en un determinado nodo, el cambio de los datos históricos solo se realiza en un único nodo, con un bajo costo del ataque y, en teoría, cuanto mayor sea el Cuanto mayor sea el número de redundancias, mayor será el grado de credibilidad de los datos. En teoría, cuanta más redundancia haya, más fiables serán los datos. Es más, cuantos más nodos haya, es menos probable que se pierdan los datos. Este punto también se puede comparar con los servidores centralizados que almacenan juegos Web2; una vez que se cierren todos los servidores en segundo plano, se producirá un cierre completo del servicio. Pero no es mejor tener más redundancia, porque la redundancia traerá espacio de almacenamiento adicional, lo que traerá demasiada presión de almacenamiento al sistema. Una buena capa DA debe elegir una forma de redundancia adecuada para lograr un equilibrio entre seguridad y eficiencia del almacenamiento.

  • Comprobación de disponibilidad de datos: la cantidad de redundancia puede garantizar suficientes registros de datos en la red, pero se debe verificar la exactitud y la integridad de los datos que se utilizarán. Las cadenas de bloques actuales suelen utilizar algoritmos de compromiso criptográfico como métodos de verificación, que simplemente mantienen un pequeño compromiso criptográfico obtenido mediante la mezcla de datos de transacciones, para que toda la red lo registre. Para probar la autenticidad de los datos históricos, deberíamos intentar recuperar el compromiso con los datos. Si el compromiso de recuperación es idéntico al compromiso original, se supera la verificación. Los algoritmos de verificación criptográfica más utilizados son Merkle Root y Verkle Root. Los algoritmos de verificación de disponibilidad de datos de alta seguridad pueden verificar rápidamente datos históricos con la ayuda de la menor cantidad posible de datos de terceros.

2.2 Costo de almacenamiento

Después de garantizar la seguridad básica, el siguiente objetivo de la capa DA es reducir costos y aumentar la eficiencia. El primer paso es reducir el costo de almacenamiento presentado por el consumo de memoria causado por el almacenamiento de datos por tamaño de unidad, independientemente de la diferencia en el rendimiento del hardware. Hoy en día, las principales formas de reducir los costos de almacenamiento en blockchain son adoptar tecnología de fragmentación y utilizar almacenamiento de recompensa para reducir la cantidad de copias de seguridad de datos manteniendo su seguridad. Sin embargo, no es difícil ver en los métodos de mejora anteriores que existe una relación de juego entre el costo de almacenamiento y la seguridad de los datos, y reducir la ocupación del almacenamiento a menudo significa una disminución de la seguridad. Por lo tanto, una excelente capa DA debe lograr el equilibrio entre el costo de almacenamiento y la seguridad de los datos. Además, si la capa DA es una cadena pública separada, también necesita reducir el costo minimizando el proceso intermedio de intercambio de datos, en el que cada proceso de tránsito debe dejar datos de índice para su posterior recuperación. Por lo tanto, cuanto más largo sea el proceso de llamada, más datos de índice quedarán, lo que aumentará el costo de almacenamiento. Finalmente, el costo de almacenar datos está directamente relacionado con la persistencia de los datos. En general, cuanto mayor es el costo del almacenamiento de datos, más difícil resulta para la cadena pública almacenar datos de forma persistente.

2.3 Velocidad de lectura de datos

Habiendo logrado la reducción de costos, el siguiente paso es la eficiencia, lo que significa la capacidad de recuperar rápidamente datos de la capa DA cuando sea necesario. Este proceso implica dos pasos, el primero es buscar nodos para almacenar datos, principalmente para cadenas públicas que no han logrado la coherencia de los datos en toda la red, si la cadena pública ha logrado la sincronización de datos de los nodos en toda la red, el consumo de tiempo de esto El proceso puede ignorarse. Luego, en los principales sistemas blockchain en esta etapa, incluidos Bitcoin, Ethereum y Filecoin, el método de almacenamiento de los nodos es toda la base de datos Leveldb. En Leveldb, los datos se almacenan de tres formas. Primero, los datos escritos sobre la marcha se almacenan en archivos de tipo Memtable hasta que Memtable esté lleno, luego, el tipo de archivo se cambia de Memtable a Immutable Memtable. Ambos tipos se almacenan en la memoria, pero los archivos Immutable Memtable son de solo lectura. El almacenamiento activo utilizado en la red IPFS almacena datos en esta parte de la red, de modo que se pueden leer rápidamente desde la memoria cuando se llama, pero un nodo promedio solo tiene GB de memoria extraíble, que puede ralentizarse fácilmente, y Cuando un nodo deja de funcionar, los datos de la memoria se pierden permanentemente. Si desea un almacenamiento de datos persistente, debe almacenar los datos en forma de archivos SST en el disco de estado sólido (SSD), pero al leer los datos, primero debe leerlos en la memoria, lo que reduce en gran medida la velocidad. de indexación de datos. Finalmente, para un sistema con fragmentación de almacenamiento, la restauración de datos requiere enviar solicitudes de datos a múltiples nodos y restaurarlos, un proceso que también ralentiza la lectura de datos.

Fuente: manual de Leveldb

2.4 Generalización de la capa DA

Con el desarrollo de DeFi y diversos problemas de CEX, los requisitos de los usuarios para transacciones entre cadenas de activos descentralizados están creciendo. Ya sea que adoptemos el mecanismo de cadena cruzada de bloqueo de hash, notario o cadena de retransmisión, no podemos evitar la determinación simultánea de datos históricos en dos cadenas. La clave de este problema radica en la separación de datos en las dos cadenas, que no pueden comunicarse directamente en diferentes sistemas descentralizados. Por lo tanto, se propone una solución cambiando el método de almacenamiento de la capa DA, que almacena los datos históricos de múltiples cadenas públicas en la misma cadena pública confiable y solo necesita llamar a los datos de esta cadena pública al realizar la verificación. Esto requiere que la capa DA pueda establecer una comunicación segura con diferentes tipos de cadenas públicas, lo que significa que la capa DA tiene una buena versatilidad.

3. Técnicas relativas a DA

3.1 fragmentación

En los sistemas distribuidos tradicionales, un archivo no se almacena de forma completa en un nodo, sino que se dividen los datos originales en varios bloques y se almacenan en cada nodo. Además, el bloque a menudo no solo se almacena en un nodo, sino que deja una copia de seguridad adecuada en otros nodos. En los principales sistemas distribuidos existentes, el número de copias de seguridad generalmente se establece en 2. Este mecanismo de fragmentación puede reducir la presión de almacenamiento de los nodos individuales, expandir la capacidad total del sistema a la suma de la capacidad de almacenamiento de cada nodo y, al mismo tiempo, Al mismo tiempo, garantizar la seguridad del almacenamiento mediante una redundancia de datos adecuada. El esquema de fragmentación adoptado en blockchain es generalmente similar al de los sistemas distribuidos tradicionales, pero existen diferencias en algunos detalles. En primer lugar, dado que los nodos predeterminados en la cadena de bloques no son confiables, el proceso de realizar la fragmentación requiere una cantidad suficientemente grande de copias de seguridad de datos para el posterior juicio sobre la autenticidad de los datos, por lo que la cantidad de copias de seguridad de este nodo debe ser mucho mayor que 2. Idealmente, , en el sistema blockchain que adopta este esquema de almacenamiento, si el número total de nodos de autenticación es T y el número de fragmentos es N, el número de copias de seguridad debe ser T/N. En segundo lugar, en cuanto al proceso de almacenamiento de un bloque, un sistema distribuido tradicional con menos nodos suele tener el modo en que un nodo se adapta a múltiples bloques de datos. En primer lugar, los datos se asignan al anillo hash mediante el algoritmo hash consistente, luego cada nodo almacena un cierto rango de bloques numerados con las asignaciones del anillo hash. Se puede aceptar en el sistema que un solo nodo no tenga una tarea de almacenamiento en un determinado almacenamiento. Mientras está en la cadena de bloques, el bloque de almacenamiento ya no es un evento aleatorio sino inevitable para los nodos. Cada nodo seleccionará aleatoriamente un bloque para su almacenamiento en la cadena de bloques, y el proceso se completará con el resultado del hash de los datos mezclados con la información del nodo hasta el número de segmento de módulo. Suponiendo que cada dato se divide en N bloques, el tamaño de almacenamiento real de cada nodo es solo 1/N. Al configurar N adecuadamente, podemos lograr un equilibrio entre el crecimiento de TPS y la presión sobre el almacenamiento de nodos.

Fuente: Kernel Ventures

3.2 DAS (muestreo de disponibilidad de datos)

La tecnología DAS es una optimización adicional del método de almacenamiento basado en fragmentación. En el proceso de fragmentación, debido al simple almacenamiento aleatorio de nodos, puede ocurrir una pérdida de bloque. En segundo lugar, para los datos después de la fragmentación, también es muy importante cómo confirmar la autenticidad y la integridad de los datos durante el proceso de restauración. En DAS, estos dos problemas se resuelven mediante el código Eraser y el compromiso polinomial KZG.

  • Código borrador: dada la gran cantidad de nodos verificados en Ethereum, es posible que ningún nodo esté almacenando un bloque, aunque sea un evento de probabilidad. Para mitigar la amenaza de falta de almacenamiento, en lugar de dividir los datos sin procesar en bloques, este esquema asigna los datos sin procesar a los coeficientes de un polinomio de enésimo grado, luego toma 2n puntos en el polinomio y permite que los nodos elijan aleatoriamente uno de ellos para almacenar. Para este polinomio de enésimo grado, solo se necesitan n+1 puntos para la reducción y, por lo tanto, los nodos solo deben seleccionar la mitad de los bloques para que podamos realizar la reducción de los datos originales. El código Eraser mejora la seguridad del almacenamiento de datos y la capacidad de la red para recuperar los datos.

  • Compromiso polinómico KZG: un aspecto 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, se pueden utilizar varios métodos de verificación, pero si el código Eraser anterior se introduce para mejorar la seguridad de los datos, entonces es más apropiado utilizar el compromiso polinómico KZG, que puede verificar el contenido de un único bloquear directamente en forma de polinomio, eliminando así la necesidad de reducir el polinomio a datos binarios. El compromiso polinomial de KZG puede verificar directamente el contenido de un solo bloque en forma de polinomios, eliminando así la necesidad de reducir los polinomios a datos binarios, y la forma general de verificación es similar a la de Merkle Tree, pero no requiere requisitos específicos. Datos del nodo de ruta y solo requiere la raíz KZG y los datos del bloque para verificar la autenticidad del bloque.

3.3 Método de validación de datos en DA

La validación de datos garantiza que los datos llamados desde un nodo sean precisos y completos. Para minimizar la cantidad de datos y el costo computacional requerido en el proceso de validación, la capa DA ahora utiliza una estructura de árbol como método de validación principal. La forma más simple es usar Merkle Tree para la verificación, que usa la forma de registros de árbol binario completos. Solo es necesario mantener una raíz de Merkle y se puede verificar el valor hash del subárbol en el otro lado de la ruta del nodo. La complejidad temporal de la verificación es el nivel O(logN) (el logN es log2(N) predeterminado). Aunque el proceso de validación se ha simplificado enormemente, la cantidad de datos para el proceso de validación en general sigue creciendo con el aumento de datos. Para resolver el problema del aumento del volumen de validación, en esta etapa se propone otro método de validación, Verkle Tree, en el que cada nodo en el árbol Verkle no solo almacena el valor sino que también adjunta un compromiso de vector, que puede validar rápidamente la autenticidad del datos utilizando el valor del nodo original y la prueba de compromiso, sin la necesidad de llamar a los valores de otros nodos hermanos, lo que hace que el cálculo de cada validación sea más fácil y rápido. Esto 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 del compromiso vectorial 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 datos como los históricos, que se almacenan permanentemente y no se pueden alterar, y que además sólo se pueden leer pero no escribir, el árbol Verkle es extremadamente adecuado. Además, Merkle Tree y Verkle Tree tienen variantes en forma K-ary. La implementación específica del mecanismo es similar, solo cambie el número de subárboles debajo de cada nodo. La comparación de rendimiento específica se puede ver en la siguiente tabla.

Fuente: árboles Verkle

3.4 Middleware DA genérico

La continua expansión del ecosistema blockchain ha provocado un número cada vez mayor de cadenas públicas. Debido a las ventajas y la irremplazabilidad de cada cadena pública en sus respectivos campos, es imposible que las cadenas públicas de Capa 1 se unifiquen en poco tiempo. Sin embargo, con el desarrollo de DeFi y los problemas de CEX, la demanda de los usuarios de activos comerciales descentralizados entre cadenas está creciendo. Por lo tanto, el almacenamiento de datos multicadena de la capa DA, que puede eliminar los problemas de seguridad en la interacción de datos entre cadenas, ha ganado 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 protocolos descentralizados para el almacenamiento estandarizado y la validación del flujo de datos. Por ejemplo, kvye, un middleware de almacenamiento basado en Arweave, adopta el método de rastrear activamente datos de las cadenas principales y puede almacenar los datos de todas las cadenas en una forma estandarizada en Arweave para minimizar las diferencias en la transmisión de datos. proceso. En comparación, Layer2, que se especializa en proporcionar almacenamiento de datos de capa DA para una determinada cadena pública, lleva a cabo la interacción de datos a través de nodos internos compartidos. Si bien reduce el costo de la interacción y mejora la seguridad, tiene mayores limitaciones y solo puede brindar servicios a cadenas públicas específicas.

4. Métodos de almacenamiento de DA

4.1 Cadena principal DA

4.1.1 Tipo DankSharding

No existe un nombre definitivo para este tipo de esquema de almacenamiento, pero el más destacado es Dank Sharding en Ethereum, por lo que en este documento utilizamos el término Dank Sharding-like para referirnos a este tipo de esquema. Este tipo de esquema utiliza principalmente las dos técnicas de almacenamiento DA mencionadas anteriormente, fragmentación y DAS. En primer lugar, los datos se dividen en una cantidad adecuada de recursos compartidos mediante fragmentación y luego cada nodo extrae un bloque de datos en forma de DAS para su almacenamiento. En el caso de que haya suficientes nodos en toda la red, podemos tomar una cantidad mayor de segmentos N, de modo que la presión de almacenamiento de cada nodo sea solo 1/N de la original, logrando así una expansión N veces del almacenamiento total. espacio. Al mismo tiempo, para evitar el caso extremo de que ningún bloque almacene un bloque, Dank Sharding codifica los datos utilizando Eraser Code, que requiere solo la mitad de los datos para una restauración completa. Por último, los datos se verifican utilizando una estructura de árbol Verkle con compromisos polinomiales para sumas de verificación rápidas.

4.1.2 Almacenamiento temporal

Para el DA de la cadena principal, una de las formas más sencillas de manejar datos es almacenar datos históricos durante un corto período de tiempo. Básicamente, la cadena de bloques actúa como un libro de contabilidad público, donde se realizan cambios en el contenido del libro de contabilidad en presencia de toda la red y no hay necesidad de almacenamiento permanente. En el caso de Solana, por ejemplo, aunque sus datos históricos están sincronizados con Arweave, los principales nodos de la red solo retienen los datos de las transacciones de los últimos dos días. En una cadena pública basada en registros de cuentas, cada momento de los datos históricos conserva el estado final de la cuenta en la cadena de bloques, lo que es suficiente para proporcionar una base para la verificación de los cambios en el momento siguiente. Aquellos que tengan necesidades especiales de datos antes de este momento, pueden almacenarlos en otras cadenas públicas descentralizadas o entregárselos a un tercero de confianza. En otras palabras, aquellos que tengan necesidades adicionales de datos deberán pagar por el almacenamiento de datos históricos.

4.2 DA de terceros

4.2.1 DA para cadena principal: EthStorage

  • DA para cadena principal: lo más importante para la capa DA es la seguridad de la transmisión de datos, y el DA con mayor seguridad es el DA de la cadena principal, pero el almacenamiento de la cadena principal está limitado por el espacio de almacenamiento y la competencia de recursos, por lo que cuando el volumen de datos de la red crece rápidamente, el DA de terceros es una mejor opción si desea realizar el almacenamiento de datos a largo plazo. Si el DA de terceros tiene una mayor compatibilidad con la red principal, puede realizar el intercambio de nodos y el proceso de interacción de datos tendrá mayor seguridad. Por lo tanto, bajo la premisa de considerar la seguridad, un DA dedicado para la cadena principal tendrá una gran ventaja. Tomando Ethereum como ejemplo, uno de los requisitos básicos para un DA dedicado a 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 el DA más compatible en términos de compatibilidad. Los proyectos representativos incluyen Topia, EthStorage, etc. Entre ellos, EthStorage es el mejor desarrollado en términos de compatibilidad, porque además de la compatibilidad con EVM, también ha configurado interfaces relevantes para interactuar con Remix, Hardhat y otras herramientas de desarrollo de Ethereum para lograr la compatibilidad con las herramientas de desarrollo de Ethereum.

  • EthStorage: EthStorage es una cadena pública independiente de Ethereum, pero los nodos que se ejecutan en ella son un supergrupo de nodos de Ethereum, lo que significa que los nodos que ejecutan EthStorage también pueden ejecutar Ethereum al mismo tiempo. Es más, también podemos operar EthStorage directamente a través de códigos de operación en Ethereum. El modelo de almacenamiento de EthStorage retiene solo una pequeña cantidad de metadatos para indexar en la red principal de Ethereum, creando esencialmente una base de datos descentralizada para Ethereum. En la solución actual, EthStorage implementa un contrato EthStorage en el Ethereum principal para realizar la interacción entre el Ethereum principal y EthStorage. Si Ethereum quiere depositar datos, necesita llamar a la función put () en el contrato, y los parámetros de entrada son variables de dos bytes clave, datos, donde los datos representan los datos que se depositarán y la clave es su identidad en el Red Ethereum, que puede considerarse similar a la existencia de CID en IPFS. Después de que el par de datos (clave, datos) se almacene correctamente en la red EthStorage, EthStorage generará un kvldx para devolverlo a la red host de Ethereum, que corresponde a la clave en la red Ethereum, y este valor corresponde a la dirección de almacenamiento de los datos en EthStorage, de modo que el problema original de almacenar una gran cantidad de datos ahora se puede cambiar para almacenar uno solo (clave, kvldx). (clave, kvldx), que reduce en gran medida el costo de almacenamiento de la red principal de Ethereum. Si necesita llamar a los datos previamente almacenados, debe usar la función get() en EthStorage e ingresar el parámetro clave, y luego puede realizar una búsqueda rápida de los datos en EthStorage usando el kvldx almacenado en Ethereum.

Fuente: Kernel Ventures

  • En términos de cómo los nodos almacenan datos, EthStorage aprende del modelo 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 (k,v), de los cuales existe un límite en el tamaño de cada (k,v) par para garantizar la equidad de la carga de trabajo en el proceso de almacenamiento de recompensas para los mineros. Para la emisión de recompensas, es necesario verificar si el nodo almacena datos para empezar. En este proceso, EthStorage dividirá un fragmento (tamaño TB) en muchos fragmentos y mantendrá una raíz de Merkle en la red principal de Ethereum para su verificación. Luego, el minero debe proporcionar un nonce para generar algunos fragmentos mediante un algoritmo aleatorio con el hash del bloque anterior en EthStorage, y el minero debe proporcionar los datos de estos fragmentos para demostrar que ha almacenado todo el fragmento. pero este nonce no se puede elegir arbitrariamente, de lo contrario el nodo elegirá el nonce apropiado correspondiente a los fragmentos almacenados por él y pasará la verificación. Sin embargo, este nonce no se puede elegir al azar; de lo contrario, el nodo elegirá un nonce adecuado que corresponda solo a sus fragmentos almacenados y, por lo tanto, pasará la verificación, por lo que este nonce debe crear los fragmentos generados después de mezclarlos y aplicar hash para que el valor de dificultad cumpla con los requisitos. de la red, y solo el primer nodo que envíe el nonce y la prueba de acceso aleatorio puede obtener la recompensa.

4.2.2 Modularización DA: Celsetia

  • Módulo Blockchain: las transacciones que se realizarán en la cadena pública de Capa 1 se dividen en las siguientes cuatro partes: (1) diseñar la lógica subyacente de la red, seleccionar nodos de validación de una determinada manera, escribir bloques y asignar recompensas para los mantenedores de la red; (2) empaquetar y procesar transacciones y publicar transacciones relacionadas; (3) validar las transacciones que se cargarán en la cadena de bloques y determinar el estado final; (4) almacenar y mantener datos históricos en la cadena de bloques. Según las diferentes funciones realizadas, podemos dividir la blockchain en cuatro módulos, capa de consenso, capa de ejecución, capa de liquidación y capa de disponibilidad de datos (capa DA).

  • Diseño de Blockchain modular: durante mucho tiempo, estos cuatro módulos se han integrado en una única cadena pública, dicha cadena de bloques se denomina cadena de bloques monolítica. Esta forma es más estable y más fácil de mantener, pero también ejerce una tremenda presión sobre la cadena pública única. En la práctica, los cuatro módulos se limitan entre sí y compiten por los limitados recursos computacionales y de almacenamiento de la cadena pública. Por ejemplo, aumentar la velocidad de procesamiento de la capa de procesamiento generará más presión de almacenamiento en la capa de disponibilidad de datos; Garantizar la seguridad de la capa de ejecución requiere un mecanismo de verificación más complejo, pero ralentiza la velocidad del procesamiento de transacciones. Por lo tanto, el desarrollo de una cadena pública a menudo enfrenta un equilibrio entre estos cuatro módulos. Para superar este cuello de botella en la mejora del rendimiento de la cadena pública, los desarrolladores han propuesto una solución blockchain modular. La idea central de la cadena de bloques modular es eliminar uno o varios de los cuatro módulos mencionados anteriormente y entregarlos a una cadena pública separada para su implementación. De esta manera, la cadena pública puede centrarse en la mejora de la velocidad de las transacciones o la capacidad de almacenamiento, rompiendo las limitaciones anteriores en el rendimiento general de la blockchain debido al efecto de placa corta.

  • DA modular: el enfoque complejo de separar la capa DA del negocio blockchain y colocarla en una cadena pública separada se considera una solución viable para los crecientes datos históricos de Layer1. En esta etapa, la exploración en esta área aún se encuentra en una etapa temprana, y el proyecto más representativo es Celestia, que utiliza el método de almacenamiento Sharding, que también divide los datos en múltiples bloques, y cada nodo extrae una parte de ellos para almacenamiento y utiliza el compromiso polinómico KZG para verificar la integridad de los datos. Al mismo tiempo, Celestia utiliza códigos correctivos RS bidimensionales avanzados para reescribir los datos originales en forma de una matriz k*k, lo que finalmente requiere que solo se recupere el 25% de los datos originales. Sin embargo, el almacenamiento de datos divididos básicamente consiste en multiplicar la presión de almacenamiento de los nodos en la red por un factor del volumen total de datos, y la presión de almacenamiento de los nodos sigue creciendo linealmente con el volumen de datos. A medida que la capa 1 continúa mejorando la velocidad de las transacciones, es posible que algún día la presión de almacenamiento en los nodos aún alcance un umbral inaceptable. Para abordar este problema, se introduce un componente IPLD en Celestia. En lugar de almacenar los datos en la matriz k*k directamente en Celestia, los datos se almacenan en la red LL-IPFS, y solo el código CID de los datos se mantiene en el nodo. Cuando un usuario solicita un dato histórico, el nodo envía el CID correspondiente al componente IPLD, que se utiliza para llamar a los datos originales en IPFS. Si los datos existen en IPFS, se devuelven a través del componente IPLD y el nodo. Si no existe, los datos no se pueden devolver.

Fuente: Celestia Núcleo

  • Celestia: Tomando a Celestia como ejemplo, podemos ver la aplicación de blockchain modular para resolver el problema de almacenamiento de Ethereum. El nodo Rollup enviará los datos de transacciones empaquetados y verificados a Celestia y almacenará los datos en Celestia; durante el proceso, Celestia solo almacena. los datos sin tener demasiada percepción. En este proceso, Celestia simplemente almacena los datos sin detectarlos y, al final, de acuerdo con el tamaño del espacio de almacenamiento, el nodo Rollup pagará los tokens tia correspondientes a Celestia como tarifa de almacenamiento. El almacenamiento en Celestia utiliza un DAS y un código de depuración similares a los de EIP4844, pero el código de depuración polinomial en EIP4844 se actualiza para utilizar un código de depuración RS bidimensional, lo que mejora la seguridad del almacenamiento nuevamente, y solo el 25% de las fracciones son necesarios para recuperar todos los datos de la transacción. Es esencialmente una cadena pública de POS con bajos costos de almacenamiento, y si se quiere implementar como una solución al problema de almacenamiento de datos históricos de Ethereum, se necesitan muchos otros módulos específicos para trabajar con Celestia. Por ejemplo, en términos de rollup, uno de los modelos roll-up altamente recomendados por el sitio web oficial de Celestia es Sovereign Rollup, que es diferente del rollup común en Layer2, que solo puede calcular y verificar transacciones, simplemente completando la capa de ejecución, y Incluye todo el proceso de ejecución y liquidación, lo que minimiza la necesidad del proceso de ejecución y liquidación en Celestia. Esto minimiza el procesamiento de transacciones en Celestia, lo que maximiza la seguridad general del proceso de transacción cuando la seguridad general de Celestia es más débil que la de Ethereum. En cuanto a la seguridad de los datos solicitados por Celestia en la red principal de Ethereum, la solución más común es el contrato inteligente Quantum Gravity Bridge. Para los datos almacenados en Celestia, generará un Merkle Root (certificado de disponibilidad de datos) y lo mantendrá en el contrato Quantum Gravity Bridge en la red principal de EtherCenter. Cuando EtherCenter llama a los datos históricos de Celestia cada vez, comparará el resultado del hash con Merkle Root y, si coincide, significa que de hecho son los datos históricos reales.

4.2.3 Cadena de almacenamiento DA

En términos de los principios técnicos de los DA de la cadena principal, muchas técnicas similares a la fragmentación se han tomado prestadas de las cadenas públicas de almacenamiento. En los DA de terceros, algunos de ellos incluso realizan parte de las tareas de almacenamiento directamente con la ayuda de cadenas públicas de almacenamiento; por ejemplo, los datos de transacciones específicas en Celestia se colocan en la red LL-IPFS. En las soluciones de DA de terceros, además de construir una cadena pública separada para resolver el problema de almacenamiento de la Capa1, una forma más directa es conectar directamente la cadena pública de almacenamiento a la Capa1 para almacenar la enorme cantidad de datos históricos en la Capa1. Para la cadena de bloques de alto rendimiento, el volumen de datos históricos es aún mayor. En funcionamiento a máxima velocidad, el volumen de datos de la cadena pública de alto rendimiento Solana es cercano a 4 PG, lo que está completamente más allá del rango de almacenamiento de los nodos ordinarios. Solana elige una solución para almacenar datos históricos en la red de almacenamiento descentralizada Arweave y solo retiene 2 días de datos en los nodos de la red principal para su verificación. Para garantizar la seguridad del proceso de almacenamiento, Solana y la cadena Arweave han diseñado un protocolo de puente de almacenamiento, Solar Bridge, que sincroniza los datos validados de los nodos de Solana a Arweave y devuelve la etiqueta correspondiente, que permite a los nodos de Solana ver los datos históricos de la cadena de bloques de Solana en cualquier momento. El nodo Solana puede ver datos históricos desde cualquier momento en la cadena de bloques Solana. En Arweave, en lugar de exigir que los nodos de la red mantengan la coherencia de los datos como una necesidad para la participación, la red adopta un enfoque de almacenamiento de recompensas. En primer lugar, Arweave no utiliza una estructura de cadena tradicional para construir bloques, sino más bien una estructura gráfica. En Arweave, un nuevo bloque no solo apuntará al bloque anterior, sino que también apuntará aleatoriamente a un bloque de recuperación generado, cuya ubicación exacta está determinada por el resultado hash del bloque anterior y su altura de bloque, y la ubicación de la recuperación. El bloque es desconocido hasta que se extrae el bloque anterior. Sin embargo, en el proceso de generación de nuevos bloques, los nodos deben tener los datos del bloque Recall para usar el mecanismo POW para calcular el hash de la dificultad especificada, y solo el minero que es el primero en calcular el hash que cumple con los requisitos. La dificultad puede ser recompensada, lo que anima a los mineros a almacenar la mayor cantidad de datos históricos posible. Al mismo tiempo, cuantas menos personas almacenen un bloque histórico en particular, menos competidores tendrá un nodo al generar un nonce compatible con la dificultad, lo que alentará a los mineros a almacenar bloques con menos copias de seguridad en la red. Finalmente, para garantizar que los nodos almacenen datos de forma permanente, el mecanismo de puntuación de nodos de WildFire se introduce en Arweave. Los nodos preferirán comunicarse con nodos que puedan proporcionar datos históricos más y más rápido, mientras que los nodos con calificaciones más bajas no podrán obtener los últimos datos de bloques y transacciones la primera vez, por lo que no podrán obtener una ventaja en la competencia POW.

Fuente: Libro Amarillo de Arweave

5. Comparación sintetizada

Compararemos las ventajas y desventajas de cada una de las cinco soluciones de almacenamiento en términos 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 de datos causada por el proceso de transmisión de datos y la manipulación maliciosa de nodos deshonestos, y el proceso entre cadenas es el área de seguridad de transmisión de datos más afectada debido a la independencia de los dos públicos. Las cadenas y el Estado no se comparten. Además, la Capa 1, que requiere una capa DA especializada en esta etapa, a menudo tiene un grupo de consenso fuerte y su seguridad será mucho mayor que la de las cadenas públicas de almacenamiento ordinarias. Por lo tanto, la solución DA de la cadena principal 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. Considerando solo los datos históricos a corto plazo utilizados para verificar la transacción, toda la red respalda los mismos datos en la red de almacenamiento temporal, mientras que el número promedio de copias de seguridad de datos en el esquema tipo DankSharding es solo 1/N del total. número de nodos en toda la red, lo que significa que una mayor redundancia de datos puede hacer que los datos sean menos propensos a perderse y, al mismo tiempo, puede proporcionar más muestras de referencia para su verificación. Por tanto, el almacenamiento temporal tendrá una mayor seguridad de los datos. En el esquema DA de terceros, debido a los nodos públicos utilizados en la cadena principal, los datos se pueden transmitir directamente a través de estos nodos de retransmisión en el proceso de encadenamiento cruzado y, por lo tanto, también tendrá una seguridad relativamente mayor que otros DA. esquemas.

  • Costo de almacenamiento: el factor que tiene el mayor impacto en el costo de almacenamiento es la cantidad de redundancia en los datos. En el esquema de almacenamiento a corto plazo de la cadena principal DA, que utiliza la forma de sincronización de datos de nodos en toda la red para el almacenamiento, es necesario hacer una copia de seguridad de cualquier dato recién almacenado en los nodos de toda la red, que tienen el costo de almacenamiento más alto. El alto costo del almacenamiento, a su vez, determina que en una red con alto TPS, este enfoque solo sea adecuado para el almacenamiento temporal. El siguiente es el método de almacenamiento de fragmentación, que incluye fragmentación en la cadena principal y fragmentación en DA de terceros. Debido a que la cadena principal a menudo tiene más nodos y, por lo tanto, el bloque correspondiente tendrá más copias de seguridad, el esquema de fragmentación de la cadena principal tendrá un costo mayor. El costo de almacenamiento más bajo se encuentra en la cadena pública de almacenamiento DA que adopta el método de almacenamiento de recompensa, y la cantidad de redundancia de datos en este esquema tiende a fluctuar alrededor de una constante fija. Al mismo tiempo, la cadena pública de almacenamiento DA también introduce un mecanismo de ajuste dinámico, que atrae a los nodos para que almacenen menos datos de respaldo al aumentar la recompensa para garantizar la seguridad de los datos.

  • Velocidad de lectura de datos: la velocidad de almacenamiento de datos se ve afectada principalmente por el lugar donde se almacenan los datos en el espacio de almacenamiento, la ruta del índice de datos y la distribución de los datos entre los nodos. Entre ellos, el lugar donde se almacenan los datos en los nodos tiene un mayor impacto en la velocidad, porque almacenar los datos en la memoria o SSD puede generar una diferencia de decenas de veces en la velocidad de lectura. Los DA de cadena pública de almacenamiento utilizan principalmente almacenamiento SSD porque la carga en esa cadena incluye no solo datos de la capa DA sino también datos personales que consumen mucha memoria, como videos e imágenes cargados por los usuarios. Si la red no utiliza SSD como espacio de almacenamiento, será difícil soportar la enorme presión del almacenamiento y satisfacer la demanda de almacenamiento a largo plazo. En segundo lugar, para los DA de terceros y los DA de la cadena principal que utilizan el estado de la memoria para almacenar datos, los DA de terceros primero deben buscar los datos indexados correspondientes en la cadena principal y luego transferir los datos indexados a través de la cadena a terceros. DA de terceros y devolver los datos a través del puente de almacenamiento. Por el contrario, el DA de la cadena principal puede consultar datos directamente desde los nodos y, por lo tanto, tiene una velocidad de recuperación de datos más rápida. Finalmente, dentro del DA de la cadena principal, el enfoque de fragmentación requiere llamar a bloques desde múltiples nodos y restaurar los datos originales. Por lo tanto, es más lento que el método de almacenamiento a corto plazo sin fragmentación.

  • Universalidad de la capa DA: la universalidad de DA de la cadena principal es cercana a cero porque no es posible 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 generalidad de una solución y su compatibilidad con una cadena principal en particular son métricas contradictorias. Por ejemplo, en el caso de una solución DA específica de la cadena principal diseñada para una cadena principal en particular, se han realizado muchas mejoras a nivel de tipos de nodos y consenso de red para adaptarse a esa cadena pública en particular y, por lo tanto, estas mejoras pueden actuar como un gran obstáculo a la hora de comunicarse con otras cadenas públicas. Dentro de los DA de terceros, los DA de cadena pública de almacenamiento funcionan mejor en términos de generalización que los DA modulares. Los DA de cadena pública de almacenamiento tienen una comunidad de desarrolladores más grande y más instalaciones de expansión para adaptarse a diferentes cadenas públicas. Al mismo tiempo, la cadena pública de almacenamiento DA puede obtener datos de manera más activa mediante la captura de paquetes en lugar de recibir pasivamente información transmitida desde otras cadenas públicas. Por lo tanto, puede codificar los datos a su manera, lograr un almacenamiento estandarizado del flujo de datos, facilitar la gestión de la información de datos de diferentes cadenas principales y mejorar la eficiencia del almacenamiento.

Fuente: Kernel Ventures

6. Conclusión

Blockchain está pasando por el proceso de conversión de Crypto a Web3, lo que trae consigo una gran cantidad de proyectos en blockchain, pero también problemas de almacenamiento de datos. Para dar cabida a la operación simultánea de tantos proyectos en Layer1 y garantizar la experiencia de los proyectos Gamefi y Socialfi, Layer1 representada por Ethereum ha adoptado Rollup y Blobs para mejorar el TPS. Es más, el número de cadenas de bloques de alto rendimiento en la cadena de bloques recién nacida también está creciendo. Pero un TPS más alto no sólo significa un mayor rendimiento sino también una mayor presión de almacenamiento en la red. Para la enorme cantidad de datos históricos, en esta etapa se proponen múltiples enfoques de DA, tanto de la cadena principal como de terceros, para adaptarse al crecimiento de la presión de almacenamiento en la cadena. Las mejoras tienen sus ventajas y desventajas y tienen diferente aplicabilidad en diferentes contextos. En el caso de las cadenas de bloques basadas en pagos, que tienen requisitos muy altos para la seguridad de los datos históricos y no persiguen un TPS particularmente alto, aún se encuentran en la etapa preparatoria, pueden adoptar un método de almacenamiento similar a DankSharding, que puede garantizar la seguridad. y al mismo tiempo realizar un enorme aumento en la capacidad de almacenamiento. Sin embargo, si se trata de una cadena pública como Bitcoin, que ya se ha formado y tiene una gran cantidad de nodos, existe un gran riesgo de mejorar precipitadamente la capa de consenso, de modo que pueda adoptar un DA especial para la cadena principal con mayor seguridad. en el almacenamiento fuera de la cadena para equilibrar los problemas de seguridad y almacenamiento. Sin embargo, cabe señalar que la función de blockchain está cambiando con el tiempo. Por ejemplo, en los primeros días, la funcionalidad de Ethereum se limitaba a pagos y al simple procesamiento automatizado de activos y transacciones mediante contratos inteligentes, pero a medida que el panorama blockchain se ha expandido, se han agregado varios proyectos Socialfi y Defi a Ethereum, empujándolo a un nivel más alto. dirección integral. Con la reciente explosión del ecosistema de inscripción en Bitcoin, las tarifas de transacción en la red Bitcoin se han multiplicado por casi 20 desde agosto, lo que refleja el hecho de que las velocidades de transacción de la red no son capaces de satisfacer la demanda de transacciones en esta etapa. Los comerciantes tienen que aumentar las tarifas para que las transacciones se procesen lo más rápido posible. Ahora, la comunidad Bitcoin necesita hacer un equilibrio entre aceptar tarifas altas y una velocidad de transacción lenta o reducir la seguridad de la red para aumentar la velocidad de las transacciones y al mismo tiempo frustrar el propósito del sistema de pago en primer lugar. Si la comunidad Bitcoin elige lo último, entonces la solución de almacenamiento deberá ajustarse ante la creciente presión de los datos.

Fuente: OK ENLACE

En cuanto a las cadenas públicas con funciones integrales, su búsqueda de TPS es mayor. Con el enorme crecimiento de los datos históricos, es difícil adaptarse al rápido crecimiento de TPS a largo plazo mediante la adopción de soluciones similares a DankSharding. Por lo tanto, una forma más adecuada es migrar los datos a un DA de terceros para su almacenamiento. Entre ellos, los DA específicos de la cadena principal tienen la mayor compatibilidad y pueden ser más ventajosos si solo se considera el almacenamiento de una única cadena pública. Sin embargo, hoy en día, cuando las cadenas públicas de Capa 1 están floreciendo, 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 consideramos el desarrollo a largo plazo de todo el ecosistema blockchain, almacenar 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 validación de datos, por lo que el DA modularizado y la forma de almacenar datos públicos Los DA en cadena pueden ser una mejor opción. Bajo la premisa de una generalidad estrecha, el DA modular se centra en proporcionar servicios de capa de DA de cadena de bloques, introduce datos de índice más refinados para gestionar datos históricos y puede realizar una categorización razonable de diferentes datos de cadenas públicas, lo que tiene más ventajas en comparación con las cadenas públicas de almacenamiento. Sin embargo, la propuesta anterior no considera el costo del ajuste de la capa de consenso en la cadena pública existente, lo cual es extremadamente arriesgado. Una pequeña laguna sistemática puede hacer que la cadena pública pierda el consenso de la comunidad. Por lo tanto, si se trata de una solución de transición en el proceso de transformación de blockchain, el almacenamiento temporal en la cadena principal puede ser más apropiado. Finalmente, todas las discusiones anteriores se basan en el desempeño durante la operación real, pero si el objetivo de una determinada cadena pública es desarrollar su ecología y atraer más partes y participantes del proyecto, también puede tender a favorecer proyectos que sean apoyados y financiados por su fundamento. Por ejemplo, si el rendimiento general es igual o incluso ligeramente inferior al de la solución de almacenamiento en cadena pública, la comunidad Ethereum también favorecerá a EthStorage, que es un proyecto Layer2 respaldado por la Fundación Ethereum, para continuar desarrollando el ecosistema Ethereum. .

Con todo, la creciente complejidad de las cadenas de bloques actuales trae consigo una mayor necesidad de espacio de almacenamiento. Con suficientes nodos de validación de Capa 1, no es necesario realizar una copia de seguridad de los datos históricos en todos los nodos de toda la red, pero puede garantizar la seguridad después de un cierto umbral. Al mismo tiempo, la división del trabajo de la cadena pública se ha vuelto cada vez más detallada: Layer1 es responsable del consenso y ejecución, Rollup es responsable del cálculo y verificación, y luego se utiliza una cadena de bloques separada para el almacenamiento de datos. Cada parte puede centrarse en una determinada función sin estar limitada por el desempeño de las otras partes. Sin embargo, la cantidad específica de almacenamiento o la proporción de nodos permitidos para almacenar datos históricos para lograr un equilibrio entre seguridad y eficiencia, así como cómo garantizar la interoperabilidad segura entre diferentes blockchains, es un problema que los desarrolladores de blockchain deben considerar. Los inversores pueden prestar atención al proyecto DA específico de la cadena principal en Ethereum, porque Ethereum ya tiene suficientes partidarios en esta etapa, sin la necesidad de utilizar el poder de otras comunidades para expandir su influencia. Es más importante mejorar y desarrollar su comunidad para atraer más proyectos al ecosistema Ethereum. Sin embargo, para las cadenas públicas que se están poniendo al día, como Solana y Aptos, la cadena única en sí no tiene un ecosistema tan perfecto, por lo que es posible que prefieran unir fuerzas con otras comunidades para construir un gran ecosistema entre cadenas para expandir su influencia. . Por lo tanto, para la capa 1 emergente, un DA de terceros de propósito general merece más atención.

Kernel Ventures es un fondo de capital de riesgo criptográfico impulsado por una comunidad de investigación y desarrollo con más de 70 inversiones en etapas iniciales, que se centra en infraestructura, middleware, dApps, especialmente ZK, Rollup, DEX, Modular Blockchain y verticales que incorporarán a los próximos mil millones de usuarios en criptografía. como abstracción de cuentas, disponibilidad de datos, escalabilidad, etc. Durante los últimos siete años, nos hemos comprometido a apoyar el crecimiento de las comunidades de desarrollo centrales y las asociaciones universitarias de blockchain en todo el mundo.

Referencia

  1. Celestia: El mar estrellado de la blockchain modular: https://foresightnews.pro/article/detail/15497

  2. Uso de DHT y trabajo futuro: https://github.com/celestiaorg/celestia-node/issues/11

  3. Celestia-core: https://github.com/celestiaorg/celestia-core

  4. Laboratorios Solana: https://github.com/solana-labs/solana?source=post_page-----cf47a61a9274------------------------ --------

  5. Anuncio del Puente SOLAR: https://medium.com/solana-labs/annunciando-the-solar-bridge-c90718a49fa2

  6. manual de niveldb: https://leveldb-handbook.readthedocs.io/zh/latest/sstable.html

  7. Kuszmaul J. Verkle árboles[J]. Árboles Verkle, 2019, 1: 1.: https://math.mit.edu/research/highschool/primes/materials/2018/Kuszmaul.pdf

  8. Red Arweave: https://www.arweave.org/

  9. Libro amarillo de Arweave: https://www.arweave.org/Yellow-paper.pdf