Kernel Ventures: disponibilidad de datos y diseño de capas de datos históricos

IntermedioJan 11, 2024
Este artículo explora e interpreta los indicadores de rendimiento de DA, las tecnologías relacionadas con DA y las soluciones de almacenamiento de capa de DA.
Kernel Ventures: disponibilidad de datos y diseño de capas de datos históricos
  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 y 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 usar en 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

Como libro de contabilidad distribuido, blockchain necesita almacenar datos históricos en todos los nodos para garantizar la seguridad y una descentralización suficiente del almacenamiento de datos. Dado que la exactitud de cada cambio de estado está relacionada con el estado anterior (fuente de la transacción), para garantizar la exactitud de las transacciones, una cadena de bloques debe, en principio, almacenar todos los registros históricos desde la primera transacción hasta la transacción actual. Tomando Ethereum como ejemplo, incluso si se estima que el tamaño promedio de bloque es de 20 kb, el tamaño total actual de los bloques de Ethereum ha alcanzado los 370 GB. Además del bloque en sí, un nodo completo también necesita registrar el estado y los recibos de las transacciones. Contando esta parte, la capacidad total de almacenamiento de un único nodo ha superado el 1 TB, lo que concentra la operación del nodo en unas pocas personas.

Última altura del bloque de Ethereum, fuente de la imagen: Etherscan

2. Indicadores de desempeño de la AD

2.1 Seguridad

En comparación con las estructuras de almacenamiento de bases de datos o listas vinculadas, la no comparabilidad de blockchain proviene de la capacidad de verificar datos recién generados a través de datos históricos. Por lo tanto, garantizar la seguridad de los datos históricos es la primera cuestión a considerar en el almacenamiento de la capa DA. Al juzgar la seguridad de los datos de los sistemas blockchain, a menudo la analizamos a partir de la cantidad de redundancia de datos y el método de verificación de la disponibilidad de los datos.

  1. Cantidad de redundancia: con respecto a la redundancia de datos en el sistema blockchain, puede desempeñar principalmente las siguientes funciones: Primero, si la cantidad de redundancias en la red es mayor, cuando el verificador necesita ver el estado de la cuenta en un determinado bloque histórico para verificar Cuando se verifica una transacción, se 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, dado que los datos solo se almacenan en forma de pares clave-valor en un determinado nodo, los cambios en los datos históricos solo se pueden realizar en un único nodo y el costo del ataque es extremadamente bajo. En teoría, cuanto mayor sea el número de despidos, menos probable será que se obtengan datos. Cuanto mayor sea el grado de credibilidad. Al mismo tiempo, cuantos más nodos se almacenen, es menos probable que se pierdan los datos. Esto también se puede comparar con el servidor centralizado que almacena juegos Web2. Una vez que se cierren todos los servidores backend, el servidor se apagará por completo. Sin embargo, cuanto más, mejor, porque cada pieza de redundancia aportará espacio de almacenamiento adicional. Una redundancia excesiva de datos generará una presión de almacenamiento excesiva en el sistema. Una buena capa DA debe elegir una adecuada. El enfoque redundante equilibra la seguridad y la eficiencia del almacenamiento.
  2. Verificación de la disponibilidad de datos: el número de redundancias garantiza que haya suficientes registros de datos en la red, pero se debe verificar la exactitud e integridad de los datos que se utilizarán. El método de verificación comúnmente utilizado en la cadena de bloques actual es el algoritmo de compromiso criptográfico, que retiene un pequeño compromiso criptográfico para que lo registre toda la red. Este compromiso se obtiene mezclando datos de transacciones. Cuando desee probar la autenticidad de un determinado dato histórico, debe restaurar el compromiso criptográfico a través de los datos y verificar si el compromiso criptográfico obtenido por esta restauración es consistente con los registros de toda la red. Si es consistente, se pasa la verificación. Los algoritmos de verificación de criptografía más utilizados incluyen Verkle Root y Verkle Root. El algoritmo de verificación de disponibilidad de datos de alta seguridad requiere solo una pequeña cantidad de datos de verificación y puede verificar rápidamente datos históricos.

2.2 Costo de almacenamiento

Bajo la premisa de garantizar la seguridad básica, el siguiente objetivo principal que debe alcanzar la capa DA es reducir los costos y aumentar la eficiencia. El primero es reducir los costos de almacenamiento, independientemente de las diferencias de rendimiento del hardware, es decir, reducir el uso de memoria causado por el almacenamiento de datos de tamaño unitario. En esta etapa, las principales formas de reducir los costos de almacenamiento en blockchain son adoptar tecnología de fragmentación y utilizar almacenamiento basado en recompensas para garantizar que los datos se almacenen de manera efectiva y reducir la cantidad de copias de seguridad de los datos. 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. Reducir la ocupación del almacenamiento a menudo significa una disminución de la seguridad. Por lo tanto, una excelente capa DA debe lograr un equilibrio entre el costo de almacenamiento y la seguridad de los datos. Además, si la capa DA es una cadena pública separada, debe reducir el costo minimizando el proceso intermedio de intercambio de datos. En cada proceso de transferencia, los datos del índice deben dejarse para llamadas de consulta posteriores. Por lo tanto, 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 términos generales, cuanto mayor sea el costo de almacenamiento de datos, más difícil será para la cadena pública almacenar datos de forma persistente.

