Paradigma: explicación detallada de los problemas y soluciones de crecimiento histórico de Ethereum
Artículo original de Storm Slivkoff y Georgios Konstantopoulos
Traducción original: Luffy, Foresight News
El crecimiento histórico es actualmente el mayor obstáculo para la expansión de Ethereum. Sorprendentemente, el crecimiento histórico se ha convertido en un problema mayor que el crecimiento estatal. Dentro de unos años, los datos históricos superarán la capacidad de almacenamiento de muchos nodos de Ethereum.
La buena noticia es:
-
El crecimiento histórico es un problema mucho más fácil de resolver que el crecimiento estatal.
-
Ya hay una solución activa. desarrollo.
-
Resolver el crecimiento histórico aliviará el problema de crecimiento del estado.
En esta publicación, continuamos nuestra investigación del escalamiento de Ethereum desde la Parte 1, cambiando ahora nuestro enfoque del crecimiento estatal al crecimiento histórico. Utilizando un conjunto de datos refinado, nuestros objetivos son 1) comprender técnicamente los cuellos de botella de escala de Ethereum y 2) ayudar a informar la discusión sobre la solución óptima al límite de gas de Ethereum.
¿Qué es el crecimiento histórico?
La historia es la colección de todos los bloques y transacciones ejecutadas por Ethereum a lo largo de su ciclo de vida. Son todos los datos desde el bloque génesis hasta el bloque actual. El crecimiento histórico es la acumulación de nuevos bloques y nuevas transacciones a lo largo del tiempo.
La Figura 1 muestra la relación entre el crecimiento histórico y varias métricas de protocolo y la construcción del hardware del nodo Ethereum.aints. El crecimiento histórico está limitado por un conjunto diferente de restricciones de hardware que el crecimiento estatal. El crecimiento histórico ejerce presión sobre la IO de la red porque los nuevos bloques y transacciones deben transmitirse a través de la red. El crecimiento del historial también ejerce presión sobre el espacio de almacenamiento de los nodos porque cada nodo de Ethereum almacena una copia completa del historial. Si el crecimiento histórico es lo suficientemente rápido como para superar estas limitaciones de hardware, el nodo ya no podrá alcanzar un consenso estable con sus pares. Para obtener una descripción general del crecimiento del estado y otros obstáculos a escala, consulte Parte 1 de esta serie.
Figura 1: cuello de botella en el escalamiento de Ethereum
Hasta hace poco, la mayor parte del rendimiento de la red de cada nodo se utilizaba para transferir el historial (como nuevos bloques y transacciones). Esto cambió con la introducción de blobs en el hard fork de Dencun. Los blobs ahora representan una gran parte de la actividad de la red de nodos. Sin embargo, los blobs no se consideran parte del historial porque 1) los nodos solo los almacenan durante 2 semanas y luego los descartan, y 2) no necesitan repetir los datos de la génesis de Ethereum. Debido a (1), los blobs no aumentan significativamente la carga de almacenamiento de cada nodo de Ethereum. Hablaremos de los blobs más adelante en este artículo.
En este artículo, nos centraremos en el crecimiento de la historia y discutiremos la relación entre historia y estado. Dado que el crecimiento estatal y el crecimiento histórico tienen algunas limitaciones de hardware superpuestas, son problemas relacionados y resolver uno puede ayudar a resolver el otro.
¿Qué tan rápido ha sido el crecimiento histórico?
La Figura 2 muestra la tasa de crecimiento histórica desde la génesis de Ethereum. Cada línea vertical representa un mes de crecimiento. El eje y representa la cantidad de gigabytes de crecimiento histórico para ese mes. Las transacciones se clasifican por su "dirección de destino" y se dimensionan utilizando bytes RLP (https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/). Los contratos que no pueden identificarse fácilmente se clasifican como "desconocidos". La categoría "otros" incluye una variedad de categorías pequeñas, como infraestructura y juegos.
Figura 2: Tasa de crecimiento histórica de Ethereum a lo largo del tiempo
Algunas conclusiones clave del cuadro anterior:
-
El historial crece de 6 a 8 veces más rápido que el estado: el crecimiento del historial alcanzó recientemente un máximo de 36,0 GiB/mes y actualmente se encuentra en 19,3 GiB/mes. El crecimiento del estado alcanzó un máximo de aproximadamente 6,0 GiB/mes y actualmente es de 2,5 GiB/mes. Más adelante en este artículo se describe una comparación de la historia y el estado en términos de crecimiento y tamaño acumulado.
-
Antes de Decun, la tasa de crecimiento histórica se había estado acelerando: si bien el estado había estado creciendo de manera aproximadamente lineal durante muchos años (ver Parte 1), la historia era superlineal. Dado que una tasa de crecimiento lineal conduciría a un crecimiento cuadrático del tamaño total, una tasa de crecimiento superlineal conduciría a un crecimiento más que cuadrático del tamaño total. Esta aceleración se detuvo abruptamente después de Dencun. Esta es la primera vez que Ethereum experimenta una caída significativa en la tasa de crecimiento histórica.
-
La mayor parte del crecimiento histórico reciente proviene de Rollups: cada L2 publica una copia de sus transacciones en la red principal. Esto genera una gran cantidad de historia y ha provocado que los Rollups sean el contribuyente más importante al crecimiento histórico durante el año pasado. Sin embargo, Dencun permite a los L2 publicar los datos de sus transacciones utilizando blobs en lugar de historial, por lo que los Rollups ya no generan la mayor parte del historial de Ethereum. Cubriremos los rollups con más detalle más adelante en este artículo.
¿Quién es el mayor contribuyente al crecimiento histórico de Ethereum?
El número histórico de contratos generados por diferentes categorías de contratos revela cómo los patrones de uso de Ethereum han evolucionado con el tiempo. La Figura 3 muestra la contribución relativa de varias categorías de contratos. Estos son los mismos datos que la Figura 2, normalizados.
Figura 3: Contribución de diferentes tipos de contratos al crecimiento histórico
Los datos revelan cuatro períodos distintos de patrones de uso de Ethereum:
-
Temprano (púrpura): los primeros años de Ethereum vieron poca actividad en la cadena. La mayoría de estos primeros contratos son difíciles de identificar ahora y están marcados como "desconocidos" en el gráfico.
-
Era ERC-20 (verde): el estándar ERC-20 se finalizó a finales de 2015, pero no cobró un impulso significativo hasta 2017 y 2018. Los contratos ERC-20 fueron la mayor fuente de crecimiento histórico en 2019.
-
Era DEX/DeFi (marrón): Los contratos DEX y DeFi aparecieron en cadena ya en 2016 y comenzaron a ganar terreno en 2017. Pero no fue hasta el verano de DeFi de 2020 que se convirtieron en la categoría más grande en términos de crecimiento histórico. Los contratos DeFi y DEX representaron más de 50% de crecimiento histórico en 2021 y partes de 2022.
-
Era Rollup (gris): Los rollups L2 comienzan a ejecutar más transacciones que la red principal a principios de 2023. En los meses anteriores a Dencun, generaron aproximadamente 2/3 de la historia de Ethereum.
Cada era representa un patrón de uso más complejo para Ethereum que la anterior. La complejidad puede verse como una forma de escalamiento de Ethereum a lo largo del tiempo, que no se puede medir con métricas simples como las transacciones por segundo.
En el mes de datos más reciente (abril de 2024), los paquetes acumulativos ya no generan la mayor parte del historial. No está claro si la historia futura vendrá de DEX y DeFi, o si surgirá algún nuevo patrón de uso.
¿Qué pasa con las manchas?
La bifurcación dura Dencun introdujo blobs, lo que cambió significativamente la dinámica de crecimiento histórico al permitir que Rollups publique datos utilizando blobs baratos en lugar de registros históricos. La Figura 4 amplía las tasas de crecimiento históricas antes y después de la actualización de Dencun. Este gráfico es similar a la Figura 2, excepto que cada línea vertical representa un día en lugar de un mes.
Figura 4: Impacto de Dencun en el crecimiento histórico
Podemos sacar varias conclusiones clave de este gráfico:
-
Desde Dencun, el crecimiento histórico de los paquetes acumulativos se ha reducido aproximadamente 2/3: la mayoría de los paquetes acumulativos se han convertido de datos de llamadas a blobs, lo que ha reducido en gran medida la cantidad de historial que generan. Sin embargo, en abril de 2024, todavía hay algunos paquetes acumulativos que aún no se han convertido de datos de llamadas a blobs.
-
El crecimiento histórico total ha disminuido aproximadamente 1/3 desde Dencun: Dencun solo redujo el crecimiento histórico para las acumulaciones. El crecimiento histórico de otras categorías de contratos aumentó ligeramente. Incluso después de Dencun, el crecimiento histórico sigue siendo 8 veces mayor que el crecimiento estatal (consulte la siguiente sección para obtener más detalles).
Si bien los blobs han reducido la tasa de crecimiento histórica, siguen siendo una característica nueva de Ethereum y no está claro en qué nivel se estabilizará la tasa de crecimiento histórica con los blobs implementados.
¿A qué velocidad es aceptable el crecimiento histórico?
Aumentar el límite de Gas aumentará la tasa de crecimiento histórica. Por lo tanto, las propuestas para aumentar el límite de gas (como Bombear el gas ) debe considerar la relación entre el crecimiento histórico y el cuello de botella de hardware de cada nodo.
Para determinar una tasa de crecimiento histórica aceptable, primero debemos comprender cuánto tiempo puede sostenerse el hardware del nodo actual en términos de redes y almacenamiento. El hardware de red probablemente pueda mantener el status quo indefinidamente, ya que es poco probable que la tasa de crecimiento histórica vuelva a su pico anterior a Dencun antes de que se aumente el límite de gas. Sin embargo, la carga de almacenamiento del historial seguirá aumentando con el tiempo. Bajo la estrategia de almacenamiento actual, es inevitable que el disco duro de almacenamiento de cada nodo eventualmente se llene con registros históricos.
La Figura 5 muestra la carga de almacenamiento de los nodos Ethereum a lo largo del tiempo y predice el crecimiento de la carga de almacenamiento durante los próximos 3 años. El pronóstico se refiere a la tasa de crecimiento en abril de 2024. La tasa de crecimiento puede aumentar o disminuir a medida que los patrones de uso o los límites de gas cambien en el futuro.
Figura 5: Tamaño de la historia, estado y carga de almacenamiento de nodo completo
Podemos sacar varias conclusiones clave de esta figura:
-
El historial ocupa aproximadamente 3 veces más espacio de almacenamiento que el estado. Esta diferencia crece con el tiempo, ya que la historia crece aproximadamente 8 veces más rápido que el estado.
-
1,8 TiB es el umbral crítico y muchos nodos se verán obligados a actualizar sus discos duros de almacenamiento. 2 TB es un tamaño de disco duro de almacenamiento común, que sólo proporciona 1,8 TiB de espacio libre. Tenga en cuenta que TB (1 billón de bytes) es una unidad diferente de TiB (= 1024^4 bytes). Para muchos operadores de nodos, el umbral crítico real es aún más bajo, porque después de la fusión, los validadores deben ejecutar un cliente de consenso junto con el cliente de ejecución.
-
El umbral crítico se alcanzará en 2 o 3 años. Aumentar el límite de gasolina en cualquier cantidad acelerará este tiempo en consecuencia. Alcanzar este umbral impondrá una carga de mantenimiento significativa a los operadores de nodos y requerirá la compra de hardware adicional (como unidades NVME $300).
A diferencia de los datos estatales, los datos históricos se pueden agregar únicamente y se accede a ellos con mucha menos frecuencia. Por lo tanto, en teoría, los datos históricos se pueden almacenar por separado de los datos estatales en medios de almacenamiento más baratos. Esto lo pueden lograr algunos clientes como Geth.
Además de la capacidad de almacenamiento, la E/S de la red es otra limitación importante para el crecimiento histórico. A diferencia de la capacidad de almacenamiento, las limitaciones de E/S de la red no causarán problemas a los nodos en el corto plazo, pero estas limitaciones se volverán importantes a medida que aumenten los límites de gas en el futuro.
Para comprender cuánto crecimiento histórico puede soportar la capacidad de la red de un nodo Ethereum típico, se debe conocer la relación entre el crecimiento histórico y varias métricas de salud de la red, como la tasa de reorganización, los fallos de ranuras, los fallos de finalidad, los fallos de prueba, los fallos del comité de sincronización y bloquear la latencia de envío. El análisis de estas métricas está más allá del alcance de este artículo, pero se puede encontrar más información en encuestas anteriores sobre el estado de la capa de consenso. Además, el proyecto Ethereum Foundations Xatu ha estado construyendo conjuntos de datos públicos para acelerar dicho análisis.
¿Cómo resolver el problema del crecimiento histórico?
El crecimiento histórico es un problema mucho más fácil de resolver que el crecimiento estatal. Puede resolverse casi por completo con la propuesta candidata EIP-4444. Este EIP cambia cada nodo de guardar todo el historial de Ethereum a guardar solo un año de historial. Después de implementar EIP-4444, el almacenamiento de datos ya no será un cuello de botella para la expansión de Ethereum y los aumentos en los límites de gas ya no serán una limitación a largo plazo. EIP -4444 es necesario para la sostenibilidad a largo plazo de la red; de lo contrario, la tasa de crecimiento histórico será muy rápida y el hardware de los nodos de la red deberá actualizarse periódicamente.
La Figura 6 muestra el impacto de EIP-4444 en la carga de almacenamiento de cada nodo durante los próximos 3 años. Esto es lo mismo que la Figura 4, pero con la adición de una línea más clara que representa la carga de almacenamiento después de que se implemente EIP-4444.
Figura 6 : El impacto de EIP-4444 en la carga de almacenamiento del nodo Ethereum
De esta figura se pueden extraer algunas conclusiones clave:
-
EIP-4444 reducirá a la mitad la carga de almacenamiento actual. La carga de almacenamiento disminuirá de 1,2 TiB a 633 GiB.
-
EIP-4444 estabilizará la carga de almacenamiento del historial. Suponiendo una tasa de crecimiento del historial constante, los datos del historial se descartarán al ritmo en que se generan.
-
Después de EIP-4444, la carga de almacenamiento de los nodos tardará muchos años en alcanzar los niveles actuales. Esto se debe a que el crecimiento estatal será el único factor que aumentará la carga de almacenamiento, y el crecimiento estatal es más lento que el crecimiento histórico.
Después de la implementación de EIP-4444, el crecimiento del historial aún traerá un cierto grado de carga de almacenamiento, porque el nodo almacenará un año de historial. Sin embargo, incluso si Ethereum alcanza una escala global, esta carga no es difícil de resolver. Una vez que se demuestre que el método de preservación del historial es confiable, el tiempo de vencimiento de un año de EIP-4444 puede acortarse a unos pocos meses, semanas o incluso menos.
¿Cómo preservar la historia de Ethereum?
EIP-4444 plantea la pregunta: si los propios nodos de Ethereum no guardan el historial, ¿cómo se debe guardar? La historia juega un papel central en la verificación, la contabilidad y el análisis de Ethereum, por lo que preservar la historia es fundamental. Afortunadamente, la preservación del historial es un problema simple que solo requiere 1/n proveedores de datos honestos. Esto contrasta marcadamente con el problema del consenso estatal, que requiere que entre 1/3 y 2/3 de los participantes sean honestos. Los operadores de nodos pueden verificar la autenticidad de los conjuntos de datos históricos 1) reproduciendo todas las transacciones desde el bloque de génesis y 2) verificando que estas transacciones reproduzcan la misma raíz de estado que el final de la cadena de bloques actual.
Hay muchas formas de guardar la historia.
-
Torrents/P2P: Los torrents son el método más sencillo y fiable. Los nodos de Ethereum pueden empaquetar periódicamente partes del historial y compartirlas como archivos torrent públicos. Por ejemplo, un nodo podría crear un nuevo archivo torrent histórico cada 100.000 bloques. Los clientes de Node como Erigon ya realizan este proceso de una forma algo no estandarizada. Para estandarizar este proceso, todos los clientes del nodo deben utilizar el mismo formato de datos, los mismos parámetros y la misma red P2P. Los nodos podrán elegir si participar en esta red en función de sus capacidades de almacenamiento y ancho de banda. Los torrents tienen la ventaja de utilizar un estándar abierto altamente lindy que ya es compatible con una gran cantidad de herramientas de datos.
-
Red de portales: Red de portales es una nueva red diseñada específicamente para alojar datos de Ethereum. Es un enfoque similar a Torrent y al mismo tiempo proporciona algunas funciones adicionales para facilitar la verificación de datos. La ventaja de Portal Network es que estas capas adicionales de verificación brindan utilidad para que los clientes ligeros verifiquen y consulten de manera eficiente conjuntos de datos compartidos.
-
Alojamiento en la nube: los servicios de almacenamiento en la nube, como S3 de AWS o R2 de Cloudflare, brindan una opción económica y de alto rendimiento para preservar registros históricos. Sin embargo, este enfoque conlleva más riesgos legales y operativos comerciales, ya que no hay garantía de que estos servicios en la nube siempre estén dispuestos y sean capaces de alojar datos cifrados.
Los desafíos de implementación restantes son más sociales que técnicos. La comunidad Ethereum necesita coordinar detalles de implementación específicos para que puedan integrarse directamente en cada cliente de nodo. En particular, realizar una sincronización completa desde el bloque génesis (en lugar de una sincronización instantánea) requerirá recuperar el historial de un proveedor de historial en lugar de un nodo Ethereum. Estos cambios técnicamente no requieren una bifurcación dura, por lo que pueden implementarse antes que la próxima bifurcación dura de Ethereum, Pectra.
L2 también puede utilizar todos estos métodos de preservación del historial para preservar los datos de blobs que publican en la red principal. En comparación con la preservación del historial, la preservación de blobs es 1) más difícil porque la cantidad total de datos es mucho mayor; 2) menos importante porque los blobs no son necesarios para reproducir el historial de la red principal. Sin embargo, la preservación del blob sigue siendo necesaria para que cada L2 pueda reproducir su propia historia. Por lo tanto, alguna forma de preservación de blobs es importante para todo el ecosistema Ethereum. Además, si L2 desarrolla una sólida infraestructura de almacenamiento de blobs, también podrán almacenar fácilmente datos históricos de L1.
Sería útil comparar directamente los conjuntos de datos almacenados por varias configuraciones de nodos antes y después de EIP-4444. La Figura 7 muestra la carga de almacenamiento de diferentes tipos de nodos de Ethereum. Los datos estatales son cuentas y contratos, los datos históricos son bloques y transacciones, y los datos de archivo son un conjunto opcional de índices de datos. Los recuentos de bytes en esta tabla se basan en una instantánea de reth reciente, pero las cifras de otros clientes de nodos deberían ser aproximadamente comparables.
Figura 7: Carga de almacenamiento de diferentes tipos de nodos de Ethereum
en otras palabras,
-
Los nodos de archivo almacenan datos de estado y datos históricos, así como datos de archivo. Los nodos de archivo se pueden utilizar cuando alguien quiere poder consultar fácilmente el estado histórico de la cadena.
-
Los nodos completos solo almacenan datos históricos y estatales. La mayoría de los nodos actuales son nodos completos. La carga de almacenamiento de un nodo completo es aproximadamente la mitad que la de un nodo de archivo.
-
Después de EIP-4444, los nodos completos solo almacenan datos estatales y datos históricos del último año. Esto reduce la carga de almacenamiento de los nodos de 1,2 TiB a 633 GiB y lleva el espacio de almacenamiento para datos históricos a un valor de estado estable.
-
Los nodos sin estado, también conocidos como "nodos ligeros", no almacenan ningún conjunto de datos y pueden verificarse inmediatamente al final de la cadena. Este tipo de nodo será posible una vez que se agreguen a Ethereum los intentos de Verkle u otros esquemas de compromiso estatal.
Finalmente, hay algunos EIP adicionales que limitan la tasa de crecimiento histórica en lugar de simplemente adaptarse a la tasa de crecimiento actual. Esto ayuda a mantenerse dentro de las limitaciones de E/S de la red a corto plazo y dentro de las limitaciones de almacenamiento a largo plazo. Si bien EIP-4444 sigue siendo necesario para la sostenibilidad a largo plazo de la red, estos otros EIP ayudarán a Ethereum a escalar de manera más eficiente en el futuro:
-
EIP-7623: Revalorización de los datos de las llamadas, lo que encarece ciertas transacciones con demasiados datos de llamadas. Encarecer estos patrones de uso obligará a algunos de ellos a pasar de datos de llamadas a blobs. Esto reducirá la tasa de crecimiento histórica.
-
EIP-4488: Imponer un límite a la cantidad total de datos de llamadas que se pueden incluir en cada bloque. Esto impondrá límites más estrictos a la rapidez con la que puede crecer la historia.
Estos EIP son más fáciles de implementar que EIP-4444, por lo que pueden servir como una medida provisional a corto plazo antes de que EIP-4444 entre en producción.
Conclusión
El propósito de este artículo es utilizar datos para comprender 1) cómo funciona el crecimiento histórico y 2) cómo resolver el problema. Muchos de los datos de este artículo son difíciles de obtener a través de medios tradicionales, por lo que esperamos que hacer públicos estos datos pueda proporcionar nuevas ideas sobre el problema del crecimiento histórico.
El crecimiento histórico como cuello de botella para la expansión de Ethereum no ha recibido suficiente atención. Incluso sin aumentar el límite de Gas, la práctica actual de Ethereum de preservar la historia obligará a muchos nodos a actualizar su hardware en unos pocos años. Afortunadamente, este no es un problema difícil de resolver. Ya existe una solución clara en EIP-4444. Creemos que la implementación de este EIP debería acelerarse para dejar espacio para futuros aumentos en los límites de gas.
Este artículo proviene de Internet: Paradigma: explicación detallada de los problemas y soluciones de crecimiento histórico de Ethereum
En resumen La reducción a la mitad de Bitcoin de este año para reducir la recompensa minera a 3.125 BTC, desafiando la rentabilidad de los mineros. CryptoQuant informa una caída de 30% en el precio del hash minero desde la última reducción a la mitad, y se espera una mayor caída. La competencia y los costos aumentan, con el hashrate de la red Bitcoin alcanzando los 600 EH/s, lo que afecta las ganancias. En aproximadamente 10 días, la comunidad Bitcoin será testigo de un evento significativo, es decir, la reducción a la mitad de Bitcoin. Este fenómeno reducirá a la mitad la recompensa por extraer un bloque de Bitcoin, de 6,25 a 3,125 Bitcoins, lo que ejercerá presión sobre la rentabilidad de los mineros. Los mineros ahora están en una carrera contra el tiempo, y requieren precios más altos de Bitcoin para mantener sus ganancias. Por qué los mineros de Bitcoin enfrentarán desafíos Según un informe de CryptoQuant compartido con BeInCrypto, el precio del hash de los mineros ha caído 30% desde la última reducción a la mitad en mayo de 2020. Actualmente valorado en $0.11 por Terahash por segundo, esto...