¿Qué es Ethereum Gas? [¡La guía paso a paso más completa de todos los tiempos!]

¿Qué es Ethereum Gas??

TL; DR

  1. Ethereum Gas es una unidad que mide la cantidad de esfuerzo computacional que se necesitará para ejecutar ciertas operaciones..
  2. Cada operación que participa en Ethereum, ya sea una transacción o la ejecución de un contrato inteligente, requiere cierta cantidad de gas..
  3. A los mineros se les paga una cantidad en Ether que es equivalente a la cantidad total de gas que les llevó ejecutar una operación completa..

Ethereum Gas: es el elemento vital del ecosistema Ethereum, no hay otra forma de decirlo. El gas es una unidad que mide la cantidad de esfuerzo computacional que se necesitará para ejecutar ciertas operaciones..

Cada operación que participa en Ethereum, ya sea una transacción simple, un contrato inteligente o incluso una ICO, requiere cierta cantidad de gas. El gas es lo que se utiliza para calcular la cantidad de tarifas que se deben pagar a la red para ejecutar una operación..

En esta guía, entenderemos cómo funciona el gas. Pero antes de hacerlo, hay varios conceptos que debemos aprender. Entonces, sin más preámbulos, comencemos nuestra inmersión profunda en Ethereum Gas.

¿Qué es Ethereum Gas? Guía paso a paso

¿Por qué no se necesita gas en Bitcoin??

Bitcoin se creó porque todos hacían las mismas preguntas.

  • ¿Será posible crear una forma de dinero que se pueda transferir entre dos personas sin intermediarios??
  • ¿Será posible crear un dinero descentralizado que pueda funcionar en algo como blockchain??

Satoshi Nakamoto respondió a estas preguntas cuando creó bitcoin. Finalmente tuvimos un sistema monetario descentralizado que puede transferir dinero de una persona a otra..

Sin embargo, hubo un problema con bitcoin que es un problema con todas las cadenas de bloques de primera generación. Solo permitían transacciones monetarias, no había forma de agregar condiciones a esas transacciones.

Alice puede enviar 5 BTC a Bob, pero no puede imponer condiciones a esas transacciones. P.ej. Ella no podía decirle a Bob que él recibirá el dinero solo si realiza ciertas tareas..

Estas condiciones necesitarían una secuencia de comandos extremadamente complicada. Se necesitaba algo para que el proceso fuera más fluido.

… Y ese “algo” fue un contrato inteligente.

Que es un contrato inteligente?

Los contratos inteligentes lo ayudan a intercambiar dinero, propiedades, acciones o cualquier cosa de valor de una manera transparente y sin conflictos, evitando los servicios de un intermediario..

¿Qué es Ethereum Gas? Guía paso a paso

Ethereum de Vitalik Buterin es fácilmente el incondicional de esta generación. Mostraron al mundo cómo la cadena de bloques puede evolucionar de un simple mecanismo de pago a algo mucho más significativo y poderoso..

Entonces, ¿qué son estos “contratos inteligentes” y cuál es el problema?

Los contratos inteligentes son contratos automatizados. Son autoejecutables con instrucciones específicas escritas en su código que se ejecutan cuando se cumplen ciertas condiciones..

¿Qué es Ethereum Gas? Guía paso a paso

Puede obtener más información sobre los contratos inteligentes en nuestra guía detallada aquí.

Los contratos inteligentes son cómo se hacen las cosas en el ecosistema Ethereum. Cuando alguien quiere realizar una tarea en particular en Ethereum, inicia un contrato inteligente con una o más personas..

Los contratos inteligentes son una serie de instrucciones, escritas utilizando el lenguaje de programación “solidez”, que funciona sobre la base de la lógica IFTTT, también conocida como lógica IF-THIS-THEN-THAT. Básicamente, si se realiza el primer conjunto de instrucciones, ejecute la siguiente función y luego la siguiente y continúe repitiendo hasta llegar al final del contrato..

La mejor forma de entenderlo es imaginando una máquina expendedora. Todos y cada uno de los pasos que das actúan como un disparador para que el siguiente paso se ejecute. Es como el efecto dominó. Entonces, examinemos los pasos que tomará mientras interactúa con la máquina expendedora:

  • Paso 1: le das algo de dinero a la máquina expendedora.
  • Paso 2: presiona el botón correspondiente al elemento que desea.
  • Paso 3: sale el artículo y lo recoges.

