Ethereum

¿Qué es una máquina virtual Ethereum (EVM) y cómo funciona?

¿Qué es una máquina virtual Ethereum (EVM) y cómo funciona?

Ether (ETH), que es la segunda criptomoneda más grande en términos de capitalización de mercado, es popular entre los inversores de criptomonedas debido a su token ETH nativo. Sin embargo, su lenguaje de programación nativo Solidity y Ethereum Virtual Machine (EVM) son fundamentales en la adulación que recibe de la comunidad de desarrolladores. De hecho, la cadena de bloques de Ethereum continúa atrayendo a los desarrolladores de aplicaciones descentralizadas (DApp) debido a su flexibilidad, la amplia gama de herramientas de desarrollo disponibles y la gran base de usuarios de la plataforma.

Formando el núcleo de la arquitectura de la cadena de bloques, el EVM es el programa que ejecuta su código de aplicación o contratos inteligentes, como se les llama, proporcionando un entorno de tiempo de ejecución para ellos que se ejecuta sobre la red Ethereum. Además, el EVM es Turing-completo y, por lo tanto, puede ejecutar cualquier programa codificado en cualquier lenguaje de programación, lo que permite a los desarrolladores crear fácilmente contratos inteligentes personalizados y DApps para el floreciente espacio Web3.

Además de estas importantes funcionalidades, EVM tiene acceso a todos los nodos de la red, maneja la ejecución de contratos inteligentes y maneja de manera efectiva todas las transacciones en la cadena de bloques de Ethereum, lo que la convierte en una de las máquinas virtuales más poderosas que existen en la actualidad.

¿Qué es Ethereum Virtual Machine (EVM) y cómo funciona?

Conceptualizada en 2013 por el programador Vitalik Buterin, la red Ethereum debe su éxito fenomenal como la cadena de bloques preferida para los desarrolladores de DApp a la máquina virtual Ethereum (EVM) que fue diseñada por Gavin Wood durante su mandato en Ethereum. Escrito en C++ y usando el compilador LLVM Project, EVM es una máquina de estado especial que opera continuamente y cuyas operaciones inmutables determinan el estado de cada bloque en la cadena de bloques de Ethereum.

El EVM no solo rige lo que los nodos pueden o no hacer con el libro mayor distribuido mantenido por la cadena de bloques de Ethereum, sino que también define las reglas específicas para cambiar el estado de un bloque a otro. La última funcionalidad es lo que permite la funcionalidad de contrato inteligente por la que Ethereum se ha hecho conocido.

Para comprender lo que hace una máquina virtual de Ethereum, es necesario observar cada una de las diferentes funciones que cumple para garantizar el buen funcionamiento de la red de Ethereum. Por cada entrada que recibe, el EVM produce una salida que es de naturaleza determinista y sigue una función matemática en el sentido más simple.

Operando como una máquina de pila que empuja valores transitorios hacia y desde una pila pushdown, el EVM tiene una profundidad de 1024 elementos, cada uno de los cuales es una palabra de 256 bits. También mantiene una memoria temporal en forma de matriz de bytes, que cambia entre dos transacciones en la cadena de bloques de Ethereum. El EVM ejecuta los códigos de contrato inteligente que se han compilado en forma de una colección de 140 códigos de operación estándar, mientras que también implementa otras operaciones de pila específicas de blockchain.

Así, la EVM tiene un estado de máquina que es volátil por naturaleza durante el procesamiento de cualquier transacción y un estado global o mundial que contiene información sobre las diferentes cuentas mantenidas en la blockchain de Ethereum. Todas las acciones se rigen por el código EVM, que en sí mismo ha pasado por varias iteraciones desde el lanzamiento de la red Ethereum en 2015, lo que ha llevado a la existencia de diferentes implementaciones de EVM actualmente en uso.

De hecho, el EVM es responsable de mantener un nivel de abstracción entre miles de nodos de Ethereum y el código de ejecución, actuando como una función que brinda resultados consistentes sin divulgar muchos detalles a los clientes o nodos.

¿Cuál es el propósito de la Máquina Virtual Ethereum (EVM)?

El EVM ha estado alimentando de manera confiable todas las aplicaciones que se ejecutan en la red Ethereum sin que se haya informado ningún tiempo de inactividad importante. Para los desarrolladores, el EVM actúa como el programa general que ejecuta programas ejecutables más pequeños que se conocen como contratos inteligentes en Ethereum, al tiempo que les brinda la libertad de escribir estos contratos inteligentes en una variedad de lenguajes de programación, incluidos Solidity, Vyper, Python y Yul, entre otros. otros.

