La EVM es una máquina de Turing completa que permite la ejecución de código de la manera qu se espera. Se trata de un entorno de ejecución para cada contrato inteligente.
La máquina virtual de Ethereum es un motor de computación que funciona como un ordenador, pero descentralizado, lo que permite que miles o millones de proyectos puedan ser ejecutados.
Esta máquina virtual funciona como la piedra angular de la estructura de operación de Ethereum. Siendo considerada la parte de esta cadena de bloques que corre y despliega los contratos inteligentes.
La función que tiene la EVM es aportar una serie de funcionalidades extras en la cadena de bloques para asegurar que el usuario pueda enfrentar las limitaciones que tiene una blockchain tradicional.
Cada nodo en la red de Ethereum corre en la EVM para mantener el consenso en toda la red, permitiendo así que puedan analizar y ejecutar contratos inteligentes, que son códigos que corren sobre Ethereum.
Cada máquina virtual se encuentra aislada, lo que implica que el código dentro de estas no tiene acceso a la red, el sistema de archivos y otros procesos.
Contenido
Introducción a la Ethereum Virtual Machine
Cuando hablamos de la máquina virtual de Ethereum (EVM), es importante entender una serie de conceptos como:
- Los contratos inteligentes.
- Las máquinas de Turing completas.
- Las máquinas virtuales.
De esta forma podrás entender como es posible que todo esto funcione de manera correcta en un entorno descentralizado.
Gracias a estas poderosas y complejas blockchains que utilizan este nuevo desarrollo es que las industrias se están transformando. Cosa que fue posible gracias a la llegada de lo que se conoce como Web3 y la web descentralizada.
Por lo que deberías seguir leyendo si quieres conocer como todo este ecosistema funciona en Ethereum.
¿Cómo utiliza los contratos inteligentes?
Sabemos que los contratos inteligentes son piezas de códigos que corren sobre una cadena de bloques y funciona como un acuerdo entre dos partes. Visto de manera más simple, son programas que corren sobre una cadena de bloques.
Pero si te preguntas como es que la EVM y los contratos se relacionan, la respuesta es sencilla. Ambos están estrechamente relacionados y no pueden existir el uno sin el otro cuando se trata de la cadena de bloques de Ethereum.
Estos contratos usualmente están escritos es en un lenguaje de alto nivel (que es fácil de entender para el humano) como es el caso de Solidity y luego compilado a uno de bajo nivel que se conoce como bytecode.
La máquina virtual de Ethereum no puede ejecutar directamente el código de Solidity, por eso es compilado a instrucciones de máquina de bajo nivel llamadas opcodes.
Debes seguir leyendo para ver como todo esto va tomando forma para entender el funcionamiento de esta pieza fundamental para esta blockchain y criptomoneda.
¿Qué son las máquinas virtuales?
Las máquinas virtuales agregan una capa de abstracción entre la máquina y el código que se está ejecutando. Algo que asegura que las aplicaciones se encuentran separadas entre sí y del anfitrión, además de mejorar la portabilidad del software.
A diferencia del sistema operativo como pueden ser Windows o iOS, una máquina virtual (abreviada MV) se crean por encima del sistema operativo y funciona de manera similar a un ordenador físico.
En otras palabras, una máquina virtual intenta replicar el poder computacional de una máquina física utilizado una arquitectura virtual. Esto les permite correr sobre diferentes sistemas y hardwares, haciéndolo perfecto para construir el motor de un ecosistema descentralizado.
A través de una MV, se pueden utilizar los recursos de los participantes en la red, independientemente de su ubicación, para construir, procesar y ejecutar lo que queramos.
En este sentido, la MV de Ethereum actúa como un procesador u ordenador global que presta su potencia de cálculo acumulada a los desarrolladores. Los desarrolladores, a su vez, utilizan este recurso para crear contratos inteligentes y aplicaciones descentralizadas.
Se puede acceder a una máquina virtual desde cualquier parte del mundo a través de los nodos Ethereum participantes.
El préstamo de potencia de cálculo a la red es voluntario y se rige por varios incentivo. Dadas todas las propiedades de las máquinas virtuales, y la necesidad de procesar todos los datos a través de una red voluntaria, tiene sentido que Ethereum elija este tipo de arquitectura.
Pero aun resta por ver un concepto más hasta que finalmente nos sumerjamos en el funcionamiento de este desarrollo de Ethereum.
¿Es la EVM Turing-completa?
La característica de que sea Turing-completa es una teoría fundamental sobre la que se basa para operar la máquina virtual de esta cadena de bloques.
Al ser Turing completa, la EVM funciona de tal manera que hipotéticamente encarna el concepto de pensamiento no humano o de máquina.
Este proceso de pensamiento se ejecuta sobre un algoritmo. Los cuales están compuestos por cadenas de símbolos y funciones que se recorren sin un orden predefinido, pueden ser hacia adelante o hacia atrás. Esta es una gran distinción tipos de otros códigos (que no son Turing completos), donde no se permiten la creación de bucles y aquí así.
Este movimiento no tiene límite y puede ser hipotéticamente infinito, solo restringido por las limitaciones físicas.
Lo que le permite al desarrollador crear un algoritmo que pueden realizar prácticamente cualquier cálculo, solo limitado por el gas, del cual ya hablaremos más adelante.
¿Cómo funciona la EVM?
La máquina virtual de Ethereum determina el estado general de esta cadena de bloques para cada bloque de la blockchain.
Así la EVM permite a cualquiera ejecutar código en un ecosistema sin confianza en el que el resultado de la ejecución puede estar garantizado y es completamente predecible.
Cuando se ejecuta una transacción, hace que se ejecute el contrato inteligente. En consecuencia, el EVM cambia el estado de Ethereum para satisfacer las necesidades de las llamadas del contrato.
Esto le confiere un gran potencial a Ethereum, ya que puede interpretar y ejecutar contratos inteligentes con funcionalidades complejas a diferencia de otras blockchains más simples, como Bitcoin.
La EVM trabaja para actualizarse a un nuevo estado válido de bloque en bloque en respuesta a los datos del contrato inteligente.
A su vez la máquina virtual de Ethereum lleva la cuenta de los costes de ejecución de los contratos, que es un coste que se calcula en unidades de gas para cada instrucción implementada en la EVM.
¿Cómo se relaciona el gas con la EVM?
Para poder correr DApps y contratos inteligentes sobre la EVM, es necesario que el usuario utilice recursos en forma de gas. Esto genera incentivos, ya que estos algoritmos no pueden correr indefinidamente, por el hecho de que tarde o temprano acabara sin este recurso.
Aun así, permite la creación de un ordenador mundial, en el que cualquiera puede unirse a la red para ejecutar su código sin la necesidad de confiar en los nodos, pero permitiendo que los contratos tengan una característica determinística, es decir que tienen un fin.
De esta forma los nodos no pueden quedar bloqueados intentando procesar un algoritmo que nunca termina, lo cual podría ser utilizado como un vector de ataque para la red.
En su lugar corren el código hasta que el gas se termina y la ejecución falla. Haciendo que el usuario pierde sus recursos, ya que el gas empleado no es devuelto.
Características de la Ethereum Virtual Machine
Mientras que Bitcoin y otras cadenas de bloques tienen que lidiar con cuestiones más simples como las transacciones, Ethereum y su máquina virtual tienen otros problemas.
Eso requiere que la EVM tenga una ciertas características que le permiten funcionar.
1. Determinista
Un programa es determinista cuando devuelve la misma salida ante una serie de entradas. No importa cuantas veces corramos el código.
Esto es importante para Ethereum, donde encontramos contratos inteligentes y transacciones financieras que involucran grandes cantidades de dinero.
Si no podemos determinar como el código reaccionara en cada etapa de la ejecución, entonces no sería un ecosistema confiable para estas tareas.
Así, que sea determinista es esencial para los cimientos de la máquina virtual de Ethereum.
2. Aislada
Otra importante característica de los contratos inteligentes es que funciona en un ambiente aislado. Lo cual se consigue gracias a dos sistemas:
- Maquinas virtuales
- Contenedores docker
Como los diseños de los contratos en Docker no son deterministas, Ethereum eligió las máquinas virtuales para conseguir esta característica.
Este aislamiento es importante porque el código de los contratos puede contener hacks o bugs. De esta forma se aísla el problema y no afecta al resto de la red.
3. Terminable
Sabemos que la EVM es Turing completa, lo que implica que el código que se ejecuta puede resolver cualquier problema, al menos de manera hipotética.
Pero no existe la forma de saber cuando un contrato inteligente puede finalizar, debido a que dependiendo de cierta información puede continuar corriendo o terminar tras unas pocas evaluaciones de sus líneas de código.
Por eso es que se ha colocado un mecanismo para crear un límite a su ejecución, el gas. Un recurso que también sirve para incentivar los mecanismos de la red, ya que la cantidad de este determina cuales funciones deben ser priorizadas.
Antes de ejecutar se determina el límite del gas, que hace que la máquina virtual deje de operar cuando se alcance ese valor.
Ventajas y Desventajas de la Máquina Virtual De Ethereum
Como ven todo este funcionamiento presenta grandes ventajas para aquellos que busquen realizar cierta funcionalidad sin la necesidad de una entidad central que controle todo el asunto.
Pero también tiene algunos problemas que necesitamos entender para comprender esté complejo tema de forma completa.
Pros
Aquí hay algunos beneficios de la máquina virtual de Ethereum, que explican por qué este es un desarrollo muy importante para el ecosistema crypto y la sociedad en general:
- Esta máquina virtual permite desarrollar aplicaciones descentralizadas, las cuales tienen menos restricciones que sus hermanas centralizadas.
- Las mismas han hecho posible la creación de los NFT. Un espacio que ha estado creciendo y evolucionando mucho en el último tiempo. Lo cual son un gran ejemplo de caso de uso gracias a la EVM.
- Se pueden crear muchas cosas interesantes gracias a los contratos inteligentes, que corren sobre la EVM. Hemos visto proyectos de compartición de archivos, nuevos mercados, interacciones sin confianza entre partes y hasta todo un ecosistema de finanzas descentralizadas.
Contras
La máquina virtual de Ethereum ha demostrado ser una parte muy importante de esta red, pero no llega sin algunos aspectos negativos:
- Se cree que es completamente descentralizada, pero la realidad es que no lo es. Esto se debe a que la gran mayoría de los nodos, o al menos una parte importante, corren en servidores de Amazon, los cuales son servicios centralizados. Si el día de mañana el proveedor decide que no le gusta Ethereum por cualquier razón, podría tirar abajo los nodos, causando que la red colapse. Esto ha sucedido en el pasado con esta empresa y una red social.
- Programar para la EVM requiere algunos conocimientos técnicos y está limitada solo para los que conozcan de programación.
- Durante las congestiones de red, los costos para operar sobre la EVM, el gas, hace que sea poco práctico utilizarla. Quizás para aquellos que envían grandes cantidades de valor no sea un problema muy grabe, pero si para las personas con menos capital, que quedan relegadas de la red por un tiempo.
- Un problema que se incrementa a mediad que esta solución se vuelve más popular. Cuantas más personas adoptan los contratos inteligentes y las DApps, más caro se vuevle el gas para operar.
Agrega un Comentario