Clientes apátridas: un camino hacia la descentralización en Ethereum

Principiante12/25/2023, 9:46:08 AM
Este artículo proporciona una introducción detallada a la solución descentralizada de Ethereum, el cliente sin estado, y también explica qué es el estado, así como sus antecedentes, principios y soluciones.

A medida que aumenta el uso de Ethereum, ejecutar un nodo completo consume más recursos y ancho de banda. Esto da como resultado que menos personas puedan ejecutar nodos completos, lo que reduce la descentralización de la red. Además, Ethereum lucha por escalar a medida que aumenta la demanda de transacciones, lo que genera congestión de la red y altas tarifas de gas.

Los clientes apátridas propuestos por Vitalik en 2017 ofrecen una solución potencial a los dos desafíos de descentralización que enfrenta Ethereum. La idea clave detrás de los clientes sin estado es reducir los requisitos de almacenamiento y ancho de banda para ejecutar un nodo completo, haciendo posible que más personas participen y descentralicen la red. Este ensayo proporcionará una mirada en profundidad a cómo trabajan los clientes apátridas y sus posibles beneficios e inconvenientes.

¿Qué es el estado Ethereum?

Para comprender a los clientes apátridas, primero debemos comprender el concepto de "estado" en Ethereum. El estado de Ethereum se refiere al estado actual de todas las cuentas, contratos, saldos, nonces y almacenamiento en el mundo de Ethereum. Se puede considerar como una base de datos que almacena toda la información relevante sobre la red Ethereum en un momento determinado.

El estado persiste en un ensayo Merkle Patricia, que es esencialmente un árbol Merkle modificado que almacena pares clave-valor. El hash raíz de este intento resume todo el estado. Después de cada nuevo bloque, el estado se actualiza según las transacciones en ese bloque. El nuevo hash raíz del estado se incluye en el encabezado del bloque.

A medida que se agregan más cuentas, contratos y transacciones con el tiempo, el estado de Ethereum se hace cada vez más grande. Hoy en día, el tamaño del estado supera 1TB y aumenta en decenas de gigabytes por año. Este estado en crecimiento subyace a los problemas de descentralización.

Por qué el crecimiento estatal causa problemas

El creciente tamaño del estado de Ethereum causa varios problemas clave:

  • Tiempos de sincronización más prolongados para nodos nuevos: un nuevo nodo tarda muchísimo tiempo en sincronizarse procesando todos los cambios de estado históricos. Esto dificulta la descentralización al dificultar la ejecución de nuevos nodos completos. Actualmente, sincronizar un nuevo nodo desde génesis lleva varios días, incluso semanas, en el hardware de consumo. Esto representa una barrera importante para poner en funcionamiento nuevos nodos de manera eficiente y permitir que más participantes se unan a la red.
  • Mayores requisitos de hardware: un estado más grande requiere más almacenamiento, memoria y potencia de procesamiento para almacenar, acceder y actualizar. Esto impide que los usuarios con menos recursos ejecuten nodos. Como mínimo, ejecutar un nodo Ethereum completamente sincronizado ahora requiere un SSD con 1-2 TB de capacidad. Esto está fuera del alcance de muchos operadores potenciales de nodos.
  • Mayor uso de ancho de banda: las transmisiones de nuevos bloques también deben incluir el estado actualizado, lo que requiere más ancho de banda. Esto aumenta los costos para los operadores de nodos. Actualmente, el estado domina la mayoría de las transmisiones en bloque, por lo que el tamaño de los bloques continúa creciendo. Más ancho de banda se traduce en mayores costos para los operadores de nodos.
  • Verificación de bloques más lenta: leer y actualizar un estado más grande hace que la verificación de bloques sea más lenta, lo que limita el rendimiento de las transacciones. Cada transacción requiere múltiples lecturas y escrituras de almacenamiento para actualizar saldos, nonces, estado del contrato, etc. Un estado más grande significa más lecturas/escrituras por bloque, lo que reduce la cantidad de transacciones que se pueden procesar por segundo.
  • Costos de almacenamiento permanente: una vez que los datos se agregan al estado, deben almacenarse para siempre. Esto crea un crecimiento estatal ilimitado. Actualmente no existe ningún mecanismo para eliminar activamente datos estatales antiguos y no utilizados. Por lo tanto, los costos de retención estatales aumentan indefinidamente mientras Ethereum continúe operando.

