¿Qué es la Ethereum Virtual Machine (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 bien smart contracts con el objetivo de desplegar sobre tal blockchain una serie de funcionalidades añadidas a fin de que los usuarios puedan gozar de exactamente las mismas.

La Ethereum Virtual Machine o bien EVM, es una máquina virtual que es parte del ecosistema blockchain de Ethereum. Esta es capaz de ejecutar una extensa gama de instrucciones que le dejan una enorme flexibilidad en el momento de efectuar diferentes operaciones.

Sin embargo, para hacer más fácil la programación para esta máquina virtual se creo un lenguaje especializado de alto nivel llamado Solidity. Mediante este lenguaje de programación se facilita la creación de los smart contracts. Primeramente se convierte Solidity a los códigos de operación (OP_CODES) y después a un bytecode. Este bytecode es por último ejecutado por la EVM para efectuar las operaciones concretadas en un smart contract. Todo ello hace que la EVM puede marchar como un ordenador de veras, ejecutando desde las más fáciles hasta las más complejas operaciones.

En pocas palabras, dada la característica descentralizada de Ethereum y su capacidad de guardar smart contracts en los nodos de la red, y que con EVM pueden ejecutarse las órdenes programadas en tales smart contracts, Ethereum se convierte en un enorme computador mundial descentralizado. Uno que es capaz de efectuar instrucciones que lleven a la resolución de cualquier labor concreta. En verdad, puede solucionar prácticamente cualquier inconveniente computacional y todo esto ocurre en exactamente la misma red Ethereum.

Todas estas instrucciones se hallan escritas en los llamados contratos inteligentes de Ethereum.  Estos contratos son un género de cuenta que tiene su código, y se habilita desde exactamente el mismo instante en el que llegan a la blockchain. Lo mejor es que para poder emplear el potencial de EVM solo debemos tener algo de ether y también interaccionar con alguna DApp, contrato inteligente o bien hacer nuestro contrato. No hay ninguna restricción, cualquier puede aprovechar el poder que EVM tiene a su predisposición.

Suena increíble y lo es, EVM es un trabajo de desarrollo enorme que requirió de enorme sacrificios por la parte de gente muy talentosa, y que vas a conocer ahora.

¿Quién creó la EVM?

Las psiques maestras tras el desarrollo de la EVM son Gavin Woods y Greg Colvin. Gavin Woods fue quien creó el conocido Yellow Paper de Ethereum. En tal documento técnico, se detallan las ideas y capacidades inicial de la EVM. Por otra parte, Greg Colvin es conocido como el primordial desarrollador de la EVM.

Estas 2 personas y el equipo que las acompañó dejó la creación de la EVM. Una tecnología que convirtió a Ethereum en un ecosistema único dentro del resto tecnologías que emplean blockchain. Todo merced a que EVM es una parte integral del funcionamiento interno de Ethereum y representa una auténtica innovación en el desarrollo de estas tecnologías.

  • Gavin Woods autor de la EVM
  • Greg Colvin programador de la EVM

¿De qué manera marcha la Ethereum Virtual Machine (EVM)?

Con la finalidad de eludir que algún programador pueda atentar contra la seguridad de la red, la EVM efectúa una completa abstracción del sistema. Manejando el acceso a los recursos de los computadores y limitando sus acciones en un entorno controlado o bien de máquina virtual. Por su parte, la EVM deja facilitar el desarrollo y actualización de aplicaciones y peculiaridades libres para las aplicaciones descentralizadas.

La EVM deja el diseño y la ejecución de smart contract. Además de esto merced a Solidity crear estos smart contracts resulta sencillísimo y manejable. Si bien la EVM por sí sola no es capaz de ejecutar de manera directa este lenguaje, si lo hace a través de una técnica famosa como compilación de instrucciones.

Por su parte, Solidity es un lenguaje de programación de alto nivel  muy afín al JavaScript y al C++. Este lenguaje está orientado a la creación de contratos inteligentes. De este modo, la mayoría del código fuente de los contratos está escrito en este lenguaje y después se compilan en códigos de operación entendible para la EVM.

La EVM usa estos códigos de operación (OP_CODES) para efectuar labores concretas. Estas restricciones llevan a al EVM a crear métodos de trabajo que le dejen efectuar sus operaciones, entre ellas la más esencial es la memoria de contratos. Dicha memoria sirve para guardar información a la que la EVM puede acceder de forma rápida. Por otro lado, para guardar datos de forma indefinida y hacerlos alcanzables para futuras ejecuciones de contratos, se puede emplear el almacenamiento por contratos. Esta actúa fundamentalmente como una base de datos pública, desde la que los valores se pueden leer externamente sin mandar una transacción al contrato, o sea, sin comisiones.

OP_CODES y Bytecode, las fundaciones de la Ethereum Virtual Machine

Los OP_CODES son una parte fundamental y esencial de la EVM. Estos códigos de operación son los que definen las operaciones válidas que la EVM puede efectuar. En EVM existe la capacidad de ejecutar hasta doscientos cincuenta y seis OP_CODES diferentes, si bien actualmente no existen esta cantidad de códigos definidos. El motivo es que el desarrollo de EVM no ha requerido de la creación de semejantes códigos y los desarrolladores son cautelosos con incluir nuevos códigos debido a las restricciones en sus números.

Un fácil ejemplo de Solidity uno de los lenguajes utilizados para programar para la EVM

Un aspecto esencial 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 afines a este. Un segundo nivel de profundidad serían los OP_CODES. Finalmente, tendríamos el bytecode resultado de compendiar los OP_CODES en el equivalente a lenguaje máquina de la EVM, algo prácticamente imposible de comprender y redactar por un humano.

Sin embargo, siendo Ethereum una blockchain pública y ser un proyecto que aboga por la apertura y trasparencia, el lenguaje bytecode de la EVM se puede descompilar. O sea, podemos convertir el bytecode a OP_CODES y de allá llevarlo a un lenguaje próximo a Solidity. Esto es esencial pues brinda a EVM la capacidad de sostener abiertamente y clara el contenido de un smart contract. Aparte de permitir reconocer la ABI de la que dispone. Un dato esencial pues se trata esencialmente de de qué forma puede codificar llamadas de un contrato para el EVM y, del revés, de qué forma leer los datos de las transacciones que produce dicho contrato.

Todos y cada uno de los OP_CODES de la EVM

Evolución futura de la EVM

La red de Ethereum ha sido nombrada como la computadora global debido a que cada uno de ellos de los nodos conectados a la red, ejecuta una instancia de la EVM. Al tiempo que todos efectúan las instrucciones de forma idéntica con la intención de conseguir y sostener un acuerdo sobre el estado del sistema. Esta peculiaridad de Ethereum hace que su cálculo sea más lento y costoso en comparación con un computador común. Mas le ofrece mayores ventajas, como por servirnos de un ejemplo una alta defensa a las fallas bizantinas, una mayor protección y también integridad de los datos y una mayor resistencia a la censura.

Así, Ethereum marcha como una computadora mundial descentralizada de empleo general en una red entre pares. Los smart contract y las DApps desarrolladas en la EVM podría aun aceptar las funciones de Internet como las conocemos. Además de esto, podría dejarnos la creación de economías más estables en tanto que su funcionamiento puede ser garantizado y no está sujeto a interpretaciones humanas.

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

Sin embargo, podemos cotejar su nacimiento y desarrollo con la Internet de los años noventa. Absolutamente nadie tiene idea lo que va a traer en el futuro. Mas sin ningún género de dudas, la EVM evolucionará con el tiempo y le dejará a la red transformarse en una considerablemente más sólida. Donde probablemente vamos a ver las acciones de Ethereum subir, como el valor de su token.

¿Cuánto sabes, criptonauta?

¿La EVM puede ampliarse en funcionalidades?

Característica de las EVM

La Ethereum Virtual Machine es un software que tiene muchas peculiaridades o bien cualidades tanto positivas como negativas. Entre ellas podemos mencionar:

  1. La EVM está enfocada en suministrar seguridad y ejecutar códigos no fiables en computadoras de todo el planeta.
  2. Las aplicaciones descentralizadas y los contratos inteligentes desarrollados en la EVM son totalmente descentralizados y distribuidos. Con lo que no precisa de la participación de terceros. Ni pueden ser cambiadas ni perturbadas.
  3. La EVM deja el desarrollo de una mayor cantidad de aplicaciones, y que estas puedan ejecutarse sobre una misma red blockchain, sin afectar otras operaciones.
  4. Los contratos inteligentes diseñados en la EVM son constantes y pueden ejecutarse y hacerse cumplir por sí solo, de una forma autónoma y automática. Con lo que se suprime la burocracia, los altos costos y el tiempo de espera habituales en los contratos tradicionales.
  5. La EVM es substancialmente menos eficaz que otras muchas máquinas virtuales usuales. Esto es debido a que primordialmente su diseño se fundamentó en la utilidad del instante y no en el alto desempeño.
  6. Los cambios y mejoras experimentados por la EVM han sido pocos hasta el momento. Con lo que no está optimada en lo que se refiere a la velocidad para diferentes plataformas de hardware.
  7. El diseño de la EVM no está dirigido a la portabilidad, lo que limita lo espaciosen los que dicha máquina virtual puede incorporarse.

bitcoin
Bitcoin (BTC) $ 62,640.00
ethereum
Ethereum (ETH) $ 3,801.98
binance-coin
Binance Coin (BNB) $ 486.71
tether
Tether (USDT) $ 1.00
cardano
Cardano (ADA) $ 2.12
xrp
XRP (XRP) $ 1.08
solana
Solana (SOL) $ 155.83
polkadot
Polkadot (DOT) $ 40.51
usd-coin
USD Coin (USDC) $ 1.00
dogecoin
Dogecoin (DOGE) $ 0.244090