Paralelización de EVM: evolución técnica de Layer1 de alto rendimiento a soluciones compatibles con EVM

EVM: el núcleo de Ethereum

EVM (Ethereum Virtual Machine) es el núcleo de Ethereum, responsable de ejecutar contratos inteligentes y procesar transacciones.

Las máquinas virtuales se utilizan normalmente para la virtualización de computadoras reales, realizada por un hipervisor o por toda una instancia del sistema operativo. Deben proporcionar una abstracción de software de hardware real, llamadas al sistema y otras funciones del núcleo.

EVM opera en un campo más limitado: es solo un motor de cálculo que proporciona una abstracción de cálculo y almacenamiento, similar a la especificación de la máquina virtual de Java (JVM). Desde un nivel alto, JVM está diseñado para proporcionar un entorno de ejecución independiente del sistema operativo o hardware subyacente, logrando compatibilidad entre sistemas. De manera similar, EVM ejecuta su propio conjunto de instrucciones de bytecode, que generalmente son compiladas por Solidity.

EVM es una máquina de estados casi Turing completa, "casi" porque todos los pasos de ejecución consumen recursos limitados de Gas, por lo que cualquier ejecución de contrato inteligente dada estará limitada a un número finito de pasos de cálculo, evitando así posibles bucles infinitos durante el proceso de ejecución, lo que podría llevar a la detención completa de la plataforma Ethereum.

EVM no tiene función de programación, el módulo de ejecución de Ethereum toma las transacciones del bloque, y EVM es responsable de ejecutarlas secuencialmente. Durante el proceso de ejecución, se modifica el estado mundial más reciente, y una vez que se completa la ejecución de una transacción, se lleva a cabo la acumulación de estado, alcanzando así el estado mundial más reciente después de completar el bloque. La ejecución del siguiente bloque depende estrictamente del estado mundial después de la ejecución del bloque anterior, por lo que el proceso de ejecución lineal de las transacciones de Ethereum no puede optimizarse bien para la ejecución en paralelo.

En este sentido, el protocolo de Ethereum establece que las transacciones se ejecuten en orden. Aunque la ejecución en orden garantiza que las transacciones y los contratos inteligentes puedan ejecutarse en un orden determinista, asegurando la seguridad, en situaciones de alta carga puede llevar a congestión y retrasos en la red, que es la razón por la cual Ethereum tiene un gran cuello de botella en el rendimiento, lo que requiere la expansión de Layer2 Rollup.

EVM paralelo: la cirugía de cambio de corazón de Layer1 de alto rendimiento

El camino paralelo de Layer1 de alto rendimiento

La mayoría de las Layer1 de alto rendimiento están diseñadas basándose en la falta de capacidad de procesamiento paralelo de Ethereum para crear sus propias soluciones optimizadas. Aquí solo se habla de la optimización de la capa de ejecución, es decir, de la máquina virtual y la ejecución paralela.

Máquina virtual

EVM está diseñado como una máquina virtual de 256 bits, con el objetivo de facilitar el procesamiento del algoritmo hash de Ethereum, que genera claramente una salida de 256 bits. Sin embargo, las computadoras que ejecutan realmente la EVM necesitan mapear los bytes de 256 bits a la arquitectura local para ejecutar contratos inteligentes, lo que hace que todo el sistema sea muy ineficiente e impráctico. Por lo tanto, en cuanto a la elección de la máquina virtual, las Layer1 de alto rendimiento utilizan más frecuentemente máquinas virtuales basadas en WASM, bytecode eBPF o bytecode Move, en lugar de EVM.

WASM es un formato de bytecode pequeño, de carga rápida, portátil y basado en un mecanismo de seguridad en sandbox. Los desarrolladores pueden escribir contratos inteligentes en varios lenguajes de programación, y luego compilarlos en bytecode WASM y ejecutarlos. WASM ya ha sido adoptado como estándar por muchos proyectos de blockchain, incluyendo EOS, Dfinity, Polkadot, Cosmos, Near, entre otros. Ethereum también integrará WASM en el futuro, asegurando que la capa de ejecución de Ethereum sea más eficiente y simple, adecuada para ser una plataforma de computación completamente descentralizada.

