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

Ether (ETH), que es la segunda criptomoneda más grande en términos de capitalización de mercado, es popular entre los inversores de criptomonedas debido a su token nativo ETH. Sin embargo, su lenguaje de programación nativo Solidity y la máquina virtual Ethereum (EVM) son fundamentales para la adulación que recibe de la comunidad de desarrolladores. De hecho, el blockchain de Ethereum sigue atrayendo a los desarrolladores de aplicaciones descentralizadas (DApp) debido a su flexibilidad, la amplia gama de herramientas para desarrolladores disponibles y la gran base de usuarios de la plataforma.  

La EVM, que constituye el núcleo de la arquitectura de la cadena de bloques, es el programa que ejecuta el código de sus aplicaciones o contratos inteligentes, como se denominan, proporcionando un entorno de ejecución para ellos que se ejecuta sobre la red Ethereum. Además, la EVM es Turing-completa y, por tanto, puede ejecutar cualquier programa codificado en cualquier lenguaje de programación, lo que permite a los desarrolladores crear fácilmente contratos inteligentes y DApps personalizados para el floreciente espacio Web3.   

Además de estas importantes funcionalidades, EVM tiene acceso a todos los nodos de la red, maneja la ejecución de los contratos inteligentes y gestiona eficazmente todas las transacciones en la blockchain de Ethereum, lo que la convierte en una de las máquinas virtuales más potentes que existen en la actualidad.

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

Conceptualizada en 2013 por el programador Vitalik Buterin, la red Ethereum debe su fenomenal éxito como la blockchain preferida por los desarrolladores de DApps a la Máquina Virtual Ethereum (EVM) que fue diseñada por Gavin Wood durante su estancia en Ethereum. Escrita en C++ y utilizando el compilador del proyecto LLVM, la EVM es una máquina de estado especial que opera continuamente y cuyas operaciones inmutables determinan el estado de cada bloque en la blockchain de Ethereum.   

La EVM no sólo gobierna lo que los nodos pueden o no pueden hacer al libro de contabilidad distribuido que mantiene la blockchain de Ethereum, sino que también define las reglas específicas de cambio de estado de un bloque a otro. Esta última funcionalidad es la que permite la funcionalidad de contrato inteligente por la que Ethereum ha llegado a ser conocido.

Para entender lo que hace una máquina virtual de Ethereum, hay que ver cada una de las diferentes funciones que cumple para garantizar el buen funcionamiento de la red Ethereum. Por cada entrada que recibe, la EVM produce una salida que es de naturaleza determinista y sigue una función matemática en el sentido más simple. 

Funcionando como una máquina de pila que empuja valores transitorios hacia y desde una pila pushdown, la EVM tiene una profundidad de 1024 elementos, siendo cada uno de ellos una palabra de 256 bits. También mantiene una memoria temporal en forma de matriz de bytes, que cambia entre dos transacciones en la blockchain de Ethereum. Los códigos de los contratos inteligentes que se han compilado son ejecutados por la EVM en forma de una colección de 140 opcodes estándar, mientras que otras operaciones de pila específicas de la blockchain también son implementadas por ella.  

Esquema de una máquina virtual de Ethereum

Así, la EVM tiene un estado de máquina que es volátil por naturaleza durante el procesamiento de cualquier transacción y un estado global o mundial que contiene información relativa a las diferentes cuentas mantenidas en la blockchain de Ethereum. Todas las acciones se rigen por el código del EVM, que en sí mismo ha pasado por varias iteraciones desde el lanzamiento de la red Ethereum en 2015, lo que ha llevado a la existencia de diferentes implementaciones del EVM actualmente en uso.  

De hecho, la EVM se encarga 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 ofrece resultados consistentes sin divulgar muchos detalles a los clientes o nodos.

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

La EVM ha estado alimentando de forma fiable todas las aplicaciones que se ejecutan en la red Ethereum sin que se haya registrado ningún tiempo de inactividad importante. Para los desarrolladores, la EVM actúa como el programa general que ejecuta programas más pequeños que se conocen como contratos inteligentes en Ethereum, a la vez que les proporciona la libertad de escribir estos contratos inteligentes en una variedad de lenguajes de programación como Solidity, Vyper, Python y Yul, entre otros.  

Debido a esta flexibilidad que ofrece la EVM, la blockchain de Ethereum ha generado miles de DApps en el espacio de las finanzas descentralizadas (DeFi) y los NFT. Cada una de estas DApps y los contratos inteligentes que las componen se convierten en bytecode que se introduce en la EVM y se distribuye entre todos los nodos de la red Ethereum. Cuando se despliega un contrato inteligente, la EVM se encarga de comunicarse con todos los nodos y de efectuar los cambios de estado cuando se ha llegado a un consenso.  

Se puede decir que la EVM se inserta dentro de cada nodo de Ethereum para ejecutar los contratos inteligentes utilizando bytecode en lugar del lenguaje de programación base, aislando así el ordenador anfitrión físico del código de máquina en el que se ejecuta Ethereum.

Ventajas de la máquina virtual de Ethereum (EVM)

Gracias al funcionamiento de la EVM, los desarrolladores pueden ejecutar código sin preocuparse de su impacto en el resto de la red o de la posibilidad de que haga de las suyas con datos o archivos personales alojados en cualquiera de los ordenadores de los nodos. 

Además, pueden ejecutar contratos inteligentes complejos en diferentes entornos informáticos con consenso distribuido. Esto garantiza que el fallo de un solo nodo no tenga ningún impacto negativo en la ejecución de la DApp o del contrato inteligente, ya que el código del EVM sigue siendo el mismo en todos los nodos. Además, como los datos de la cuenta se mantienen a nivel global en el EVM, los desarrolladores lo encuentran perfecto para escribir código de contrato inteligente personalizado y crear DApps distintas que puedan acceder a este conjunto de datos globales y producir resultados fiables.   

La santidad del resultado es lo que hace que la EVM, en particular, y la blockchain de Ethereum en general sean muy adecuados para la expansión sostenible del ecosistema de DApps y contratos inteligentes de Ethereum. Si a esto le añadimos la biblioteca de códigos estándar disponibles para que los desarrolladores puedan elegir, un número cada vez mayor de blockchains de capa 2 compatibles con EVM y un gran número de casos de uso potenciales de EVM posibles, es fácil ver por qué la EVM es la plataforma preferida para el desarrollo de Web3.  

Inconvenientes de la Máquina Virtual Ethereum (EVM)

A pesar de las muchas ventajas que ofrece la EVM, hay ciertas desventajas que deben ser consideradas por los desarrolladores y empresarios que construyen en Ethereum. El más importante de ellos son las elevadas tasas de transacción o costes de gas asociados a la ejecución de un contrato inteligente en la red Ethereum. 

Pagadas en ETH, estas tarifas varían en función de la complejidad del contrato y de la congestión de la red en el momento de la ejecución, por lo que es imprescindible que los desarrolladores y emprendedores pongan un precio a sus servicios. Además, dado que Solidity es el lenguaje preferido para codificar en la EVM, implica que los desarrolladores deben tener una experiencia adecuada con él y poseer un mínimo de conocimientos técnicos para crear contratos inteligentes eficientes utilizándolo.   

Esto último es importante, ya que cualquier requisito de computación adicional conllevará mayores costes de gas y, en última instancia, resultará perjudicial para el éxito del proyecto. Si los desarrolladores optan por codificar utilizando otros lenguajes, deben ser cuidadosos a la hora de resolver cualquier repetición inherente en el código, ya que el EVM procederá a compilarlos de todos modos. Aunque la actualización de los contratos inteligentes es posible en una fase posterior, conlleva riesgos de seguridad asociados a la creación de un contrato inteligente intermedio que haga referencia a la dirección del contrato inteligente original.  

El futuro de las EVM

A pesar de los cambios revolucionarios que ha supuesto la EVM en el ecosistema de la cadena de bloques, esta tecnología de lectura y ejecución de código está siendo mejorada por varios proyectos de cadenas de bloques. 

Dado que la interoperabilidad entre cadenas es el aspecto más importante para los desarrolladores, se han apuntalado muchas blockchains compatibles con el EVM, la mayoría de las cuales ofrecen menos gas y mayor velocidad de transacción que el protocolo Ethereum. Como resultado, estas blockchains son ahora capaces de interactuar con los usuarios de Ethereum sin problemas y están facilitando las transferencias de fondos a sus propias redes utilizando puentes de blockchain.  

Sin embargo, con el protocolo de Ethereum completando con éxito la fusión en septiembre de 2022, el siguiente objetivo es pasar de EVM a Ethereum WebAssembly (eWASM). Diseñado para ser altamente modular e independiente de la plataforma, el eWASM está siendo promocionado como el próximo cambio de juego para el protocolo de Ethereum y podría motivar a otros blockchains a emplear este entorno de tiempo de ejecución para los contratos inteligentes también. Sin embargo, si los eWASM sustituirán al EVM como el mecanismo más fiable para los contratos inteligentes es una pregunta que sólo el tiempo podrá responder.  

Aclaración: La información y/u opiniones emitidas en este artículo no representan necesariamente los puntos de vista o la línea editorial de Cointelegraph. La información aquí expuesta no debe ser tomada como consejo financiero o recomendación de inversión. Toda inversión y movimiento comercial implican riesgos y es responsabilidad de cada persona hacer su debida investigación antes de tomar una decisión de inversión