Ahora mira todos esos pasos y piénsalo. ¿Funcionará alguno de los pasos si no se ejecutó el anterior? Todos y cada uno de esos pasos están directamente relacionados con el paso anterior. Hay un factor más en el que pensar y es una parte integral de los contratos inteligentes. Verá, en toda su interacción con la máquina expendedora, usted (el solicitante) estaba trabajando únicamente con la máquina (el proveedor). No hubo absolutamente ningún tercero involucrado.

Entonces, ¿cómo se vería esta transacción si hubiera sucedido en la red Ethereum??

Supongamos que acaba de comprar algo en una máquina expendedora en la red Ethereum, ¿cómo se verán los pasos entonces??

Paso 1: Le das algo de dinero a la máquina expendedora y esto se registra en todos los nodos de la red Ethereum y la transacción se actualiza en el libro mayor..

Paso 2: Presiona el botón correspondiente al elemento que desea y el registro se actualiza en la red y el libro mayor de Ethereum.

Paso 3: El artículo sale y lo recolectas y esto es registrado por todos los nodos y el libro mayor..

Cada transacción que realice a través de los contratos inteligentes será registrada y actualizada por la red. Lo que esto hace es que todos los involucrados en el contrato sean responsables de sus acciones. Elimina la malicia humana al hacer que cada acción realizada sea visible para toda la red.

¿Qué es la máquina virtual Ethereum??

Antes de entender qué es la máquina virtual Ethereum (EVM), debemos entender por qué se necesita una “máquina virtual”..

Así que volvamos a los contratos inteligentes.

¿Cuáles son las propiedades deseables que queremos en nuestro contrato inteligente??

Todo lo que se ejecuta en una cadena de bloques debe ser inmutable y debe tener la capacidad de ejecutarse a través de múltiples nodos sin comprometer su integridad. Como resultado de lo cual, la funcionalidad del contrato inteligente debe ser tres cosas:

  • Determinista.
  • Terminable.
  • Aislado.

Característica # 1: determinista

Un programa es determinista si da la misma salida a una entrada dada cada vez. P.ej. Si 3 + 1 = 4, entonces 3 + 1 SIEMPRE será 4 (asumiendo la misma base). Entonces, cuando un programa da la misma salida al mismo conjunto de entradas en diferentes computadoras, el programa se llama determinista.

Hay varios momentos en los que un programa puede actuar de manera no determinista:

  • Llamar a funciones del sistema no deterministas: cuando un programador llama a una función no determinista en su programa.
  • Recursos de datos no deterministas: si un programa adquiere datos durante el tiempo de ejecución y esa fuente de datos no es determinista, el programa se vuelve no determinista. P.ej. Supongamos un programa que adquiere las 10 principales búsquedas de Google de una consulta en particular. La lista puede seguir cambiando.
  • Llamadas dinámicas: cuando un programa llama al segundo programa, se denomina llamada dinámica. Dado que el destino de la llamada se determina solo durante la ejecución, no es de naturaleza determinista.

Característica # 2: Terminable

En lógica matemática, tenemos un error llamado “problema de detención”. Básicamente, establece que existe una incapacidad para saber si un programa dado puede ejecutar su función en un límite de tiempo. En 1936, Alan Turing dedujo, utilizando el problema diagonal de Cantor, que no hay forma de saber si un programa dado puede terminar en un límite de tiempo o no..

Obviamente, esto es un problema con los contratos inteligentes porque, los contratos por definición, deben poder rescindirse en un límite de tiempo determinado. Se han tomado algunas medidas para garantizar que exista una manera de “matar” externamente el contrato y no entrar en un bucle sin fin que agote los recursos:

  • Turing incompleto: Una cadena de bloques Turing Incomplete tendrá una funcionalidad limitada y no podrá realizar saltos y / o bucles. Por tanto, no pueden entrar en un bucle sin fin.
  • Medidor de pasos y tarifas: Un programa puede simplemente realizar un seguimiento del número de “pasos” que ha realizado, es decir, el número de instrucciones que ha ejecutado, y luego finalizar una vez que se ha ejecutado un recuento de pasos en particular. Otro método es el medidor de tarifas. Aquí los contratos se ejecutan con una tarifa prepaga. Cada ejecución de instrucción requiere una tarifa particular. Si la tarifa gastada excede la tarifa prepaga, el contrato se rescinde.
  • Temporizador: Aquí se mantiene un temporizador predeterminado. Si la ejecución del contrato excede el límite de tiempo, se cancela externamente.

