Limite de gas por bloco no Ethereum: capacidade, limites e consumo

O limite de gas por bloco no Ethereum indica a quantidade máxima de gas permitida em um bloco. Já o limite de gas de uma transação indica quanto o remetente está disposto a consumir naquela operação. O gas usado representa o consumo efetivo. Separar essas três grandezas ajuda a entender o que uma informação sobre capacidade realmente demonstra.

A distinção também facilita a leitura de registros técnicos: um teto, uma quantidade consumida e um preço respondem a perguntas diferentes. Este guia explica essas relações sem apresentar um valor atual de capacidade nem prever preços de transações.

Três grandezas de gas, três perguntas diferentes

Gas é a unidade que mede o esforço computacional necessário para executar operações no Ethereum. Ao encontrar um número expresso em gas, procure identificar a pergunta à qual ele responde:

  • Limite de gas da transação: qual é o consumo máximo definido pelo remetente para essa operação?
  • Gas usado pela transação: quanto essa operação específica efetivamente consumiu?
  • Limite de gas do bloco: qual é a quantidade máxima de gas permitida no conjunto daquele bloco?

O limite de uma transação não promete que ela consumirá toda a quantidade indicada nem que sua execução terá sucesso. A documentação do Ethereum apresenta um exemplo de transferência simples cujo consumo fica abaixo do limite da transação. Isso demonstra uma possibilidade, sem estabelecer um consumo universal para outras operações.

No nível do bloco, há outra comparação entre máximo e consumo. O bloco tem um limite próprio e um total de gas usado. Esse total abrange todas as transações daquele bloco; o consumo de uma transação se refere somente àquela operação.

O limite do bloco é um teto; a meta é outra referência

O limite de gas por bloco estabelece um máximo. A meta de consumo de gas descrita na documentação corresponde à metade do limite vigente do bloco. São referências distintas: a meta não exige que cada bloco consuma exatamente aquela quantidade, e o máximo não deve ser apresentado como se fosse a meta.

Por exemplo, dizer que um bloco ficou abaixo de seu limite compara o consumo com o teto. Essa informação, isoladamente, não revela se o consumo ficou acima ou abaixo da meta. Para responder à segunda pergunta, é preciso considerar também essa referência intermediária.

O limite de gas do bloco pode mudar ao longo do tempo por sinalização dos validadores e atualizações da rede. Por isso, um número de capacidade precisa estar associado ao bloco ou período que descreve. Aqui não há uma indicação numérica da capacidade atual nem uma previsão de quando ela poderá mudar.

Também é necessário separar parâmetros da rede de controles do remetente. O remetente define um limite para sua transação; o bloco possui um máximo separado. Das definições desses dois limites e dos mecanismos documentados de mudança da capacidade, deduz-se que alterar o limite de uma transação não altera, por si só, o limite do bloco.

Por que limite de gas não é preço do gas

Um limite de gas responde a uma pergunta sobre quantidade. O preço por unidade de gas responde a uma pergunta sobre custo monetário. A taxa de gas da execução combina o consumo com o custo por unidade: gas usado multiplicado pelo preço de cada unidade. Essa relação descreve a taxa de execução, sem pretender abranger toda cobrança possível associada a uma operação.

A distinção decorre das próprias unidades de medida. Um máximo expresso em gas e um preço expresso em dinheiro por unidade de gas não são valores intercambiáveis. Essa é uma dedução das definições, não uma afirmação de que capacidade e preços sejam economicamente independentes.

O método eth_gasPrice, por exemplo, retorna uma estimativa do preço atual por unidade de gas em wei. Seu resultado é uma estimativa de preço, não uma leitura da capacidade do bloco nem uma garantia de preço futuro de execução.

Para a questão específica da diferença entre custo de execução e quantia transferida, consulte o guia sobre taxas de gas e valor enviado no Ethereum. Aqui, o foco é distinguir capacidade, limite da transação e consumo.

Uma comparação hipotética com limites explícitos

Imagine um bloco fictício, criado para uma atividade didática, com limite de 1.000.000 de unidades de gas. Considere que ele contém somente duas transações, ambas já executadas:

  • A transação A tem limite de 100.000 unidades de gas e consome 60.000.
  • A transação B tem limite de 120.000 unidades de gas e consome 90.000.

Esses números são hipóteses educativas, não medições atuais do Ethereum nem sugestões de configuração. O consumo inferior ao limite de cada transação é compatível com a possibilidade demonstrada pela documentação.

Como o gas usado pelo bloco reúne o consumo de suas transações, o total desse bloco hipotético é de 150.000 unidades: 60.000 mais 90.000. O resultado fica abaixo do limite fictício de 1.000.000. Trata-se de uma dedução aritmética baseada nas premissas do exemplo e na definição do campo de consumo do bloco.

A comparação termina no confronto entre consumo e capacidade. Ela não prevê inclusão. Uma condição necessária para uma transação ser elegível à inclusão é que o preço oferecido por unidade de gas seja pelo menos igual à taxa base do bloco. Como a comparação de capacidade não informa preço oferecido, deduz-se que ela não estabelece essa condição adicional. Atender à condição de preço também não garante inclusão.

O exercício tampouco apresenta um algoritmo completo de montagem de blocos. Ele não fundamenta uma regra segundo a qual bastaria somar os limites das transações para determinar quais serão incluídas.

Leia cada campo de gas no contexto do objeto

A documentação JSON-RPC do Ethereum diferencia os campos relevantes. Em um objeto de bloco, gasLimit indica o máximo permitido, enquanto gasUsed informa o total consumido por todas as transações daquele bloco. No recibo de uma transação, gasUsed informa o consumo daquela transação específica.

O objeto ao redor do campo importa tanto quanto seu nome. Antes de comparar um valor com um limite, identifique se ele representa consumo do bloco ou consumo de uma transação. Caso contrário, dois campos chamados gasUsed podem parecer equivalentes mesmo descrevendo escopos diferentes.

Checklist para interpretar explicações sobre capacidade

  1. Identifique o objeto. O número pertence a uma transação, ao recibo dela ou a um bloco?
  2. Identifique a função. É um máximo, o consumo efetivo, a meta ou um preço por unidade de gas?
  3. Preserve o contexto do bloco. A capacidade é um parâmetro que pode mudar ao longo do tempo.
  4. Limite a conclusão à evidência. Consumo abaixo de um teto demonstra essa comparação, sem estabelecer elegibilidade ou garantir inclusão.
  5. Confira as hipóteses. Um exemplo fictício deve explicitar a capacidade, quais transações considera e quanto elas consomem.

As definições conceituais e a distinção entre meta e limite estão na documentação de gas e taxas do Ethereum. Junto às descrições dos campos da API, elas permitem interpretar as grandezas separadamente; não transformam um exemplo simplificado em um modelo completo de inclusão.

Material educativo preparado com auxílio de IA. O exemplo fictício ilustra definições técnicas e não constitui aconselhamento financeiro nem recomendação para enviar uma transação.