La cadena de bloques de Ethereum podría describirse como una blockchain con un lenguaje de programación incorporado. Alternativamente, podría definirse como una máquina virtual ejecutada globalmente basada en consenso. La parte del protocolo de Ethereum encargada de toda la computación se conoce como la Máquina Virtual de Ethereum (EVM).
La cadena de bloques de Ethereum podría describirse como una blockchain con un lenguaje de programación incorporado. Alternativamente, podría definirse como una máquina virtual ejecutada globalmente basada en consenso. La parte del protocolo de Ethereum encargada de toda la computación se conoce como la Máquina Virtual de Ethereum (EVM).
La EVM es clave para que Ethereum pueda ejecutar contratos inteligentes. Los contratos inteligentes permiten a Ethereum aprovechar el poder de las aplicaciones descentralizadas (dapps). Además, los contratos inteligentes permiten a las empresas realizar las llamadas ICOs, u ofertas iniciales de monedas, en la blockchain de Ethereum para lanzar sus propios tokens.
Aspectos esenciales de la máquina virtual de Ethereum
- La Máquina Virtual de Ethereum (EVM) es un entorno de ejecución para contratos inteligentes que también se utiliza para desarrollar y probar contratos inteligentes.
- La EVM es cuasi-Turing completa, lo que significa que puede realizar cualquier cálculo siempre que el usuario que inicie el cálculo tenga suficiente ether para pagar la tarifa requerida para ese cálculo.
- La EVM es un entorno aislado y protegido, lo que significa que el código que ejecuta no tiene acceso a la red, al sistema de archivos ni a otros procesos.
- Además, la EVM no puede acceder a datos del mundo real, como la fecha, hora o clima actuales. Para adquirir tales datos, depende de los llamados oráculos.
- La EVM es ejecutada por todos los nodos completos de la red Ethereum.
Entorno para desarrollar contratos inteligentes
La EVM está aislada y protegida del mundo real. Esto significa que el código que se ejecuta en la EVM no tiene acceso a una red, sistema de archivos o cualquier otro proceso. Esto hace que la EVM sea perfecta para desarrollar y probar contratos inteligentes sin interferir con las operaciones de la blockchain.
Puedes preguntarte por qué es una buena idea probar contratos inteligentes en un entorno aislado. Lo cierto es que el código defectuoso puede ser perjudicial para cualquier contrato inteligente, por lo que asegurarse de que no haya fallas en el código del contrato inteligente es imprescindible. Además, un entorno aislado como la EVM ofrece infinitas oportunidades para aprender, iterar, mejorar y eventualmente completar contratos inteligentes robustos que están listos para ser implementados en la blockchain.
Limitaciones de la EVM
La Máquina Virtual de Ethereum se describe como Turing completa. La completitud de Turing se refiere a la capacidad de una computadora para realizar cualquier cálculo que se le presente. Esto significa que, en Ethereum, es posible escribir programas o aplicaciones descentralizadas capaces de resolver cualquier cálculo razonable.
Pero hay una limitación en la EVM, y está ahí como una especie de precaución de seguridad. Los contratos inteligentes pueden llamar a otros contratos, lo que potencialmente permite bucles infinitos. En consecuencia, la EVM exige que se pague una tarifa de gas por cada transacción en la red. Esto significa que los bucles computacionales infinitos se previenen agotando el ether de los iniciadores de transacciones. Debido a esta medida de seguridad, la EVM no puede ser completamente Turing-completa. Más bien, se dice que es cuasi-Turing completa.
Otra cosa que vale la pena mencionar es que la EVM no puede acceder ni siquiera a los datos más básicos del mundo real. Por ejemplo, la EVM no puede saber por sí misma qué día es o decir la temperatura actual. Para adquirir tales datos, que a menudo se requieren para la ejecución adecuada de contratos inteligentes, la EVM depende de proveedores de datos del mundo real conocidos como oráculos. Un oráculo puede recopilar datos de un sitio web, una aplicación o en cualquier otro lugar, y alimentarlos al contrato inteligente.
¿Qué hace la EVM?
Cada vez que se inicia una transacción en la blockchain de Ethereum – y no importa si es una simple transferencia de valor o un despliegue de contrato inteligente – la EVM debe realizar las siguientes tres verificaciones:
- Confirma si una transacción tiene el número correcto de valores, si la firma es válida y si el nonce de la transacción coincide con el nonce de esa cuenta de transacción particular. En caso de discrepancia, la transacción genera un error.
- Calcula la tarifa requerida para la transacción e inicializa el pago de gas.
- Ejecuta la transferencia del ether o tokens a la dirección asignada.
Si la EVM detecta que el remitente no asignó suficiente gas a la transacción iniciada, la transacción no será exitosa. En este caso, la tarifa de transacción no se reembolsa al iniciador de la transacción. En su lugar, se paga al minero. Sin embargo, si una transacción no tiene éxito debido a un error en la dirección del destinatario, la EVM devolverá la cantidad enviada así como la tarifa asociada al remitente.
La EVM es donde ocurre la magia de Ethereum, aportando valor añadido a la tecnología blockchain y al mundo de las criptomonedas. Gracias a características como la EVM, la plataforma Ethereum ha gozado de gran popularidad, y su criptomoneda nativa, el ether, sigue siendo una de las mayores por capitalización de mercado.