¿Qué es una máquina virtual de Ethereum (EVM) y cómo funciona?

¿Qué es una máquina virtual de Ethereum (EVM) y cómo funciona?

La EVM se puede definir cómo la columna vertebral de la cadena de bloques de Ethereum y que proporciona un entorno de tiempo de ejecución para que los desarrolladores creen DApps y otras aplicaciones.

Ether (ETH) es la segunda criptomoneda más grande por capitalización de mercado y es popular entre los inversores de criptomonedas debido a su token ETH. Sin embargo, su lenguaje de programación nativo Solidity y Ethereum Virtual Machine (EVM) son los principales elogios que ha recibido de la comunidad de desarrolladores. De hecho, la cadena de bloques de Ethereum continúa atrayendo a los desarrolladores de aplicaciones descentralizadas (DApp) debido a su flexibilidad, la amplia gama de herramientas de desarrollo disponibles y la gran base de usuarios de la plataforma.

La EVM forma el núcleo de la arquitectura de la cadena de bloques y es el programa que ejecuta el código de su aplicación o los contratos inteligentes al proporcionarles un entorno sobre la red Ethereum. Además, la EVM es totalmente compatible con Turing y, por lo tanto, puede ejecutar cualquier programa escrito en cualquier lenguaje de programación, lo que permite a los desarrolladores crear fácilmente contratos inteligentes y DApps personalizados para la nueva Web3.

Además de estas funciones importantes, EVM puede acceder a todos los nodos de la red, manejar la ejecución de contratos inteligentes y administrar de manera eficiente todas las transacciones en la cadena de bloques de Ethereum, lo que la convierte en una de las máquinas virtuales más poderosas disponibles en la actualidad.

¿Qué es una máquina virtual Ethereum (EVM) y cómo funciona? 

El programador Vitalik Buterin conceptualizó el éxito masivo de la red Ethereum como la cadena de bloques elegida por los desarrolladores de DApp en 2013 gracias a la Ethereum Virtual Machine (EVM), que fue desarrollada por Gavin Wood mientras trabajaba en Ethereum.

Escrito en C++ y utilizando el compilador de proyectos LLVM, EVM es una máquina que se ejecuta continuamente, cuyas operaciones constantes determinan el estado de cada bloque en la cadena de bloques de Ethereum.

La EVM no solo controla lo que los nodos pueden o no hacer con el libro mayor de distribuciones que mantiene la cadena de bloques de Ethereum, sino que también define reglas específicas para cambiar de estado de un bloque a otro. Esta última característica proporciona la funcionalidad del contrato inteligente por la que Ethereum es conocida.

Para comprender lo que hace la máquina virtual Ethereum, se debe observar cada una de las diferentes funciones que implementa para que la red Ethereum trabaje correctamente. Por cada entrada que recibe, EVM produce una salida que es de naturaleza determinista y sigue una función matemática en el sentido más simple.

Es como una máquina de pila que empuja valores transitorios hacia y desde la pila de empuje (pushdown), el EVM tiene una profundidad de 1024 elementos, y cada elemento es una palabra de 256 bits. También mantiene una memoria temporal en forma de matriz de bytes que cambia entre dos transacciones en la cadena de bloques de Ethereum. EVM ejecuta el código de contrato inteligente compilado como un conjunto de 140 códigos de operación estándar, pero también implementa otras operaciones específicas de blockchain.

¿Qué es una máquina virtual de Ethereum (EVM) y cómo funciona?
Un diagrama esquemático de una máquina virtual Ethereum 

Por lo tanto, el estado de la máquina EVM durante el procesamiento de cualquier transacción es inherentemente volátil, mientras que en su estado globa, contiene información relacionada con las diversas cuentas mantenidas en la cadena de bloques de Ethereum. Todas las operaciones están controladas por el código EVM, que a su vez ha pasado por varias iteraciones desde el lanzamiento de la red Ethereum en 2015, lo que ha dado como resultado varias implementaciones de EVM en uso en la actualidad.

De hecho, EVM es responsable de mantener un nivel de abstracción entre los miles de nodos de Ethereum y el código en ejecución, actuando como una función que brinda resultados consistentes sin exponer muchos detalles a los clientes o nodos.

¿Cuál es el propósito de la Máquina Virtual Ethereum (EVM)?

La EVM ha alimentado de manera confiable todas las aplicaciones que se ejecutan en la red Ethereum sin mucho tiempo de inactividad. Para los desarrolladores, EVM actúa como un programa central o abanico para ejecutar programas más pequeños llamados contratos inteligentes en Ethereum, al tiempo que les da la libertad de escribirlos en una variedad de lenguajes de programación como Solidity, Vyper, Python, Yul, entre otros.

