paint-brush
Escalando Ethereum: exceso de datos, disponibilidad de datos y la solución sin nubespor@logos
5,353 lecturas
5,353 lecturas

Escalando Ethereum: exceso de datos, disponibilidad de datos y la solución sin nubes

por Logos11m2024/06/12
Read on Terminal Reader

Demasiado Largo; Para Leer

Codex es un protocolo de almacenamiento p2p sin nubes y sin confianza que busca ofrecer sólidas garantías de persistencia y durabilidad de datos para el ecosistema Ethereum y más allá. Debido al rápido desarrollo e implementación de nuevos protocolos, la cadena blockchain de Ethereum se ha inflado de datos. Esta sobrecarga de datos también se puede definir como “congestión de la red”, donde los datos de las transacciones obstruyen la red y socavan la escalabilidad. Codex ofrece una solución al problema de DA, excepto con la persistencia de datos.
featured image - Escalando Ethereum: exceso de datos, disponibilidad de datos y la solución sin nubes
Logos HackerNoon profile picture

Codex es un protocolo de almacenamiento p2p sin nubes y sin confianza que busca ofrecer sólidas garantías de persistencia y durabilidad de datos para el ecosistema Ethereum y más allá. Actualmente, EIP-4844 sólo ofrece una solución parcial al problema de la sobrecarga de datos. Las tarifas siguen siendo altas y el ecosistema tiene pocas opciones de almacenamiento de datos a largo plazo.


Determinar cómo persistir el exceso de datos de Ethereum le permitirá escalar indefinidamente en el futuro, y Codex ha llegado a escena para ayudar a aliviar esas preocupaciones. Exploremos el problema.


¿Alguna vez has cambiado ETH por otro token en Uniswap?


Me conecté a través de Metamask e intenté intercambiar .001 Eth (aproximadamente $35) por SNT. La tarifa del gas cuesta tanto como la transacción. Esa es una tarifa demasiado alta para operar con criptomonedas. La mayoría de la gente no quiere pagar tanto.


Vayamos al meollo de por qué estas transacciones son tan caras.



20/03/2024

Web3 y las finanzas descentralizadas han crecido enormemente en los últimos años. Debido al rápido desarrollo e implementación de nuevos protocolos, la cadena blockchain de Ethereum se ha inflado de datos. ¿El resultado? Tarifas de gas prohibitivamente caras y mala experiencia de usuario. Esta sobrecarga de datos también se puede definir como “congestión de la red”, donde los datos de las transacciones obstruyen la red y socavan la escalabilidad.


Este artículo examina por qué la cadena de bloques se ha inflado, por qué se ha visto afectado el rendimiento de las transacciones y varios enfoques para resolver el problema. Me centraré específicamente en la disponibilidad de datos en el contexto de Ethereum y los rollups. Exploraré cómo Codex ofrece una solución al problema de DA, excepto con garantías de persistencia y durabilidad de los datos de las que carecen la mayoría de las otras soluciones.


Tengan paciencia conmigo; Usaré jerga y lenguaje técnico, pero haré todo lo posible para explorar este tema vital y subestimado en un lenguaje claro. Más personas en el ecosistema deben comenzar a lidiar con cuán robusto es el muestreo de disponibilidad de datos (DAS) para escalar blockchains. Antes de continuar, el lector debería haber leído sobre los mecanismos de consenso, la prueba de participación y cómo funciona la tecnología desde un alto nivel.


Comencemos desentrañando el trilema de blockchain.

Trilema problemático

Todas las tecnologías descentralizadas que quieren crecer sufren limitaciones similares.


Quieren escalar para permitir que cada vez más usuarios adopten la tecnología, desde miles hasta millones de usuarios. Sin embargo, ampliar diferentes tecnologías conlleva diferentes desafíos de ingeniería.


En el caso de Ethereum, los bloques de la cadena contienen datos transaccionales, estatales y de contratos inteligentes. Cuanta más gente usa la red, más datos se agregan a cada bloque. El problema es que cuando los bloques comienzan a llenarse, surge un mercado de tarifas, donde aquellos que pagan tarifas de gas más altas tienen más probabilidades de que su transacción se incluya en el siguiente bloque.