Clientes apátridas explicados

Los clientes sin estado proporcionan una forma de verificar nuevos bloques sin necesidad de acceder al estado completo de Ethereum. Utilizan pruebas criptográficas llamadas "testigos" que prueban la validez de los cambios de estado en un bloque, sin tener los datos de estado subyacentes.

Así es como trabajan los clientes apátridas a alto nivel:

  • El cliente solo almacena encabezados de bloque y raíces de estado, no datos de estado completos. Los encabezados de los bloques contienen metadatos como el hash raíz del estado de prueba después de que se procesa ese bloque.
  • Al verificar un nuevo bloque, el cliente recibe un "testigo" junto con el bloque. Este testigo es un conjunto de pruebas de Merkle que demuestran que las actualizaciones de estado específicas de las transacciones son válidas.
  • El testigo contiene pruebas Merkle de valores estatales específicos necesarios para procesar transacciones. Por ejemplo, saldos de cuentas o almacenamiento de contratos actualizados.
  • El cliente utiliza el testigo para garantizar que las transacciones sean válidas según el último estado raíz conocido. Las pruebas autentifican que los cambios de estado coinciden con la raíz anterior.
  • Si es válido, el cliente se actualiza al nuevo estado raíz proporcionado en el encabezado del bloque. Esta nueva raíz de estado se utilizará para verificar el siguiente bloque.

Al utilizar testigos para verificar el estado en lugar de almacenar el estado completo localmente, los clientes sin estado obtienen varias ventajas:

  • Tiempo de sincronización muy rápido: no es necesario reproducir cambios de estado históricos. Un cliente sin estado puede sincronizar casi instantáneamente solo con los encabezados de los bloques.
  • Requisitos de almacenamiento bajos: las raíces estatales tienen solo 32 bytes. En lugar de cientos de GB de estado, sólo se necesitan encabezados de bloque.
  • Menos ancho de banda: solo se transfieren encabezados de bloque y testigos, no el estado completo. Se minimiza el uso de ancho de banda.
  • Verificación rápida: los testigos contienen solo pequeños subconjuntos estatales relevantes. Solo se prueban las cuentas/almacenamiento actualizados tocados.
  • Soporte sencillo para clientes ligeros: los clientes ligeros pueden verificar pruebas fácilmente. El modelo de cliente ligero es muy compatible con la verificación sin estado.

Desafíos con clientes apátridas

Si bien los clientes apátridas ofrecen algunos beneficios importantes, también existen importantes desafíos técnicos que superar:

  • Tamaño de los testigos: los testigos podrían ser demasiado grandes para transmitir de manera eficiente. Si se utilizan pruebas completas de Merkle, pueden exceder los límites de tamaño de bloque.
  • Creación de testigos: generar testigos óptimos es complejo para los proponentes de bloques. Los proponentes deben reunir los fragmentos de prueba correctos para verificar cada transacción.
  • Sin incentivos para testigos: proporcionar testigos no genera recompensas directas. A diferencia de la minería, no existe una estructura de incentivos incorporada para la creación de testigos.
  • Datos temporales: los testigos prueban el estado en un momento dado, lo que requiere regeneración. Los testigos no se pueden reutilizar a medida que avanza el estado.
  • Almacenamiento estatal: alguien todavía necesita mantener el estado completo para presentar testigos. La verificación sin estado se basa en la generación de testigos con estado.
  • Aplicaciones complejas: algunos contratos pueden depender de grandes subconjuntos estatales, testigos inflados. Por ejemplo, contratos que actualizan muchos espacios de almacenamiento por transacción.

Soluciones posibles

