Ethereum: ¿Qué es EVM?

Llevamos días hablando sobre Blockchain. Una de las tecnologías relacionadas, con las cadenas de bloques, es Ethereum, una tecnología conceptualizada por Vitalik Buterin, en 2013. Ethereum permite el desarrollo de programas arbitrarios para Blockchain y aplicaciones descentralizadas (DApps).

En el artículo de hoy veremos brevemente qué es EVM, la Máquina Virtual de Ethereum y algunas de sus características más importantes, como pueden ser sus tipos de almacenamiento.

¿Qué es EVM?

EVM es una máquina de ejecución simple basada en pilas que ejecuta instrucciones de código de bytes para transformar un estado del sistema a otro estado. EVM es una máquina completa de Turing limitada a lo que se requiere (gas) para ejecutar cualquier instrucción.

En este sistema, los bucles infinitos que pueden resultar en ataques de denegación de servicio son imposibles.

La Máquina Virtual de Ethereum es un entorno de tiempo de ejecución completamente aislado. El código ejecutado en la EVM no tiene acceso a ningún recurso externo. El resultado es una mayor seguridad, una ejecución determinista, y permite que se ejecute código que no es de confianza en la cadena de bloques de Ethereum.

Gas y tarifas

En Ethereum, gas se refiere a la unidad que mide la cantidad de esfuerzo computacional requerido para ejecutar operaciones específicas en la red Ethereum. El gas es, por tanto, esencial para la red Ethereum, es el combustible que le permite funcionar.

Las tarifas de gas se pagan en la moneda nativa de Ethereum, ether (ETH).

Tipos principales de almacenamiento

Existen tres tipos principales de almacenamiento disponibles para EVM y contratos:

  • Memoria (memoria volátil). Matriz de bytes con dirección de palabra. Similar al concepto de RAM, cuando el contrato finaliza la ejecución de su código, la memoria se borra. La memoria es limitada pero está restringida por los requisitos de la tarifa de gas.
  • Almacenamiento. Almacén de valores-clave que se conserva de forma permanente en la cadena de bloques. Las claves y los valores tienen 256 bits de ancho cada uno. Se asigna a todas las cuentas en la cadena de bloques. Se considera como almacenamiento en disco duro.
  • Pila (stack).  Realiza todos los cálculos en un área de datos llamada stack. Todos los valores en memoria también se almacenan en la pila.

Conclusión

Si quieres saber más sobre Ethereum y EVM te animo a consultar la documentación oficial, y toda la información disponible para ayudarte a desarrollar con Ethereum.