Una solución sencilla sería ampliar el tamaño del bloque y permitir más datos transaccionales. Sin embargo, hay un problema con este enfoque, que es parte del trilema de blockchain.

El trilema establece que las cadenas de bloques tienen tres características principales que desean mantener y mejorar: escalabilidad, descentralización y seguridad. El trilema sugiere que intentar mejorar dos reduce el otro.


En el caso de Ethereum, actualizar la capacidad del bloque también aumenta los requisitos de hardware para ejecutar un nodo de validación completa en la red. Cuando la red aumenta los requisitos de hardware de tal manera, se vuelve más difícil para la gente común ejecutar un nodo completo, lo que impacta negativamente a la red al disminuir la descentralización general y la resistencia a la censura.


Superficialmente, el problema parece insuperable. Afortunadamente, los desarrolladores e ingenieros están reconsiderando cómo pueden escalar las cadenas de bloques. Están imaginando las cadenas de bloques y sus ecosistemas como modulares en lugar de monolíticos.

Modular versus monolítico

Es vital reafirmar que ejecutar un nodo completo en la red es imperativo para su éxito. Pero, ¿qué es exactamente un “nodo completo” o un “nodo de validación total”?


Un nodo completo es un participante de la red que descarga todos los datos de blockchain y ejecuta todas las transacciones creadas en la red. Los nodos completos requieren más potencia informática y espacio en disco porque descargan el conjunto de datos transaccionales completo.


Un artículo de Yuan Han Li titulado “ WTF es disponibilidad de datos " explica:

“Dado que los nodos completos verifican cada transacción para verificar que sigan las reglas de la cadena de bloques, las cadenas de bloques no pueden procesar más transacciones por segundo sin aumentar los requisitos de hardware para ejecutar un nodo completo (mejor hardware = nodos completos más potentes = los nodos completos pueden verificar más transacciones = Se permiten bloques más grandes que contengan más transacciones)”.


El problema de mantener la descentralización es que desea que algunos participantes de la red ejecuten nodos completos. Sin embargo, estos nodos requieren una enorme potencia informática que resulta demasiado cara de adquirir y mantener para la mayoría de los usuarios. Y si eso ocurre, limita drásticamente la cantidad de nodos en la red, perjudicando la descentralización general.


El principal problema es que los mineros y validadores podrían retener datos de la red, impidiendo que otros accedan a todos los datos. Este es el meollo del problema en el contexto de las “cadenas de bloques monolíticas”.


Aunque esta es una palabra de moda un poco usada en exceso en el ecosistema, la idea de "monolítico" en blockchain significa que la capa base, o la cadena de bloques Ethereum, tiene que actuar como capa de liquidación, capa de consenso y capa de disponibilidad de datos. lo que satura el sistema con datos, ralentiza el rendimiento de las transacciones y aumenta las tarifas.


La solución a este problema de tener una cadena de bloques "monolítica" es "modularizar" su funcionalidad y transferir la función de disponibilidad de datos a otros participantes de la red. En este escenario, la capa base de la cadena de bloques funcionaría simplemente como la capa de liquidación y consenso. Todos los requisitos de disponibilidad de datos se transferirían a otros actores de la red.

Ahora que entendemos la sabiduría de la modularización, ¿qué es exactamente la disponibilidad de datos y por qué es crucial para la red?

El problema de DA y los resúmenes

La disponibilidad de datos es lo que requiere una cadena de bloques para funcionar como árbitro inmutable de la verdad. Sin la disponibilidad de datos transaccionales, nadie sabría si la cadena de bloques contiene transacciones fraudulentas o no válidas. En otras palabras, nadie pudo probar si los validadores y mineros se comportaron de manera maliciosa o no. Un __ artículo __ de Emmanuel Awosika lo describió:

La "disponibilidad de datos" es la garantía de que los datos detrás de un bloque recién propuesto, que es necesario para verificar la exactitud del bloque, estén disponibles para otros participantes en la red blockchain".


