¿Qué es el Gas en Ethereum?

Conoce lo que es el Gas, una unidad de medida utilizada para medir el trabajo realizado por Ethereum para realizar transacciones o cualquier interacción dentro de la red.

Uno de los conceptos más importantes en el mundo de Ethereum es el Gas. Una palabra que seguramente muchos habrán visto en sus transacciones en Ethereum o la interacción de Smart Contracts y seguramente se han preguntado ¿Qué es el Gas? Pues bien, para responder rápidamente esa pregunta, desde Bit2Me Academy te lo podemos definir de la siguiente forma:

El Gas en Ethereum es una unidad de medida utilizada para medir el trabajo realizado por Ethereum para realizar transacciones o cualquier interacción dentro de la red.

Sí, así de sencillo, es el concepto de Gas. Pero no te dejes engañar, este sencillo concepto esconde mucho más tras de sí, y es que el Gas es esencial para todo dentro de Ethereum, y su impacto en este ecosistema es inmenso.

Es por ello que teniendo en cuenta la importancia de este concepto, hemos creado una pequeña guía que te ayudará a entender todo lo que debes saber sobre el Gas y su papel dentro de la blockchain Ethereum.

Una analogía para comprender qué es el Gas en Ethereum

Una forma sencilla ver que es el Gas en Ethereum sería la siguiente analogía:

Quieres viajar con tu familia de Madrid a Barcelona, el viaje lo harás en tu coche. En este punto, sabes de antemano que son 500 km de distancia y que tu coche gasta 1 litro de gasolina cada 10 km (para hacer simple el cálculo), así que necesitarás 50 litros de gasolina para llegar a destino. Además, también sabes que el litro de gasolina cuesta entre 1 € y 1,5 € dependiendo de la gasolinera donde te detengas a repostar.

Esto es lo mismo que pasa en Ethereum. Por un lado, cada tarea en Ethereum tiene un coste específico y no variable estipulado en Gas, lo que es equivalente al litro de gasolina que gasta tu auto por cada 10 Km. Por supuesto, las operaciones en Ethereum están formadas por distintas funciones más pequeñas, cada una de ellas con un valor de Gas (o consumo de gasolina) específico y su sumatoria es lo que nos dirá el valor final en Gas de dicha operación (el total de gasolina a gastar para hacer nuestro viaje). Así solo nos queda una cosa ¿Cuánto pagaremos por ese Gas para poder llevar a cabo la operación en Ethereum?

En nuestra analogía la gasolina varía entre 1 y 1,5 €, puedes escoger donde repostar y pagar lo menos posible para adquirir los 50 litros de gasolina que necesitas para tu viaje. Lo mismo pasa en Ethereum, el Gas tiene un precio en ether que es dado por la demanda y oferta de operaciones en Ethereum. Es decir, el precio del Gas en ether es variable, aunque en este caso tu puedes elegir el valor que vas a pagar por ese Gas, y si un minero está de acuerdo con ese valor, tomará tu transacción y la ejecutará.

Cómo puedes ver, el concepto de Gas es algo muy poderoso y útil dentro de Ethereum, y examinaremos más a fondo el porqué de esta grandiosa relación.

Gas, una forma única de medir el poder de cómputo en Ethereum

Las blockchain o cadena de bloques que usan el protocolo de Prueba de Trabajo (Proof of Work – PoW), funcionan todas bajo una misma premisa:

Para que puedas realizar una transacción que sea aceptada e incluida en la blockchain, se ha de pagar una comisión para que los mineros tomen tu transacción y la incluya en un bloque. Una vez allí, dicha transacción será validada por la red, y entonces, se ejecutarán las órdenes que están en la transacción, solo así podrás decir que ha sido aceptada y confirmada.

Una forma sencilla de ver PoW, pero es una idea correcta. Esto significa que para obtener acceso a una red blockchain siempre debemos pagar un pequeño precio. Generalmente este pago se realiza en unidades decimales de la moneda que funciona en la blockchain.

