El viaje de transformación de Ethereum: The Purge explora un nuevo paradigma de gestión de datos en la cadena.

El posible futuro de Ethereum: The Purge

Uno de los desafíos que enfrenta Ethereum es que, por defecto, la expansión y complejidad de cualquier protocolo de blockchain aumentará con el tiempo. Esto ocurre en dos lugares:

Datos históricos: Cualquier transacción realizada y cualquier cuenta creada en cualquier momento de la historia debe ser almacenada permanentemente por todos los clientes y descargada por cualquier nuevo cliente, para que esté completamente sincronizada con la red. Esto resultará en una carga de cliente y un tiempo de sincronización que aumentan con el tiempo, incluso si la capacidad de la cadena permanece constante.

Funciones del protocolo: agregar nuevas funciones es mucho más fácil que eliminar funciones antiguas, lo que provoca que la complejidad del código aumente con el tiempo.

Para que Ethereum pueda mantenerse a largo plazo, necesitamos ejercer una fuerte presión en contra de estas dos tendencias, reduciendo la complejidad y la expansión con el tiempo. Pero al mismo tiempo, necesitamos conservar una de las propiedades clave que hacen que la blockchain sea grandiosa: la persistencia. Puedes poner un NFT, una carta de amor en los datos de una llamada de transacción, o un contrato inteligente que contenga un millón de dólares en la cadena, entrar en una cueva durante diez años y al salir descubrir que todavía está allí esperando que lo leas e interactúes. Para que DApps se descentralicen completamente y eliminen las claves de actualización, necesitan estar seguros de que sus dependencias no se actualizarán de manera que las destruyan, especialmente L1 mismo.

Si nos decidimos a encontrar un equilibrio entre estas dos demandas, minimizando o revertiendo la obsolescencia, la complejidad y el deterioro mientras mantenemos la continuidad, esto es absolutamente posible. Los organismos pueden lograrlo: aunque la mayoría de los organismos envejecen con el tiempo, unos pocos afortunados no lo hacen. Incluso los sistemas sociales pueden tener una vida útil muy larga. En ciertos casos, Ethereum ha tenido éxito: la prueba de trabajo ha desaparecido, el opcode SELFDESTRUCT ha desaparecido en su mayoría, y los nodos de la cadena de balizas han almacenado datos antiguos por un máximo de seis meses. Encontrar este camino para Ethereum de una manera más general y avanzar hacia un resultado final estable a largo plazo es el desafío definitivo de la escalabilidad a largo plazo de Ethereum, la sostenibilidad técnica e incluso la seguridad.

The Purge: Objetivo principal.

Reducir los requisitos de almacenamiento del cliente al disminuir o eliminar la necesidad de que cada nodo almacene permanentemente todos los registros históricos e incluso el estado final.

Reducir la complejidad del protocolo eliminando funciones innecesarias.

Vitalik: el posible futuro de Ethereum, The Purge

Índice del artículo:

Historial de expiración(历史记录到期)

Estado de caducidad

Limpieza de características

Historial de caducidad

¿Qué problema se resuelve?

Hasta la fecha de redacción de este artículo, un nodo de Ethereum completamente sincronizado necesita aproximadamente 1.1 TB de espacio en disco para ejecutar el cliente, además de varios cientos de GB de espacio en disco para el cliente de consenso. La gran mayoría de esto es histórico: datos sobre bloques históricos, transacciones y recibos, la mayoría de los cuales tienen varios años de antigüedad. Esto significa que incluso si el límite de Gas no aumenta en absoluto, el tamaño del nodo seguirá aumentando en cientos de GB cada año.

¿Qué es y cómo funciona?

Una característica clave que simplifica el problema del almacenamiento histórico es que, dado que cada bloque apunta al bloque anterior mediante enlaces hash (y otras estructuras), alcanzar consenso sobre el estado actual es suficiente para alcanzar consenso sobre el historial. Siempre que la red alcance consenso sobre el bloque más reciente, cualquier bloque histórico, transacción o estado (saldos de cuentas, números aleatorios, código, almacenamiento) puede ser proporcionado por cualquier participante individual junto con una prueba de Merkle, y dicha prueba permite a cualquier otra persona verificar su corrección. El consenso es un modelo de confianza de N/2-of-N, mientras que la historia es un modelo de confianza de N-of-N.

Esto nos proporciona muchas opciones sobre cómo almacenar el historial. Una elección natural es una red donde cada nodo almacena solo una pequeña parte de los datos. Así es como ha funcionado la red de semillas durante décadas: aunque la red almacena y distribuye millones de archivos en total, cada participante solo almacena y distribuye algunos de ellos. Quizás, en contra de la intuición, este enfoque ni siquiera necesariamente reduce la robustez de los datos. Si mediante la ejecución de nodos de manera más rentable, podemos construir una red de 100,000 nodos, donde cada nodo almacena aleatoriamente el 10% del historial, entonces cada dato será replicado 10,000 veces - exactamente el mismo factor de replicación que una red de 10,000 nodos, donde cada nodo almacena todo.

