Introducción
Aunque un sistema operativo (SO) es mutuamente excluyente, ya que es Windows, MacOS o Linux, etc., a veces es posible ejecutar un SO sobre otro. Por ejemplo, existe la posibilidad de ejecutar Windows en MacOS y Android en Windows. El propósito de apilar los sistemas operativos es probar un SO, aislar algún software riesgoso del SO anfitrión, ejecutar una versión antigua de un SO o desarrollar y probar código en distintas plataformas. Una EVM se utiliza en blockchains porque proporciona una forma universal y confiable de ejecutar contratos inteligentes y garantiza que cada nodo de la red ejecute las transacciones exactamente de la misma manera.
¿Qué es una máquina virtual?
Una máquina virtual (VM) es esencialmente una computadora diferente que vive dentro de la tuya. Con solo unos pocos clics, puedes configurarla sin necesidad de hardware físico adicional. Una vez en funcionamiento, actúa como una computadora completa. Puedes instalar un sistema operativo, almacenar archivos, ejecutar aplicaciones e incluso navegar por internet, todo dentro de ese espacio virtual. En el mundo de las criptomonedas, contratos inteligentes en blockchains se desarrollan y ejecutan en máquinas virtuales. La más común de ellas es la Máquina Virtual de Ethereum (EVM).
Detrás de escena, es tu computadora principal, conocida como el anfitrión, la que hace esto posible. Para que la VM funcione sin problemas, el anfitrión comparte sus propios recursos, como memoria, potencia de procesamiento y almacenamiento. Esta configuración resulta útil cuando necesitas trabajar con un software que solo se ejecuta en un sistema operativo diferente al instalado en tu anfitrión.
Cómo funciona una VM
Entonces, ¿cómo funciona realmente una máquina virtual? En el centro de todo el proceso hay una pieza especial de software llamada hipervisor. El hipervisor actúa como un administrador, tomando los recursos físicos de tu computadora. Estos recursos incluyen componentes como el procesador (CPU), la memoria (RAM) y el almacenamiento. Se hacen funcionar en una división eficiente para que una o incluso varias máquinas virtuales puedan ejecutarse al mismo tiempo.
Hay dos formas típicas de configurar los hipervisores. Algunos se instalan directamente en el hardware, por lo que a menudo se encuentran en centros de datos y entornos de nube donde la velocidad y la eficiencia son lo más importante. Otros se ejecutan sobre tu sistema operativo normal, casi como cualquier otra aplicación. Estos son más comunes para el uso diario, las pruebas o el trabajo de desarrollo. Por ejemplo, puedes disfrutar del ecosistema Android en Windows instalando una aplicación como BlueStacks.
Una vez que el hipervisor ha hecho su trabajo y tu máquina virtual está lista, puedes tratarla como una computadora física. Puedes iniciarla y luego instalar programas, usar internet o incluso crear y ejecutar aplicaciones, todo dentro de ese espacio virtual.
Máquinas virtuales en redes blockchain
La mayoría de las personas que usan aplicaciones blockchain nunca contemplan la infraestructura invisible que hace que todo funcione sin problemas. Ya sea que estés intercambiando tokens en un exchange descentralizado, acuñando un NFTo enviando fondos a través de una blockchain de capa 2, un componente vital está haciendo todo el trabajo pesado en segundo plano. Ese componente es la máquina virtual de blockchain.
En el mundo tecnológico tradicional, una máquina virtual (VM) es básicamente un entorno aislado. Permite a los desarrolladores ejecutar software en un entorno limitado y controlado. Este software está separado del hardware subyacente. Sin embargo, en las redes blockchain, las VM tienen un propósito muy diferente. Sirven como motores de ejecución para los contratos inteligentes, los agentes de código autoejecutables que permiten que las aplicaciones descentralizadas funcionen sin problemas las 24 horas del día, los 7 días de la semana. Sin las VM, no habría una forma confiable de que miles de computadoras independientes en todo el mundo se pusieran de acuerdo sobre cómo debe ejecutarse un contrato.
Máquina Virtual de Ethereum
La Máquina Virtual de Ethereum (EVM) es el ejemplo más conocido de VM de blockchain. Lenguajes como Solidity, Vyper o Yul pueden ser utilizados por los desarrolladores para escribir contratos e implementarlos en Ethereum, así como en otras blockchains compatibles con EVM. La EVM garantiza que cada nodo procese los contratos inteligentes exactamente de la misma manera, porque ayuda a mantener la consistencia y la seguridad en toda la red.
Otras VM en el mundo blockchain
Pero Ethereum no es la única blockchain que tiene una máquina virtual. Diferentes redes blockchain diseñan sus propios modelos para cumplir objetivos específicos según sus requisitos. NEAR y Cosmos dependen de VM basadas en WebAssembly, conocidas por su flexibilidad. Estas permiten que los contratos inteligentes se escriban en varios lenguajes de programación, lo que reduce las barreras para los desarrolladores que no quieren aprender algo completamente nuevo. Mientras tanto, la MoveVM, utilizada por blockchains como Sui, da más importancia al lenguaje Move para priorizar la seguridad en la ejecución de transacciones. Solana toma una ruta diferente con su Máquina Virtual de Solana, optimizada para procesar muchas transacciones simultáneamente.
Aunque la mayoría de los usuarios nunca interactúan directamente con ellas, las VM trabajan constantemente en segundo plano. Cuando realizas un intercambio de tokens en una plataforma DeFi como Uniswap, la EVM está ejecutando el contrato. Si acuñas un nuevo NFT, la VM actualiza el libro mayor para mostrar quién es el propietario. Incluso las soluciones de escalado avanzadas como los zk-rollups dependen de VM especializadas como las zkEVM, que combinan la ejecución de contratos inteligentes con pruebas criptográficas para mejorar tanto la eficiencia como la seguridad.
Defectos de las VM
Sin embargo, las máquinas virtuales también tienen ciertas desventajas. Las VM ejecutan código y gestionan contratos inteligentes en componentes prestados, lo que hace que los procesos sean más lentos en comparación con la ejecución directa en hardware. La complejidad operativa resulta del mantenimiento de VM en redes grandes, lo que requiere actualizaciones constantes y conocimientos especializados. La compatibilidad es otra desventaja. Un contrato escrito para Ethereum no se ejecutará en Solana sin cambios sustanciales. Esto crea trabajo adicional para los desarrolladores que quieren llegar a múltiples ecosistemas.
A pesar de estos desafíos, las VM de blockchain siguen siendo el núcleo de la innovación en tecnología descentralizada. Son las heroínas anónimas que hacen que los usuarios confíen en el código en lugar de en intermediarios. Las VM crean un mundo de productos financieros, propiedad digital y comunidades descentralizadas. Aunque quizás nunca las veas directamente, las máquinas virtuales son los motores silenciosos que mantienen en movimiento la economía blockchain.
Conclusión
En resumen, las máquinas virtuales pueden pasar desapercibidas, pero desempeñan un papel crucial en la tecnología moderna. Al simplificar y asegurar las cosas detrás de escena, nos ayudan a construir y usar nuevos tipos de programas informáticos y cambian la forma en que confiamos y compartimos información. Ya sea que impulsen las últimas herramientas blockchain o permitan que las personas ejecuten software en un espacio protegido, las VM siguen mejorando silenciosamente. Su verdadero poder reside en cómo respaldan todo desde el fondo, demostrando que gran parte de lo que hace que la tecnología funcione mejor a menudo es invisible.
Lectura relacionada: Límites del protocolo WebSocket: una guía.