Todo el mundo de las criptomonedas conoce Ethereum. La mayoría también ha oído hablar de Ethereum Virtual Machine (EVM), pero ¿qué es exactamente? Hoy estás de suerte, porque eso es exactamente lo que vamos a contarte.
✔️ La máquina virtual Ethereum es una entidad única mantenida por miles de ordenadores que ejecutan un cliente Ethereum.
✔️ El protocolo Ethereum tiene su propia moneda, Ether (ETH), que sigue casi las mismas reglas que Bitcoin, pero también permite potentes funciones como los contratos inteligentes.
✔️ Todas las implementaciones del EVM deben adherirse a las especificaciones establecidas en el Libro Amarillo de Ethereum, y existen clientes de implementación para JavaScript, C++ y Python.
La máquina virtual Ethereum es una entidad única mantenida por miles de ordenadores conectados que ejecutan un cliente Ethereum. Cualquiera puede mantener esta red convirtiéndose en un nodo. Te descargas un software para ejecutarlo en tu PC y voilá. Entonces todavía no eres un validador, por lo que sólo beneficia a la red Ethereum, no obtienes comisiones por transacción y no se te permite crear nuevos bloques con un nodo.
El único propósito del protocolo Ethereum es preservar la eficacia continua, ininterrumpida e inmutable de esta "máquina de estado especial". En ella "viven" todas las cuentas y contratos inteligentes de Ethereum. Cada bloque de la blockchain tiene un único estado canónico y la EVM define cuáles son las reglas para calcular un nuevo estado válido de bloque a bloque.
La analogía de un libro de contabilidad distribuido se utiliza a menudo para describir blockchains como Bitcoin. Permite a una moneda descentralizada utilizar herramientas fundamentales para la criptografía. El libro de contabilidad hace un seguimiento de lo que alguien puede y no puede hacer para cambiarlo, por ejemplo, prohibir gastar más de lo que se tiene.
Ethereum tiene su propia moneda, Ether o también llamada ETH, que sigue casi exactamente las mismas reglas, pero además permite una característica mucho más potente: los contratos inteligentes. Con Ethereum, se puede utilizar la analogía del estado de la máquina distribuida. El estado de Ethereum es una gran estructura de datos que contiene no sólo todas las cuentas y saldos, sino también un estado de máquina que puede cambiar de bloque a bloque de acuerdo con un conjunto predefinido de reglas y ejecutar código de máquina arbitrario. Las reglas específicas para cambiar el estado de un bloque a otro las define el EVM.
El EVM se comporta como una función matemática: dada una entrada determinada, genera una salida determinista. Ethereum tiene una "función de transición de estado". Si se tiene un antiguo estado válido de la red y un nuevo conjunto de transacciones válidas, la función de transición de estado garantiza que se genere un nuevo estado de salida válido de la red Ethereum.
Con su "Merkle Patricia Trie modificado", Ethereum garantiza una gran eficiencia en su base de datos.
La EVM ejecuta una "máquina de pila" con una profundidad de 1024 entradas. Cada una de estas entradas es una palabra de 256 bits elegida para trabajar. Las palabras estándar se pueden ver en el dibujo de abajo, como el almacenamiento y el gas.
Aquí se utilizan "opcodes" de EVM como AND, OR, ADD y similares para abrir posibilidades matemáticas estándar. Además, se utilizan palabras específicas de la blockchain de Ethereum, como ADDRESS o BALANCE.
Todas las implementaciones de la máquina virtual de Ethereum deben obedecer las especificaciones descritas por el Libro Amarillo de Ethereum. Los clientes de ejecución de Ethereum están disponibles para JavaScript, C++ y Python.
Los contratos inteligentes para la EVM se escriben generalmente en Solidity o Vyper.