Un comentario importante: tenga en cuenta que existe una diferencia entre "disponibilidad de datos" y "almacenamiento de datos". Mucha gente en el espacio confunde los dos. La disponibilidad de datos pregunta si los datos están disponibles y cualquiera puede acceder a ellos, y el almacenamiento de datos significa mantenerlos en una ubicación a largo plazo. En este sentido, el almacenamiento de datos implica la idea de "persistencia de datos". Nick White, director de operaciones de Celestia, brindó una poderosa analogía :


Si tienes comida enlatada, representa almacenamiento de datos. Los alimentos están en la lata y se almacenan durante mucho tiempo, y se puede acceder a ellos y sacarlos del almacén en cualquier momento. En este sentido, existe un elemento de “persistencia de datos” con respecto al “almacenamiento de datos”. Por el contrario, la disponibilidad de datos se parece más a un buffet. La comida se prepara y se extiende sobre una mesa de buffet. Está disponible para que todos lo prueben. La disponibilidad de datos es similar.


Los datos se ponen a disposición de la red principalmente para que los participantes de la red puedan verificar que los datos sean precisos y no contengan transacciones maliciosas.

Esto plantea la pregunta: ¿cuál es el “problema de disponibilidad de datos”?


El "problema de disponibilidad de datos" es el problema central que los tecnólogos están tratando de resolver para escalar Ethereum. El problema es que cuando un nodo completo transmite datos transaccionales en todo el ecosistema, los nodos más pequeños llamados "nodos ligeros" normalmente no tienen los requisitos de hardware para descargar y ejecutar todas las transacciones.

Un artículo de ledger.com explica cómo funcionan los nodos de luz:

“Los nodos ligeros no descargan ni validan transacciones y solo contienen el encabezado del bloque. En otras palabras, los nodos ligeros asumen que las transacciones en un bloque son válidas sin la verificación que proporcionan los nodos completos, lo que hace que los nodos ligeros sean menos seguros. Este problema se conoce como problema de disponibilidad de datos”.


En este caso, esos nodos sólo necesitan saber si los datos están disponibles y si representan el "estado" actual de la cadena de bloques. Un "estado" es simplemente todos los datos de la cadena de bloques almacenados en la cadena, los saldos de direcciones y los valores de los contratos inteligentes. En la cadena de bloques Ethereum, en su forma actual, los clientes ligeros tienen que confiar en los llamados comités de disponibilidad de datos (DAC) para proporcionar certificaciones en cadena de que los datos están realmente disponibles.


En el contexto de una solución de escalamiento de Ethereum, llamada rollup, estos datos deben estar disponibles para que los participantes de la red puedan determinar si esos datos se ajustan a las reglas de la red. En otras palabras, deben asegurarse de que los datos sean precisos y que los validadores no intenten engañar a los clientes ligeros.

Acumulaciones optimistas y ZK

Para comprender mejor el problema de DA, es fundamental comprender los resúmenes. Los rollups son cadenas de bloques de capa dos que tienen nodos llamados secuenciadores; Estos secuenciadores ayudan a procesar por lotes, comprimir y ordenar transacciones. Benjamín Simón describió el relación entre rollups y Ethereum:

