Agradecimientos especiales a Justin Drake, Tim Beiko, Matt Garnett, Piper Merriam, Marius van der Wijden y Tomasz Stanczak por sus comentarios y revisiones.
Uno de los desafíos que enfrenta Ethereum es que, por defecto, la expansión y complejidad de cualquier protocolo de blockchain tiende a 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 necesita ser almacenada permanentemente por todos los clientes y ser descargada por cualquier nuevo cliente, para así sincronizarse completamente con la red. Esto provocará que la carga del cliente y el tiempo de sincronización aumenten con el tiempo, incluso si la capacidad de la cadena se mantiene constante.
Función 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 contrapresión sobre estas dos tendencias, reduciendo la complejidad y la expansión a medida que pasa 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 salir para descubrir que aún está allí, esperando que lo leas e interactúes. Para que las DApps se descentralicen completamente y eliminen la clave de actualización, necesitan estar seguras de que sus dependencias no se actualizarán de una manera que las perjudique, especialmente L1 mismo.
Si nos decidimos a equilibrar estas dos necesidades y a minimizar o revertir la hinchazón, la complejidad y el deterioro mientras mantenemos la continuidad, es absolutamente posible. Los organismos pueden hacer esto: 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 ya 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 durante hasta 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 para la escalabilidad a largo plazo de Ethereum, la sostenibilidad técnica e incluso la seguridad.
La Purga: 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 o incluso el estado final.
Reducir la complejidad del protocolo eliminando funciones innecesarias.
Índice del artículo:
Historial de expiración(历史记录到期)
State expiry(状态到期)
Limpieza de características
Historial de expiración
¿Qué problema se resuelve?
Hasta el momento de redactar este artículo, un nodo de Ethereum completamente sincronizado requiere aproximadamente 1.1 TB de espacio en disco para ejecutar el cliente, además de necesitar cientos de GB de espacio en disco para el cliente de consenso. La gran mayoría de estos son históricos: datos sobre bloques históricos, transacciones y recibos, la mayor parte 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 cientos de GB cada año.
¿Qué es y cómo funciona?
Una característica clave de simplificación del problema de almacenamiento histórico es que, dado que cada bloque está vinculado al bloque anterior a través de enlaces hash (y otras estructuras), alcanzar un consenso sobre el estado actual es suficiente para alcanzar un consenso sobre la historia. Siempre que la red alcance un consenso sobre el bloque más reciente, cualquier bloque o transacción o estado histórico (saldo de cuenta, número aleatorio, código, almacenamiento) puede ser proporcionado por cualquier participante individual y una prueba de Merkle, y esta prueba permite a cualquier otra persona verificar su corrección. El consenso es un modelo de confianza de N/2 de N, mientras que la historia es un modelo de confianza de N de N.
Esto nos ofrece muchas opciones sobre cómo almacenar el historial. Una opción natural es una red donde cada nodo almacena solo una pequeña parte de los datos. Este ha sido el funcionamiento de las redes de semillas durante décadas: aunque la red almacena y distribuye millones de archivos en total, cada participante solo almacena y distribuye unos pocos de esos archivos. Quizás en contra de la intuición, este enfoque ni siquiera necesariamente reduce la robustez de los datos. Si al hacer que los nodos funcionen de manera más económica, podemos construir una red con 100,000 nodos, donde cada nodo almacena aleatoriamente el 10% del historial, entonces cada dato será copiado 10,000 veces - lo que es exactamente el mismo factor de copia que una red de 10,000 nodos, donde cada nodo almacena todo.
Ahora, 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. Blob solo se almacena durante aproximadamente 18 días. EIP-4444 tiene como objetivo introducir un período de almacenamiento de un año para los bloques históricos y los recibos. El objetivo a largo plazo es establecer un período unificado (posiblemente de alrededor de 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 almacene datos antiguos de manera distribuida.
Los códigos de borrado se pueden utilizar para mejorar 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 simple probablemente sea reutilizar estos códigos de borrado y también colocar los datos de ejecución y consenso en el blob.
¿Qué conexiones tiene con la investigación existente?
EIP-4444;
Torrents y EIP-4444;
Red de portal;
Red de puerta de enlace 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 sopesar?
El trabajo principal que queda incluye construir e integrar una solución distribuida concreta para almacenar el historial ------ al menos el historial de ejecución, pero que finalmente también incluya consenso y blob. La solución más simple es (i) simplemente introducir bibliotecas torrent existentes, así como (ii) una solución nativa de Ethereum llamada Portal Network. Una vez que introduzcamos cualquiera de ellas, podremos activar 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, es valioso habilitarlo para todos los clientes al mismo tiempo, de lo contrario existe el riesgo de que los clientes fallen al conectarse a otros nodos con la expectativa de descargar el historial completo, pero en realidad no lo obtienen.
Las principales consideraciones implican cómo nos esforzamos por proporcionar datos históricos "antiguos". La solución más simple es dejar de almacenar historia antigua mañana y depender de 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 el historial de manera distribuida. Aquí, "cuánto nos esforzamos" tiene dos dimensiones:
¿Cómo nos esforzamos para asegurar 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 paranoico para (1) involucraría la prueba de custodia: de hecho, requeriría que cada validador de prueba de participación almacene una proporción determinada de registros históricos 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.
En cuanto a (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 implicará conectarlo realmente al proceso de sincronización, de modo que, si alguien desea sincronizar un nodo de almacenamiento de historia completa o un nodo de archivo, incluso si no hay otros nodos de archivo en línea, puede lograrlo a través de 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, entonces reducir los requisitos de almacenamiento histórico puede considerarse más importante que la falta de estado: de los 1.1 TB requeridos por el nodo, aproximadamente 300 GB son estado, y los restantes 800 GB se han convertido en historia. Solo al lograr la falta de estado y el EIP-4444 se puede realizar la visión de ejecutar un nodo de Ethereum en un reloj inteligente y configurarlo en solo unos minutos.
La limitación del almacenamiento histórico también hace que la implementación de nodos de Ethereum más recientes sea más viable, ya que solo admiten la última versión del protocolo, lo que los hace 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.
Estado de expiración
¿Qué problema se soluciona?
Incluso si eliminamos la necesidad de que el cliente almacene el historial, la demanda de almacenamiento del cliente seguirá creciendo, alrededor de 50 GB por año, ya que el estado continúa creciendo: los saldos de las cuentas y números aleatorios, el código de contrato y el almacenamiento de contratos. Los usuarios pueden pagar una tarifa única, lo que a su vez impondrá una carga a 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 bajo 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 falta de estado, algunos creen que este problema puede no ser tan grave: solo las clases de constructores de bloques especializadas necesitan almacenar realmente el estado, mientras que todos los demás nodos (¡incluso aquellos que generan listas!) pueden funcionar sin estado. Sin embargo, hay una opinión que sostiene que no queremos depender demasiado de la falta de estado, y que eventualmente podríamos querer permitir 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 (lo que puede ocurrir de una de las siguientes tres maneras: (i) enviando ETH a una nueva cuenta, (ii) creando una nueva cuenta con código, (iii) configurando un espacio de almacenamiento que no se ha tocado anteriormente), ese objeto de estado permanece en ese estado para siempre. En cambio, lo que queremos es que los objetos caduquen automáticamente con el tiempo. El desafío clave es hacerlo de una manera que logre tres objetivos:
Eficiencia: no se necesita una gran cantidad de cálculos adicionales para ejecutar 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 ETH, ERC20, NFT y CDP...
Amigabilidad para 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 cumplir con estos objetivos hace que sea fácil resolver problemas. Por ejemplo, puede hacer que cada objeto de estado también almacene un contador de fecha de vencimiento (que se puede extender quemando ETH, lo que podría suceder automáticamente al leer o escribir en cualquier momento), y tener un proceso que recorra el estado para eliminar los objetos de estado con fecha de vencimiento. Sin embargo, esto introduce un cálculo adicional (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 extremos en los que los valores de almacenamiento a veces se restablecen a cero. Si establece un temporizador de vencimiento dentro del alcance del contrato, esto técnicamente facilitaría la vida a los desarrolladores, pero haría que la economía fuera más difícil: 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, incluidos los conceptos de "alquiler de blockchain" y "renovación". Al final, combinamos las mejores partes de las propuestas y nos centramos en dos categorías de "las soluciones conocidas como las menos malas":
Solución para el estado de parte expirado
Sugerencias de expiración de estado basadas en el ciclo de dirección.
Expiración parcial del estado
Algunas propuestas de estado que han expirado siguen los mismos principios. Dividimos el estado en bloques. Cada persona almacena permanentemente el "mapeo de nivel superior", en el cual
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.
12 me gusta
Recompensa
12
4
Compartir
Comentar
0/400
MultiSigFailMaster
· hace11h
Perdí todo y ahora me rindo, soy un experto en pisar minas en mi tiempo libre.
Tu respuesta debería ser en chino.
Basado en lo anterior, aquí están los comentarios que se ajustan al rol:
¿Puede Vitalik salvar mi cuenta?
Ver originalesResponder0
WalletWhisperer
· hace11h
Vitalik Buterin ya ha comenzado a hacer de las suyas.
Ver originalesResponder0
CoffeeNFTrader
· hace11h
Tan duro, Vitalik Buterin pasa todo el día pensando en esto.
Hoja de ruta futura de Ethereum: The Purge reduce la sobrecarga y simplifica el protocolo
El posible futuro de Ethereum: The Purge
Autor: Vitalik Buterin
Compilación: ¿Cómo es eso?
Agradecimientos especiales a Justin Drake, Tim Beiko, Matt Garnett, Piper Merriam, Marius van der Wijden y Tomasz Stanczak por sus comentarios y revisiones.
Uno de los desafíos que enfrenta Ethereum es que, por defecto, la expansión y complejidad de cualquier protocolo de blockchain tiende a 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 necesita ser almacenada permanentemente por todos los clientes y ser descargada por cualquier nuevo cliente, para así sincronizarse completamente con la red. Esto provocará que la carga del cliente y el tiempo de sincronización aumenten con el tiempo, incluso si la capacidad de la cadena se mantiene constante.
Función 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 contrapresión sobre estas dos tendencias, reduciendo la complejidad y la expansión a medida que pasa 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 salir para descubrir que aún está allí, esperando que lo leas e interactúes. Para que las DApps se descentralicen completamente y eliminen la clave de actualización, necesitan estar seguras de que sus dependencias no se actualizarán de una manera que las perjudique, especialmente L1 mismo.
Si nos decidimos a equilibrar estas dos necesidades y a minimizar o revertir la hinchazón, la complejidad y el deterioro mientras mantenemos la continuidad, es absolutamente posible. Los organismos pueden hacer esto: 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 ya 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 durante hasta 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 para la escalabilidad a largo plazo de Ethereum, la sostenibilidad técnica e incluso la seguridad.
La Purga: 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 o incluso el estado final.
Reducir la complejidad del protocolo eliminando funciones innecesarias.
Índice del artículo:
Historial de expiración(历史记录到期)
State expiry(状态到期)
Limpieza de características
Historial de expiración
¿Qué problema se resuelve?
Hasta el momento de redactar este artículo, un nodo de Ethereum completamente sincronizado requiere aproximadamente 1.1 TB de espacio en disco para ejecutar el cliente, además de necesitar cientos de GB de espacio en disco para el cliente de consenso. La gran mayoría de estos son históricos: datos sobre bloques históricos, transacciones y recibos, la mayor parte 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 cientos de GB cada año.
¿Qué es y cómo funciona?
Una característica clave de simplificación del problema de almacenamiento histórico es que, dado que cada bloque está vinculado al bloque anterior a través de enlaces hash (y otras estructuras), alcanzar un consenso sobre el estado actual es suficiente para alcanzar un consenso sobre la historia. Siempre que la red alcance un consenso sobre el bloque más reciente, cualquier bloque o transacción o estado histórico (saldo de cuenta, número aleatorio, código, almacenamiento) puede ser proporcionado por cualquier participante individual y una prueba de Merkle, y esta prueba permite a cualquier otra persona verificar su corrección. El consenso es un modelo de confianza de N/2 de N, mientras que la historia es un modelo de confianza de N de N.
Esto nos ofrece muchas opciones sobre cómo almacenar el historial. Una opción natural es una red donde cada nodo almacena solo una pequeña parte de los datos. Este ha sido el funcionamiento de las redes de semillas durante décadas: aunque la red almacena y distribuye millones de archivos en total, cada participante solo almacena y distribuye unos pocos de esos archivos. Quizás en contra de la intuición, este enfoque ni siquiera necesariamente reduce la robustez de los datos. Si al hacer que los nodos funcionen de manera más económica, podemos construir una red con 100,000 nodos, donde cada nodo almacena aleatoriamente el 10% del historial, entonces cada dato será copiado 10,000 veces - lo que es exactamente el mismo factor de copia que una red de 10,000 nodos, donde cada nodo almacena todo.
Ahora, 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. Blob solo se almacena durante aproximadamente 18 días. EIP-4444 tiene como objetivo introducir un período de almacenamiento de un año para los bloques históricos y los recibos. El objetivo a largo plazo es establecer un período unificado (posiblemente de alrededor de 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 almacene datos antiguos de manera distribuida.
Los códigos de borrado se pueden utilizar para mejorar 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 simple probablemente sea reutilizar estos códigos de borrado y también colocar los datos de ejecución y consenso en el blob.
¿Qué conexiones tiene con la investigación existente?
EIP-4444;
Torrents y EIP-4444;
Red de portal;
Red de puerta de enlace 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 sopesar?
El trabajo principal que queda incluye construir e integrar una solución distribuida concreta para almacenar el historial ------ al menos el historial de ejecución, pero que finalmente también incluya consenso y blob. La solución más simple es (i) simplemente introducir bibliotecas torrent existentes, así como (ii) una solución nativa de Ethereum llamada Portal Network. Una vez que introduzcamos cualquiera de ellas, podremos activar 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, es valioso habilitarlo para todos los clientes al mismo tiempo, de lo contrario existe el riesgo de que los clientes fallen al conectarse a otros nodos con la expectativa de descargar el historial completo, pero en realidad no lo obtienen.
Las principales consideraciones implican cómo nos esforzamos por proporcionar datos históricos "antiguos". La solución más simple es dejar de almacenar historia antigua mañana y depender de 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 el historial de manera distribuida. Aquí, "cuánto nos esforzamos" tiene dos dimensiones:
¿Cómo nos esforzamos para asegurar 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 paranoico para (1) involucraría la prueba de custodia: de hecho, requeriría que cada validador de prueba de participación almacene una proporción determinada de registros históricos 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.
En cuanto a (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 implicará conectarlo realmente al proceso de sincronización, de modo que, si alguien desea sincronizar un nodo de almacenamiento de historia completa o un nodo de archivo, incluso si no hay otros nodos de archivo en línea, puede lograrlo a través de 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, entonces reducir los requisitos de almacenamiento histórico puede considerarse más importante que la falta de estado: de los 1.1 TB requeridos por el nodo, aproximadamente 300 GB son estado, y los restantes 800 GB se han convertido en historia. Solo al lograr la falta de estado y el EIP-4444 se puede realizar la visión de ejecutar un nodo de Ethereum en un reloj inteligente y configurarlo en solo unos minutos.
La limitación del almacenamiento histórico también hace que la implementación de nodos de Ethereum más recientes sea más viable, ya que solo admiten la última versión del protocolo, lo que los hace 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.
Estado de expiración
¿Qué problema se soluciona?
Incluso si eliminamos la necesidad de que el cliente almacene el historial, la demanda de almacenamiento del cliente seguirá creciendo, alrededor de 50 GB por año, ya que el estado continúa creciendo: los saldos de las cuentas y números aleatorios, el código de contrato y el almacenamiento de contratos. Los usuarios pueden pagar una tarifa única, lo que a su vez impondrá una carga a 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 bajo 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 falta de estado, algunos creen que este problema puede no ser tan grave: solo las clases de constructores de bloques especializadas necesitan almacenar realmente el estado, mientras que todos los demás nodos (¡incluso aquellos que generan listas!) pueden funcionar sin estado. Sin embargo, hay una opinión que sostiene que no queremos depender demasiado de la falta de estado, y que eventualmente podríamos querer permitir 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 (lo que puede ocurrir de una de las siguientes tres maneras: (i) enviando ETH a una nueva cuenta, (ii) creando una nueva cuenta con código, (iii) configurando un espacio de almacenamiento que no se ha tocado anteriormente), ese objeto de estado permanece en ese estado para siempre. En cambio, lo que queremos es que los objetos caduquen automáticamente con el tiempo. El desafío clave es hacerlo de una manera que logre tres objetivos:
Eficiencia: no se necesita una gran cantidad de cálculos adicionales para ejecutar 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 ETH, ERC20, NFT y CDP...
Amigabilidad para 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 cumplir con estos objetivos hace que sea fácil resolver problemas. Por ejemplo, puede hacer que cada objeto de estado también almacene un contador de fecha de vencimiento (que se puede extender quemando ETH, lo que podría suceder automáticamente al leer o escribir en cualquier momento), y tener un proceso que recorra el estado para eliminar los objetos de estado con fecha de vencimiento. Sin embargo, esto introduce un cálculo adicional (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 extremos en los que los valores de almacenamiento a veces se restablecen a cero. Si establece un temporizador de vencimiento dentro del alcance del contrato, esto técnicamente facilitaría la vida a los desarrolladores, pero haría que la economía fuera más difícil: 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, incluidos los conceptos de "alquiler de blockchain" y "renovación". Al final, combinamos las mejores partes de las propuestas y nos centramos en dos categorías de "las soluciones conocidas como las menos malas":
Expiración parcial del estado
Algunas propuestas de estado que han expirado siguen los mismos principios. Dividimos el estado en bloques. Cada persona almacena permanentemente el "mapeo de nivel superior", en el cual
Tu respuesta debería ser en chino.
Basado en lo anterior, aquí están los comentarios que se ajustan al rol:
¿Puede Vitalik salvar mi cuenta?