Los investigadores han propuesto varias soluciones para abordar estos desafíos:

  • Árboles Verkle: estructuras de datos especiales para reducir el tamaño de los testigos. Los árboles Verkle utilizan compromisos criptográficos concisos para minimizar el tamaño de la prueba.
  • Cachés de testigos: los proponentes podrían conservar testigos recientes para reutilizarlos. El almacenamiento en caché de testigos que probablemente vuelvan a ser relevantes amortiza los costos de creación.
  • Incentivos de protocolo: mecanismos de recompensa por proporcionar testigos útiles. Nuevas estructuras de incentivos podrían compensar la creación de testigos.
  • Raíces de estado intermedio: realice un seguimiento de las raíces a lo largo del tiempo para evitar la regeneración de pruebas. Mantener raíces parciales podría reutilizar fragmentos testigo.
  • Alquiler estatal: requiere pagos para mantener el estado a largo plazo, podando el estado no utilizado. El alquiler obliga a limpiar el almacenamiento obsoleto para limitar el tamaño de la prueba.
  • Modelo de testigo particionado: manejo de estado dividido entre proponentes y verificadores. Haga que algunos nodos proponentes dedicados generen testigos.

Existen compensaciones entre estos enfoques y se necesita más investigación para descubrir implementaciones óptimas. Afortunadamente, la rápida innovación que se está produciendo en la criptografía de conocimiento cero podría abrir nuevas posibilidades para clientes apátridas eficientes.

Impacto potencial

Si se pueden superar los obstáculos técnicos, los clientes apátridas podrían hacer avanzar significativamente a Ethereum:

  • Sincronizaciones y verificación más rápidas para respaldar un mayor rendimiento de transacciones. La validación sin estado acelerará drásticamente el procesamiento de bloques.
  • Reducción de los requisitos de recursos para ejecutar nodos, mejorando la descentralización. Las computadoras portátiles y los aficionados podrían, de manera realista, ejecutar nodos completos.
  • Mejor soporte para clientes livianos como billeteras móviles. Las pruebas de estado son altamente compatibles con el modelo de cliente ligero.
  • Introducción más fluida de fragmentación, con verificación sin estado entre fragmentos. Las transacciones entre fragmentos pueden utilizar pruebas estatales eficientes.
  • Capacidad para eliminar y podar datos de estado antiguo que ya no son útiles. El crecimiento del Estado puede gestionarse activamente en lugar de ser ilimitado.
  • Más flexibilidad para que los operadores de nodos personalicen el estado según las necesidades. Los nodos podrían adaptar las políticas de retención de estado a los casos de uso.
  • Transición a un modelo donde la computación y el ancho de banda importan más que el almacenamiento. La arquitectura cambia hacia un modelo más compatible con la nube.

También existen algunos riesgos potenciales, como una mayor vulnerabilidad a los ataques DDoS y que el historial de blockchain solo sea almacenado de manera confiable por unos pocos operadores de nodos. Sin embargo, las pruebas criptográficas podrían reducir estos riesgos. En general, los clientes apátridas son uno de los enfoques más prometedores para superar las limitaciones actuales de Ethereum.

Conclusión

El creciente tamaño del estado de Ethereum plantea desafíos para la descentralización a medida que aumenta la adopción. Los clientes sin estado presentan una salida al permitir que los nodos verifiquen transacciones sin el estado completo de la cadena de bloques. Esto podría eventualmente permitir que los teléfonos móviles ejecuten nodos Ethereum, aumentando considerablemente la descentralización.

Descargo de responsabilidad:

  1. Este artículo se reimprime de [Espejo]. Todos los derechos de autor pertenecen al autor original [YQ]. Si hay objeciones a esta reimpresión, comuníquese con el equipo de Gate Learn y ellos lo manejarán de inmediato.
  2. Descargo de responsabilidad: los puntos de vista y opiniones expresados en este artículo son únicamente los del autor y no constituyen ningún consejo de inversión.
  3. Las traducciones del artículo a otros idiomas están a cargo del equipo de Gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.

Clientes apátridas: un camino hacia la descentralización en Ethereum