2.3 Velocidad de lectura de datos

Después de lograr la reducción de costos, el siguiente paso es aumentar la eficiencia, que es la capacidad de extraer rápidamente datos de la capa DA cuando es necesario utilizarlos. Este proceso implica dos pasos. El primero es buscar nodos que almacenen datos. Este proceso es principalmente para cadenas públicas que no han logrado la coherencia de los datos en toda la red. Si la cadena pública logra la sincronización de datos para los nodos en toda la red, esto puede ignorarse. El consumo de tiempo de un proceso. En segundo lugar, en los principales sistemas blockchain actuales, 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 formas. Primero, los datos escritos inmediatamente se almacenarán en archivos tipo Memtable. Cuando el almacenamiento de Memtable esté lleno, el tipo de archivo cambiará de Memtable a Immutable Memtable. Ambos tipos de archivos se almacenan en la memoria, pero los archivos Immutable Memtable ya no se pueden cambiar, solo se pueden leer datos de ellos. El almacenamiento en caliente utilizado en la red IPFS almacena datos en esta parte. Cuando se llama, se puede leer rápidamente desde la memoria. Sin embargo, la memoria móvil de un nodo normal suele tener un nivel de GB y es fácil escribir lentamente. Cuando un nodo falla u ocurre otra situación anormal, los datos en la memoria se perderán permanentemente. Si desea que los datos se almacenen de forma persistente, debe almacenarlos en forma de archivo SST en una unidad de estado sólido (SSD). Sin embargo, al leer datos, primero debe leerlos en la memoria, lo que reduce en gran medida la velocidad de indexación de datos. Finalmente, para los sistemas que utilizan almacenamiento compartido, la restauración de datos requiere enviar solicitudes de datos a múltiples nodos y restaurarlos. Este proceso también reducirá la velocidad de lectura de datos.

Método de almacenamiento de datos de Leveldb, fuente de la imagen: manual de Leveldb

2.4 Generalización de DA

Con el desarrollo de DeFi y varios problemas con CEX, los requisitos de los usuarios para transacciones entre cadenas de activos descentralizados también están creciendo. Independientemente del mecanismo entre cadenas de bloqueo de hash, notario público o cadena de retransmisión, no se puede evitar la determinación simultánea de datos históricos en ambas cadenas. La clave 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 método de almacenamiento de la capa DA, que no solo almacena los datos históricos de múltiples cadenas públicas en la misma cadena pública confiable, sino que solo necesita llamar a los datos de esta cadena pública durante la verificación. Poder. Esto requiere que la capa DA pueda establecer métodos de comunicación seguros 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

  1. En un sistema distribuido tradicional, un archivo no se almacena en forma completa en un determinado nodo. En cambio, los datos originales se dividen en varios bloques y se almacena un bloque en cada nodo. Los bloques a menudo no se almacenan en un solo nodo, sino que dejan copias de seguridad adecuadas en otros nodos. En los sistemas distribuidos convencionales existentes, esta cantidad de copias de seguridad generalmente se establece en 2. Este mecanismo de fragmentación puede reducir la presión de almacenamiento de un solo nodo, 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, pero los detalles específicos serán diferentes. En primer lugar, debido a que cada nodo en la cadena de bloques no es confiable de manera predeterminada, el proceso de implementación de Sharding requiere una cantidad de respaldo de datos lo suficientemente grande para un posterior juicio sobre la autenticidad de los datos, por lo que el número de respaldos para este nodo debe ser mucho mayor que 2. Idealmente, en un sistema blockchain que utiliza este esquema de almacenamiento, si el número total de nodos de verificación 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 proceso de almacenamiento del Bloque. Hay menos nodos en los sistemas distribuidos tradicionales, por lo que un nodo suele adaptarse a múltiples bloques de datos. Primero, los datos se asignan al anillo hash a través de un algoritmo hash consistente, y luego cada nodo almacena bloques de datos numerados en un cierto rango y puede aceptar que un nodo no asigne tareas de almacenamiento durante un determinado almacenamiento. En la cadena de bloques, si a cada nodo se le asigna un bloque ya no es un evento aleatorio sino un evento inevitable. Cada nodo seleccionará aleatoriamente un bloque para almacenamiento. Este proceso combina los datos originales con el bloque y la información del nodo. El resultado del hash de los datos se completa tomando el módulo del número de fragmentos. Suponiendo que cada dato se divide en N bloques, el tamaño de almacenamiento real de cada nodo es solo 1/N del original. Al configurar N adecuadamente, se puede lograr un equilibrio entre el TPS creciente y la presión de almacenamiento del nodo.