Característica # 3: Aislado

En una cadena de bloques, cualquiera y todos pueden cargar un contrato inteligente. Sin embargo, debido a esto, los contratos pueden, a sabiendas y sin saberlo, contener virus y errores..

Si el contrato no es aislado, esto puede obstaculizar todo el sistema. Por lo tanto, es fundamental que un contrato se mantenga aislado en una caja de arena para salvar a todo el ecosistema de cualquier efecto negativo..

Ahora que hemos visto estas funciones, es importante saber cómo se ejecutan. Por lo general, los contratos inteligentes se ejecutan utilizando uno de los dos sistemas:

  • Máquinas virtuales: Ethereum usa esto.
  • Docker: Fabric usa esto.

Comparemos estos dos y determinemos cuál contribuye a un mejor ecosistema. En aras de la simplicidad, vamos a comparar Ethereum (máquina virtual) con Fabric (Docker).

¿Qué es Ethereum Gas? Guía paso a paso

Entonces, como puede verse, las Máquinas Virtuales brindan un mejor ambiente determinista, rescindible y aislado para los contratos inteligentes. Sin embargo, los estibadores tienen una clara ventaja. Proporcionan flexibilidad en el lenguaje de codificación, mientras que en una máquina virtual (VM) como Ethereum, es necesario aprender un lenguaje completamente nuevo (solidez) para crear contratos inteligentes..

El EVM es la máquina virtual en la que funcionan todos los contratos inteligentes en Ethereum. Es una máquina virtual Turing Complete de 256 bits simple pero potente. Turing Complete significa que, dados los recursos y la memoria, cualquier programa ejecutado en el EVM puede resolver cualquier problema..

¿Qué es Ethereum Gas??

Como se explicó en la introducción, Gas es una unidad que mide la cantidad de esfuerzo computacional que se necesitará para ejecutar ciertas operaciones..

Nota: Antes de continuar, un gran agradecimiento a Joseph Chow por su presentación asombrosa en gas Ethereum.

La mayoría de los contratos inteligentes que se ejecutan en EVM están codificados usando Solidity (Ethereum planea pasar a Viper de Solidity en el futuro). Todas y cada una de las líneas de código en Solidity requieren una cierta cantidad de gas para ejecutarse.

Gráfico de precios de gas ETH

La imagen a continuación ha sido tomada del Ethereum Yellowpaper y puede usarse para tener una idea aproximada de cuánto cuestan las instrucciones específicas en términos de gas. Cada transacción requiere al menos 21,000 gas de acuerdo con esta tabla:

¿Qué es Ethereum Gas? Guía paso a paso

Imagen de cortesía: Papel amarillo Ethereum

Para comprender mejor cómo funciona el gas en Ethereum, usemos una analogía. Suponga que va de viaje por carretera. Antes de hacerlo, siga estos pasos:

  • Vas a la gasolinera y especifica la cantidad de gasolina que quieres llenar en tu coche..
  • Obtienes esa gasolina llena en tu auto.
  • Le pagas a la gasolinera la cantidad de dinero que les debes por el gas.

Ahora, establezcamos paralelismos con Ethereum.

Conducir el automóvil es la operación que desea ejecutar, como ejecutar una función de un contrato inteligente.

El gas esta bien… .gas.

La gasolinera es tu minero.

El dinero que les pagaste son las tarifas del minero..

Todas las operaciones que los usuarios desean ejecutar en ethereum deben proporcionar gas para lo siguiente:

  • Para cubrir sus datos, también conocido como gas intrínseco.
  • Para cubrir todo su cálculo.

Ahora que hemos cubierto los conceptos básicos básicos, tal vez esté haciendo la siguiente pregunta.

¿Por qué tenemos este sistema de gas??

La respuesta es simple … incentivación.

Como cualquier sistema peer-to-peer de prueba de trabajo, Ethereum depende en gran medida del hashrate de sus mineros. Más mineros, más hashrate, más seguro y rápido el sistema.