Principiante12/25/2023, 9:46:08 AM
Este artículo proporciona una introducción detallada a la solución descentralizada de Ethereum, el cliente sin estado, y también explica qué es el estado, así como sus antecedentes, principios y soluciones.

A medida que aumenta el uso de Ethereum, ejecutar un nodo completo consume más recursos y ancho de banda. Esto da como resultado que menos personas puedan ejecutar nodos completos, lo que reduce la descentralización de la red. Además, Ethereum lucha por escalar a medida que aumenta la demanda de transacciones, lo que genera congestión de la red y altas tarifas de gas.

Los clientes apátridas propuestos por Vitalik en 2017 ofrecen una solución potencial a los dos desafíos de descentralización que enfrenta Ethereum. La idea clave detrás de los clientes sin estado es reducir los requisitos de almacenamiento y ancho de banda para ejecutar un nodo completo, haciendo posible que más personas participen y descentralicen la red. Este ensayo proporcionará una mirada en profundidad a cómo trabajan los clientes apátridas y sus posibles beneficios e inconvenientes.

¿Qué es el estado Ethereum?

Para comprender a los clientes apátridas, primero debemos comprender el concepto de "estado" en Ethereum. El estado de Ethereum se refiere al estado actual de todas las cuentas, contratos, saldos, nonces y almacenamiento en el mundo de Ethereum. Se puede considerar como una base de datos que almacena toda la información relevante sobre la red Ethereum en un momento determinado.

El estado persiste en un ensayo Merkle Patricia, que es esencialmente un árbol Merkle modificado que almacena pares clave-valor. El hash raíz de este intento resume todo el estado. Después de cada nuevo bloque, el estado se actualiza según las transacciones en ese bloque. El nuevo hash raíz del estado se incluye en el encabezado del bloque.

A medida que se agregan más cuentas, contratos y transacciones con el tiempo, el estado de Ethereum se hace cada vez más grande. Hoy en día, el tamaño del estado supera 1TB y aumenta en decenas de gigabytes por año. Este estado en crecimiento subyace a los problemas de descentralización.

Por qué el crecimiento estatal causa problemas

El creciente tamaño del estado de Ethereum causa varios problemas clave:

  • Tiempos de sincronización más prolongados para nodos nuevos: un nuevo nodo tarda muchísimo tiempo en sincronizarse procesando todos los cambios de estado históricos. Esto dificulta la descentralización al dificultar la ejecución de nuevos nodos completos. Actualmente, sincronizar un nuevo nodo desde génesis lleva varios días, incluso semanas, en el hardware de consumo. Esto representa una barrera importante para poner en funcionamiento nuevos nodos de manera eficiente y permitir que más participantes se unan a la red.
  • Mayores requisitos de hardware: un estado más grande requiere más almacenamiento, memoria y potencia de procesamiento para almacenar, acceder y actualizar. Esto impide que los usuarios con menos recursos ejecuten nodos. Como mínimo, ejecutar un nodo Ethereum completamente sincronizado ahora requiere un SSD con 1-2 TB de capacidad. Esto está fuera del alcance de muchos operadores potenciales de nodos.
  • Mayor uso de ancho de banda: las transmisiones de nuevos bloques también deben incluir el estado actualizado, lo que requiere más ancho de banda. Esto aumenta los costos para los operadores de nodos. Actualmente, el estado domina la mayoría de las transmisiones en bloque, por lo que el tamaño de los bloques continúa creciendo. Más ancho de banda se traduce en mayores costos para los operadores de nodos.
  • Verificación de bloques más lenta: leer y actualizar un estado más grande hace que la verificación de bloques sea más lenta, lo que limita el rendimiento de las transacciones. Cada transacción requiere múltiples lecturas y escrituras de almacenamiento para actualizar saldos, nonces, estado del contrato, etc. Un estado más grande significa más lecturas/escrituras por bloque, lo que reduce la cantidad de transacciones que se pueden procesar por segundo.
  • Costos de almacenamiento permanente: una vez que los datos se agregan al estado, deben almacenarse para siempre. Esto crea un crecimiento estatal ilimitado. Actualmente no existe ningún mecanismo para eliminar activamente datos estatales antiguos y no utilizados. Por lo tanto, los costos de retención estatales aumentan indefinidamente mientras Ethereum continúe operando.