Método de almacenamiento de 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 una mayor optimización de los métodos de almacenamiento Sharding. Durante el proceso de fragmentación, debido al simple almacenamiento aleatorio de nodos, es posible que se pierda un determinado bloque. En segundo lugar, en el caso de datos fragmentados, también es muy importante confirmar la autenticidad e 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.

  1. Código de borrador: considerando la gran cantidad de nodos de verificación en Ethereum, la probabilidad de que un determinado bloque no sea almacenado por ningún nodo es casi 0, pero en teoría todavía existe la posibilidad de que ocurra una situación tan extrema. Para mitigar esta posible amenaza de pérdida de almacenamiento, según este esquema, los datos originales a menudo no se dividen directamente en Bloques para su almacenamiento. En cambio, los datos originales se asignan primero a los coeficientes de un polinomio de orden n y luego se toma 2n del polinomio. puntos y deje que el nodo seleccione aleatoriamente uno de ellos para su almacenamiento. Para este polinomio de orden n, solo se necesitan n+1 puntos para restaurarlo. Por lo tanto, los nodos solo necesitan seleccionar la mitad de los bloques y podemos restaurar los datos originales. A través del código Eraser, se mejora la seguridad del almacenamiento de datos y la capacidad de recuperación de datos de la red.
  2. 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.

Comparación del rendimiento temporal de los métodos de verificación de datos, fuente de la imagen: Verkle Trees

3.4 Middleware DA genérico

La continua expansión del ecosistema blockchain ha provocado un aumento continuo en el número de cadenas públicas. Debido a las ventajas y la irremplazabilidad de cada cadena pública en sus respectivos campos, es casi imposible que las cadenas públicas de Capa 1 se unifiquen en poco tiempo. Sin embargo, con el desarrollo de DeFi y varios problemas con CEX, los requisitos de los usuarios para activos comerciales descentralizados entre cadenas también están creciendo. Por lo tanto, el almacenamiento de datos multicadena de la capa DA que puede eliminar los problemas de seguridad en las interacciones de datos entre cadenas ha recibido cada vez más atención. Sin embargo, para aceptar datos históricos de diferentes cadenas públicas, la capa DA debe proporcionar un protocolo descentralizado para el almacenamiento estandarizado y la verificación de flujos de datos. Por ejemplo, kvye, un middleware de almacenamiento basado en Arweave, toma activamente datos de la cadena y todos los datos de la cadena se almacenan en Arweave en un formato estándar para minimizar las diferencias en el proceso de transmisión de datos. En términos relativos, Layer2, que proporciona específicamente almacenamiento de datos de la capa DA para una determinada cadena pública, interactúa con los datos a través de nodos internos compartidos. Aunque reduce el costo de la interacción y mejora la seguridad, tiene limitaciones relativamente grandes y solo puede proporcionar datos a cadenas públicas específicas que brindan servicios.

4. Métodos de almacenamiento de DA

4.1 Cadena principal DA

4.1.1 DankSharding-como

Este tipo de solución de almacenamiento aún no tiene un nombre definido y el representante más destacado es DankSharding en Ethereum, por lo que este artículo utiliza la clase DankSharding para referirse a este tipo de solución. Este tipo de solución utiliza principalmente las dos tecnologías de almacenamiento DA mencionadas anteriormente, Sharding y DAS. Primero, los datos se dividen en recursos compartidos apropiados mediante fragmentación y luego cada nodo extrae un bloque de datos en forma de DAS para su almacenamiento. Si hay suficientes nodos en toda la red, podemos elegir una cantidad mayor de fragmentos 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 espacio de almacenamiento general. Al mismo tiempo, para evitar la situación extrema de que un determinado bloque no se almacene en ningún bloque, DankSharding codifica los datos utilizando un código de borrador y solo la mitad de los datos se pueden restaurar por completo. El último paso es el proceso de verificación de datos, que utiliza la estructura de árbol de Verkle y el compromiso polinómico para lograr una verificación rápida.

4.1.2 Almacenamiento temporal

Para el DA de la cadena principal, uno de los métodos de procesamiento de datos más simples es almacenar datos históricos a corto plazo. En esencia, la cadena de bloques desempeña el papel de un libro de contabilidad público, lo que permite que toda la red sea testigo de los cambios en el contenido del libro de contabilidad, sin la necesidad de un almacenamiento permanente. Tomando a Solana como ejemplo, aunque sus datos históricos están sincronizados con Arweave, el nodo de la red principal solo retiene los datos de transacciones 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 los cambios en el momento siguiente. Para los proyectos que tienen necesidades especiales de datos antes de este período, pueden almacenarlos ellos mismos en otras cadenas públicas descentralizadas o mediante un tercero de confianza. En otras palabras, aquellos que tienen necesidades de datos adicionales deben pagar por el almacenamiento de datos históricos.

4.2 DA de terceros