Hoy en día, Ethereum ha comenzado a deshacerse del modelo en el que todos los nodos almacenan permanentemente toda la historia. Los bloques de consenso (es decir, la parte relacionada con el consenso de prueba de participación) solo almacenan aproximadamente 6 meses. Los Blob solo almacenan aproximadamente 18 días. EIP-4444 tiene como objetivo introducir un período de almacenamiento de un año para bloques históricos y recibos. El objetivo a largo plazo es establecer un período unificado (que podría ser de aproximadamente 18 días), durante el cual cada nodo es responsable de almacenar todo, y luego establecer una red peer-to-peer compuesta por nodos de Ethereum que almacenen datos antiguos de manera distribuida.

Los códigos de borrado se pueden utilizar para aumentar la robustez, manteniendo al mismo tiempo el mismo factor de replicación. De hecho, Blob ya ha implementado códigos de borrado para soportar el muestreo de disponibilidad de datos. La solución más sencilla probablemente sea reutilizar estos códigos de borrado y también colocar los datos de ejecución y consenso del bloque en el blob.

Vitalik: El posible futuro de Ethereum, The Purge

¿Qué conexiones hay con la investigación existente?

EIP-4444;

Torrents y EIP-4444;

Red de puertas;

Red de puerta y EIP-4444;

Almacenamiento y recuperación distribuida de objetos SSZ en Portal;

¿Cómo aumentar el límite de gas (Paradigm)?

¿Qué más se necesita hacer, qué se debe ponderar?

El trabajo principal restante incluye construir e integrar una solución distribuida concreta para almacenar el historial ------ al menos el historial de ejecución, pero en última instancia también incluirá el consenso y el blob. La solución más simple es (i) simplemente introducir una biblioteca torrent existente, así como (ii) una solución nativa de Ethereum llamada red Portal. Una vez que introduzcamos cualquiera de estos, podremos abrir el EIP-4444. El EIP-4444 en sí no requiere un hard fork, pero sí necesita una nueva versión del protocolo de red. Por lo tanto, habilitarlo para todos los clientes al mismo tiempo es valioso, de lo contrario existe el riesgo de que los clientes fallen al conectarse a otros nodos esperando descargar el historial completo, pero en realidad no lo obtienen.

Las principales compensaciones implican cómo nos esforzamos por proporcionar datos históricos "antiguos". La solución más sencilla es dejar de almacenar historia antigua mañana y depender de los nodos de archivo existentes y varios proveedores centralizados para la replicación. Esto es fácil, pero debilita la posición de Ethereum como un lugar de registro permanente. Un enfoque más difícil pero más seguro es construir e integrar primero una red torrent para almacenar la historia de manera distribuida. Aquí, "cuánto nos esforzamos" tiene dos dimensiones:

¿Cómo nos aseguramos de que el conjunto de nodos más grande realmente almacene todos los datos?

¿Qué tan profunda es la integración del almacenamiento histórico en el protocolo?

Un enfoque extremadamente riguroso para (1) implicaría la prueba de custodia: de hecho, exigir que cada validador de prueba de participación almacene una cierta proporción de historial y verifique regularmente de manera criptográfica si lo está haciendo. Un enfoque más moderado sería establecer un estándar voluntario para el porcentaje de historial almacenado por cada cliente.

Para (2), la implementación básica solo involucra el trabajo que ya se ha completado hoy: el Portal ya ha almacenado un archivo ERA que contiene toda la historia de Ethereum. Una implementación más completa involucrará conectarlo realmente al proceso de sincronización, de modo que, si alguien desea sincronizar un nodo de almacenamiento de historial completo o un nodo de archivo, incluso si no hay otros nodos de archivo en línea, pueda lograrlo mediante la sincronización directa desde la red del portal.

¿Cómo interactúa con otras partes de la hoja de ruta?

Si queremos que la ejecución o el inicio de nodos sea extremadamente fácil, reducir los requisitos de almacenamiento histórico puede considerarse más importante que la falta de estado: de los 1.1 TB necesarios para el nodo, aproximadamente 300 GB son estado, y los aproximadamente 800 GB restantes se han convertido en históricos. Solo al lograr la falta de estado y el EIP-4444 se podrá realizar la visión de ejecutar un nodo de Ethereum en un smartwatch y configurarlo en solo unos minutos.

Limitar el almacenamiento histórico también hace que los nodos de Ethereum más nuevos sean más viables, ya que solo admiten la última versión del protocolo, lo que los hace mucho más simples. Por ejemplo, ahora se pueden eliminar de forma segura muchas líneas de código, ya que todos los espacios de almacenamiento vacíos creados durante el ataque DoS de 2016 han sido eliminados. Dado que la transición a la prueba de participación se ha convertido en historia, los clientes pueden eliminar de forma segura todo el código relacionado con la prueba de trabajo.

Vitalik: El posible futuro de Ethereum, The Purge