Clientes apátridas explicados

Los clientes sin estado proporcionan una forma de verificar nuevos bloques sin necesidad de acceder al estado completo de Ethereum. Utilizan pruebas criptográficas llamadas "testigos" que prueban la validez de los cambios de estado en un bloque, sin tener los datos de estado subyacentes.

Así es como trabajan los clientes apátridas a alto nivel:

  • El cliente solo almacena encabezados de bloque y raíces de estado, no datos de estado completos. Los encabezados de los bloques contienen metadatos como el hash raíz del estado de prueba después de que se procesa ese bloque.
  • Al verificar un nuevo bloque, el cliente recibe un "testigo" junto con el bloque. Este testigo es un conjunto de pruebas de Merkle que demuestran que las actualizaciones de estado específicas de las transacciones son válidas.
  • El testigo contiene pruebas Merkle de valores estatales específicos necesarios para procesar transacciones. Por ejemplo, saldos de cuentas o almacenamiento de contratos actualizados.
  • El cliente utiliza el testigo para garantizar que las transacciones sean válidas según el último estado raíz conocido. Las pruebas autentifican que los cambios de estado coinciden con la raíz anterior.
  • Si es válido, el cliente se actualiza al nuevo estado raíz proporcionado en el encabezado del bloque. Esta nueva raíz de estado se utilizará para verificar el siguiente bloque.

Al utilizar testigos para verificar el estado en lugar de almacenar el estado completo localmente, los clientes sin estado obtienen varias ventajas:

  • Tiempo de sincronización muy rápido: no es necesario reproducir cambios de estado históricos. Un cliente sin estado puede sincronizar casi instantáneamente solo con los encabezados de los bloques.
  • Requisitos de almacenamiento bajos: las raíces estatales tienen solo 32 bytes. En lugar de cientos de GB de estado, sólo se necesitan encabezados de bloque.
  • Menos ancho de banda: solo se transfieren encabezados de bloque y testigos, no el estado completo. Se minimiza el uso de ancho de banda.
  • Verificación rápida: los testigos contienen solo pequeños subconjuntos estatales relevantes. Solo se prueban las cuentas/almacenamiento actualizados tocados.
  • Soporte sencillo para clientes ligeros: los clientes ligeros pueden verificar pruebas fácilmente. El modelo de cliente ligero es muy compatible con la verificación sin estado.

Desafíos con clientes apátridas

Si bien los clientes apátridas ofrecen algunos beneficios importantes, también existen importantes desafíos técnicos que superar:

  • Tamaño de los testigos: los testigos podrían ser demasiado grandes para transmitir de manera eficiente. Si se utilizan pruebas completas de Merkle, pueden exceder los límites de tamaño de bloque.
  • Creación de testigos: generar testigos óptimos es complejo para los proponentes de bloques. Los proponentes deben reunir los fragmentos de prueba correctos para verificar cada transacción.
  • Sin incentivos para testigos: proporcionar testigos no genera recompensas directas. A diferencia de la minería, no existe una estructura de incentivos incorporada para la creación de testigos.
  • Datos temporales: los testigos prueban el estado en un momento dado, lo que requiere regeneración. Los testigos no se pueden reutilizar a medida que avanza el estado.
  • Almacenamiento estatal: alguien todavía necesita mantener el estado completo para presentar testigos. La verificación sin estado se basa en la generación de testigos con estado.
  • Aplicaciones complejas: algunos contratos pueden depender de grandes subconjuntos estatales, testigos inflados. Por ejemplo, contratos que actualizan muchos espacios de almacenamiento por transacción.

Soluciones posibles

