EVM (Ethereum-Virtual-Máquina Virtual)
La máquina virtual de Ethereum (EVM) es una máquina virtual basada en pilas de Turing que ejecuta contratos inteligentes en la blockchain de Ethereum.
La EVM es el entorno de tiempo de ejecución para contratos inteligentes en Ethereum. Es un entorno aislado, lo que significa que el código que se ejecuta dentro de la EVM no puede acceder directamente a la red, al sistema de archivos u otros procesos en la máquina host. Este diseño es crucial para la seguridad, ya que evita que los contratos inteligentes maliciosos causen daños generalizados. La EVM opera con una arquitectura basada en pila, ejecutando instrucciones de bytecode. Cada nodo de Ethereum ejecuta una instancia de la EVM, lo que garantiza que todos los nodos estén de acuerdo con el estado de la cadena de bloques después de cada transacción que involucre un contrato inteligente. Este mecanismo de consenso es fundamental para el funcionamiento de Ethereum.
El diseño de la EVM permite la ejecución de código arbitrario, lo que convierte a Ethereum en una cadena de bloques programable. Los desarrolladores escriben contratos inteligentes en lenguajes de alto nivel como Solidity, que luego se compilan en bytecode de la EVM. Este bytecode es lo que ejecuta la EVM. La EVM también gestiona el estado de Ethereum, incluidos los saldos de las cuentas, el código del contrato y el almacenamiento. Se utiliza gas para pagar los recursos de cálculo y almacenamiento utilizados por los contratos inteligentes, lo que evita los ataques de denegación de servicio.
graph LR
Center["EVM (Ethereum-Virtual-Máquina Virtual)"]:::main
Pre_cryptography["cryptography"]:::pre --> Center
click Pre_cryptography "/terms/cryptography"
Rel_smart_contracts["smart-contracts"]:::related -.-> Center
click Rel_smart_contracts "/terms/smart-contracts"
Rel_solidity["solidity"]:::related -.-> Center
click Rel_solidity "/terms/solidity"
Rel_zkevm_zero_knowledge_ethereum_virtual_machine["zkevm-zero-knowledge-ethereum-virtual-machine"]:::related -.-> Center
click Rel_zkevm_zero_knowledge_ethereum_virtual_machine "/terms/zkevm-zero-knowledge-ethereum-virtual-machine"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Prueba de conocimiento
🧒 Explícalo como si tuviera 5 años
El EVM es como el motor dentro de la computadora de [Ethereum](/es/terms/ethereum). Lee instrucciones especiales (código de bytes) de los contratos inteligentes y realiza las acciones, como un chef que sigue una receta paso a paso. Cada paso cuesta un poco de dinero de "gas" para asegurarse de que la cocina no dure para siempre.
🤓 Expert Deep Dive
La Máquina Virtual de Ethereum (EVM) es un entorno de ejecución determinista, basado en pila, diseñado para contratos inteligentes. Su función principal es procesar las llamadas a transacciones y las transiciones de estado en toda la red de Ethereum. La especificación de la EVM define un conjunto de opcodes, un tamaño de palabra de 256 bits y un mecanismo de programación de gas para medir el esfuerzo computacional. El determinismo es primordial; cada nodo que ejecuta el mismo bytecode con el mismo estado inicial debe llegar al estado final idéntico. Esto se logra mediante una estricta adhesión a la función de transición de estado de la EVM. El mecanismo de gas, si bien previene el abuso de recursos, introduce restricciones económicas que impactan significativamente el diseño de dApps y la experiencia del usuario, particularmente en lo que respecta a los costos de transacción y las limitaciones de rendimiento. Las compensaciones arquitectónicas incluyen las limitaciones inherentes de una arquitectura basada en pila para cálculos complejos y los desafíos en la optimización de la eficiencia del gas para la ejecución de contratos inteligentes. Las elecciones de diseño de la EVM han influido en los diseños posteriores de máquinas virtuales de blockchain, pero también resaltan la búsqueda continua de un mayor rendimiento y tarifas de transacción más bajas, lo que lleva a innovaciones como las soluciones de Capa 2 y entornos de ejecución alternativos.