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

¿Cuál es la función del parámetro Gas Limit en Ethereum? ¿Está involucrado en la minería o algo más?

Estoy votando para cerrar esta pregunta como fuera de tema porque no está relacionada con bitcoin y estaría mejor cubierta en el intercambio de pila de ethereum
Voy a votar para dejar esta pregunta abierta. Si bien esta pregunta pertenece al intercambio de pila de ethereum ahora, es demasiado antigua para migrar. Además, estaba en el tema en el momento de preguntar, ya que, AFAICT, el intercambio de pila de ethereum aún no existía.

Respuestas (2)

En Ethereum, el gas es una medida del esfuerzo computacional. A cada operación se le asigna una cantidad fija de gas (por ejemplo, sumar dos números cuesta 3 gas, calcular un hash cuesta 30 gas, enviar una transacción cuesta 21000 gas [1]).

Dado que el cálculo es costoso (tenga en cuenta que debe ser realizado por cada nodo completo de la red), se debe desalentar el consumo excesivo de gas. Por lo tanto, cada unidad de gas debe ser pagada (en Ether) por el remitente de la transacción que desencadenó el cómputo.

Desafortunadamente, a menudo no es fácil y, en general, incluso imposible saber de antemano cuánto gas necesitará una transacción eventualmente. Por lo tanto, las transacciones tienen un campo de límite de gas para especificar la cantidad máxima de gas que el remitente está dispuesto a comprar. Si el gas utilizado supera este límite durante la ejecución, se detiene el procesamiento. El remitente aún tiene que pagar por el cálculo realizado, pero está protegido contra quedarse sin fondos.

El límite de gas de transacción también protege los nodos completos de los atacantes, que podrían, sin un límite de gas, hacer que ejecuten bucles infinitos efectivos. Si una transacción de este tipo tardara más de un bloque en procesarse, nunca podría incluirse en un bloque y, por lo tanto, el atacante no tendría que pagar por ella. [2]

Además, los bloques también tienen un campo llamado límite de gas . Define la cantidad máxima de gas que pueden consumir todas las transacciones en todo el bloque combinado. Similar al tamaño máximo de bloque en Bitcoin (medido en bytes), su propósito es mantener bajo el tiempo de propagación y procesamiento de bloques, lo que permite una red suficientemente descentralizada. A diferencia de Bitcoin, sin embargo, no es una constante. En cambio, los mineros tienen la opción de aumentar o disminuir cada bloque por un factor determinado. [3]

el papel amarillo se actualizó, ahora [3] se refiere a las ecuaciones 45-47.
La computación es muy barata, independientemente de cuántos nodos haya en la red. Los cálculos que ocurren en Ethereum aún costarían un agregado de centavos en todos los nodos. Lo que es caro es el tiempo que se pasa sin minar el bloque. Un bloque golpea cada 15 segundos, por lo que si un minero pierde 5 segundos calculando la función de alguien, ahora tiene 5 segundos menos para adivinar el nonce correcto. El precio del resto de los nodos que calculan la respuesta para ponerse al día con la cadena de bloques es irrelevante, ya que se ven obligados a hacerlo de todos modos.

El límite de gas actual se puede comprobar en la página de estadísticas de la red .

Actualmente es 3,141,592 (pi millones). Sin embargo, el límite de gas por bloque no es fijo. La cantidad de llamadas de contrato y transacciones estándar está limitada por el límite de gas, que es 1.2x del promedio móvil exponencial. Por lo tanto, solo se puede gastar una cantidad limitada de gas por bloque, aunque, por supuesto, puede crecer.

Tenga en cuenta que cada llamada al contrato a la persona que llama cuesta una cantidad de Ether definida por , por (gas sent to contract)*(price of gas as defined by caller)lo que enviar 10 mil transacciones por bloque podría terminar siendo un esfuerzo bastante costoso.