Los investigadores han propuesto varias soluciones para abordar estos desafíos:

  • Árboles Verkle: estructuras de datos especiales para reducir el tamaño de los testigos. Los árboles Verkle utilizan compromisos criptográficos concisos para minimizar el tamaño de la prueba.
  • Cachés de testigos: los proponentes podrían conservar testigos recientes para reutilizarlos. El almacenamiento en caché de testigos que probablemente vuelvan a ser relevantes amortiza los costos de creación.
  • Incentivos de protocolo: mecanismos de recompensa por proporcionar testigos útiles. Nuevas estructuras de incentivos podrían compensar la creación de testigos.
  • Raíces de estado intermedio: realice un seguimiento de las raíces a lo largo del tiempo para evitar la regeneración de pruebas. Mantener raíces parciales podría reutilizar fragmentos testigo.
  • Alquiler estatal: requiere pagos para mantener el estado a largo plazo, podando el estado no utilizado. El alquiler obliga a limpiar el almacenamiento obsoleto para limitar el tamaño de la prueba.
  • Modelo de testigo particionado: manejo de estado dividido entre proponentes y verificadores. Haga que algunos nodos proponentes dedicados generen testigos.

Existen compensaciones entre estos enfoques y se necesita más investigación para descubrir implementaciones óptimas. Afortunadamente, la rápida innovación que se está produciendo en la criptografía de conocimiento cero podría abrir nuevas posibilidades para clientes apátridas eficientes.

Impacto potencial

Si se pueden superar los obstáculos técnicos, los clientes apátridas podrían hacer avanzar significativamente a Ethereum:

  • Sincronizaciones y verificación más rápidas para respaldar un mayor rendimiento de transacciones. La validación sin estado acelerará drásticamente el procesamiento de bloques.
  • Reducción de los requisitos de recursos para ejecutar nodos, mejorando la descentralización. Las computadoras portátiles y los aficionados podrían, de manera realista, ejecutar nodos completos.
  • Mejor soporte para clientes livianos como billeteras móviles. Las pruebas de estado son altamente compatibles con el modelo de cliente ligero.
  • Introducción más fluida de fragmentación, con verificación sin estado entre fragmentos. Las transacciones entre fragmentos pueden utilizar pruebas estatales eficientes.
  • Capacidad para eliminar y podar datos de estado antiguo que ya no son útiles. El crecimiento del Estado puede gestionarse activamente en lugar de ser ilimitado.
  • Más flexibilidad para que los operadores de nodos personalicen el estado según las necesidades. Los nodos podrían adaptar las políticas de retención de estado a los casos de uso.
  • Transición a un modelo donde la computación y el ancho de banda importan más que el almacenamiento. La arquitectura cambia hacia un modelo más compatible con la nube.

También existen algunos riesgos potenciales, como una mayor vulnerabilidad a los ataques DDoS y que el historial de blockchain solo sea almacenado de manera confiable por unos pocos operadores de nodos. Sin embargo, las pruebas criptográficas podrían reducir estos riesgos. En general, los clientes apátridas son uno de los enfoques más prometedores para superar las limitaciones actuales de Ethereum.

Conclusión

El creciente tamaño del estado de Ethereum plantea desafíos para la descentralización a medida que aumenta la adopción. Los clientes sin estado presentan una salida al permitir que los nodos verifiquen transacciones sin el estado completo de la cadena de bloques. Esto podría eventualmente permitir que los teléfonos móviles ejecuten nodos Ethereum, aumentando considerablemente la descentralización.

Descargo de responsabilidad:

  1. Este artículo se reimprime de [Espejo]. Todos los derechos de autor pertenecen al autor original [YQ]. Si hay objeciones a esta reimpresión, comuníquese con el equipo de Gate Learn y ellos lo manejarán de inmediato.
  2. Descargo de responsabilidad: los puntos de vista y opiniones expresados en este artículo son únicamente los del autor y no constituyen ningún consejo de inversión.
  3. Las traducciones del artículo a otros idiomas están a cargo del equipo de Gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.
Розпочати зараз
Зареєструйтеся та отримайте ваучер на
$100
!