“Un rollup es esencialmente una cadena de bloques separada, pero con un par de modificaciones. Al igual que Ethereum, un protocolo acumulativo tiene una "máquina virtual" que ejecuta código de contrato inteligente. La máquina virtual del paquete acumulativo opera independientemente de la propia máquina virtual de Ethereum (la " EVM ”), pero se gestiona mediante un contrato inteligente de Ethereum. Esta conexión permite que los rollups y Ethereum se comuniquen. Un paquete acumulativo ejecuta transacciones y procesa datos, y Ethereum recibe y almacena los resultados”.


En pocas palabras, los rollups son soluciones de escalamiento fuera de la cadena. Sin embargo, los paquetes acumulativos no sacrifican la seguridad como lo harían normalmente muchas soluciones de escalamiento "fuera de la cadena". En el caso de los rollups, solo el procesamiento y el cálculo de datos se realizan fuera de la cadena (a través de secuenciadores). En última instancia, las transacciones se almacenan en la cadena de bloques de capa 1, preservando la seguridad. Estos datos en cadena se llamaban anteriormente " calldata ".


En cierto modo, los rollups son la manera que tiene la comunidad de “tener el pastel y comérselo también”; pueden mantener la seguridad de la red mientras escalan la usabilidad. Es una solución ingeniosa.


Hay dos tipos populares de paquetes acumulativos: paquetes acumulativos optimistas y paquetes acumulativos ZK.

  • Los paquetes acumulativos optimistas son los tipos de paquetes acumulativos más discutidos e implementados. Como sugiere su nombre, los resúmenes “optimistas” suponen que hay al menos 1 x n buenos actores en el ecosistema. ¿Qué significa eso? Los resúmenes optimistas suponen que todas las transacciones publicadas en la red son válidas. Para compensar este "optimismo", los resúmenes ofrecen un plazo de 7 días para que la red envíe un " a prueba de fraude ”, que muestra que las transacciones enviadas por el resumen no son válidas.


    Una cosa clave que hay que saber acerca de los paquetes acumulativos optimistas es que en su mayoría son compatibles con EVM, por lo que los desarrolladores pueden trabajar con ellos de manera eficiente. De esta manera, pueden verse como la solución de escalamiento más popular de Ethereum. Dos ejemplos de resúmenes optimistas son Optimismo y arbitraje .

  • Los paquetes acumulativos de ZK utilizan criptografía de conocimiento cero para demostrar que las transacciones que comprimen y agrupan son correctas y precisas. En lugar de asumir que todas las transacciones son precisas (como los resúmenes optimistas), los resúmenes ZK generan una "prueba de validez" para demostrar que las transacciones son válidas de inmediato, eliminando cualquier período de espera.


    Sin embargo, se sabe que para los desarrolladores puede resultar más difícil trabajar con los paquetes acumulativos de ZK, ya que no todos son compatibles con EVM. Los paquetes acumulativos de ZK también son computacionalmente intensivos porque generar las pruebas consume muchos recursos. No obstante, cada vez están comenzando a llegar al mercado más paquetes acumulativos compatibles con EVM. El EVM acumulativo de desplazamiento La solución es sólo un ejemplo.

Solución: muestreo de disponibilidad de datos y Codex

Mencioné anteriormente que los paquetes acumulativos necesitan un lugar donde volcar sus datos. La mayoría de los paquetes acumulativos han estado enviando datos a la cadena principal de Ethereum, como se mencionó, lo que lleva al meollo del problema: la hinchazón de datos. Cuando se produce inflación, el rendimiento transaccional se ve afectado y aumentan las tarifas por transacciones y ejecución de contratos inteligentes.


Recuerde que parte de la solución es no depender de la validación completa de nodos para la seguridad de la red. Si solo confiáramos en estos nodos, la mayoría de los usuarios no podrían ejecutar nodos completos debido a requisitos de hardware prohibitivamente costosos. (Tenga en cuenta que aumentar el tamaño del bloque es una solución potencial, aunque dudosa, ya que este camino afecta negativamente a la descentralización. Sin embargo, ese argumento en particular ha dejado de ser válido porque los paquetes acumulativos actúan como soluciones de escalamiento de capa 2 que mantienen la seguridad de la cadena principal).

Dicho esto, ¿cuál es la respuesta a que no todos ejecuten nodos completos?

La solución es permitir que los nodos ligeros (así como los nodos completos) verifiquen los datos sin descargar ni ejecutar todas las transacciones. Este es el meollo del problema y donde se puede encontrar la magia de escalar la red Ethereum (entre otras blockchains).

Disponibilidad de datos, codificación de borrado y códice

El primer paso es tener una capa de disponibilidad de datos con una red robusta de clientes ligeros para determinar si los datos están disponibles. Pero, ¿cómo pueden los clientes ligeros, que normalmente solo verifican los datos del encabezado y dependen de nodos completos para obtener su información, garantizar que sus datos sean válidos y completos? La respuesta se puede encontrar dentro de un truco matemático llamado "muestreo de disponibilidad de datos (DAS)".


DAS es un método para muestrear un fragmento de datos de un conjunto de datos y usarlo para determinar probabilísticamente el resto de los datos que existen y reconstruirlos. Muchas organizaciones (incluida la Cadena de bloques Celestia y capa DA) están aprovechando DAS a través de codificación de borrado y compromisos polinómicos. Los códigos Reed Solomon son la opción popular entre muchos proyectos. Estos tipos de polinomios se parece a esto :

Y = a[o] + a[1]x + a[2]x^2+...+a[k]x^k


Estas funciones se utilizan para determinar los datos faltantes y restaurarlos por completo. Esto funciona creando K de N datos, donde K son los datos originales y N son los "datos de paridad". Si algunos de los datos originales se pierden, la máquina del nodo aprovecha una función matemática llamada Interpolación de Lagrange a restaurarlo. Las matemáticas involucradas son aparentemente arcanas para la mayoría de la gente, pero la idea es sencilla.

Hay algunos ejemplos claros de codificación de borrado en acción. El método se ha utilizado para realizar copias de seguridad de CD rayados. La codificación por borrado en CD puede reconstruir los fragmentos de música que faltan debido a daños en la superficie. Los satélites también aprovechan los códigos de borrado si se pierden datos en la inmensidad del espacio. El satélite o el CD pueden reconstruir los datos faltantes, añadiendo protección redundante a ambos sistemas.


El esquema específico que utiliza Codex (así como Celestia) se llama esquema de codificación de borrado 2D. Cabe señalar que la codificación de borrado 2D, aunque es popular en el ecosistema criptográfico, no es una tecnología nueva. Sin embargo, es bastante interesante cómo se utiliza para resolver el problema de DA. El Dr. Bautista __ explicó __cómo el equipo del Codex utiliza Erasure Coding:

“De manera similar al Codex, borrar la codificación de los datos originales en una estructura de datos más redundante y robusta es fundamental para que el resto del protocolo funcione; sin ello no hay magia. En Codex, esto sucede dentro del cliente Codex del nodo que desea cargar los datos, mientras que en Ethereum esto sucede dentro del validador Ethereum del cliente de consenso/baliza del nodo que está construyendo/proponiendo el bloque.

Hay más información sobre el recorrido de los datos en el Codex, pero está más allá del alcance del artículo. Lea el Dr. Bautista pedazo comprender la dispersión de datos, el muestreo y los mecanismos de “reparación diferida” que aprovecha el Codex.


Codex pretende tener funciones simultáneas de almacenamiento y recuperación de datos y muestreo de disponibilidad de datos mediante la compresión de pruebas. Esto permitiría procesar datos efímeros (o datos que no son necesarios a largo plazo), y la persistencia y durabilidad de los datos garantiza que otros proyectos puedan faltar.

Conclusión: resolver el problema

El debate sobre cómo escalar las blockchains está llegando a su fin. En el ecosistema de Bitcoin, han surgido discusiones sobre cómo escalar una cadena de bloques, desde aumentar el límite de tamaño de bloque hasta aprovechar las soluciones de capa 2. La realidad es que una combinación de ambas es la solución más razonable. Por ejemplo, Codex puede actuar como capa de disponibilidad de datos sin nubes para Ethereum (así como para otras cadenas de bloques), permitiendo que el tamaño del bloque crezca porque la red contendría muchos nodos para realizar comprobaciones de DA en la red.

La buena noticia es que esto aumentará el rendimiento de la red manteniendo la seguridad de la capa base. ¿Y qué resulta de eso? Sí, lo tienes: tarifas más económicas y transacciones más rápidas. Como usuarios de blockchains, eso es realmente lo que más nos importa.

Un día, quizás pronto, podré hacer mi intercambio de tokens por centavos de dólar en lugar de $35 dólares.


by Sterlin Lujan