Estado de caducidad

¿Qué problema se soluciona?

Incluso si eliminamos la necesidad de que el cliente almacene el historial, la demanda de almacenamiento del cliente seguirá creciendo, aproximadamente 50 GB por año, ya que el estado continúa creciendo: saldos de cuentas y números aleatorios, código de contratos y almacenamiento de contratos. Los usuarios pueden pagar una tarifa única, lo que a su vez traerá una carga para los clientes de Ethereum actuales y futuros.

El estado es más difícil de "expirar" que la historia, porque la EVM está diseñada fundamentalmente en torno a la suposición de que, una vez que se crea un objeto de estado, siempre existirá y podrá ser leído en cualquier momento por cualquier transacción. Si introducimos la ausencia de estado, algunos creen que este problema tal vez no sea tan malo: solo las clases de constructores de bloques especializados necesitan almacenar realmente el estado, mientras que todos los demás nodos (¡incluso los que generan listas!) pueden funcionar sin estado. Sin embargo, hay una opinión que sostiene que no queremos depender demasiado de la ausencia de estado; al final, podríamos querer hacer que el estado expire para mantener la descentralización de Ethereum.

¿Qué es y cómo funciona?

Hoy, cuando crea un nuevo objeto de estado (esto puede ocurrir de una de las siguientes tres maneras: (i) enviando ETH a una nueva cuenta, (ii) creando una nueva cuenta mediante código, (iii) configurando un espacio de almacenamiento que no se ha tocado anteriormente), el objeto de estado permanece en ese estado para siempre. En cambio, lo que queremos es que el objeto expire automáticamente con el tiempo. El desafío clave es hacerlo de una manera que logre tres objetivos:

Eficiencia: No se necesitan grandes cálculos adicionales para llevar a cabo el proceso de vencimiento.

Facilidad de uso: si alguien entra en una cueva durante cinco años y regresa, no debería perder el acceso a sus posiciones de Ether, ERC20, NFT, CDP...

Amigable para los desarrolladores: los desarrolladores no tienen que cambiar a un modelo de pensamiento completamente desconocido. Además, las aplicaciones que actualmente están rígidas y no actualizadas deberían poder seguir funcionando normalmente.

No satisfacer estos objetivos hace que resolver problemas sea bastante fácil. Por ejemplo, puedes hacer que cada objeto de estado también almacene un contador de fecha de expiración (que puede extenderse quemando ETH, lo cual podría ocurrir automáticamente al leer o escribir en cualquier momento), y tener un proceso que recorra el estado para eliminar los objetos de estado con fechas de expiración. Sin embargo, esto introduce cálculos adicionales (incluso requisitos de almacenamiento), y definitivamente no puede satisfacer los requisitos de facilidad de uso. A los desarrolladores también les resulta difícil razonar sobre los casos límite que implican que los valores de almacenamiento a veces se restablecen a cero. Si estableces un temporizador de expiración dentro del alcance del contrato, esto técnicamente haría la vida más fácil para los desarrolladores, pero complicaría más la economía: los desarrolladores deben considerar cómo "trasladar" el costo de almacenamiento continuo a los usuarios.

Estos son problemas que la comunidad de desarrollo central de Ethereum ha estado tratando de resolver durante años, incluyendo propuestas como "renta de blockchain" y "regeneración". Al final, combinamos las mejores partes de las propuestas y nos centramos en dos tipos de "soluciones conocidas como las menos malas":

  • Solución para el estado parcialmente caducado
  • Sugerencia de expiración de estado basada en el ciclo de direcciones.

Expiración parcial del estado

Algunas propuestas de estado que expiran siguen los mismos principios. Dividimos el estado en bloques. Todos almacenan permanentemente un "mapeo superior", donde los bloques pueden estar vacíos o no. Los datos en cada bloque solo se almacenan si se han accedido recientemente. Hay un mecanismo de "resurrección" que se activa si ya no se almacenan.

La principal diferencia entre estas propuestas es: (i) cómo definimos "reciente",

Ver originales
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Recompensa
  • 6
  • Compartir
Comentar
0/400
GateUser-3824aa38vip
· hace14h
¿Hasta cuándo vamos a esperar para que termine esto?
Ver originalesResponder0
CryptoNomicsvip
· hace14h
*sigh* en realidad el bloat del protocolo sigue una función de crecimiento logarítmico: P(t) = k*ln(t) + c... pero no están listos para esa conversación
Ver originalesResponder0
TokenStormvip
· hace14h
Los datos en cadena están explotando, Ethereum probablemente no podrá soportarlo.
Ver originalesResponder0
DefiVeteranvip
· hace14h
La limpieza de datos depende de V God.
Ver originalesResponder0
rug_connoisseurvip
· hace14h
La carga histórica es demasiado pesada.
Ver originalesResponder0
OnchainGossipervip
· hace14h
Simplemente significa que has engordado y quieres perder peso.
Ver originalesResponder0
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)