Volver al inicio
Ethereum Virtual Machine, el corazón de la bestia
1/8/22

El sábado se cumplieron 7 años del estreno público de Ethereum, la red blockchain que el 30 de julio de 2015 tuvo su primer bloque minado y empezó a revolucionar el ecosistema cripto. Después de Bitcoin y su propuesta para la transferencia de valor entre personas con criptomonedas, Ethereum adaptó la tecnología y diseñó una "computadora global distribuida" capaz de transferir datos y correr programas de manera descentralizada.

Sin Ethereum, la web3, las finanzas descentralizadas (DeFi) y los tokens no fungibles (NFT) no tendrían la forma ni la potencia que tienen hoy, y gran parte de sus tecnologías y protocolos no existirían. Uno de los aportes principales son los smart contracts: una forma de programar la red y todo tipo de aplicaciones creadas sobre ella, las dapps.

Estos smart contracts son tan fundamentales para Ethereum que hasta hay una herramienta específica para ellos: la Ethereum Virtual Machine, una máquina de cómputos distribuida. De esta EVM depende todo: la emisión de tokens, la creación de NFT y la existencia de sus marketplaces, las dapps, DeFi, los videojuegos blockchain, los tokens deportivos, los poaps. Todo producto o servicio del ecosistema que depende de smart contracts está mediado por la Ethereum Virtual Machine.

Qué es la Ethereum Virtual Machine (EVM)

La máquina virtual de Ethereum es el entorno computacional en el que se implementan y ejecutan los smart contracts de esa red y de los millones de dapps creadas en ella. Es decir que esta EVM es, por lo tanto, la plataforma de programación más grande de todo el ecosistema cripto.

A menudo se la define como una "computadora descentralizada", aunque en realidad no es ningún tipo de aparato sino una virtualización o simulación. Las máquinas virtuales, que ya existían por fuera de Ethereum, permiten crear una capa operativa por encima de la del sistema o software de base. Así, se crean entornos artificiales que se pueden utilizar para realizar pruebas o correr programas delicados de modo seguro. Todos usos cruciales para un ecosistema descentralizado como el de blockchain y las criptomonedas.

Cómo está compuesta la Ethereum Virtual Machine

La Ethereum Virtual Machine no posee hardware propio, sino que simula el trabajo de un centro de procesamiento y genera un entorno para el desarrollo y la implementación de software mediante smart contracts. De ahí lo de computadora. Y se dice que es descentralizada porque no es una máquina específica ubicada en un lugar sino una emulación accesible desde múltiples terminales que, por su parte, alimentan de capacidad esta EVM, como una mente colmena.

La máquina virtual elimina la necesidad de tener un galpón gigantesco lleno de hardware de altísimo rendimiento, y lo reemplaza por un entorno digital al que los usuarios de la red pueden voluntariamente sumar capacidad de procesamiento a cambio de recibir alguno de los estímulos que ofrece Ethereum. Mientras que los desarrolladores pueden recurrir a ella para implementar y correr los smart contracts fundamentales para sus dapps.

Qué hace la Ethereum Virtual Machine

El propósito de la EVM es determinar y monitorear el estado de cada bloque de la red. Puede sonar como un instrumento de vigilancia, pero se refiere a otra cosa: a los cambios de estado, que son indicadores o disparadores de acciones en todo tipo de sistemas computacionales. Por ejemplo, cuando algo se prende o apaga, activa o desactiva, cuando se envía o se recibe algo, o se mueve un fichero o documento, hay un cambio de estado.

Estos cambios de estado generan modificaciones en la estructura de datos de los sistemas computacionales. La EVM puede revisar los cambios de estado de la red y de las dapps para que Ethereum y el software montado a ella funcionen de forma descentralizada, teniendo en cuenta cuestiones como la saturación de la red o las prioridades de operación.

De ese modo, la EVM permite que cualquier desarrollador pueda correr código dentro de un ecosistema que no necesita basarse en la confianza en terceros, y donde la ejecución del software y el resultado de las interacciones están garantizados y son predecibles.

Ethereum Virtual Machine, el corazón de la bestia

Cómo funciona la Ethereum Virtual Machine

Las máquinas virtuales existen fuera de Ethereum, y son programas que emulan un sistema computarizado, con su hardware (una central de procesamiento, una memoria, una unidad de almacenamiento) y su software (sistema operativo, aplicaciones, archivos). La EVM puede correr programas, crear archivos y comunicarse con los nodos, en el ámbito de una red, pero tiene sus propiedades específicas.

Cuando ocurre una transacción o una operación relevante en una dapp, eso causa que un smart contract se ejecute. Ahí entra en juego la EVM para monitorear los cambios de estado necesarios para continuar con las operaciones, y asentarlos en los bloques que se van generando.

La EVM está completamente aislada, como una parte independiente cuyo código no es operable desde la red. Esto permite que la implementación de software no dificulte ni provoque crisis en el funcionamiento transaccional de la red ni en el manejo cuentas (en este caso, de direcciones Ethereum), y además protege a la EVM de ataques maliciosos.

Además, el protocolo de base de Ethereum asegura la continua, ininterrumpida e inmutable operación de esta máquina especial, que sin embargo puede provocar detenciones porque tiene un sistema interno de regulación.

Ethereum Virtual Machine y la economía de Ethereum

La EVM puede correr cualquier programa desarrollado en su lenguaje de programación compatible, Solidity. Pero esa libertad hace que la demanda sea cada vez mayor mientras sigue creciendo el ecosistema de dapps. Para regular y dar prioridad a una operación, así como para evitar que un programa corra infinitamente, la EVM registra los costos de implementación y ejecución de los smart contracts, que se mide en unidades de Gas, un tipo de fee como el de otras redes blockchain.

En Ethereum, el Gas se usa para "ordenar" el tráfico, y además es parte del sistema de incentivos de la red. Cuando hay mucha demanda operativa en Ethereum, se cobra más gas. Si alguien quiere prioridad de procesamiento, también puede pagar más gas. Este gas se paga con ETH, la criptomoneda de Ethereum, que es un token de precio variable.

Estos dos hechos combinados hacen que prácticamente nunca dos operaciones similares realizadas en distintos momentos paguen el mismo fee medido en dólares, lo cual es algo a tener en cuenta al calcular los costos de operación.

La EVM y el Gas en Ethereum

Mediante la administración de los gas fees, la EVM consolida el sistema económico y descentralizado de Ethereum, con sus costos (gas fee) e incentivos (como el pago a mineros y el rendimiento por staking, por ejemplo). Cada operación de código tiene un costo de gas: a más complejo el código, más alto el gas fee.

Esta comisión se colecta y se usa para compensar a los validadores de los bloques, en el actual sistema proof-of-work que todavía usa la red Ethereum. Pero además funciona como un resguardo o seguro ante eventuales ataques, ya que el costo operativo de hacer un ataque masivo a la red se vuelve impagable.

Y no solo desde el punto de vista monetario, sino también en el tecnológico: hay límites que marcan el máximo de gas que puede consumirse en todas las transacciones contenidas en un bloque, lo que determina cuántas transacciones entran por bloque. Actualmente el valor es de 8 millones de gas por bloque, lo que equivale a unas 380 transferencias sencillas de ETH de una dirección a otra.