¿Qué es la máquina virtual Ethereum y cómo funciona?

El artículo se enfoca en discutir la máquina virtual Ethereum y cómo funciona. Aquí se tratarán los siguientes temas:

  1. ¿Introducción a la máquina virtual Ethereum (EVM)?
  2. Propósito de EVM
  3. ¿Cómo funciona EVM?
  4. ¿Cómo se relaciona el gas con el rendimiento de EVM?
  5. Beneficios de EVM.
  6. Desventajas de EVM.

Comencemos a discutir cada uno de estos temas en detalle aquí.

¿Introducción a la máquina virtual Ethereum (EVM)?

Ethereum Virtual Machine (EVM) está diseñado como el entorno de tiempo de ejecución para contratos inteligentes en Ethereum . Está protegido y aislado de las otras partes del sistema. Esto significa que cualquier operación en EVM no debería afectar sus datos o programas de ninguna manera, sin importar cuántas veces llame a una función en particular.

  • Un EVM es el entorno de tiempo de ejecución que ejecuta los contratos inteligentes de Ethereum.
  • Ethereum contiene su propio lenguaje de secuencias de comandos completo de Turing, llamado Solidity, y con esto surge la necesidad de ejecutar este código. 
  • Un programa llamado Ethereum Virtual Machine (EVM) puede hacer esta tarea.
  • Se ejecuta sobre la red Ethereum, lo que significa que todos los Nodes llegan a un consenso sobre qué código se debe ejecutar en cada momento.

Propósito de EVM

La máquina virtual Ethereum (EVM) es una máquina programable completa de Turing, que puede ejecutar scripts para producir resultados arbitrarios. Ha sido construido con el propósito de ser una “computadora mundial” y tiene un poder inmenso.

  • Es la computadora que almacena datos en blockchain, como bitcoin, pero también ejecuta código en contratos inteligentes en la red Ethereum.
  • La máquina está diseñada para poder ejecutar cualquier tipo de contrato criptográfico que se pueda construir en la string de bloques de Ethereum. Lo hace mediante el uso de un lenguaje de programación llamado Solidity, que se compila en el EVM para su ejecución.
  • La intención detrás de escribir código en la red Ethereum es crear contratos y programas inteligentes que ejecutan cosas automáticamente cuando se cumplen ciertas condiciones. Si no se cumple un término o condición, el sistema también puede ejecutarlo en una función de «salida». 
  • Por ejemplo, si una cuenta ha sido pirateada, el hacker no puede robar dinero del sistema porque no tiene el presupuesto ni la autoridad para hacerlo.

¿Cómo funciona EVM?

Ethereum Virtual Machine (EVM) es un programa que ejecuta scripts utilizados para implementar ciertas operaciones, generalmente en la string de bloques de Ethereum. 
La máquina virtual de Ethereum facilita el proceso de creación de nuevos tokens en Ethereum Blockchain. Aquí, script significa un conjunto de instrucciones o un algoritmo que le dice a la computadora lo que debe hacer para que algo funcione correctamente. El EVM requiere que uno tenga acceso a través de cualquier Node de la red para poder ejecutar los comandos deseados y crear nuevos tokens en la string de bloques sin ninguna dificultad.

  • En Ethereum, hay algo llamado contrato inteligente. Estos contratos tienen algún código informático que facilita el intercambio de dinero e información. 
  • Estos contratos están predefinidos por el creador del contrato inteligente, para garantizar que se produzca un determinado resultado en función de lo que sucede o no. 
  • Ethereum Virtual Machine proporciona un entorno completo de Turing para la ejecución de scripts y contratos inteligentes. Esto significa que cualquier cosa que se pueda implementar con una computadora se puede ejecutar en EVM.

En el ecosistema Ethereum, EVM juega un papel vital al proporcionar una plataforma para que se construyan aplicaciones descentralizadas (DApps) sobre ella. 
La máquina virtual de Ethereum garantiza que todas las transacciones y contratos inteligentes realizados en la string de bloques de Ethereum se ejecuten de la manera correcta y esperada como lo desea el código del contrato inteligente. Sirve como una plataforma para que se ejecuten las aplicaciones.
En palabras simples, se puede decir que Ethereum Virtual Machine facilita la creación y ejecución de DApp en la string de bloques.

Ethereum Virtual Machine (EVM) tiene dos partes:

  • EVM (la parte que ejecuta el código fuente de Solidity): El EVM está escrito en C++ y usa LLVM como su compilador. Es una máquina virtual con todas las funciones que desearía en una máquina virtual Smart Contract de uso general, como soporte para múltiples lenguajes de programación, funciones de seguridad, entornos de tiempo de ejecución y más. También le permite escribir un código de bytes EVM personalizado.
  • Tíos: Estos son pequeños fragmentos de contratos inteligentes o datos almacenados en la string de bloques. Esta es una función útil porque le permite almacenar metadatos sobre su programa. Asamblea EVM: este es el código de bytes de EVM, que puede usar como su lenguaje de programación.

