-
Author
-
Comments0 Comments
-
Category
La EVM proporciona un entorno de ejecución aislado para los contratos inteligentes.
La EVM es Turing completa, lo que significa que puede ejecutar cualquier algoritmo computable.
Cada nodo de la red de Ethereum ejecuta su propia instancia de la EVM.
La EVM mantiene un estado global que se actualiza con cada bloque.
Los contratos inteligentes escritos en Solidity o Vyper se compilan antes de ser desplegados.
La EVM (Ethereum Virtual Machine) es una máquina virtual que ejecuta el código de los contratos inteligentes en la red de Ethereum. Cada nodo en la red de Ethereum ejecuta su propia instancia de la EVM, lo que asegura que todos los nodos procesen las transacciones y los contratos inteligentes de la misma manera.
Como los contratos inteligentes son programas informáticos, la EVM es como la computadora que los ejecuta. Fuente: QuickNode.
¿Quién tuvo la idea de la Máquina Virtual de Ethereum (EVM)?
La idea de la Máquina Virtual de Ethereum (EVM) fue concebida por Vitalik Buterin, el co-fundador de Ethereum y uno de los hombres más conocidos del mundo de las criptomonedas.
Buterin es uno de los desarrolladores más afamados del ecosistema. Fuente: The Time.
La idea de incorporar una máquina virtual en la red de Ethereum está presente desde el año 2013-2014, cuando se presentó por primera vez en el libro blanco de Ethereum escrito por Buterin y se señaló la necesidad de una máquina virtual para ejecutar contratos inteligentes de manera segura y descentralizada.
¿Qué es una máquina virtual?
Una máquina virtual (VM) es un entorno de software que emula una computadora física, permitiendo que múltiples sistemas operativos o aplicaciones funcionen en un solo hardware físico como si cada uno tuviera su propio hardware dedicado.
Aunque la idea era de Buterin, el desarrollo de la EVM fue un esfuerzo colectivo. Involucró a varios desarrolladores y colaboradores de la comunidad de Ethereum. Gavin Wood, otro cofundador de Ethereum y creador de Polkadot, jugó un papel crucial al escribir la especificación formal de la EVM en el «Yellow Paper» de Ethereum.
Con el lanzamiento de la red en el año 2015, la primera implementación práctica de la EVM se hizo en el software cliente de Ethereum, como Geth (escrito en Go) y Parity (en Rust). De allí en adelante, la EVM ha sido clave para el funcionamiento de Ethereum y ha estado expuesta a diversas mejoras.
¿Cómo funciona la EVM?
Tal y como hemos mencionado anteriormente, la EVM es el elemento crucial que hace posible que Ethereum tenga contratos inteligentes complejos que funcionan de manera eficiente. Por ende, para entender el funcionamiento de una máquina virtual como la de Ethereum es necesario pensar en esta tecnología junto a los contratos inteligentes.
¿Qué es un contrato inteligente?
Un contrato inteligente es un programa informático que tiene la capacidad de ejecutar acuerdos entre distintas partes de manera automática, sin necesidad de intermediarios. Los contratos inteligentes utilizan sistemas de intercambio de datos computarizados y archivos seguros como los que proporcionan los protocolos de Ethereum, Bitcoin, entre otros, de manera que se pueda salvaguardar la información y confirmar que las cláusulas de cada acuerdo se cumplan.
Por ejemplo, el primer paso para que la máquina virtual de Ethereum se ponga en funcionamiento es la compilación del código del contrato inteligente. Los desarrolladores, primero, se encargan de escribir los contratos en lenguajes como Solidity o Vyper. El código fuente de estos contratos inteligentes, luego, se compila a bytecode que la EVM puede entender.
¿Qué es el bytecode?
El bytecode es una forma intermedia de representación de código que se encuentra entre el código fuente de alto nivel (como el que un desarrollador escribe en lenguajes de programación como Java, Python, o en el caso de Ethereum, Solidity) y el código máquina que puede ser ejecutado directamente por el hardware de un ordenador.
Luego de escrito el bytecode, y para desplegar un contrato, se crea una transacción especial que contiene el bytecode compilado. Esta transacción se envía a la red de Ethereum, para que los mineros incluyan dicha transacción en un bloque.
Una vez que el bloque es añadido a la cadena de bloques, el contrato se despliega y su dirección se registra en el historial de Ethereum.
Por medio de un explorador de bloques, se puede precisar qué transacciones tienen un contrato inteligente. Fuente: QuickNode.
Para interactuar con un contrato ya desplegado, se envía una nueva transacción que especifica la dirección del contrato y la función a ejecutar junto con cualquier dato necesario. Esta información se propaga a través de la red de Ethereum en forma de transacción, siendo recogida por los nodos que se encargan de ejecutarla.
¿Todos los nodos de Ethereum tienen EVM?
No todos los nodos de Ethereum necesariamente ejecutan la EVM. Por ejemplo, los nodos completos (full nodes) de Ethereum son los encargados de ejecutar la EVM para verificar y aplicar las transacciones. Sin embargo, los nodos ligeros o los nodos validadores no necesitan la EVM para llevar a cabo sus trabajos.
Y es que cuando un nodo completo recibe una transacción, la EVM en ese nodo comienza a ejecutar el bytecode del contrato relacionado. ¿Cómo lo hace? Pues, la EVM utiliza una pila o stack —que es una estructura de datos que se encarga de almacenar información de la red— para realizar cálculos, y una memoria para operaciones temporales.
Una peculiaridad de las máquinas virtuales y, en específico, de Ethereum es que cada operación en la EVM tiene un costo en gas. La transacción debe incluir suficiente gas para cubrir todas las operaciones deseadas. Si el gas se agota, la ejecución se detiene, pero cualquier cambio de estado realizado hasta ese punto se revierte (excepto por el gas gastado).
¿Por qué la EVM cobra a los usuarios con gas?
La unidad de gas está diseñada, principalmente, como un elemento para prevención de abusos y ataques. En este sentido, sin un mecanismo de control de recursos, un contrato inteligente podría ejecutar bucles infinitos o operaciones muy costosas, consumiendo recursos de la red indefinidamente. El gas limita el número de operaciones que se pueden realizar, evitando tales abusos.
Cuando el nodo haya ejecutado el bytecode en la máquina virtual y se haya cobrado el gas por la operación de manera exitosa, los cambios en el estado del contrato (como actualizaciones de saldos, estados internos del contrato, etc.) se aplican al estado global de Ethereum.
Un elemento curioso de las redes de criptomonedas con contratos inteligentes es que todos los nodos deben llegar a un consenso sobre el nuevo estado después de la ejecución de cada transacción. Esto se asegura mediante la propagación de la información entre todos los nodos, la validación de este nuevo estado en los bloques y la aceptación de esta operación en la cadena de bloques principal. Es decir, entre la mayoría de los participantes de la red.
Y es que, una vez que la transacción es incluida en un bloque y suficientes bloques subsiguientes se han añadido a la cadena (lo que se conoce como confirmaciones), la transacción se considera confirmada y su efecto sobre el estado es permanente.
El proceso termina cuando el resultado de la ejecución (éxito o fallo) se registra en la cadena de bloques, y cualquier salida o evento emitido por el contrato puede ser leído por aplicaciones externas. Cerrándose así el ciclo de trabajo de la EVM sobre los contratos inteligentes, hasta la próxima transacción que tenga esas mismas características.
¿Ethereum es la única red que usa EVM?
No, Ethereum no es la única red que utiliza la Máquina Virtual de Ethereum (EVM). Binance Smart Chain, Polygon, Avalanche, Optimism, Fantom y Arbitrum son algunas de las redes de criptomonedas que también funcionan con la máquina virtual de Ethereum.
¿Por qué Ethereum y otras redes utiliza la EVM?
La Máquina Virtual de Ethereum (EVM) ha sido adoptada por Ethereum y otras redes por varias razones clave que se alinean con los principios de seguridad, descentralización y flexibilidad que estas plataformas buscan ofrecer.
Seguridad
La EVM proporciona un entorno seguro para ejecutar contratos inteligentes, aislándolos del sistema operativo y del hardware de los nodos. Esto evita que el código de los contratos pueda causar daño o acceder a recursos no autorizados.
Asimismo, el mecanismo de gas previene bucles infinitos y ataques de spam (DoS), ya que limita con costes monetarios la cantidad de operaciones que pueden ser realizadas en una transacción. ¿En qué se traduce esto? Pues, en que la red no se congestionará o se verá atacada por participantes maliciosos que traten de crear spam.
Consistencia y Descentralización
La EVM asegura que todas las operaciones son ejecutadas de la misma manera por todos los nodos, manteniendo la integridad de la red y garantizando que todas las partes vean el mismo resultado para una transacción dada.
También ayuda a la descentralización, al permitir que cada nodo ejecute y verifique las transacciones y contratos inteligentes. Esto evita la necesidad de un servidor central, lo que sería mortal para la descentralización de una red como Ethereum.
Flexibilidad y Capacidad de Programación
La EVM es turing completa, lo que significa que puede ejecutar cualquier algoritmo computable, permitiendo una amplia gama de aplicaciones descentralizadas (dApps) y contratos inteligentes complejos.
¿Qué significa turing completa?
«Turing completa» es un término que se refiere a un sistema de reglas computacionales (o modelo de computación) que puede resolver cualquier problema computable. Se trata de un sistema basado en las máquinas Turing, ideadas por Alan Turing como dispositivo teórico que manipula símbolos sobre una cinta infinita de acuerdo con una tabla de reglas. Es el modelo matemático más simple que puede representar la noción de un algoritmo.
Además de sus capacidades para resolver cualquier tipo de problema matemático, las EVM soporta múltiples lenguajes además de Solidity. Esta característica ofrece a los desarrolladores diversas opciones para codificar sus aplicaciones, permitiendo que programadores de otras redes puedan trabajar con ella e, incluso, que sea utilizada por otras rede …
Powered by WPeMatico
Entradas recientes
- ¿Qué provocó la caída del precio de bitcoin a finales de 2025?
- «JP Morgan acaba de volver obsoleto tu dinero»
- ¿Qué son las cadenas laterales (sidechains) y cómo funcionan en Bitcoin y otras redes?
- El riesgo cuántico para Bitcoin “no es inminente, pero sí inevitable”
- ¿Cuáles son los próximos soportes para bitcoin si sigue cayendo?