eBPF es la evolución de BPF (Berkeley Packet Filter, filtro de paquetes de Berkeley), que originalmente se utilizó para la filtración eficiente de paquetes de datos de red. Posteriormente, evolucionó para formar eBPF, que ofrece un conjunto de instrucciones más rico y permite la intervención dinámica y modificación del comportamiento del núcleo del sistema operativo sin necesidad de modificar el código fuente. Más tarde, esta tecnología salió del núcleo y desarrolló un entorno de ejecución eBPF en el espacio de usuario, que tiene alto rendimiento, seguridad y portabilidad. Los contratos inteligentes ejecutados en una blockchain se compilan en SBF (basado en eBPF) bytecode y se ejecutan en su red.

Move es un nuevo lenguaje de programación de contratos inteligentes, enfocado en la flexibilidad, la seguridad y la verificabilidad. El lenguaje Move está diseñado para abordar los problemas de seguridad en activos y transacciones, permitiendo que los activos y las transacciones sean definidos y controlados de manera estricta. El verificador de bytecode de Move es una herramienta de análisis estático que analiza el bytecode de Move y determina si cumple con las reglas de seguridad de tipo, memoria y recursos requeridas, sin necesidad de implementarse a nivel de contrato inteligente y revisarse en tiempo de ejecución. Algunas nuevas cadenas de bloques emergentes han heredado Move o han escrito sus contratos inteligentes a través de una versión personalizada de Move.

EVM paralelo: la cirugía de cambio del corazón de Layer1 de alto rendimiento

Ejecución en paralelo

La ejecución paralela en blockchain significa procesar transacciones no relacionadas simultáneamente. Considera las transacciones no relacionadas como eventos que no se afectan entre sí. Por ejemplo, si dos personas intercambian tokens en diferentes plataformas de intercambio, sus transacciones pueden procesarse al mismo tiempo. Sin embargo, si están intercambiando en la misma plataforma, puede ser necesario ejecutar las transacciones en un orden específico.

El principal desafío para lograr la ejecución en paralelo es determinar qué transacciones no están relacionadas y cuáles son independientes. La mayoría de los Layer1 de alto rendimiento dependen de dos métodos: el método de acceso al estado y el modelo de paralelismo optimista.

El método de acceso al estado necesita conocer de antemano qué parte del estado de la blockchain puede acceder cada transacción, para poder analizar cuáles transacciones son independientes. Las soluciones representativas son algunas nuevas cadenas de bloques emergentes.

En algunas cadenas de bloques públicas, los programas (contratos inteligentes) son sin estado, porque no pueden acceder por sí mismos (leer o escribir) a ningún estado que persista durante todo el proceso de transacción. Para acceder o mantener el estado, el programa necesita utilizar cuentas. Cada transacción debe especificar qué cuentas se accederán durante la ejecución de la transacción, de modo que el tiempo de ejecución del procesamiento de transacciones pueda programar la ejecución paralela de transacciones no superpuestas, al mismo tiempo que garantiza la consistencia de los datos.

En algunas implementaciones de Move, cada contrato inteligente es un módulo compuesto por definiciones de funciones y estructuras. Las estructuras se instancian dentro de las funciones y pueden ser pasadas a otros módulos mediante llamadas a funciones. Las instancias de estructuras almacenadas en tiempo de ejecución existen como objetos y hay tres tipos diferentes de objetos: objetos propietarios, objetos compartidos y objetos inmutables. La estrategia de paralelización es similar a la mencionada anteriormente, y las transacciones también necesitan especificar qué objetos operar.