Estos son pequeños fragmentos de contratos inteligentes o datos almacenados en la string de bloques. Esta es una función útil porque permite almacenar metadatos sobre el programa.

  • Acciones: estas son operaciones básicas que se pueden realizar en los activos almacenados en la memoria (y no en la string de bloques), como la multiplicación, la suma, etc.
  • Saldo: Esta es la cantidad de Éter que uno tiene en cualquier momento. Entonces, si hay un saldo de 100 Ether y gastas 10 Ether, el saldo sería de 90 Ether. Tenga en cuenta que esto no es realmente una variable, es solo una parte de la memoria donde EVM almacena los datos. Esto significa que cuando alguien intente modificarlo o leerlo, devolverá la ejecución con un error.
  • Bloque: este es un almacenamiento inmutable para todas las acciones y transacciones relacionadas con Ethereum en su vida hasta este bloque en particular. Estos bloques pueden ser solo 65,000, por lo que esto no va a cambiar.
  • Blockhash: Este es un hash del bloque en cuestión. Entonces, si está buscando algo almacenado en la string de bloques con otro nombre, esto sería un hash de los datos almacenados allí.
  • Número de bloque: este es un número que indica a qué bloque pertenece este blockhash en particular. Siempre comienza desde cero y aumenta cada vez que se agrega un nuevo bloque a la string. Tenga en cuenta que los bloques tienen marcas de tiempo asociadas a ellos para que pueda saber cuánto tiempo pasó entre dos bloques.
  • Código: este es un código ejecutado en EVM que determina qué acción se tomará cuando ocurra una entrada (como la transferencia de dinero).
  • CodeHash: Este es un hash del propio código. Si uno mira un contrato en Etherscan, CodeHash es lo que verá. Cuando las funciones se ejecutan en EVM, este número cambia porque el código mismo cambia según la entrada.
  • CodeSize: este es el tamaño real del código en bytes.
  • GasLimit: esta es una parte de EVM que permite a los usuarios especificar cuánto gas están dispuestos a gastar para ejecutar algo. Si este número es cero, entonces no pasará nada (esto rara vez sucede).

¿Cómo se relaciona el gas con el rendimiento de EVM?

  • El gas es una medida del poder computacional. Determina cuánto tiempo lleva ejecutar cada transacción y contrato. 
  • Debido a que ya hay tanto código en el sistema, utiliza una cantidad limitada de Gas para ejecutar todo este código. Establece el límite de gas predeterminado en 250.000 unidades de gas. 
  • En general, cuanto más complicada es su transacción, más gas se necesita para ejecutarla.

Beneficios de EVM

  • Ejecute código que no sea de confianza sin poner en riesgo los datos: se puede ejecutar código que no sea de confianza sin poner en riesgo los datos. EVM garantiza que sus cómputos no interferirán con nada más que suceda en el sistema o con los archivos personales.
  • Puede ejecutar contratos inteligentes complejos: uno puede ejecutar contratos inteligentes complejos en EVM sin preocuparse por cómo interactúan entre sí. Uno puede escribirlos una vez y luego ejecutarlos en múltiples plataformas, lo que permite la creación de un solo contrato que se ejecuta en múltiples entornos informáticos.
  • Procesamiento determinista: los contratos inteligentes escritos en EVM tienen acceso a todos los estados de Ethereum en un momento dado, lo que permite que el procesamiento se realice de manera determinista y brinda más garantías sobre su corrección. Por ejemplo, no se puede hacer un bucle infinito en EVM llamando a la misma función dos veces. Dejaría de ejecutarse y devolvería un valor finito.
  • Consenso distribuido: una de las aplicaciones potenciales de Ethereum es permitir un consenso distribuido donde todos ejecutan el mismo programa pero desde sus propias computadoras. 
  • Robusto contra fallas: este es un proceso complejo porque la red debe poder llegar a un consenso en un momento dado. De esta manera, el sistema se vuelve más robusto frente a fallas de Nodes individuales y puede actualizar varios Nodes simultáneamente sin preocuparse de que puedan terminar en desacuerdo entre sí debido a cómo se escribió el código.
  • Fácil de escribir contratos con estado: desde la perspectiva del desarrollador, EVM está diseñado para escribir contratos inteligentes, así como para crear DApps (aplicaciones descentralizadas), que son programas que se ejecutan en redes distribuidas de una manera que garantiza que todos vean la misma versión. También hace que sea increíblemente fácil escribir contratos con estado, que necesitan acceso a algún tipo de almacenamiento persistente.

Desventajas de EVM

  • Alto costo de almacenamiento de datos: primero está el gas, que es lo que necesita usar para pagar la tarifa para ejecutar un contrato inteligente, y el otro es el alto costo de almacenar datos en la string de bloques, que podría ocupar más de 3 TB.
  • Alto costo del gas: en Ethereum, todas las transacciones requieren una tarifa para ejecutarse. Estas tarifas se denominan «gasolina» y se pagan en tokens ETH. El precio del gas se cotiza en el momento de la ejecución y depende de la complejidad de ejecutar una transacción. Cuanto más difícil sea el cálculo de una transacción, mayor será el costo del gas.
  • Alto precio de la gasolina durante la congestión de la red: durante los momentos en que hay una alta congestión de la red debido a que muchas transacciones se envían a la string de bloques, los precios de la gasolina aumentan porque hay menos transacciones que pueden realizarse (la misma cantidad de poder computacional tiene que atender más transacciones) .
  • Experiencia técnica requerida: Escribir contratos inteligentes y usar EVM requiere experiencia técnica. Es un sistema completo de Turing, que permite a los programadores escribir scripts en cualquier lenguaje de programación que deseen. Esto puede ser excelente o desastroso, según la intención detrás del código que se está escribiendo. Los lenguajes de programación no son inherentemente buenos o malos en su naturaleza; todo depende de quién los esté usando y con qué propósito. La desventaja de esta tecnología es que podría crear muchos problemas complicados porque con más poder, mayor responsabilidad para el escritor del código.

Publicación traducida automáticamente

Artículo escrito por pittamand3tx y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *