La Máquina Virtual Ethereum (EVM) es un elemento central de la red Ethereum , el motor de computación descentralizado que ejecuta los contratos inteligentes. Como cuerpo de la funcionalidad de Ethereum, la EVM garantiza que el código se ejecute de la misma manera en todos los nodos de la red y sin errores. En este artículo, exploraremos las complejidades de la EVM y su papel en el ecosistema de Ethereum, y responderemos a las preguntas más frecuentes sobre las direcciones y la compatibilidad de la EVM.
Entender la máquina virtual de Ethereum
La Máquina Virtual Ethereum (EVM) es una plataforma informática descentralizada destinada a ejecutar contratos inteligentes en la red Ethereum. Sirve para ejecutar un entorno para cada cuenta y contrato inteligente de Ethereum, lo que permite a los desarrolladores introducir aplicaciones descentralizadas (dApps) que se ejecutan en la cadena de bloques y no requieren ninguna autoridad central. La naturaleza descentralizada es una de las credenciales de la EVM. Funciona a partir de una red distribuida de nodos, de modo que nadie tiene el control sobre la ejecución de los contratos. La EVM también es completa, lo que significa que la EVM puede hacer cualquier cosa que pueda definirse algorítmicamente siempre que haya recursos suficientes.
Los contratos inteligentes son ejecutados por la EVM utilizando la información que obtienen y gestiona los cambios de estado resultantes en la cadena de bloques. El propósito de la EVM es permitir la regulación del uso de los recursos computacionales y evitar el uso indebido, por lo que la EVM utiliza un mecanismo de gas. Cada operación durante el EVM incurre en una cantidad determinada de gas, pagada por los usuarios; esto actúa como un estímulo para que los mineros validen e incluyan las transacciones en la blockchain. Significativamente, los contratos inteligentes bajo el EVM operan de forma aislada, y la ejecución de un contrato no afecta a la ejecución de otro.
Además, el EVM conserva un estado global en el que se capturan los saldos actuales de todas las cuentas y contratos inteligentes de la red Ethereum para garantizar la coherencia y transparencia del sistema.
Papel de la EVM en la red Ethereum
La Máquina Virtual Ethereum (EVM) ocupa una posición fundamental en la ejecución de contratos inteligentes, acuerdos autoejecutables cuyos términos se codifican directamente en ellos. Esta funcionalidad permite automatizar transacciones sin intermediarios, sin confianza. Al ser un sistema descentralizado, el EVM funciona a través de una red de nodos distribuida globalmente, en la que ninguna entidad central puede controlar o manipular cómo se ejecutan los contratos. Esta descentralización no sólo es beneficiosa para romper la confianza entre los usuarios, sino que también protege la seguridad de la red.
El papel de la EVM es hacer un seguimiento de cada cuenta y contrato inteligente en todo el mundo. Supervisa los cambios y actualizaciones en tiempo real, y garantiza la coherencia y fiabilidad en todo el ecosistema. Para economizar los recursos computacionales, la EVM tiene un esquema de gas. Cada operación de un contrato requiere una cantidad de gas que pagarán los usuarios. Este sistema reduce el mal uso de los recursos, consigue un reparto justo de los mismos y anima a los participantes de la red a validar y procesar las transacciones.
Otra característica importante del EVM es su compatibilidad con lenguajes de programación de alto nivel, como Solidity. Los desarrolladores pueden desarrollar el contrato inteligente de estos lenguajes que luego se compilan en bytecode y se ejecutan en la red Ethereum. Esto apoya el nivel de facilidad de accesibilidad, el nivel de facilidad de desarrollo y la interoperabilidad entre plataformas. La EVM también es Turing completa, por lo que cualquier cálculo algorítmico es posible si se le da tiempo y recursos. Esto lo hace muy versátil para construir diversos tipos de aplicaciones descentralizadas. Además, EVM proporciona seguridad dentro de la cadena de bloques, en la que cada contrato se ejecuta de forma independiente, y ningún contrato puede afectar al otro.
Compatibilidad e interoperabilidad de EVM
La compatibilidad de EVM se refiere a la capacidad de otras cadenas de bloques para admitir y ejecutar contratos inteligentes basados en Ethereum. Esta compatibilidad permite a los desarrolladores portar sus aplicaciones a través de diferentes redes sin modificaciones significativas. Varias blockchains destacadas han adoptado la compatibilidad EVM, entre ellas
- Avalancha: Ofrece un alto rendimiento y bajas comisiones por transacción, soportando sin problemas los contratos inteligentes de Ethereum.
- Fantom: Utiliza el mecanismo de consenso Lachesis para lograr una rápida finalización de las transacciones, manteniendo la compatibilidad con EVM.
- Arbitrum: Una solución de escalado de capa 2 que mejora la escalabilidad de Ethereum manteniendo la compatibilidad con EVM.
- Base: Desarrollada por Coinbase, Base es una cadena de bloques compatible con EVM que pretende incorporar a los próximos mil millones de usuarios a la criptoeconomía.
Estas cadenas de bloques compatibles con EVM amplían el ecosistema de Ethereum, ofreciendo a desarrolladores y usuarios más opciones para desplegar aplicaciones descentralizadas e interactuar con ellas.
Consideraciones clave sobre la seguridad de los contratos inteligentes de Ethereum
La seguridad debe ser la consideración número 1 a la hora de crear y desplegar contratos inteligentes en la Máquina Virtual Ethereum (EVM), porque las vulnerabilidades pueden costarte mucho dinero y daños a tu reputación. Uno de los problemas más populares son los ataques de reentrada, cuando una función realiza una llamada externa a otro contrato mientras ejecuta una llamada a otro contrato. Esto ofrece al contrato llamado la oportunidad de invocar recursivamente a la función original causando potencialmente un comportamiento no intencionado o la explotación de la lógica del contrato. Para evitar estas situaciones, los desarrolladores deben tener cuidado de controlar la secuencia de operaciones y utilizar guardias de reentrada.
Otra debilidad importante está asociada al desbordamiento y subdesbordamiento de enteros, es decir, las operaciones aritméticas desbordan/desbordan los límites definidos de los tipos de datos. Estos errores pueden provocar cálculos erróneos o transferencias de fondos no autorizadas. Utilizar bibliotecas de confianza como SafeMath puede librarte de estos problemas, porque las propias bibliotecas ya tienen implementadas comprobaciones de límites.
El control de acceso es otro componente vital de la seguridad. Los desarrolladores tienen que garantizar que las funciones sensibles sólo sean llamadas por entidades autorizadas. Esto se hace normalmente mediante el uso de modificadores que impiden la ejecución de funciones en función de roles o propiedad predefinidos.
Para mejorar aún más la seguridad de los contratos, es muy recomendable realizar auditorías por parte de terceros. Las empresas de seguridad independientes son capaces de realizar revisiones rigurosas para identificar e informar de vulnerabilidades que pueden pasar desapercibidas a las unidades internas. Simultáneamente, las revisiones internas del código deberían ser normalmente un componente del ciclo de desarrollo para identificar posibles fallos o errores lógicos en una fase temprana.
Cuando se requiere que los contratos sean actualizables, el uso de patrones de contratos proxy permite actualizar la lógica de contratos antiguos sin cambiar la dirección o el estado originales. Este enfoque es adecuado para atacar vulnerabilidades descubiertas después de su despliegue. Es posible compensar el hecho de que los cambios entren en vigor para los usuarios a partir de una fecha-hora determinada utilizando relojes programadores que garanticen la transparencia y la oportunidad de responder a las actualizaciones programadas.
Desarrollos recientes: Actualizaciones de Pectra y Fusaka
Ethereum sigue actualizándose y hay actualizaciones importantes dirigidas a mejorar las capacidades del EVM.
Actualización de Pectra
El 7 de mayo, Ethereum pasó la actualización Pectra que introdujo cambios en la EVM, que mejoraron el escalado y la experiencia del usuario. Esta actualización conserva partes de actualizaciones anteriores; simplifica la ejecución del contrato inteligente y ahorra consumo de gas.
Bifurcación Dura Fusaka
Fijada para finales de 2025, la bifurcación dura de Fusaka pretende introducir el Formato de Objeto EVM (EOF), un movimiento controvertido que cambia la forma en que se despliegan y ejecutan los contratos inteligentes. Aunque el EOF prevé una mayor eficiencia y seguridad, ha provocado un debate entre la comunidad de desarrolladores sobre cómo podría afectar a los contratos actuales.
Explorando alternativas: Propuesta RISC-V
Vitalik Buterin, cofundador de Ethereum, está proponiendo un cambio a una arquitectura basada en RISC-V para el EVM de ETH. RISC-V, que es un conjunto de instrucciones de arquitectura abierta, tiene la posibilidad de ofrecer ventajas que incluyen una mayor eficiencia y escalabilidad. Al adoptar RISC-V, Ethereum podría procesar las transacciones más rápidamente y tener un mejor soporte para las pruebas de conocimiento-cero, mejorando así la privacidad y la escalabilidad.
Sin embargo, esta propuesta también afecta a la compatibilidad y complejidad de la migración de los contratos inteligentes actualmente existentes a una nueva arquitectura. La comunidad Ethereum sigue discutiendo sobre las ventajas y dificultades de dicha transición.
Conclusión
La Máquina Virtual Ethereum es la base de la red Ethereum que hace posible la ejecución de contratos inteligentes y crea un próspero ecosistema de aplicaciones descentralizadas. A medida que Ethereum mejora con la introducción de Pectra y nuevas propuestas como la transición a RISC-V, la EVM es fundamental para que Ethereum se adapte y crezca. Saber qué hace el EVM, con qué es compatible y a qué podría conducir en el futuro es vital para cualquiera que esté en el espacio blockchain.
Preguntas frecuentes
¿Qué es una dirección EVM en criptografía?
La dirección EVM es una dirección única dentro de las cadenas de bloques de Ethereum y compatibles con EVM. Suele empezar por «0x» y continuar con 40 caracteres hexadecimales que son la clave pública generada a partir de la clave privada de un usuario. A través de esta dirección, los usuarios pueden enviar y recibir activos, interactuar con contratos inteligentes y unirse a aplicaciones descentralizadas.
¿Qué significa EVM?
EVM es la abreviatura de Máquina Virtual Ethereum. Es el entorno de ejecución que ejecuta contratos inteligentes en la red Ethereum y garantiza que el código se ejecute siempre de forma coherente y segura en todos los nodos.
¿Qué criptomonedas son compatibles con EVM?
Algunas de las criptomonedas y cadenas de bloques compatibles con EVM son Avalanche, Fantom, Arbitrum y Base. Estas plataformas permiten la interoperabilidad al admitir contratos inteligentes basados en Ethereum y aumentar el alcance de las aplicaciones descentralizadas.
¿Qué es una no-EVM en cripto?
Las blockchains no-EVM no se adhieren a las normas de la Máquina Virtual de Ethereum. A menudo emplean máquinas virtuales, lenguajes de programación y mecanismos de consenso diferentes. Algunos ejemplos son
- Solana: Utiliza una arquitectura única para transacciones de alta velocidad.
- Algorand: Emplea un mecanismo de consenso puro de prueba de apuestas.
- Tezos: Presenta un modelo de gobierno en la cadena y su lenguaje de contratos inteligentes.
Estas blockchains no EVM ofrecen enfoques alternativos a la escalabilidad, la seguridad y la descentralización.