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
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.
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.
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
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.
Método de almacenamiento de datos después de la fragmentación, fuente de la imagen: Kernel Ventures
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.
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
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.
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.
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.
Contrato EthStorage, fuente de la imagen: Kernel Ventures
Método de lectura de datos de Celestia, fuente de la imagen: Celestia Core
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
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.
Comparación del rendimiento de la solución de almacenamiento, fuente de la imagen: Kernel Ventures
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.
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
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.
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.
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
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.
Método de almacenamiento de datos después de la fragmentación, fuente de la imagen: Kernel Ventures
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.
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
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.
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.
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.
Contrato EthStorage, fuente de la imagen: Kernel Ventures
Método de lectura de datos de Celestia, fuente de la imagen: Celestia Core
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
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.
Comparación del rendimiento de la solución de almacenamiento, fuente de la imagen: Kernel Ventures
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.