El modelo de paralelismo optimista funciona bajo la suposición de que todas las transacciones son independientes, simplemente verificando retrospectivamente esta suposición y ajustándola cuando sea necesario. Los proyectos representativos son ciertas nuevas cadenas de bloques emergentes.

Una cierta cadena pública utiliza el método Block-STM (Memoria de Transacciones de Software de Bloque) para aplicar la ejecución paralela optimista. En Block-STM, las transacciones se configuran primero dentro del bloque en un orden determinado y luego se dividen entre diferentes hilos de procesamiento para ejecutarse simultáneamente. Al procesar estas transacciones, el sistema rastrea las ubicaciones de memoria que cada transacción modifica. Después de cada ronda de procesamiento, el sistema verifica todos los resultados de las transacciones. Si descubre que una transacción ha tocado una ubicación de memoria modificada por una transacción anterior, borra su resultado y lo vuelve a ejecutar. Este proceso continúa hasta que se han procesado todas las transacciones en el bloque.

EVM paralelo: la cirugía de corazón de alto rendimiento Layer1

EVM paralelo

La EVM paralela (Parallel EVM) fue mencionada por primera vez en 2021, en ese momento se refería a una EVM que soporta el procesamiento simultáneo de múltiples transacciones, con el objetivo de mejorar el rendimiento y la eficiencia de la EVM existente. Algunas de las soluciones representativas son EVM paralelas basadas en Block-STM de ciertas blockchains.

Pero a finales de 2023, algunos expertos de la industria coincidieron en mencionar el EVM paralelo al prever las tendencias de 2024, lo que avivó una ola de adopción de Layer1 compatibles con EVM que utilizan tecnología de ejecución paralela, incluidos algunos proyectos emergentes.

Hoy en día, algunas soluciones compatibles con EVM, el Layer2 Rollup de SVM de Ethereum (máquina virtual de Solana), el Layer2 Rollup de la máquina virtual Move de Ethereum y la capa de ejecución modular Layer1 se están etiquetando como EVM paralelas, lo que resulta deslumbrante.

Creo que solo hay tres categorías que pueden definirse como EVM en paralelo:

  1. La actualización de ejecución paralela en Layer1 compatible con EVM que no utiliza tecnología de ejecución paralela, como algunas cadenas públicas populares;

  2. Se han adoptado tecnologías de ejecución en paralelo en Layer1 compatibles con EVM, como algunos proyectos emergentes;

  3. Soluciones compatibles con EVM de Layer 1 no compatibles con EVM que utilizan tecnología de ejecución paralela, como ciertos proyectos de cadena cruzada.

EVM paralelo: la cirugía de corazón de alto rendimiento Layer1

Ciertas cadenas de bloques públicas principales, como las más destacadas Layer1 compatibles con EVM, no necesitan más presentación; aquí se presenta brevemente algunos proyectos emergentes y soluciones de cadena cruzada.

Algunas nuevas cadenas de bloques emergentes son Layer1 de alto rendimiento compatibles con EVM que utilizan el mecanismo PoS, con el objetivo de mejorar significativamente la escalabilidad y la velocidad de las transacciones a través de la ejecución paralela. Permiten la ejecución paralela de transacciones dentro de un bloque para aumentar la eficiencia. Normalmente, se utiliza un modelo de paralelismo optimista, donde se empiezan a ejecutar nuevas transacciones antes de que se complete la ejecución del paso anterior. Para hacer frente a los resultados incorrectos, se rastrean las entradas/salidas y se vuelven a ejecutar las transacciones inconsistentes. Un analizador de código estático puede predecir las dependencias, evitar la paralelización inválida y, en caso de incertidumbre, regresar a un modo simple. Esta ejecución paralela aumenta el rendimiento, mientras que disminuye la posibilidad de fallos en las transacciones.