4.2.1 DA específico de la cadena principal: EthStorage

  1. DA específico de la cadena principal: lo más importante de la capa DA es la seguridad de la transmisión de datos. El más seguro en este punto es el DA de la cadena principal. Sin embargo, el almacenamiento de la cadena principal está sujeto a limitaciones de espacio de almacenamiento y competencia por los recursos. Por lo tanto, cuando la cantidad de datos de la red crece rápidamente, DA de terceros será una mejor opción si se desea lograr un almacenamiento de datos a largo plazo. Si el DA de terceros tiene una mayor compatibilidad con la red principal, podrá compartir nodos y también tendrá una mayor seguridad durante el proceso de interacción de datos. Por lo tanto, bajo la premisa de considerar la seguridad, el DA específico de la cadena principal tendrá enormes ventajas. Tomando a Ethereum como ejemplo, un requisito básico para DA específico de la cadena principal es ser compatible con EVM y garantizar la interoperabilidad con los datos y contratos de Ethereum. Los proyectos representativos incluyen Topia, EthStorage, etc. Entre ellos, EthStorage es actualmente el mejor desarrollado en términos de compatibilidad, porque además de la compatibilidad a nivel EVM, también ha configurado especialmente interfaces relevantes para conectarse con herramientas de desarrollo de Ethereum como Remix y Hardhat para lograr compatibilidad a nivel. Nivel de herramienta de desarrollo de Ethereum.
  2. 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. A través de los códigos de operación en Ethereum, puede acceder directamente a EthStorage. EthStorage realiza operaciones. En el modelo de almacenamiento de EthStorage, solo se retiene una pequeña cantidad de metadatos en la red principal de Ethereum para su indexación, creando esencialmente una base de datos descentralizada para Ethereum. En la solución actual, EthStorage implementa 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 almacenar datos, debe llamar a la función put() en el contrato. Los parámetros de entrada son clave y datos de variables de dos bytes, donde los datos representan los datos que se almacenarán y la clave es su ubicación en la red Ethereum. La identificación 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 y lo devolverá a la red principal de Ethereum, y corresponderá a la clave en Ethereum. Este valor corresponde a la dirección de almacenamiento de los datos en EthStorage, por lo que originalmente era posible. El problema de necesitar almacenar grandes cantidades de datos ahora se convierte en almacenar un único par (clave, kvldx), lo que reduce en gran medida el costo de almacenamiento de la red principal de Ethereum. . Si necesita llamar a datos almacenados previamente, debe usar la función get() en EthStorage e ingresar el parámetro clave. Puede buscar rápidamente los datos en EthStorage a través de kvldx almacenados en Ethereum.

Contrato EthStorage, fuente de la imagen: Kernel Ventures

  1. En términos de cómo los nodos almacenan datos específicamente, EthStorage se basa en el modelo Arweave. Primero, se fragmenta una gran cantidad de pares (k, v) de ETH. Cada fragmento contiene un número fijo de (k, v) pares de datos. También hay un límite en el tamaño específico de cada par (k, v). De esta manera, se garantiza la equidad de la carga de trabajo posterior para los mineros en el proceso de recompensa de almacenamiento. Para la emisión de recompensas, primero es necesario verificar si el nodo almacena datos. Durante este proceso, EthStorage dividirá un Sharding (tamaño de nivel de TB) en muchos fragmentos y retendrá una raíz Verkle en la red principal de Ethereum para su verificación. Luego, el minero primero debe proporcionar un nonce para generar las direcciones de varios fragmentos mediante un algoritmo aleatorio con el hash del bloque anterior en EthStorage. El minero debe proporcionar los datos de estos fragmentos para demostrar que realmente almacena todo el Sharding. Pero este nonce no se puede seleccionar arbitrariamente; de lo contrario, el nodo seleccionará un nonce adecuado que solo corresponda a su fragmento almacenado y pasará la verificación. Por lo tanto, este nonce debe ser tal que el valor de dificultad del fragmento generado pueda cumplir con los requisitos de la red después de la mezcla y el hash, 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: Celestia

  1. Módulo Blockchain: en esta etapa, las transacciones que debe realizar 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 nodos de verificación de una manera determinada, escribir bloques y asignar recompensas para los mantenedores de la red; (2) Empaquetar y procesar transacciones y publicar transacciones relacionadas; (3) Verificar las transacciones a subir a la cadena y determinar el estado final; (4) Almacenar y mantener datos históricos en la cadena de bloques. Según las diferentes funciones completadas, 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).
  2. Diseño modular de blockchain: durante mucho tiempo, estos cuatro módulos se han integrado en una cadena pública. Una cadena de bloques de este tipo se denomina cadena de bloques única. Esta forma es más estable y más fácil de mantener, pero también ejerce una enorme presión sobre una única cadena pública. Durante el funcionamiento real, estos cuatro módulos se limitan entre sí y compiten por los recursos informáticos y de almacenamiento limitados de la cadena pública. Por ejemplo, aumentar la velocidad de procesamiento de la capa de procesamiento generará una mayor presión de almacenamiento en la capa de disponibilidad de datos; Para garantizar la seguridad de la capa de ejecución, se requiere un mecanismo de verificación más complejo, pero ralentiza la velocidad de procesamiento de las transacciones. Por lo tanto, el desarrollo de cadenas públicas a menudo enfrenta compensaciones entre estos cuatro módulos. Para superar el cuello de botella de 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 separar uno o más de los cuatro módulos mencionados anteriormente e implementarlos en una cadena pública separada. De esta manera, la cadena pública solo puede centrarse en mejorar la velocidad de las transacciones o la capacidad de almacenamiento, rompiendo las limitaciones anteriores sobre el rendimiento general de la cadena de bloques debido a deficiencias.
  3. DA modular: el complejo método de separar la capa DA del negocio blockchain y entregarlo a una cadena pública se considera una solución factible para los crecientes datos históricos de la Capa 1. La exploración en esta área aún se encuentra en las primeras etapas en esta etapa. , y el proyecto más representativo en la actualidad es Celestia. En términos del método de almacenamiento específico, Celestia se basa en el método de almacenamiento de Danksharding, que también divide los datos en múltiples bloques, y cada nodo extrae una parte para el almacenamiento y utiliza el compromiso polinómico KZG para verificar la integridad de los datos. Al mismo tiempo, Celestia utiliza un código de borrado RS bidimensional avanzado; los datos originales se reescriben en forma de matriz ak y solo se puede recuperar el 25% de los datos originales. Sin embargo, el almacenamiento fragmentado de datos esencialmente simplemente multiplica la presión de almacenamiento de todo el nodo de la red por un coeficiente sobre el volumen total de datos. La presión de almacenamiento del nodo y el volumen de datos aún mantienen un crecimiento lineal. A medida que la Capa 1 continúa mejorando su velocidad de transacciones, la presión de almacenamiento de los nodos aún puede alcanzar un nivel crítico inaceptable algún día. Para solucionar este problema, se introduce el componente IPLD en Celestia para su procesamiento. para kLos datos en la matriz k no se almacenan directamente en Celestia, sino en la red LL-IPFS, y solo el código CID de los datos en IPFS se retiene en el nodo. Cuando un usuario solicita un dato histórico, el nodo enviará el CID correspondiente al componente IPLD y los datos originales se llamarán en IPFS a través de este CID. Si los datos existen en IPFS, se devolverán a través del componente y nodo IPLD; si no existe, los datos no se pueden devolver.

