Una máquina virtual
La EVM define las reglas mediante las que se ejecutan las instrucciones de los contratos dentro de Ethereum.
La Ethereum Virtual Machine es el entorno de ejecución que permite procesar el código de los smart contracts y aplicar las reglas de Ethereum.
EVM significa Ethereum Virtual Machine. Es el entorno de ejecución que forma parte de Ethereum y que procesa las operaciones definidas por los smart contracts.
La EVM define las reglas mediante las que se ejecutan las instrucciones de los contratos dentro de Ethereum.
Los participantes de Ethereum siguen las mismas reglas de ejecución para llegar al mismo resultado a partir de una misma operación y estado.
La EVM no es una blockchain independiente. Es una parte fundamental de la arquitectura de ejecución de Ethereum.
Para entender la EVM hay que entender primero que Ethereum mantiene un estado global que cambia cuando se procesan nuevas transacciones.
Incluye información relacionada con las cuentas, sus balances y el estado de los contratos.
Una transacción es una instrucción firmada criptográficamente que puede solicitar una operación en Ethereum.
Después de ejecutarse la operación, el resultado puede producir un nuevo estado de Ethereum.
Conceptualmente, podemos representar el proceso así:
Estado + Transacción → Nuevo estado
La EVM participa en la aplicación de las reglas que determinan cómo se produce esa transición.
Ethereum utiliza dos tipos principales de cuentas: las cuentas controladas por claves privadas y las cuentas de contratos controladas por código.
Una EOA, o Externally Owned Account, está controlada mediante una clave privada y puede firmar transacciones.
Una cuenta de contrato está controlada por el código desplegado en Ethereum y puede ejecutar lógica cuando es llamada.
Ambos tipos de cuenta forman parte del estado de Ethereum y pueden interactuar entre sí.
Los desarrolladores suelen escribir smart contracts utilizando lenguajes de alto nivel como Solidity. Ese código debe transformarse antes de poder ser ejecutado por la EVM.
El desarrollador escribe la lógica del contrato en un lenguaje como Solidity.
Un compilador transforma el código fuente en instrucciones que pueden ser ejecutadas por Ethereum.
El contrato desplegado contiene código que puede ser procesado por la EVM.
Puedes imaginarlo como una cadena:
Solidity → Compilador → Bytecode → EVM
Cuando una operación necesita ejecutar código de un contrato, la EVM procesa las instrucciones siguiendo las reglas definidas por Ethereum.
La EVM procesa las instrucciones contenidas en el código que debe ejecutarse.
Durante la ejecución utiliza estructuras como la pila, la memoria y el almacenamiento del contrato.
La ejecución puede devolver datos y, cuando corresponde, modificar el estado de Ethereum.
La EVM utiliza diferentes estructuras para trabajar con los datos durante la ejecución.
La pila es una estructura utilizada por la EVM para trabajar con valores durante la ejecución de las instrucciones.
La memoria se utiliza para almacenar datos temporales durante la ejecución de una llamada.
El almacenamiento mantiene datos persistentes asociados al estado del contrato.
Una interacción con un smart contract puede seguir este recorrido conceptual.
Una aplicación prepara la operación indicando el contrato de destino y los datos necesarios.
Si se trata de una transacción, el usuario la autoriza mediante una firma criptográfica.
La operación se procesa siguiendo las reglas de Ethereum y la lógica del contrato.
Si la ejecución modifica datos persistentes, el estado del contrato puede cambiar.
Ejecutar operaciones en Ethereum requiere recursos computacionales. El sistema utiliza gas para medir ese trabajo.
Es una unidad utilizada para expresar la cantidad de trabajo computacional necesario para realizar una operación.
Una ejecución más compleja puede requerir más trabajo computacional y, por tanto, consumir más gas.
El gas está relacionado con la comisión que paga el usuario para que su operación sea procesada.
La relación entre ambos conceptos es fundamental: los smart contracts contienen lógica y la EVM proporciona el entorno donde esa lógica puede ejecutarse.
Un smart contract puede contener funciones, variables y reglas. Cuando una operación interactúa con él, la EVM procesa las instrucciones correspondientes.
Si solo recuerdas cinco cosas de esta página, que sean estas.
Es la Ethereum Virtual Machine, el entorno de ejecución de Ethereum.
Ethereum mantiene un estado que puede cambiar como resultado de las operaciones ejecutadas.
Los smart contracts se escriben normalmente en lenguajes de alto nivel y se transforman en código ejecutable.
La EVM procesa instrucciones y puede producir cambios en el estado.
Las operaciones consumen recursos que se miden mediante gas.
Ya sabes qué es la EVM y qué papel desempeña en la ejecución de Ethereum. El siguiente paso es entender cuánto cuesta realizar esas operaciones.
Documentación técnica de referencia para ampliar lo aprendido.
Documentación técnica oficial sobre la EVM, el estado de Ethereum, las transacciones y la ejecución.
Documentación EVM ↗La página anterior de la guía explica qué son los contratos inteligentes y cómo se construyen.
Ver Smart Contracts →El siguiente capítulo explica las unidades de gas, gwei y las tarifas de Ethereum.
Ir a Gas →Continúa para entender cómo funciona el sistema de gas de Ethereum.