Debido a esta flexibilidad que ofrece EVM, la cadena de bloques de Ethereum ha generado miles de DApps en el espacio de finanzas descentralizadas (DeFi) y tokens no fungibles (NFT). Cada una de estas DApps y los contratos inteligentes de los que están hechos se convierten en un código de bytes que se alimenta a la EVM y se distribuye entre todos los nodos de la red Ethereum. Cuando se implementa un contrato inteligente, el EVM es responsable de comunicarse con todos los nodos y efectuar cambios de estado cuando se llega a un consenso.

Se puede decir que el EVM se inserta dentro de cada nodo de Ethereum para ejecutar contratos inteligentes utilizando bytecode en lugar del lenguaje de programación base, aislando así la computadora host física del código de máquina en el que se ejecuta Ethereum.

Beneficios de la máquina virtual Ethereum (EVM)

Debido a la forma en que opera el EVM, los desarrolladores pueden ejecutar código sin preocuparse por su impacto en el resto de la red o la posibilidad de que se pierda con los datos o archivos personales alojados en cualquiera de las computadoras del nodo.

Además, pueden ejecutar contratos inteligentes complejos en diferentes entornos informáticos con consenso distribuido. Esto garantiza que la falla de un solo nodo no tenga un impacto negativo en la ejecución de la DApp o el contrato inteligente, ya que el código EVM sigue siendo el mismo en todos los nodos. Además, dado que los datos de la cuenta se mantienen a nivel global en el EVM, los desarrolladores lo encuentran perfecto para escribir códigos de contratos inteligentes personalizados y crear distintas DApps que puedan acceder a este conjunto de datos globales y producir resultados confiables.

La santidad del resultado es lo que hace que EVM, en particular, y Ethereum blockchain en general, sean adecuados para la expansión sostenible de las DApps y el ecosistema Ethereum de contratos inteligentes. Agregue a esto la biblioteca de códigos estándar disponibles para que los desarrolladores elijan, un número cada vez mayor de cadenas de bloques de capa 2 compatibles con EVM y una gran cantidad de posibles casos de uso de EVM, y es fácil ver por qué EVM es la plataforma preferida. para el desarrollo Web3.

Inconvenientes de la máquina virtual Ethereum (EVM)

A pesar de las muchas ventajas que ofrece el EVM, existen ciertas desventajas que los desarrolladores y empresarios deben tener en cuenta para desarrollar Ethereum. El más importante de ellos son las altas tarifas de transacción o los costos de gas asociados con la ejecución de un contrato inteligente en la red Ethereum.

Estas tarifas, pagadas en ETH, varían según la complejidad del contrato y la congestión de la red en el momento de la ejecución, por lo que es imperativo que los desarrolladores y empresarios fijen el precio de sus servicios en consecuencia. Además, dado que Solidity es el lenguaje más preferido para la codificación en EVM, implica que los desarrolladores deben tener la experiencia adecuada con él y poseer un mínimo de experiencia técnica para crear contratos inteligentes eficientes al usarlo.

Esto último es importante ya que cualquier requisito de cálculo adicional conducirá a mayores costos de gas y, en última instancia, resultará perjudicial para el éxito del proyecto. Si los desarrolladores eligen codificar usando otros lenguajes, deben tener cuidado al resolver las repeticiones inherentes en el código, ya que EVM procederá a compilarlas de todos modos. Si bien es posible actualizar los contratos inteligentes en una etapa posterior, conlleva riesgos de seguridad asociados con la creación de un contrato inteligente intermediario que hace referencia a la dirección del contrato inteligente original.

El futuro de los EVM

A pesar de los cambios revolucionarios provocados por EVM en el ecosistema de la cadena de bloques, varios proyectos de cadena de bloques están mejorando esta tecnología para leer y ejecutar código.

Dado que la interoperabilidad entre cadenas es el aspecto más importante para los desarrolladores, muchas cadenas de bloques compatibles con EVM se han reforzado, y la mayoría ofrece menos gas y velocidades de transacción más rápidas que el protocolo Ethereum. Como resultado, estas cadenas de bloques ahora pueden interactuar con los usuarios de Ethereum sin problemas y facilitan las transferencias de fondos a sus propias redes utilizando puentes de cadenas de bloques.

Sin embargo, con el protocolo Ethereum completando con éxito la fusión en septiembre de 2022, el próximo objetivo es cambiar de EVM a Ethereum WebAssembly (eWASM). Diseñado para ser altamente modular e independiente de la plataforma, eWASM se promociona como el próximo cambio de juego para el protocolo Ethereum y podría motivar a otras cadenas de bloques a emplear este entorno de tiempo de ejecución para contratos inteligentes también. Sin embargo, si los eWASM reemplazarán al EVM como el mecanismo más confiable para los contratos inteligentes es una pregunta que solo el tiempo responderá.

Fuente