¿Qué es la Máquina Virtual Ethereum (EVM)?

La Ethereum Virtual Machine, es una de las piezas claves en el funcionamiento de la blockchain de Ethereum. Su función es la de permitir la ejecución de programas o contratos inteligentes con la finalidad de desplegar sobre dicha cadena de bloques una serie de funcionalidades añadidas para que los usuarios puedan disfrutar de las mismas.

La Ethereum Virtual Machine o EVM, es una máquina virtual que forma parte del ecosistema blockchain de Ethereum. Esta es capaz de ejecutar una amplia gama de instrucciones que le permiten una gran flexibilidad a la hora de realizar distintas operaciones.

Sin embargo, para hacer más sencilla la programación para esta máquina virtual se creo un lenguaje especializado llamado de alto nivel Solidity. A través de este lenguaje de programación se facilita la creación de los contratos inteligentes. En primer lugar se transforma Solidity a los códigos de operación (OP_CODES) y luego a un bytecode. Este bytecode es finalmente ejecutado por la EVM para realizar las operaciones especificadas en un contrato inteligente. Todo ello hace que la EVM puede funcionar como un computador de verdad, producido desde las más sencillas hasta las operaciones más complejas.

En pocas palabras, dada la característica descentralizada de Ethereum y su capacidad de almacenamiento de contratos inteligentes en los nodos de la red, y que con EVM pueden ejecutarse las órdenes programadas en dichos contratos inteligentes, Ethereum se convierte en un gran ordenador mundial descentralizado. Uno que es capaz de realizar instrucciones que lleven a la resolución de cualquier tarea específica. De hecho, puede resolver casi cualquier problema computacional y todo esto ocurre dentro de la misma red Ethereum.

Todas estas instrucciones se encuentran escritas en los llamados contratos inteligentes de Ethereum. Estos contratos son un tipo de cuenta que posee su propio código, y se habilita desde el mismo momento en el que llegan a la cadena de bloques. Lo mejor de todo es que para poder usar el potencial de EVM tan solo debemos tener algo de ether e interactuar con alguna DApp, contrato inteligente o hacer nuestro propio contrato. No existe ninguna limitación, cualquier puede aprovechar el poder que EVM tiene a su disposición.

Suena increíble y lo es, EVM es un trabajo de desarrollo enorme que requirió de enormes esfuerzos por parte de gente muy talentosa, y que conocerás a continuación.

¿Quién creó la EVM?

Las mentes maestras detrás del desarrollo de la EVM son Gavin Woods y Greg Colvin. Gavin Woods fue quien creó el conocido Yellow Paper de Ethereum. En dicho documento técnico, se especifican las ideas y capacidades iniciales de la EVM. Por otro lado, Greg Colvin es conocido como el principal desarrollador de la EVM.

Estas dos personas y el equipo que las acompañó permitieron la creación de la EVM. Una tecnología que transformó a Ethereum en un ecosistema único dentro de las demás tecnologías que usan blockchain. Todo gracias a que EVM es una parte integral del funcionamiento interno de Ethereum y representa una verdadera innovación en el desarrollo de estas tecnologías.

¿Cómo funciona la máquina virtual Ethereum (EVM)?

Con la finalidad de evitar que algún programador pueda atentar contra la seguridad de la red, la EVM realiza una completa abstracción del sistema. Manejando el acceso a los recursos de los computadores y limitando sus acciones en un ambiente controlado o de máquina virtual. A su vez, la EVM permite simplificar el desarrollo y actualización de aplicaciones y características disponibles para las aplicaciones descentralizadas.

La EVM permite el diseño y la ejecución de contratos inteligentes. Además, gracias a Solidity, crear estos contratos inteligentes resulta muy sencillo y manejable. Aunque la EVM por sí misma no es capaz de ejecutar directamente este lenguaje, si lo hace por medio de una técnica conocida como compilación de instrucciones.

Por su parte, Solidity es un lenguaje de programación de alto nivel muy similar al JavaScript y al C++. Este lenguaje está orientado a la creación de contratos inteligentes. De esta forma, la mayor parte del código fuente de los contratos está escrito en este lenguaje y luego se compilan en códigos de operación comprensible para la EVM.

La EVM utiliza estos códigos de operación (OP_CODES) para realizar tareas específicas. Estas limitaciones llevan a al EVM a crear métodos de trabajo que le permiten realizar sus operaciones, entre ellas la más importante es la memoria de contratos. Dicha memoria sirve para almacenar información a la que la EVM puede acceder rápidamente. Por otra parte, para almacenar datos de manera indefinida y hacerlos accesibles para futuras ejecuciones de contratos, se puede usar el almacenamiento por contratos. Esta actúa como una base de datos públicos, ya que la cual los valores se pueden leer externamente sin tener que enviar una transacción al contrato, es decir, sin comisiones.

OP_CODES y Bytecode, las fundaciones de la Ethereum Virtual Machine