Método de lectura de datos de Celestia, fuente de la imagen: Celestia Core

  1. Celestia: Tomando a Celestia como ejemplo, podemos vislumbrar la aplicación de la cadena de bloques 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 este proceso, Celestia sólo almacena los datos sin excesivo conocimiento. Finalmente, el nodo Rollup se enrollará según el tamaño del espacio de almacenamiento. Los tokens tia correspondientes se pagarán a Celestia como tarifas de almacenamiento. El almacenamiento en Celstia utiliza DAS y códigos de borrado similares a los de EIP4844, pero los códigos de borrado polinómicos en EIP4844 se actualizan y se utilizan códigos de borrado RS bidimensionales para actualizar nuevamente la seguridad del almacenamiento. Sólo el 25% de las fracturas pueden restaurar todos los datos de la transacción. Básicamente es solo una cadena pública de POS con bajos costos de almacenamiento. Si se va a utilizar para resolver el problema de almacenamiento de datos históricos de Ethereum, se necesitan muchos otros módulos específicos para cooperar con Celestia. Por ejemplo, en términos de resumen, un modo de resumen muy recomendado en el sitio web oficial de Celestia es Sovereign Rollup. A diferencia del Rollup común en la Capa 2, las transacciones solo se calculan y verifican, es decir, se completan las operaciones de la capa de ejecución. Sovereign Rollup incluye todo el proceso de ejecución y liquidación, lo que minimiza el procesamiento de transacciones en Celestia. Cuando la seguridad general de Celestia es más débil que la de Ethereum, esta medida puede maximizar la seguridad del proceso de transacción general. En términos de garantizar la seguridad de los datos solicitados por Celestia, la red principal de Ethereum, la solución más común en este momento es el contrato inteligente del puente de gravedad cuántica. Para los datos almacenados en Celestia, generará una raíz Verkle (prueba de disponibilidad de datos) y la mantendrá en el contrato del puente de gravedad cuántica de la red principal de Ethereum. Cada vez que Ethereum llama a los datos históricos de Celestia, su resultado hash se comparará con Verkle Root para comparar, y si coincide, significa que de hecho se trata de datos históricos reales.

4.2.3 Cadena de almacenamiento DA