Este sería el caso de Bitcoin, donde las transacciones se pagan en satoshis, la unidad decimal más pequeña de Bitcoin. El objetivo de esto ese sencillo y lo pasamos a resumir en la siguiente lista:

  1. Asignar un costo a cualquier tarea que se ejecute en la red. Esto mantiene los incentivos de funcionamiento de la red, una tarea que depende de los mineros.
  2. Mantiene la seguridad del sistema al evitar acceso a los recursos de forma indiscriminada. Debido a que todo tiene un costo, un hacker por ejemplo, no podría dedicarse a enviar spam o realizar un DDoS sobre la red, porque este le resultaría excesivamente caro.

Si esto aplica para Bitcoin pregúntate ¿No aplicará lo mismo para Ethereum? La respuesta es sí, en Ethereum pasa lo mismo, solo que sus creadores han buscado un enfoque distinto a este problema. La decisión de crear este mecanismo llamado “Gas”, responde a que Ethereum es mucho más que una simple criptomoneda. De hecho, la red de Ethereum como un todo, funciona de forma análoga a un ordenador, un ordenador a la que se le conoce como la “Ordenador Blockchain”.

¿Por qué se creó el Gas?

Siguiendo con lo anterior, debes saber que en Ethereum cada transacción es un “pequeño programa”. Este programa le da instrucciones a la Ethereum Virtual Machine (EVM), para que luego esta máquina los interprete como una acción o serie de acciones a realizar. En este punto, Ethereum y su EVM son iguales en funcionamiento a Bitcoin y Bitcoin Script. Lo que realmente las diferencia es que Ethereum ofrece una flexibilidad mucho mayor a Bitcoin.

Sin embargo, en Ethereum los desarrolladores decidieron asignar valores constantes a las diferentes operaciones que se pueden realizar en Ethereum. De esta forma, cada tarea en Ethereum tiene un valor de Gas estipulado, que no cambia y no es alterado por la subida o bajada en el valor del ether, la moneda nativa de Ethereum.

El hecho de que ese valor del Gas sea constante responde a que, si bien el precio del ether es volátil, el costo computacional de las operaciones siempre permanece constante. Es por ello que, con la creación del Gas, los desarrolladores de Ethereum pueden diferenciar entonces entre lo que el coste computacional y el valor real de dichas operaciones en un momento dado. De hecho, este sistema ayuda a que Ethereum y su red se mantenga usable en todo momento, sin importar las subidas o bajas del ether.

Así por ejemplo, si un smart contract tiene una función para “Consultar saldo de una dirección”, esta acción en la red puede tener el valor de 1000 Gas, y siempre tendrá ese valor. Esto significa que para realizar dicha acción en Ethereum, se ha de pagar una pequeña comisión (en ether) correspondiente a la cantidad de Gas utilizado para poder realizar dicha acción en la blockchain.

Lo anterior genera tres cosas que son importantes y vitales dentro de Ethereum, y que explicamos a continuación:

  1. Unidad de Gas. La Unidad de Gas es la cantidad de Gas que se puede atribuir a una instrucción en específico, pero no tiene ningún valor monetario.
  2. Precio de Gas. El Precio de Gas por su parte es el pago de comisión que hacemos por cada Unidad de Gas. Es un precio que elegimos pagar por cada unidad y lo hacemos usando unidades decimales de Ether, los llamados Gwei. Esta comisión es la que te permite tener prioridad de atención. Si pagas más por cada Unidad de Gas que uses, más rápido los mineros tomarán tu transacción y la llevarán a un bloque.
  3. Limite de Gas. Este es un valor que indica la cantidad máxima de Unidades de Gas que la red Ethereum puede manejar en un momento dado. Es su límite máximo, y es un punto que los mineros no pueden sobrepasar en ningún momento.

Como ves es bastante más complejo a lo que pasa en Bitcoin u otras criptomonedas derivadas, y la razón para esto es; que en Ethereum, la EVM está limitada a manejar una determinada cantidad de información. Así que para manejar ese límite de información, se ha creado esta medida de trabajo para controlar la cantidad de trabajo computacional que la red puede realizar al mismo tiempo.

