Recompensa do Bloco

A quantidade de bitcoins que um minerador recebe por minerar um bloco

Diagrama mostrando a recompensa do bloco coletada por uma transação coinbase.

A recompensa do bloco é uma quantidade de bitcoins que um minerador pode coletar por minerar um bloco.

Ela é reivindicada por meio de uma transação coinbase e fornece um incentivo para os mineradores minerarem novos blocos na blockchain.

Origem

De onde vem a recompensa do bloco?

Diagrama mostrando a recompensa do bloco sendo coletada por uma transação coinbase e como a soma do subsídio do bloco e das taxas de transação no bloco.

A recompensa do bloco consiste em duas partes:

  1. Subsídio do Bloco
  2. Taxas de Transação

1. Subsídio do Bloco

O subsídio do bloco é uma quantidade determinada de novos bitcoins que um minerador pode enviar a si mesmo por minerar um bloco.

O tamanho do subsídio do bloco é baseado na altura do bloco.

Veja a seção halving para uma tabela completa dos subsídios de bloco passados, atual e futuros.

2. Taxas de Transação

A recompensa do bloco também consiste em todas as taxas das transações incluídas no bloco.

Uma taxa de transação é uma quantidade de bitcoin que não é "consumida" em uma transação, e os mineradores podem reivindicar esses bitcoins "que sobram" como parte da recompensa do bloco também.

Os mineradores enchem seus blocos candidatos com as transações de maior taxa do memory pool para maximizar a quantidade de bitcoins que podem reivindicar da recompensa do bloco. Portanto, definir uma taxa alta em uma transação funciona como incentivo para que os mineradores incluam a sua transação no próximo bloco.

O incentivo também pode ser financiado com taxas de transação. Se o valor de saída de uma transação é menor que o seu valor de entrada, a diferença é uma taxa de transação que é adicionada ao valor do incentivo do bloco que contém a transação.
Satoshi Nakamoto, Whitepaper do Bitcoin

A recompensa do bloco será formada inteiramente por taxas de transação quando não houver mais subsídio de bloco.

Propósito

Qual é o propósito da recompensa do bloco?

A recompensa do bloco serve a dois propósitos:

1. Incentivo

Diagrama mostrando um minerador coletando a recompensa do bloco como compensação pelo custo de minerar um bloco na blockchain.

Como já mencionado, a recompensa do bloco fornece um incentivo para os mineradores adicionarem novos blocos à blockchain.

É preciso energia para tentar minerar novos blocos na blockchain, então a recompensa do bloco compensa os mineradores pelo poder de processamento que usam durante a mineração.

E, se a recompensa do bloco é substancial o suficiente, ela incentiva mais mineradores a entrarem na rede para ajudar a construir a blockchain, o que, por sua vez, torna a blockchain ainda mais segura (pois exigiria mais energia para um único minerador tentar reescrever a blockchain).

Ataques de 51%

A recompensa do bloco também ajuda a desincentivar ataques de 51%.

Se um minerador conseguir adquirir a maioria do poder de mineração, ele tem a capacidade de reescrever a blockchain, o que efetivamente lhe permite reverter transações e "roubar de volta" bitcoins de transações anteriores que ele tenha feito.

No entanto, devido à existência da recompensa do bloco, podemos supor que seria mais lucrativo continuar minerando blocos e reivindicando recompensas do que tentar roubar bitcoins revertendo transações.

Então, a recompensa do bloco não impede um minerador de realizar um ataque de 51%, mas o desincentiva de minar a integridade do sistema em favor de simplesmente reivindicar a recompensa do bloco.

2. Distribuição

Diagrama mostrando um intervalo de 10 minutos entre a emissão de novas recompensas de bloco, e as recompensas de bloco como a fonte dos bitcoins em novas transações.

A recompensa do bloco (bem, o subsídio do bloco) é usada para distribuir novos bitcoins na rede.

O Bitcoin é uma moeda descentralizada, o que significa que não há um "banco" central para controlar a quantidade de novos bitcoins que entram na rede, nem para quem eles são enviados. Portanto, novos bitcoins entram na rede pelo processo de mineração, o que significa que novos bitcoins são emitidos em intervalos regulares, e qualquer minerador pode ter a chance de reivindicá-los.

O [subsídio do bloco] fornece uma forma de distribuir inicialmente as moedas em circulação, já que não há uma autoridade central para emiti-las.
Satoshi Nakamoto, Whitepaper do Bitcoin

Halving

O que é "o halving"?

O subsídio do bloco começou em 50 BTC e é reduzido pela metade a cada 210.000 blocos (aproximadamente a cada 4 anos). Isso cria um fornecimento fixo de bitcoin, onde a emissão de novas moedas diminui ao longo do tempo até chegar a zero.

Tabela

Esta tabela mostra as datas e os valores dos halvings passados e futuros do Bitcoin. O subsídio atual está destacado.

