Futuro potencial del protocolo Ethereum (VI): prosperidad
Escrito por: Vitalik Buterin
Hay cosas que son difíciles de clasificar en una sola categoría, en el diseño del protocolo Ethereum, hay muchos "detalles" que son muy importantes para el éxito de Ethereum. De hecho, aproximadamente la mitad del contenido se refiere a diferentes tipos de mejoras de EVM, mientras que el resto está compuesto por varios temas de nicho, de ahí el significado de "prosperidad".
Prosperidad: objetivo clave
Convertir EVM en un "estado final" de alto rendimiento y estabilidad
Introducir la abstracción de cuentas en el protocolo, permitiendo a todos los usuarios disfrutar de cuentas más seguras y convenientes.
Optimizar la economía de las tarifas de transacción, aumentar la escalabilidad y al mismo tiempo reducir el riesgo
Explorar la criptografía avanzada para mejorar significativamente Ethereum a largo plazo
mejora de EVM
¿Qué problema se resolvió?
Actualmente, el EVM es difícil de analizar estáticamente, lo que complica la creación de implementaciones eficientes, la verificación formal del código y la expansión adicional. Además, la eficiencia del EVM es baja, lo que dificulta la implementación de muchas formas de criptografía avanzada, a menos que se soporte explícitamente mediante precompilaciones.
¿Qué es y cómo funciona?
El primer paso en la hoja de ruta de mejora de EVM actual es el formato de objeto EVM (EOF), que se planea incluir en la próxima bifurcación dura. EOF es una serie de EIP que especifica una nueva versión del código EVM, con muchas características únicas, siendo la más destacada:
La separación entre el código (ejecutable, pero no se puede leer desde EVM) y los datos (se pueden leer, pero no se pueden ejecutar)
Prohibido el salto dinámico, solo se permite el salto estático
El código EVM ya no puede observar información relacionada con el combustible.
Se ha añadido un nuevo mecanismo de subrutina explícita.
Los contratos antiguos seguirán existiendo y podrán ser creados, aunque eventualmente podrían ser gradualmente descontinuados (e incluso pueden ser forzados a convertirse en código EOF). Los contratos nuevos se beneficiarán de las mejoras de eficiencia que trae EOF: primero, mediante un bytecode ligeramente reducido gracias a las características de subrutinas, y luego con nuevas funciones específicas de EOF o costos de gas reducidos.
Con la introducción de EOF, las actualizaciones adicionales se vuelven más fáciles. El desarrollo más avanzado hasta ahora es la extensión aritmética del módulo EVM (EVM-MAX). EVM-MAX crea un conjunto de nuevas operaciones específicamente para la operación de módulo y las coloca en un nuevo espacio de memoria que no se puede acceder mediante otros códigos de operación, lo que permite la optimización mediante técnicas como la multiplicación de Montgomery.
Una idea relativamente nueva es combinar EVM-MAX con la característica de múltiples datos de una sola instrucción (SIMD), que ha existido como un concepto en Ethereum durante mucho tiempo, propuesto por primera vez por Greg Colvin en el EIP-616. SIMD puede ser utilizado para acelerar muchas formas de criptografía, incluyendo funciones hash, STARKs de 32 bits y criptografía basada en rejillas, la combinación de EVM-MAX y SIMD hace que estas dos extensiones orientadas al rendimiento sean una pareja natural.
Un diseño aproximado de un EIP combinado comenzará con EIP-6690 y luego:
Permitir (i) cualquier número impar o (ii) cualquier potencia de 2 que no supere 2768 como módulo
Para cada opcode EVM-MAX (suma, resta, multiplicación), agregar una versión que ya no utilice 3 literales x, y, z, sino que utilice 7 literales: x_start, x_skip, y_start, y_skip, z_start, z_skip, count. En el código de Python, el efecto de estos opcodes es similar a:
for i in range(count):
mem[z_start + z_skip * count] = op(
mem[x_start + x_skip * count],
mem[y_start + y_skip * count]
)
En la implementación real, esto se manejará de manera paralela.
Podría añadirse XOR, AND, OR, NOT y SHIFT (incluyendo cíclicos y no cíclicos), al menos para potencias de 2 en módulo. También se añadirá ISZERO (que empuja la salida a la pila principal de EVM), lo que será lo suficientemente poderoso como para implementar criptografía de curvas elípticas, criptografía de pequeños campos (como Poseidon, Circle STARKs), funciones hash tradicionales (como SHA256, KECCAK, BLAKE) y criptografía basada en retículas. Otras actualizaciones de EVM también podrían implementarse, pero hasta ahora han tenido menos atención.
Enlace de investigación existente
EOF:
EVM-MAX:
SIMD:
El trabajo restante y las compensaciones
Actualmente, se planea incluir EOF en la próxima bifurcación dura. Aunque siempre existe la posibilidad de eliminarlo en el último momento — en bifurcaciones duras anteriores se han eliminado funciones temporalmente, pero hacerlo presentará grandes desafíos. Eliminar EOF significa que cualquier actualización futura de EVM deberá realizarse sin EOF, aunque es posible, puede ser más difícil.
La principal compensación del EVM radica en la complejidad de L1 y la complejidad de la infraestructura. EOF es una gran cantidad de código que necesita ser agregado a la implementación del EVM, y la verificación de código estático también es relativamente compleja. Sin embargo, a cambio, podemos simplificar los lenguajes de alto nivel, simplificar la implementación del EVM y otros beneficios. Se puede decir que la hoja de ruta priorizando la mejora continua de Ethereum L1 debería incluir y basarse en EOF.
Una tarea importante que debe realizarse es implementar funciones similares a EVM-MAX con SIMD y realizar pruebas de referencia sobre el consumo de gas de varias operaciones criptográficas.
¿Cómo interactuar con otras partes de la hoja de ruta?
L1 ajusta su EVM para que L2 también pueda realizar ajustes correspondientes más fácilmente; si ambos no se ajustan de manera sincronizada, podría causar incompatibilidades y tener efectos adversos. Además, EVM-MAX y SIMD pueden reducir significativamente el costo de gas de muchos sistemas de prueba, lo que hace que L2 sea más eficiente. También facilita el reemplazo de más precompilados con código EVM que puede ejecutar las mismas tareas, lo que podría no afectar significativamente la eficiencia.
abstracción de cuentas
¿Qué problema se resolvió?
Actualmente, las transacciones solo se pueden verificar de una manera: mediante la firma ECDSA. Inicialmente, la abstracción de cuentas estaba destinada a ir más allá de esto, permitiendo que la lógica de verificación de cuentas fuera cualquier código EVM. Esto puede habilitar una serie de aplicaciones:
Cambiar a criptografía post-cuántica
Rotar las claves antiguas (ampliamente considerado como una práctica de seguridad recomendada)
Monedero de múltiples firmas y monedero de recuperación social
Usar una clave para operaciones de bajo valor, usar otra clave (o un conjunto de claves) para operaciones de alto valor
Permitir que el protocolo de privacidad funcione sin intermediarios, reduciendo significativamente su complejidad y eliminando un punto de dependencia central clave.
Desde que se propuso la abstracción de cuentas en 2015, su objetivo también se ha ampliado para incluir una gran cantidad de "objetivos de conveniencia", por ejemplo, una cuenta que no tiene ETH pero posee algunos ERC20 puede pagar el gas con ERC20. A continuación se muestra un gráfico resumen de estos objetivos:
MPC (cálculo multipartito) es una tecnología con 40 años de historia que se utiliza para dividir claves en múltiples partes y almacenarlas en varios dispositivos, utilizando técnicas criptográficas para generar firmas sin necesidad de combinar directamente estas partes de clave.
EIP-7702 es una propuesta que se planea introducir en la próxima bifurcación dura, y es el resultado de un creciente reconocimiento de la conveniencia de proporcionar la abstracción de cuentas para beneficiar a todos los usuarios (incluidos los usuarios de EOA). Su objetivo es mejorar la experiencia de todos los usuarios a corto plazo y evitar la división en dos ecosistemas.
Este trabajo comenzó con EIP-3074 y finalmente se formó EIP-7702. EIP-7702 proporciona la "funcionalidad conveniente" de la abstracción de cuentas a todos los usuarios, incluidos los EOA (Cuentas Externamente Poseídas, es decir, cuentas controladas por firmas ECDSA).
En el gráfico se puede ver que, aunque algunos desafíos (especialmente el desafío de "conveniencia") se pueden resolver mediante tecnologías progresivas como el cálculo multipartito o el EIP-7702, el principal objetivo de seguridad del concepto de abstracción de cuentas propuesto originalmente solo se puede lograr retrocediendo y resolviendo el problema original: permitir que el código de contrato inteligente controle la verificación de transacciones. La razón por la que aún no se ha logrado hasta ahora se debe a la implementación segura, lo cual es un desafío.
¿Qué es y cómo funciona?
El núcleo de la abstracción de cuentas es simple: permite que los contratos inteligentes inicien transacciones, y no solo las cuentas externas (EOA). Toda la complejidad proviene de implementar esto de una manera que sea amigable para mantener una red descentralizada y prevenir ataques de denegación de servicio.
Un desafío clave típico es el problema de múltiples fallos:
Si hay 1000 funciones de verificación de cuentas que dependen de un único valor S, y el valor actual S hace que las transacciones en el pool de memoria sean válidas, entonces una única transacción que invierte el valor de S podría hacer que todas las demás transacciones en el pool de memoria sean inválidas. Esto permite a un atacante enviar transacciones basura al pool de memoria a un costo muy bajo, bloqueando así los recursos de los nodos de la red.
Después de años de esfuerzo, con el objetivo de expandir las funcionalidades mientras se limita el riesgo de denegación de servicio (DoS), finalmente se llegó a la solución para implementar "abstracto de cuenta ideal": ERC-4337.
El funcionamiento de ERC-4337 divide el procesamiento de las operaciones del usuario en dos etapas: verificación y ejecución. Todas las verificaciones se procesan primero, y todas las ejecuciones se procesan después. En el pool de memoria, las operaciones del usuario solo se aceptan cuando la etapa de verificación involucra únicamente su propia cuenta y no lee variables del entorno. Esto puede prevenir ataques de múltiples fracasos. Además, se aplican estrictos límites de gas a los pasos de verificación.
ERC-4337 fue diseñado como un estándar de protocolo adicional (ERC), porque en ese momento los desarrolladores de clientes de Ethereum se centraron en la fusión (Merge) y no tenían energía adicional para manejar otras funciones. Por eso ERC-4337 utiliza un objeto llamado operación del usuario, en lugar de transacciones convencionales. Sin embargo, recientemente nos hemos dado cuenta de la necesidad de escribir al menos parte de esto en el protocolo.
Las dos razones clave son las siguientes:
EntryPoint como la ineficiencia inherente del contrato: cada paquete tiene un costo fijo de aproximadamente 100,000 gas, además de miles de gas adicionales por cada operación del usuario.
Asegurar la necesidad de las propiedades de Ethereum: como los usuarios abstractos de cuentas que requieren la transferencia de garantías creadas por la lista de inclusión.
Además, ERC-4337 también amplió dos funciones:
Agentes de pago (Paymasters): permiten que una cuenta pague tarifas en nombre de otra cuenta, lo que viola la regla de que en la fase de verificación solo se puede acceder a la cuenta del remitente. Por lo tanto, se introduce un tratamiento especial para garantizar la seguridad del mecanismo de agentes de pago.
Agregadores (Aggregators): soportan la función de agregación de firmas, como la agregación BLS o la agregación basada en SNARK. Esto es necesario para lograr la máxima eficiencia de datos en Rollup.
Enlace de investigación existente
Sobre la historia de la abstracción de cuentas:
ERC-4337:
EIP-7702:
Código BLSWallet (utilizando la función de agregación):
EIP-7562 (abstracción de cuentas en el protocolo):
EIP-7701 (protocolo de abstracción de cuentas de escritura basado en EOF):
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
19 me gusta
Recompensa
19
9
Compartir
Comentar
0/400
SelfRugger
· hace7h
Vitalik Buterin tienes razón en todo ah ah ah
Ver originalesResponder0
GreenCandleCollector
· 07-15 02:02
Vitalik Buterin ha intervenido, lo que significa que hay buenas noticias.
Ver originalesResponder0
GateUser-9ad11037
· 07-14 15:00
Vitalik Buterin ha lanzado una nueva obra~ los detalles determinan el éxito o fracaso.
Ver originalesResponder0
NightAirdropper
· 07-14 04:50
EVM todavía tiene que seguir compitiendo.
Ver originalesResponder0
StealthDeployer
· 07-14 04:47
¿Qué está haciendo V, otra vez jugueteando con el código?
Ver originalesResponder0
WhaleWatcher
· 07-14 04:45
Después de la actualización de Wahuta, es difícil superar estos cuellos de botella técnicos.
Ver originalesResponder0
MidnightGenesis
· 07-14 04:44
La frecuencia del código es anormal, ¿hay otro plan de despliegue nocturno?
Ver originalesResponder0
TokenSherpa
· 07-14 04:25
en realidad, *sigh* esta propuesta carece de un contexto histórico adecuado... déjame desglosar por qué evm 1.0 fue defectuoso desde el primer día
Perspectivas futuras de Ethereum: la actualización de EVM y la abstracción de cuentas lideran la prosperidad del protocolo
Futuro potencial del protocolo Ethereum (VI): prosperidad
Escrito por: Vitalik Buterin
Hay cosas que son difíciles de clasificar en una sola categoría, en el diseño del protocolo Ethereum, hay muchos "detalles" que son muy importantes para el éxito de Ethereum. De hecho, aproximadamente la mitad del contenido se refiere a diferentes tipos de mejoras de EVM, mientras que el resto está compuesto por varios temas de nicho, de ahí el significado de "prosperidad".
Prosperidad: objetivo clave
mejora de EVM
¿Qué problema se resolvió?
Actualmente, el EVM es difícil de analizar estáticamente, lo que complica la creación de implementaciones eficientes, la verificación formal del código y la expansión adicional. Además, la eficiencia del EVM es baja, lo que dificulta la implementación de muchas formas de criptografía avanzada, a menos que se soporte explícitamente mediante precompilaciones.
¿Qué es y cómo funciona?
El primer paso en la hoja de ruta de mejora de EVM actual es el formato de objeto EVM (EOF), que se planea incluir en la próxima bifurcación dura. EOF es una serie de EIP que especifica una nueva versión del código EVM, con muchas características únicas, siendo la más destacada:
Los contratos antiguos seguirán existiendo y podrán ser creados, aunque eventualmente podrían ser gradualmente descontinuados (e incluso pueden ser forzados a convertirse en código EOF). Los contratos nuevos se beneficiarán de las mejoras de eficiencia que trae EOF: primero, mediante un bytecode ligeramente reducido gracias a las características de subrutinas, y luego con nuevas funciones específicas de EOF o costos de gas reducidos.
Con la introducción de EOF, las actualizaciones adicionales se vuelven más fáciles. El desarrollo más avanzado hasta ahora es la extensión aritmética del módulo EVM (EVM-MAX). EVM-MAX crea un conjunto de nuevas operaciones específicamente para la operación de módulo y las coloca en un nuevo espacio de memoria que no se puede acceder mediante otros códigos de operación, lo que permite la optimización mediante técnicas como la multiplicación de Montgomery.
Una idea relativamente nueva es combinar EVM-MAX con la característica de múltiples datos de una sola instrucción (SIMD), que ha existido como un concepto en Ethereum durante mucho tiempo, propuesto por primera vez por Greg Colvin en el EIP-616. SIMD puede ser utilizado para acelerar muchas formas de criptografía, incluyendo funciones hash, STARKs de 32 bits y criptografía basada en rejillas, la combinación de EVM-MAX y SIMD hace que estas dos extensiones orientadas al rendimiento sean una pareja natural.
Un diseño aproximado de un EIP combinado comenzará con EIP-6690 y luego:
for i in range(count): mem[z_start + z_skip * count] = op( mem[x_start + x_skip * count], mem[y_start + y_skip * count] )
En la implementación real, esto se manejará de manera paralela.
Enlace de investigación existente
El trabajo restante y las compensaciones
Actualmente, se planea incluir EOF en la próxima bifurcación dura. Aunque siempre existe la posibilidad de eliminarlo en el último momento — en bifurcaciones duras anteriores se han eliminado funciones temporalmente, pero hacerlo presentará grandes desafíos. Eliminar EOF significa que cualquier actualización futura de EVM deberá realizarse sin EOF, aunque es posible, puede ser más difícil.
La principal compensación del EVM radica en la complejidad de L1 y la complejidad de la infraestructura. EOF es una gran cantidad de código que necesita ser agregado a la implementación del EVM, y la verificación de código estático también es relativamente compleja. Sin embargo, a cambio, podemos simplificar los lenguajes de alto nivel, simplificar la implementación del EVM y otros beneficios. Se puede decir que la hoja de ruta priorizando la mejora continua de Ethereum L1 debería incluir y basarse en EOF.
Una tarea importante que debe realizarse es implementar funciones similares a EVM-MAX con SIMD y realizar pruebas de referencia sobre el consumo de gas de varias operaciones criptográficas.
¿Cómo interactuar con otras partes de la hoja de ruta?
L1 ajusta su EVM para que L2 también pueda realizar ajustes correspondientes más fácilmente; si ambos no se ajustan de manera sincronizada, podría causar incompatibilidades y tener efectos adversos. Además, EVM-MAX y SIMD pueden reducir significativamente el costo de gas de muchos sistemas de prueba, lo que hace que L2 sea más eficiente. También facilita el reemplazo de más precompilados con código EVM que puede ejecutar las mismas tareas, lo que podría no afectar significativamente la eficiencia.
abstracción de cuentas
¿Qué problema se resolvió?
Actualmente, las transacciones solo se pueden verificar de una manera: mediante la firma ECDSA. Inicialmente, la abstracción de cuentas estaba destinada a ir más allá de esto, permitiendo que la lógica de verificación de cuentas fuera cualquier código EVM. Esto puede habilitar una serie de aplicaciones:
Permitir que el protocolo de privacidad funcione sin intermediarios, reduciendo significativamente su complejidad y eliminando un punto de dependencia central clave.
Desde que se propuso la abstracción de cuentas en 2015, su objetivo también se ha ampliado para incluir una gran cantidad de "objetivos de conveniencia", por ejemplo, una cuenta que no tiene ETH pero posee algunos ERC20 puede pagar el gas con ERC20. A continuación se muestra un gráfico resumen de estos objetivos:
MPC (cálculo multipartito) es una tecnología con 40 años de historia que se utiliza para dividir claves en múltiples partes y almacenarlas en varios dispositivos, utilizando técnicas criptográficas para generar firmas sin necesidad de combinar directamente estas partes de clave.
EIP-7702 es una propuesta que se planea introducir en la próxima bifurcación dura, y es el resultado de un creciente reconocimiento de la conveniencia de proporcionar la abstracción de cuentas para beneficiar a todos los usuarios (incluidos los usuarios de EOA). Su objetivo es mejorar la experiencia de todos los usuarios a corto plazo y evitar la división en dos ecosistemas.
Este trabajo comenzó con EIP-3074 y finalmente se formó EIP-7702. EIP-7702 proporciona la "funcionalidad conveniente" de la abstracción de cuentas a todos los usuarios, incluidos los EOA (Cuentas Externamente Poseídas, es decir, cuentas controladas por firmas ECDSA).
En el gráfico se puede ver que, aunque algunos desafíos (especialmente el desafío de "conveniencia") se pueden resolver mediante tecnologías progresivas como el cálculo multipartito o el EIP-7702, el principal objetivo de seguridad del concepto de abstracción de cuentas propuesto originalmente solo se puede lograr retrocediendo y resolviendo el problema original: permitir que el código de contrato inteligente controle la verificación de transacciones. La razón por la que aún no se ha logrado hasta ahora se debe a la implementación segura, lo cual es un desafío.
¿Qué es y cómo funciona?
El núcleo de la abstracción de cuentas es simple: permite que los contratos inteligentes inicien transacciones, y no solo las cuentas externas (EOA). Toda la complejidad proviene de implementar esto de una manera que sea amigable para mantener una red descentralizada y prevenir ataques de denegación de servicio.
Un desafío clave típico es el problema de múltiples fallos:
Si hay 1000 funciones de verificación de cuentas que dependen de un único valor S, y el valor actual S hace que las transacciones en el pool de memoria sean válidas, entonces una única transacción que invierte el valor de S podría hacer que todas las demás transacciones en el pool de memoria sean inválidas. Esto permite a un atacante enviar transacciones basura al pool de memoria a un costo muy bajo, bloqueando así los recursos de los nodos de la red.
Después de años de esfuerzo, con el objetivo de expandir las funcionalidades mientras se limita el riesgo de denegación de servicio (DoS), finalmente se llegó a la solución para implementar "abstracto de cuenta ideal": ERC-4337.
El funcionamiento de ERC-4337 divide el procesamiento de las operaciones del usuario en dos etapas: verificación y ejecución. Todas las verificaciones se procesan primero, y todas las ejecuciones se procesan después. En el pool de memoria, las operaciones del usuario solo se aceptan cuando la etapa de verificación involucra únicamente su propia cuenta y no lee variables del entorno. Esto puede prevenir ataques de múltiples fracasos. Además, se aplican estrictos límites de gas a los pasos de verificación.
ERC-4337 fue diseñado como un estándar de protocolo adicional (ERC), porque en ese momento los desarrolladores de clientes de Ethereum se centraron en la fusión (Merge) y no tenían energía adicional para manejar otras funciones. Por eso ERC-4337 utiliza un objeto llamado operación del usuario, en lugar de transacciones convencionales. Sin embargo, recientemente nos hemos dado cuenta de la necesidad de escribir al menos parte de esto en el protocolo.
Las dos razones clave son las siguientes:
Además, ERC-4337 también amplió dos funciones:
Enlace de investigación existente