Gracias a esta flexibilidad proporcionada por la EVM, la cadena de bloques de Ethereum ha generado miles de DApps en el espacio de las finanzas descentralizadas (DeFi) y los tokens no fungibles (NFT). Cada una de estas DApps y los contratos inteligentes que las componen se convierten en bytecodes, que se ingresan en el EVM y se distribuyen entre todos los nodos de la red Ethereum. Una vez que se implementan los contratos inteligentes, el EVM es responsable de comunicarse con todos los nodos y realizar cambios de estado una vez que se alcanza el consenso.

En otras palabras, la EVM está conectado a cada nodo de Ethereum utilizando bytecode en lugar del lenguaje de programación subyacente para ejecutar contratos inteligentes, aislando el host físico del código de máquina que ejecuta Ethereum.

Ventajas de la Máquina Ethereum (EVM). 

Debido al funcionamiento de la EVM, los desarrolladores pueden ejecutar el código sin preocuparse por su impacto en el resto de la red o que pueda comprometer datos personales o archivos alojados en cualquier computadora de los nodos.

Además, pueden ejecutar contratos inteligentes complejos en diferentes entornos informáticos con consenso distribuido. Esto garantiza que la falla de un nodo no afectará negativamente la ejecución de DApps o contratos inteligentes, ya que el código EVM sigue siendo el mismo en todos los nodos. Además, dado que los datos de la cuenta se almacenan globalmente en el EVM, a los desarrolladores les resulta ideal escribir un código de contrato inteligente personalizado y crear varias DApps que puedan acceder a este conjunto de datos globales y producir resultados confiables.

La inviolabilidad del resultado hace que la EVM especialmente, y la cadena de bloques Ethereum, sean adecuadas para las DApps y contratos inteligentes en expansión en el ecosistema sostenible de Ethereum. Si se agrega a eso una base de códigos estándar para que los desarrolladores elijan, el número creciente de cadenas de bloques de capa 2 compatibles con EVM y el gran número de posibles casos de uso de EVM, será fácil ver por qué EVM es la plataforma elegida para el desarrollo de Web3.

Desventajas de la Máquina Virtual Ethereum (EVM). 

Aunque EVM ofrece muchas ventajas, existen algunas desventajas que los desarrolladores y empresarios que utilizan Ethereum deben tener en cuenta. El principal de ellos son las altas tarifas de transacción o los gas fee asociados con la ejecución de contratos inteligentes en la red Ethereum. Estas tarifas se pagan en ETH y varían según la complejidad del contrato y la congestión de la red en el momento de la ejecución, por lo que, en consecuencia, los desarrolladores y empresarios deben fijar un precio de sus servicios.

Dado que Solidity es el lenguaje de elección para codificar EVM, también significa que los desarrolladores deben tener suficiente experiencia y conocimientos técnicos mínimos para usarlo y crear contratos inteligentes efectivos. Esto último es importante porque cualquier requisito de cálculo adicional aumentará los costos de gas y, en última instancia, perjudicará el éxito del proyecto. Si los desarrolladores eligen escribir código en otros lenguajes, deben tener cuidado con cualquier duplicación de código, ya que EVM continuará compilándolos de todos modos.

Aunque los contratos inteligentes se pueden actualizar más adelante, la creación de contratos inteligentes intermedios que hagan referencia a la dirección original del contrato inteligente presenta riesgos de seguridad.

El futuro de los EVM

Aunque la EVM ha revolucionado el ecosistema de blockchain, esta tecnología de lectura y ejecución de código se está mejorando en varios proyectos de la rama.

Debido a que la interoperabilidad entre cadenas es el aspecto más importante para los desarrolladores, se admiten muchas cadenas de bloques compatibles con la EVM, la mayoría de las cuales ofrecen menos gas fee y velocidades de transacción más altas que el protocolo Ethereum.

Como resultado, estas cadenas de bloques ahora pueden interactuar sin problemas con los usuarios de Ethereum y facilitar la transferencia de fondos a su propia red a través de puentes de cadenas de bloques. Sin embargo, dado que el protocolo Ethereum se completó con éxito en septiembre de 2022, el próximo objetivo es migrar de EVM a Ethereum WebAssembly (eWASM).

Diseñado para ser altamente modular e independiente de la plataforma, eWASM se promociona como el próximo cambio de juego para el protocolo Ethereum y puede alentar a otras cadenas de bloques a adoptar este entorno de tiempo de ejecución.

 

Salir de la versión móvil