Algunas soluciones de cadenas cruzadas son soluciones de desarrollo diseñadas para ejecutar transacciones EVM sobre otras cadenas públicas. En realidad, se trata de un contrato inteligente que implementa un intérprete EVM, compilado en un bytecode específico. Internamente, se implementa un conjunto de modelos de transacción y de cuentas de Ethereum, donde los usuarios solo necesitan pagar tarifas de GAS EVM para enviar transacciones. Las tarifas de la red nativa son pagadas por un intermediario. Algunas cadenas públicas requieren obligatoriamente que las transacciones proporcionen una lista de cuentas, y las transacciones en paquete no son una excepción, por lo que las responsabilidades del intermediario incluyen generar esta lista de cuentas, obteniendo al mismo tiempo la capacidad de ejecutar transacciones nativas en paralelo.

Aquí hay un apunte adicional: existen otros proyectos de cadena cruzada que implementan soluciones similares a la ejecución de EVM como contratos inteligentes para lograr compatibilidad con EVM. Teóricamente, algunas nuevas cadenas públicas también podrían adoptar este enfoque para lograr compatibilidad con EVM sin invasión, y hay proyectos que están trabajando en esto. Algunos proyectos son un marco modular para construir y desplegar infraestructura, aplicaciones y cadenas de bloques basadas en Move en cualquier entorno distribuido. Algunos de estos módulos pueden convertir sin problemas el código de operación de EVM en código de operación de Move, lo que significa que los proyectos de Solidity pueden aprovechar las ventajas de rendimiento y seguridad de Move sin necesidad de escribir una sola línea de código en Move.

La compatibilidad con EVM permite a los desarrolladores migrar fácilmente sus aplicaciones de Ethereum a la cadena sin necesidad de realizar modificaciones a gran escala, lo que es una buena dirección para construir un ecosistema de nuevas cadenas públicas.

EVM en paralelo: la cirugía de cambio de corazón de Layer1 de alto rendimiento

Resumen

La tecnología de paralelismo en blockchain ya es un tema común y recurrente, la narrativa resurge de vez en cuando, pero actualmente se trata principalmente de la modificación y imitación del modelo de ejecución optimista representado por el mecanismo Block-STM de ciertas cadenas públicas, sin avances sustantivos, por lo que la popularidad es difícil de mantener.

Mirando hacia el futuro, habrá más nuevos proyectos emergentes de Layer1 que se unirán a la competencia paralela de EVM, y para algunos Layer1 antiguos también se implementarán actualizaciones paralelas de EVM o soluciones compatibles con EVM. Ambas direcciones llevan al mismo resultado, y nacerán más nuevas narrativas relacionadas con la mejora del rendimiento.

Sin embargo, en comparación con la narrativa de un EVM de alto rendimiento, espero que la blockchain pueda florecer en diversas direcciones y que aparezcan narrativas similares a WASM, SVM y Move VM.

EVM paralelo: el arte del cambio de corazón de Layer1 de alto rendimiento

EVM paralelo: la cirugía de cambio de corazón de Layer1 de alto rendimiento

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
  • 7
  • Compartir
Comentar
0/400
MEVEyevip
· hace13h
Todo depende de Gas para exprimir la Billetera, pagar para disfrutar del tormento.
Ver originalesResponder0
AirdropHuntervip
· hace13h
¿Dónde se puede obtener este gas?
Ver originalesResponder0
ChainSpyvip
· hace13h
Jugar con la cadena de bloques no mira indicadores, solo mira el código y la innovación.
Ver originalesResponder0
LucidSleepwalkervip
· hace13h
Abrir gas y listo.
Ver originalesResponder0
DisillusiionOraclevip
· hace13h
¿Qué más se discute sobre JVM? Las tarifas de Gas ya están devorando a la gente.
Ver originalesResponder0
GmGmNoGnvip
· hace13h
bytecode también es impresionante 8
Ver originalesResponder0
MemeCoinSavantvip
· hace13h
evm es básicamente java para degens, para ser honesto
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)