En términos de los principios técnicos de 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 utilizan directamente la cadena pública de almacenamiento para completar algunas tareas de almacenamiento. Por ejemplo, los datos de transacciones específicas en Celestia se colocan en la red LL-IPFS. En la solución DA de terceros, además de construir una cadena pública separada para resolver el problema de almacenamiento de Layer1, una forma más directa es conectar directamente la cadena pública de almacenamiento con Layer1 para almacenar enormes datos históricos en Layer1. Para las cadenas de bloques de alto rendimiento, el volumen de datos históricos es aún mayor. Cuando se ejecuta 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. La solución que eligió Solana es almacenar datos históricos en la red de almacenamiento descentralizada Arweave y solo retener 2 días de datos en los nodos de la red principal para su verificación. Para garantizar la seguridad del proceso almacenado, Solana y Arweave Chain han diseñado especialmente un protocolo puente de almacenamiento, Solar Bridge. Los datos verificados por el nodo Solana se sincronizarán con Arweave y se devolverá la etiqueta correspondiente. Solo a través de esta etiqueta, el nodo Solana puede ver los datos históricos de la cadena de bloques Solana en cualquier momento. En Arweave, no es necesario que todos los nodos de la red mantengan la coherencia de los datos y los utilicen como umbral para participar en las operaciones de la red. En cambio, se adopta el almacenamiento de recompensas. En primer lugar, Arweave no utiliza una estructura de cadena tradicional para construir bloques, sino que es más similar a una estructura gráfica. En Arweave, un nuevo bloque no solo apuntará al bloque anterior, sino que también apuntará aleatoriamente a un bloque generado. La ubicación específica del bloque de recuperación está determinada por el resultado hash de su bloque anterior y la altura de su bloque. La ubicación del bloque de recuperación se desconoce hasta que se extrae el bloque anterior. Sin embargo, en el proceso de generar un nuevo bloque, el nodo necesita tener datos de Recall Block para utilizar el mecanismo POW para calcular el hash de la dificultad especificada. Sólo el primer minero que calcule el hash que cumpla con la dificultad podrá obtener la recompensa, lo que anima a los mineros a almacenar la mayor cantidad posible. información histórica. Al mismo tiempo, cuantas menos personas almacenen un determinado bloque histórico, los nodos tendrán menos competidores a la hora de generar nonces que cumplan con la dificultad, animando a los mineros a almacenar menos bloques en la red. Finalmente, para garantizar que los nodos almacenen datos permanentemente en Arweave, introduce el mecanismo de puntuación de nodos de WildFire. Los nodos tenderán a comunicarse con nodos que pueden proporcionar más datos históricos más rápido, mientras que los nodos con calificaciones más bajas a menudo no pueden obtener los últimos datos de bloques y transacciones lo antes posible y, por lo tanto, no pueden aprovechar la competencia de POW...

Método de construcción de bloques Arweave, fuente de la imagen: Arweave Yellow-Paper

5. Comparación sintetizada

A continuación, compararemos las ventajas y desventajas de las cinco soluciones de almacenamiento según las cuatro dimensiones de los indicadores de rendimiento de DA.

  1. Seguridad: la mayor fuente de problemas de seguridad de los datos es la pérdida causada durante el proceso de transmisión de datos y la manipulación maliciosa por parte de nodos deshonestos. En el proceso entre cadenas, debido a la independencia y el estado de las dos cadenas públicas, la seguridad de la transmisión de datos es una de las áreas más afectadas. Además, la Capa 1, que actualmente requiere una capa DA dedicada, 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 la llamada. Si solo se consideran los datos históricos a corto plazo utilizados para verificar las transacciones, toda la red respalda los mismos datos en la red de almacenamiento temporal. En una solución similar a DankSharding, la cantidad promedio de copias de seguridad de datos es solo 1/N de la cantidad de nodos en toda la red. , una mayor redundancia de datos puede hacer que sea menos probable que se pierdan y también puede proporcionar más muestras de referencia durante la verificación. Por lo tanto, el almacenamiento temporal tendrá relativamente una mayor seguridad de los datos. En la solución DA de terceros, el DA específico de la cadena principal utiliza nodos públicos con la cadena principal, y los datos se pueden transmitir directamente a través de estos nodos de retransmisión durante el proceso entre cadenas, por lo que tendrá una seguridad relativamente mayor que otras soluciones DA. .
  2. Costos de almacenamiento: el factor más importante que afecta los costos de almacenamiento es la cantidad de redundancia de datos. En la solución de almacenamiento a corto plazo de la cadena principal DA, se almacena en forma de sincronización de datos de todos los nodos de la red. Es necesario hacer una copia de seguridad de todos los datos recién almacenados en todo el nodo de la red, que tiene el costo de almacenamiento más alto. El alto coste del almacenamiento determina a su vez que este método sólo sea adecuado para el almacenamiento temporal en redes con alto TPS. El segundo es el método de almacenamiento de Sharding, incluido Sharding en la cadena principal y Sharding en DA de terceros. Dado que la cadena principal suele tener más nodos, un bloque correspondiente también tendrá más copias de seguridad, por lo que la solución de fragmentación de la cadena principal tendrá costos más altos. El costo de almacenamiento más bajo es la cadena pública de almacenamiento DA que adopta el método de almacenamiento de recompensa. Según este esquema, la cantidad de datos redundantes a menudo fluctúa alrededor de una constante fija. Al mismo tiempo, también se introduce un mecanismo de ajuste dinámico en la cadena pública de almacenamiento DA para atraer nodos para almacenar menos datos respaldados mediante el aumento de las recompensas para garantizar la seguridad de los datos.
  3. Velocidad de lectura de datos: la velocidad de almacenamiento de 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, la ubicación de almacenamiento de los datos en el nodo tiene un mayor impacto en la velocidad, porque almacenar los datos en la memoria o SSD puede hacer que la velocidad de lectura difiera decenas de veces. El almacenamiento de la cadena pública DA utiliza principalmente almacenamiento SSD, porque la carga en esta cadena no solo incluye los datos de la capa DA sino que también incluye datos personales con un alto uso de memoria, como videos e imágenes cargados por los usuarios. Si la red no utiliza SSD como espacio de almacenamiento, será difícil soportar una enorme presión de almacenamiento y satisfacer las necesidades de almacenamiento a largo plazo. En segundo lugar, para el DA de terceros y el DA de la cadena principal que utilizan el estado de la memoria para almacenar datos, el DA de terceros primero debe buscar los datos de índice correspondientes en la cadena principal y luego transferir los datos de índice a través de la cadena al tercero. -party DA y devolverlo a través de los datos 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 de la cadena principal DA, el método Sharding requiere llamar a Block desde múltiples nodos y restaurar los datos originales. Por lo tanto, en comparación con el almacenamiento a corto plazo sin almacenamiento fragmentado, la velocidad será más lenta.
  4. Universalidad de la capa DA: la universalidad de DA de la cadena principal es cercana a cero porque es imposible transferir datos en una cadena pública con espacio de almacenamiento insuficiente a otra cadena pública con espacio de almacenamiento insuficiente. En DA de terceros, la versatilidad de una solución y su compatibilidad con una cadena principal específica son indicadores contradictorios. Por ejemplo, en la solución DA específica de la cadena principal diseñada para una determinada cadena principal, se han realizado muchas mejoras en el tipo de nodo y el nivel de consenso de la red para adaptarse a la cadena pública. Por tanto, estas mejoras influirán a la hora de comunicarse con otras cadenas públicas. un enorme obstáculo. Dentro del DA de terceros, el DA de cadena pública de almacenamiento tiene un mejor rendimiento en términos de versatilidad en comparación con el DA modular. 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 las condiciones de las diferentes cadenas públicas. Al mismo tiempo, la cadena pública de almacenamiento DA adquiere datos de manera más activa a través de la captura de paquetes, en lugar de recibir pasivamente información transmitida desde otras cadenas públicas. Por lo tanto, puede codificar datos a su manera, lograr un almacenamiento estandarizado de flujos de datos, facilitar la gestión de 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