Para atraer más mineros al sistema, deben hacer que el sistema sea lo más rentable y atractivo posible para los mineros. En Ethereum, hay dos formas en que los mineros pueden ganar dinero:

  • Extrayendo bloques y obteniendo recompensas en bloque.
  • Al convertirse en dictadores temporales de sus bloques minados.

Exploremos el segundo punto.

Los mineros son responsables de poner las transacciones dentro de sus bloques. Para hacerlo, deben usar su poder computacional para validar contratos inteligentes. El sistema de gas les permite cobrar una cierta tarifa por hacerlo..

Esta tarifa se conoce como tarifa del minero y ayuda a incentivarlos lo suficiente para participar activamente en el ecosistema..

Entonces, ¿cuántas tarifas pueden cobrar? Antes de que podamos calcular eso, comprendamos cómo medimos el gas.

El gas se mide simplemente en unidades de gas. Una transacción enviada a la red Ethereum cuesta una cantidad discreta de gas (por ejemplo, 100 gas) dependiendo de cuántas instrucciones de EVM se deban ejecutar..

Entonces, ¿cómo convertimos el gas en éter??

No hay un precio fijo de conversión. Depende del remitente de una transacción especificar el precio del gas que desee. Por otro lado, depende del minero verificar las transacciones que desee (generalmente las que especifican el precio más alto del gas). El precio medio del gas suele ser del orden de unos 20 Gwei (o 0,00000002 ETH), pero puede aumentar en momentos de alto tráfico de red, ya que hay más transacciones que compiten por incluirse en el siguiente bloque..

El siguiente gráfico le muestra el gráfico de precios promedio del gas Ethereum.

¿Qué es Ethereum Gas? Guía paso a paso

Imagen cortesía: Etherscan.

Antes de continuar, es importante conocer el concepto de límite de gas..

¿Qué es el límite de gas de Ethereum??

Para realizar una operación en Ethereum, el remitente de la transacción debe especificar un límite de gas antes de enviarlo a la red. El límite de gas es la cantidad máxima de gas que el remitente está dispuesto a pagar por esta transacción..

Al especificar un límite de gas, se deben considerar los siguientes puntos:

  • Diferentes operaciones tendrán diferentes costos de gas (como se ha demostrado antes).
  • Los mineros dejarán de ejecutar en el momento en que se acabe el gas.
  • Si queda gas sobrante, será reembolsado inmediatamente al generador de operación..

Veamos esto en funcionamiento en un escenario hipotético.

Supongamos que estamos sumando dos números y para eso el contrato debe realizar las siguientes acciones:

  • Almacenando 10 en una variable. Digamos que esta operación cuesta 45 gas.
  • Añadiendo dos variables, digamos que esto cuesta 10 gas.
  • Almacenar el resultado que nuevamente cuesta 45 gas.

Suponga que el remitente especifica un límite de gas de 120.

El gas total utilizado por el minero para ejecutar el cálculo es (45 + 10 + 45) = 100 gas.

La tarifa que se le debe al minero, asumiendo que 1 gas cuesta 20 Gwei, es (100 * 20 Gwei) = 0.000002 ETH.

Ahora, cuanto gas queda?

120-100 = 20 gas.

Los 20 gases no utilizados se devuelven al remitente (20 * 20 Gwei) = 0,0000004 ETH.

Entonces, dicho esto, hay dos escenarios que uno debe considerar:

  • El límite de gas especificado es demasiado bajo.
  • El límite de gas especificado es demasiado alto.

Escenario n. ° 1: el límite de gas es demasiado bajo

Si una operación se queda sin gas, entonces se revierte a su estado original como si nada hubiera sucedido realmente, sin embargo, el generador de operaciones TODAVÍA debe pagar a los mineros la tarifa por sus costos computacionales y la operación se agrega a la cadena de bloques (incluso si no se ha ejecutado).

Volviendo a nuestra analogía del viaje por carretera, si no ha llenado suficiente gasolina en su automóvil, entonces no podrá llegar a su destino, pero incluso entonces le pagó a la estación de servicio el dinero por el combustible correctamente.?