Curiosidades del Gas en Ethereum

¿De cuánto es el límite de Gas?

El Límite de Gas (Gas Limit) depende de si nos referimos a una transacción, a una operación con smart contracts o un bloque. Así tenemos los siguientes límites:

  1. El Gas Limit de una transacción es de unas 21.000 unidades de Gas. Esto significa que ninguna transacción sencilla dentro de Ethereum consumirá jamás más de esta cantidad de Gas.
  2. Por su parte, el Gas Limit de un smart contract es mucho mayor y es variable. Esto se debe a que estos smart contracts pueden tener más o menos complejidad en sus interacciones y ello suma un mayor nivel de Gas. Normalmente este límite suele estar entre los 130 y 145 mil Unidades de Gas.
  3. Por último tenemos el Gas Limit de un bloque, el cual está establecido a no superar los 8 millones de Unidades de Gas. Esto significa que los mineros pueden incluir tantas transacciones e interacciones con smart contracts como les sea posible, siempre y cuando no supere ese límite.

Este último límite es interesante porque permite hacer frente al “halting problem”. Este es un problema de computación que nos permite saber si un programa de computación se ejecutará en un bucle infinito con solo tener a la mano la entrada de datos y su programación. Esta situación plantearía un serio problema en la blockchain que podría llevar a una Denegación de Servicios (DoS). Sin embargo, debido a que Ethereum impone un Gas Limit por bloque, esto significa que ninguna operación en Ethereum por compleja que sea podrá exceder jamás dicho límite.

¿Cuánto sabes, criptonauta?

¿Realmente es posible alterar ciertos valores de Gas en las transacciones en Ethereum?

¡CIERTO!

Si bien en Ethereum existen algunos valores de Gas inamovibles, también es cierto que esos valores pueden alterarse cuando estamos construyendo una transacción en Ethereum. Un buen ejemplo es la librería web3.js, que nos permite parametrizar el valor de Gas a usar en una transacción. Así que sí, es posible cambiar el valor de Gas que usamos en nuestras transacciones pero debemos tener cuidado al realizar estos cambios o nuestras transacciones podrían no llevarse a cabo de forma correcta.

¿Cómo cobran los mineros su trabajo?

Como ya hemos mencionado el Gas no tiene ningún valor económico, ni es un token dentro de Ethereum, es solo una unidad de medida. Se trata de una unidad importante para poder establecer el valor de la transacciones. Esto gracias a que cada Unidad de Gas tiene un precio en Gwei (decimales de Ether). Así que, por una transacción que consuma una determinada cantidad de Gas, debes pagar una determinada cantidad de ether para que pueda ser procesada.

Por ejemplo, si tenemos una operación “Pagar a María” con un coste de 12.000 Unidades de Gas, y el coste de la Unidad de Gas es de 20 Gwei, tenemos que:

Costo TX en Gwei = 12.000 * 20 = 240.000 Gwei
Cost TX en Ether = 240.000 Gwei * 0.00000001 = 0.0024 Ether ~ 0,54 $ / 0,48 €

Ahora ya sabes cómo se cobran las comisiones dentro de Ethereum. Como ves esto también tiene un impacto en la recompensa de bloque. En la actualidad, la recompensa de bloque de Ethereum es 2 Ether por bloque, el cual se mina cada 15 segundos de media.

Así que cada bloque generado tiene una recompensa fija de 2 Ether. Mientras que el resto de la recompensa viene dada por las comisiones cobradas por el minero siguiendo el ejemplo arriba mostrado. Por supuesto, el valor de gas de las transacciones se adapta a cada caso. Debido a ello, no es lo mismo una transacción sencilla (consume poco Gas), a un smart contract avanzado con varios acciones descritas (consumo mucho Gas).

De hecho, en estos últimos, el Gas y la cantidad que pueden usar está determinada por la complejidad de las instrucciones que pueden usar en la EVM. Los desarrolladores de Ethereum tienen una lista de estas instrucciones y su costo en Gas.