La cadena de bloques actual está experimentando una transformación de Crypto a Web3, más inclusiva. Este proceso trae no sólo una riqueza de proyectos en blockchain. Para acomodar la operación simultánea de tantos proyectos en Layer1 y al mismo tiempo garantizar la experiencia de los proyectos Gamefi y Socialfi, Layer1 representada por Ethereum ha adoptado métodos como Rollup y Blobs para mejorar TPS. Entre las nuevas cadenas de bloques, también está creciendo el número de cadenas de bloques de alto rendimiento. 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 datos históricos masivos, actualmente se proponen varios métodos de DA basados en la cadena principal y terceros para adaptarse al aumento de la presión de almacenamiento en cadena. Cada método de mejora tiene ventajas y desventajas y tiene diferente aplicabilidad en diferentes situaciones.

Las cadenas de bloques que se centran 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 está en la etapa de preparación, se puede adoptar un método de almacenamiento similar a DankSharding, que puede lograr un enorme 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 ya ha tomado forma y tiene una gran cantidad de nodos, existen enormes riesgos de mejoras precipitadas en la capa de consenso. Por lo tanto, el DA dedicado de la cadena principal con mayor seguridad en el almacenamiento fuera de la cadena se puede utilizar para equilibrar los problemas de seguridad y almacenamiento... Sin embargo, vale la pena señalar que las funciones de blockchain no son estáticas sino que cambian constantemente. Por ejemplo, las primeras funciones de Ethereum se limitaban principalmente a pagos y al simple procesamiento automatizado de activos y transacciones mediante contratos inteligentes. Sin embargo, a medida que el panorama blockchain continúa expandiéndose, varios proyectos Socialfi y Defi se han agregado gradualmente a Ethereum. Hacer que Ethereum se desarrolle en una dirección más integral. Recientemente, con la explosión de la ecología de las inscripciones en Bitcoin, las tarifas de transacción de la red Bitcoin han aumentado casi 20 veces desde agosto. Esto 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 las tarifas para que las transacciones se procesen lo más rápido posible. Ahora, la comunidad Bitcoin necesita hacer una concesión: aceptar tarifas elevadas y velocidades de transacción lentas o reducir la seguridad de la red para aumentar la velocidad de las transacciones pero frustrar la intención original del sistema de pago. Si la comunidad Bitcoin elige lo último, ante la creciente presión de datos, también será necesario ajustar la solución de almacenamiento correspondiente.