Veamos cómo funciona esto en nuestro hipotético contrato inteligente. Los pasos fueron:

  • Almacenando 10 en una variable. Digamos que esta operación cuesta 45 gas.
  • Añadiendo dos variables, digamos que esto cuesta 10 gas.
  • Almacenar el resultado que nuevamente cuesta 45 gas.

Sin embargo, esta vez, el remitente establece un límite de gas de 90.

Ahora, sabemos que el gas que se requerirá para cumplir con la transacción es 100 gas, pero solo especificamos el límite de 90 gas.

En este escenario, el minero hará el cálculo de 90 gas y luego cobrará las tarifas del remitente por el gas 90, que resulta ser (90 * 20 Gwei) = 0.0000018 ETH.

Además, el contrato vuelve a su estado original y la transacción se incluye en la cadena de bloques..

Escenario n. ° 2: el límite de gas es demasiado alto

Entonces, ¿qué pasa si establecemos el límite de gas demasiado alto??

¿Eso tendría sentido hacerlo bien? Después de todo, lo que sobra se reembolsa al remitente correcto?

Eso suena bien en papel, pero en realidad no funciona tan bien.

Los mineros están limitados por el límite de gas del bloque, que suponemos es de 6.700.000 de gas. Una transacción básica (transferencia simple de ETH) tiene al menos un requerimiento de gas de 21,000 gas. Los mineros solo pueden incluir transacciones que sumen ser menores o iguales al límite de gas del bloque.

¿Qué es Ethereum Gas? Guía paso a paso

Imagen cortesía: Hackernoon

Suponga que hay una transacción A (que hace una transferencia simple de ETH) y tiene un límite de gas específico de 42,000 y dos transacciones B y C (también transferencias simples de ETH) que tienen límites de gas específicos de 21,000.

¿Qué tendrá más sentido para un minero poner en su bloque??

  • ¿Realizarán la transacción A y reembolsarán una gran cantidad de gas no utilizado??
  • ¿O pondrán las transacciones B y C y devolverán poco o nada??

El segundo punto tiene más sentido para ellos económicamente bien?

Esta es precisamente la razón por la que tener un límite de gas inflado no es una forma sensata de hacerlo. Es más razonable establecer un límite de gas que sea un poco más alto que la cantidad de gas requerida para su transacción..

La siguiente es la tabla de límite de gas promedio.

¿Qué es Ethereum Gas? Guía paso a paso

Cortesía de imagen: Etherscan

Gas Ethereum alto y bajo frente a tarifa alta y baja

Hasta ahora, debería quedar claro que el gas y el éter no son lo mismo. El gas es la cantidad de potencia computacional requerida, mientras que el éter es la moneda utilizada para pagar ese gas..

Ahora, con el conocimiento de todo lo que hemos obtenido hasta ahora, veamos ciertos escenarios de gas y tarifas.

Si una operación tiene poco gas, los mineros ni siquiera lo recogerán porque no tiene suficiente gas para terminar el cálculo..

Si una operación tiene tarifas BAJAS, entonces podría tener suficiente gas para cubrirla, pero aún así, los mineros no estarán mordisqueando las cosas para recogerla porque una operación con tarifas bajas no es económicamente atractiva para ellos..

Si una operación tiene gas ALTO, significa que la operación está inflada con un límite de gas alto y, por lo tanto, los mineros no lo recogerán..

Si una operación tiene tarifas ALTAS, los mineros saben que ganarán mucho dinero con ella y lo cobrarán instantáneamente..

Los precios de gas actualmente recomendados para diferentes tipos de velocidades de transacción, según Ethgasstation son:

¿Qué es Ethereum Gas? Guía paso a paso

Qué sucede en los escenarios de reembolso de gasolina de Ethereum?

En resumen, hay dos comandos que aseguran que obtenga un reembolso de gas..

  • SUICIDIO: Esto básicamente acaba con el contrato inteligente. Si lo hace, recuperará 24000 gas.
  • ALMACENAMIENTO: Eliminación de almacenamiento, que le devuelve 15,000.

Por lo tanto, si su contrato está consumiendo hasta 14,000 gas y elimina un almacenamiento, entonces debería recuperar (15000-14000) 1000 gas reembolsado a su derecho?

No es tan simple.

Si ese fuera el caso, los mineros perderán todo incentivo. Después de todo, los mineros no deberían pagarte por hacer bien tus cálculos.?