Los OP_CODES son una parte muy importante y esencial de la EVM. Estos códigos de operación son los que definitivamente las operaciones válidas que la EVM puede realizar. En EVM existe la capacidad de ejecutar hasta 256 OP_CODES distintos, aunque en la actualidad no existe esta cantidad de códigos definidos. La razón es que el desarrollo de EVM no ha requerido de la creación de tales códigos y los desarrolladores son cuidadosos con incluir nuevos códigos debido a las limitaciones en sus números.

Un aspecto importante de los OP_CODES, es que este es un nivel intermedio de programación para la EVM. El primer nivel vendría dado por Solidity y los lenguajes de programación de alto nivel similares a este. Un segundo nivel de profundidad serán los OP_CODES. Por último, tendremos el bytecode resultado de compilar los OP_CODES en el equivalente a lenguaje máquina de la EVM, algo prácticamente imposible de entender y escribir por un ser humano.

Sin embargo, al ser Ethereum una blockchain pública y ser un proyecto que aboga por la apertura y transparencia, el lenguaje bytecode de la EVM se puede descompilar. Es decir, podemos transformar el código de bytes en OP_CODES y de allí llegará a un lenguaje cercano a Solidity. Esto es importante puesto que brinda a EVM la capacidad de mantener de forma abierta y clara el contenido de un contrato inteligente. Además de permitir reconocer la ABI de la que dispone. Un dato importante puesto que se trata básicamente de cómo puede codificar llamadas de un contrato para el EVM y, al revés, cómo leer los datos de las transacciones que genera dicho contrato.

Evolución futura de la EVM

La red de Ethereum ha sido nombrada como la computadora global debido a que cada uno de los nodos conectados a la red, ejecuta una instancia de la EVM. Al mismo tiempo que todos realicen las instrucciones de forma idéntica con el fin de lograr y mantener un consenso sobre el estado del sistema. Esta particularidad de Ethereum hace que su cálculo sea más lento y costoso en comparación con un ordenador común. Pero le brinda mayores ventajas, como por ejemplo una alta defensa a las fallas bizantinas, una mayor protección e integridad de los datos y una mayor resistencia a la censura.

Así, Ethereum funciona como una computadora mundial descentralizada de uso general en una red entre pares. Los contratos inteligentes y las DApps desarrolladas en la EVM podrían incluso asumir las funciones de Internet tal y como las conocemos. Además, podría permitirnos la creación de economías más estables ya que su funcionamiento puede ser garantizado y no está sujeto a interpretaciones humanas.

Con la aplicación de elementos como la distribución de archivos, la ejecución de contratos inteligentes, las aplicaciones descentralizadas y muchos otros, se elimina la confianza en terceros, ya que si no se cumplen los términos programados, simplemente el contrato no se ejecutará.

Sin embargo, podemos comparar su nacimiento y desarrollo con la Internet de los años 90. Nadie tiene idea de lo que traerá en el futuro. Pero sin duda alguna, la EVM evolucionará con el tiempo y le permitirá a la red convertirse en una mucho más sólida. Donde seguramente veremos las acciones de Ethereum subir, así como el valor de su token.

Característica de la EVM

La Ethereum Virtual Machine es un software que posee muchas características o cualidades tanto positivas como negativas. Entre ellas podemos mencionar:

  1. La EVM está enfocada en proporcionar seguridad y ejecutar códigos no confiables en computadoras de todo el mundo.
  2. Las aplicaciones descentralizadas y los contratos inteligentes desarrollados en la EVM son completamente descentralizados y distribuidos. Por lo que no requiere la participación de terceros. Ni pueden ser modificadas ni alteradas.
  3. La EVM permite el desarrollo de una mayor cantidad de aplicaciones, y que pueden ejecutarse sobre una misma red blockchain, sin afectar otras operaciones.
  4. Los contratos inteligentes diseñados en la EVM son invariables y pueden ejecutarse y hacerse cumplir por sí mismo, de una manera autónoma y automática. Con lo que se elimina la burocracia, los altos costos y el tiempo de espera típicos en los contratos tradicionales.
  5. La EVM es sustancialmente menos eficiente que muchas otras máquinas virtuales convencionales. Esto se debe a que principalmente su diseño se basó en la utilidad del momento y no en el alto rendimiento.
  6. Los cambios y mejoras experimentados por la EVM han sido pocos hasta ahora. Por lo que no está optimizada en cuanto a la velocidad para distintas plataformas de hardware.
  7. El diseño de la EVM no está dirigido a la portabilidad, lo que limita los espacios en los que dicha máquina virtual puede implementarse.
CriptoMundo

CriptoMundo.com es un medio digital independiente que difunde noticias y contenido sobre criptomonedas y tendencias emergentes de tecnologías financieras. Ofrece noticias, guías, artículos de opinión y gráficos en tiempo real.

Monedas

Bitcoin

Ethereum