Las tarifas de transacción de la red principal de Bitcoin fluctúan, fuente de la imagen: OKLINK

Las cadenas públicas con funciones integrales tienen una mayor búsqueda de TPS y el crecimiento de datos históricos es aún mayor. Es difícil adaptarse al rápido crecimiento de TPS a largo plazo adoptando una solución similar a DankSharding. Por lo tanto, una forma más adecuada es migrar los datos a un DA de terceros para su almacenamiento. Entre ellos, el DA específico de la cadena principal tiene la mayor compatibilidad y puede tener más ventajas si solo se consideran los problemas de almacenamiento de una única cadena pública. Pero hoy, cuando las cadenas públicas de Capa 1 están floreciendo, la transferencia de activos entre cadenas y la interacción de datos se han convertido en una búsqueda común de la comunidad blockchain. Si se tiene en cuenta 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 verificación e intercambio de datos. Por lo tanto, la diferencia entre DA modular y DA de cadena pública de almacenamiento podría ser una mejor opción. Bajo la premisa de una gran versatilidad, el DA modular se centra en proporcionar servicios de capa de DA de blockchain, introduciendo datos históricos de gestión de datos de índice más refinados, que pueden clasificar razonablemente diferentes datos de la cadena pública y almacenar datos de la cadena pública. Tiene más ventajas que. Sin embargo, la solución anterior no tiene en cuenta el costo de ajustar la capa de consenso en la cadena pública existente. Este proceso es extremadamente arriesgado. Una vez que ocurren los problemas, pueden generar 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 de transición durante el proceso de expansión de la cadena de bloques, el almacenamiento temporal más simple de la cadena principal puede ser más adecuado. Finalmente, la discusión anterior se basa en el rendimiento durante la operación real. Sin embargo, si el objetivo de una determinada cadena pública es desarrollar su ecología y atraer a más partes y participantes del proyecto, también puede preferir proyectos que sean apoyados y financiados por su fundación... Por ejemplo, cuando el rendimiento general es equivalente o incluso ligeramente Más bajo que el de las soluciones de almacenamiento en cadena pública, la comunidad Ethereum también tenderá a proyectos de Capa 2 respaldados por la Fundación Ethereum, como EthStorage, para continuar desarrollando el ecosistema Ethereum.

En definitiva, las funciones de la cadena de bloques actual son cada vez más complejas, lo que también conlleva mayores necesidades de espacio de almacenamiento. Cuando hay suficientes nodos de verificació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. Solo cuando el número de copias de seguridad alcanza un cierto valor se puede garantizar una seguridad relativa. Al mismo tiempo, la división del trabajo en las cadenas públicas también se ha vuelto cada vez más detallada. La capa 1 es responsable del consenso y la ejecución, Rollup es responsable del cálculo y la verificación, y 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 otras partes. Sin embargo, cuánta cantidad específica de almacenamiento o qué proporción de nodos se debe permitir para almacenar datos históricos puede lograr un equilibrio entre seguridad y eficiencia, y cómo garantizar la interoperabilidad segura entre diferentes cadenas de bloques, este es un tema que requiere que los desarrolladores de cadenas de bloques piensen en ello. y mejorar continuamente. Los inversores, sin embargo, presten atención al principal proyecto DA específico de la cadena en Ethereum, porque Ethereum ya tiene suficientes partidarios en esta etapa y no necesita depender de otras comunidades para expandir su influencia. Lo que más se necesita es mejorar y desarrollar su comunidad y atraer más proyectos al ecosistema Ethereum. Sin embargo, para las cadenas públicas en posición de ponerse al día, como Solana y Aptos, la cadena única en sí no tiene una ecología tan completa, por lo que puede estar más inclinada a unir fuerzas con otras comunidades para construir una enorme ecología entre cadenas. para ampliar la influencia. Por lo tanto, el DA emergente de terceros general Layer1 merece más atención.


Kernel Ventures es un fondo de capital de riesgo criptográfico impulsado por la comunidad de investigación y desarrollo con más de 70 inversiones en etapas iniciales centradas en infraestructura, middleware, dApps, especialmente ZK, Rollup, DEX, blockchains modulares e incorporación de áreas verticales para miles de millones de usuarios criptográficos en el futuro, como la abstracción de cuentas, la disponibilidad de datos, la escalabilidad, etc. Durante los últimos siete años, nos hemos comprometido a apoyar el crecimiento de las principales comunidades de desarrollo y asociaciones universitarias de blockchain en todo el mundo.

Descargo de responsabilidad:

  1. Este artículo se reimprime de [espejo]. Todos los derechos de autor pertenecen al autor original [Kernel Ventures Jerry Luo]. Si hay objeciones a esta reimpresión, comuníquese con el equipo de Gate Learn y ellos lo manejarán de inmediato.
  2. Descargo de responsabilidad: los puntos de vista y opiniones expresados en este artículo son únicamente los del autor y no constituyen ningún consejo de inversión.
  3. Las traducciones del artículo a otros idiomas están a cargo del equipo de Gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!
立即註冊