Halvings do Bitcoin: altura, subsídio, data e total minerado
HalvingAlturaSubsídio (BTC)DataTotal Minerado (BTC)
0050,0000000003 jan 20090,00000000
1210.00025,0000000028 nov 201210.500.000,00000000
2420.00012,5000000009 jul 201615.750.000,00000000
3630.0006,2500000011 mai 202018.375.000,00000000
4840.0003,1250000020 abr 202419.687.500,00000000
51.050.0001,5625000013 abr 2028 (est.)20.343.750,00000000
61.260.0000,7812500010 abr 2032 (est.)20.671.875,00000000
71.470.0000,3906250008 abr 2036 (est.)20.835.937,50000000
81.680.0000,1953125005 abr 2040 (est.)20.917.968,75000000
91.890.0000,0976562502 abr 2044 (est.)20.958.984,37500000
102.100.0000,0488281231 mar 2048 (est.)20.979.492,18750000
112.310.0000,0244140628 mar 2052 (est.)20.989.746,09270000
122.520.0000,0122070325 mar 2056 (est.)20.994.873,04530000
132.730.0000,0061035123 mar 2060 (est.)20.997.436,52160000
142.940.0000,0030517520 mar 2064 (est.)20.998.718,25870000
153.150.0000,0015258717 mar 2068 (est.)20.999.359,12620000
163.360.0000,0007629315 mar 2072 (est.)20.999.679,55890000
173.570.0000,0003814612 mar 2076 (est.)20.999.839,77420000
183.780.0000,0001907309 mar 2080 (est.)20.999.919,88080000
193.990.0000,0000953607 mar 2084 (est.)20.999.959,93410000
204.200.0000,0000476804 mar 2088 (est.)20.999.979,95970000
214.410.0000,0000238401 mar 2092 (est.)20.999.989,97250000
224.620.0000,0000119228 fev 2096 (est.)20.999.994,97890000
234.830.0000,0000059625 fev 2100 (est.)20.999.997,48210000
245.040.0000,0000029823 fev 2104 (est.)20.999.998,73370000
255.250.0000,0000014921 fev 2108 (est.)20.999.999,35950000
265.460.0000,0000007418 fev 2112 (est.)20.999.999,67240000
275.670.0000,0000003715 fev 2116 (est.)20.999.999,82780000
285.880.0000,0000001813 fev 2120 (est.)20.999.999,90550000
296.090.0000,0000000910 fev 2124 (est.)20.999.999,94330000
306.300.0000,0000000407 fev 2128 (est.)20.999.999,96220000
316.510.0000,0000000205 fev 2132 (est.)20.999.999,97060000
326.720.0000,0000000102 fev 2136 (est.)20.999.999,97480000
336.930.0000,0000000030 jan 2140 (est.)20.999.999,97690000

Fornecimento total: 20.999.999,9769 BTC

Código

Aqui está um código simples em Ruby para calcular o subsídio do bloco com base na altura do bloco.

# function for calculating the subsidy for a given height (in satoshis)
def subsidy(height)
  # calculate how many halvings there have been based on the height
  halvings = height / 210000 # halving is every 210,000 blocks

  # set the starting block subsidy
  subsidy_initial = 5000000000 # 50 BTC in satoshis

  # calculate the current block subsidy based on the height
  subsidy_current = subsidy_initial >> halvings # bit shift right for every halving
  # TIP: A right bit shift is a quick and easy way to divide by 2 (rounded down)

  return subsidy_current
end

# get block subsidy for a specific height
puts subsidy(300000) #=> 250000000 sats

O código real do halving pode ser encontrado em validation.cpp (procure por GetBlockSubsidy).

Deslocamento de Bits

O halving é, na verdade, um deslocamento de bits à direita (right bit shift).

Isso é praticamente o mesmo que dividir por 2, exceto que o resultado da divisão é arredondado para baixo se o número de partida for ímpar.

Você pode ver o que quero dizer inserindo 5000000000 (o subsídio inicial do bloco em satoshis) no campo decimal da ferramenta conversora de números abaixo e, então, removendo os bits mais à direita do campo binário (o que equivale a realizar um deslocamento de bits à direita):

Ícone Ferramenta Conversor de Números

Conversor de Números

Converta um número entre bases diferentes (binário, decimal, hexadecimal).

0b
0 dígitos
0d
0 dígitos
0x
0 dígitos

Então, em vez de chamá-lo de "o halving do bitcoin", ele poderia ser chamado mais carinhosamente de "the bitshift righting".

Exemplos

Como foram as recompensas de blocos anteriores?

Aqui estão alguns exemplos de recompensas de blocos anteriores na blockchain:

Gasto

Quando a recompensa do bloco pode ser gasta?

A recompensa do bloco só pode ser gasta por um minerador quando o bloco atinge mais de 100 blocos de profundidade na blockchain.

Veja maturidade da coinbase.

Notas