Para evitar escenarios como estos, se puso una condición.

El reembolso que se ha acumulado no puede exceder la mitad del gas consumido durante el cálculo.

Tomemos un ejemplo para aclarar esto.

… Supongamos que tenemos un contrato inteligente que consume 14.000 gas.

El límite de gas que hemos establecido es de 20.000 gas.

El contrato inteligente también incluye un comando SSTORAGE.

Entonces, ¿cuánto gas obtendrá el creador del contrato después del cálculo??

En primer lugar, recuperarán (20.000-14.000) = 6.000 unidades de gas no utilizado.

Ahora, el comando SSTORAGE también se ha utilizado, por lo que, en teoría, también deberían recuperar 15,000 gas.

Sin embargo, la cantidad de gas que se ha utilizado en el contrato es 14.000 y desde 15.000 > 14.000 / 2, el REEMBOLSO generado será 14.000 / 2 = 7000.

Entonces, el gas total que el creador está recuperando al final es 6000 + 7000 = 13,000.

Tomemos otro ejemplo.

Supongamos que esta vez el contrato consume 70.000 gas e incluye una función SUICIDIO.

Una función SUICIDIO debería devolverle 24.000 gas de vuelta, que es < 70.000 / 2.

En esta situación, el reembolso de gas será de 24.000 + gas no utilizado.

Críticas a Ethereum Gas. ¿Está justificado??

A pesar de que el sistema de gas ha recibido elogios por presentar un mecanismo de funcionamiento fluido que incentiva a los mineros de manera bastante positiva, últimamente ha sido objeto de críticas por ser un poco demasiado caro para los desarrolladores y los creadores de contratos inteligentes..

Al respecto, Danny Ryan hizo algunos estudios interesantes en su Artículo de Hackernoon.

Considere el siguiente escenario:

¿Qué es Ethereum Gas? Guía paso a paso

Cuando se agregan dos números un millón de veces en Ethereum, cuesta ~ $ 26.55 en tarifas.

Danny Ryan comparó eso con un sistema AWS estándar. Dijo que puede sumar dos números un millón de veces usando Python en 0.04 segundos, que con la tarifa de $ 0.0059 por hora de Amazon EC2 cuesta $ 0.000000066.

Esto significa que la computación en Ethereum es 400 millones de veces más cara.!

Con base en sus estudios, esta es la conclusión que llegó:

“Para ser justos, sumar dos números 1 millón de veces es un poco artificial. Un contrato bien redactado probablemente movería tal complejidad computacional fuera de la cadena y trataría más con la actualización del estado en el contrato. El almacenamiento de grandes cantidades de datos en la cadena de bloques tampoco es una tarea ordinaria. Dependiendo de la tarea, es probable que un usuario almacene una referencia criptográfica (un hash) de los datos en la cadena y mantenga el resto de los datos fuera de la cadena..

Dicho esto, nosotros, como desarrolladores, debemos ser conscientes de estos costos y diseñar las dApps en consecuencia. Necesitamos encontrar el equilibrio entre la complejidad dentro y fuera de la cadena, sin dejar de aprovechar las capacidades descentralizadas de la cadena de bloques “.

El aumento de los precios del gas de Ethereum afecta la innovación

El problema con los altos precios de la gasolina de Ethereum es que hace imposible que un desarrollador realice pagos de microtransacciones a sus proyectos. Últimamente, ha aumentado significativamente debido a la congestión de la red de DeFi y las crecientes tarifas de transacción.

Como ya sabrá, las aplicaciones DeFi (finanzas descentralizadas) están atravesando un período de auge en este momento. Todo el mundo quiere tener una porción del pastel agrícola de rendimiento. Al momento de escribir, la cantidad de valor encerrado en DeFi es de alrededor de $ 11 mil millones con UniSwap, Maker, WBTC siendo las aplicaciones más populares.

Desde un punto de vista de desarrollador, la belleza de DeFi radica en su capacidad de composición. Uno puede incorporar fácilmente diferentes funciones DeFi y crear una aplicación completamente nueva. Sin embargo, con el aumento vertiginoso de las tarifas del gas, a los desarrolladores les resulta cada vez más difícil incorporar un sistema económico interno que permita los micropagos..

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me