Recompensa do Bloco
A quantidade de bitcoins que um minerador recebe por minerar um bloco
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?
A recompensa do bloco consiste em duas partes:
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.
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
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
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.
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.
| Halving | Altura | Subsídio (BTC) | Data | Total Minerado (BTC) |
|---|---|---|---|---|
| 0 | 0 | 50,00000000 | 03 jan 2009 | 0,00000000 |
| 1 | 210.000 | 25,00000000 | 28 nov 2012 | 10.500.000,00000000 |
| 2 | 420.000 | 12,50000000 | 09 jul 2016 | 15.750.000,00000000 |
| 3 | 630.000 | 6,25000000 | 11 mai 2020 | 18.375.000,00000000 |
| 4 | 840.000 | 3,12500000 | 20 abr 2024 | 19.687.500,00000000 |
| 5 | 1.050.000 | 1,56250000 | 13 abr 2028 (est.) | 20.343.750,00000000 |
| 6 | 1.260.000 | 0,78125000 | 10 abr 2032 (est.) | 20.671.875,00000000 |
| 7 | 1.470.000 | 0,39062500 | 08 abr 2036 (est.) | 20.835.937,50000000 |
| 8 | 1.680.000 | 0,19531250 | 05 abr 2040 (est.) | 20.917.968,75000000 |
| 9 | 1.890.000 | 0,09765625 | 02 abr 2044 (est.) | 20.958.984,37500000 |
| 10 | 2.100.000 | 0,04882812 | 31 mar 2048 (est.) | 20.979.492,18750000 |
| 11 | 2.310.000 | 0,02441406 | 28 mar 2052 (est.) | 20.989.746,09270000 |
| 12 | 2.520.000 | 0,01220703 | 25 mar 2056 (est.) | 20.994.873,04530000 |
| 13 | 2.730.000 | 0,00610351 | 23 mar 2060 (est.) | 20.997.436,52160000 |
| 14 | 2.940.000 | 0,00305175 | 20 mar 2064 (est.) | 20.998.718,25870000 |
| 15 | 3.150.000 | 0,00152587 | 17 mar 2068 (est.) | 20.999.359,12620000 |
| 16 | 3.360.000 | 0,00076293 | 15 mar 2072 (est.) | 20.999.679,55890000 |
| 17 | 3.570.000 | 0,00038146 | 12 mar 2076 (est.) | 20.999.839,77420000 |
| 18 | 3.780.000 | 0,00019073 | 09 mar 2080 (est.) | 20.999.919,88080000 |
| 19 | 3.990.000 | 0,00009536 | 07 mar 2084 (est.) | 20.999.959,93410000 |
| 20 | 4.200.000 | 0,00004768 | 04 mar 2088 (est.) | 20.999.979,95970000 |
| 21 | 4.410.000 | 0,00002384 | 01 mar 2092 (est.) | 20.999.989,97250000 |
| 22 | 4.620.000 | 0,00001192 | 28 fev 2096 (est.) | 20.999.994,97890000 |
| 23 | 4.830.000 | 0,00000596 | 25 fev 2100 (est.) | 20.999.997,48210000 |
| 24 | 5.040.000 | 0,00000298 | 23 fev 2104 (est.) | 20.999.998,73370000 |
| 25 | 5.250.000 | 0,00000149 | 21 fev 2108 (est.) | 20.999.999,35950000 |
| 26 | 5.460.000 | 0,00000074 | 18 fev 2112 (est.) | 20.999.999,67240000 |
| 27 | 5.670.000 | 0,00000037 | 15 fev 2116 (est.) | 20.999.999,82780000 |
| 28 | 5.880.000 | 0,00000018 | 13 fev 2120 (est.) | 20.999.999,90550000 |
| 29 | 6.090.000 | 0,00000009 | 10 fev 2124 (est.) | 20.999.999,94330000 |
| 30 | 6.300.000 | 0,00000004 | 07 fev 2128 (est.) | 20.999.999,96220000 |
| 31 | 6.510.000 | 0,00000002 | 05 fev 2132 (est.) | 20.999.999,97060000 |
| 32 | 6.720.000 | 0,00000001 | 02 fev 2136 (est.) | 20.999.999,97480000 |
| 33 | 6.930.000 | 0,00000000 | 30 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):
Conversor de Números
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:
- Altura: 100
- Recompensa do Bloco: 50 BTC
- Subsídio do Bloco: 50 BTC
- Taxas de Transação: 0 BTC
Este é um dos primeiros blocos. Ele reivindicou o subsídio máximo de 50 BTC, mas não havia transações incluídas no bloco (além da transação coinbase), então nenhuma taxa de transação pôde ser reivindicada além do subsídio.
- Altura: 2.817
- Recompensa do Bloco: 52,01 BTC
- Subsídio do Bloco: 50 BTC
- Taxas de Transação: 2,01 BTC
Este foi o primeiro bloco que coletou taxas de transação como parte da recompensa. Era completamente desnecessário que as transações deste bloco pagassem taxas, mas, ainda assim, é o primeiro exemplo de um minerador coletando taxas junto com o subsídio do bloco.
- Altura: 100.000
- Recompensa do Bloco: 50 BTC
- Subsídio do Bloco: 50 BTC
- Taxas de Transação: 0 BTC
Este bloco contém 3 transações (sem contar a transação coinbase). Porém, não havia muita competição para entrar em um bloco nessa época, então as transações não precisavam incluir uma taxa para serem mineradas.
- Altura: 124.724
- Recompensa do Bloco: 49,99999999 BTC
- Subsídio do Bloco: 50 BTC
- Taxas de Transação: 0,01 BTC
Este é um exemplo de um bloco que não reivindicou a recompensa completa. Ele não reivindicou o subsídio máximo de 50 BTC disponível, nem a taxa de transação de 0,01 BTC também disponível. Então é perfeitamente válido um minerador não reivindicar a recompensa completa na sua transação coinbase, embora isso geralmente seja um erro do minerador.
- Altura: 210.000
- Recompensa do Bloco: 38,56295554 BTC
- Subsídio do Bloco: 25 BTC
- Taxas de Transação: 13,56295554 BTC
Este foi o primeiro bloco de halving. O subsídio do bloco foi reduzido pela metade, de 50 BTC para 25 BTC.
- Altura: 788.695
- Recompensa do Bloco: 12,95074657 BTC
- Subsídio do Bloco: 6,25 BTC
- Taxas de Transação: 6,70074657 BTC
Este foi o primeiro bloco em que o tamanho das taxas de transação foi maior que o subsídio do bloco.
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
- Um minerador não precisa reivindicar a recompensa do bloco. Não há razão para não fazê-lo, mas nada o impede de não reivindicar a recompensa completa se não quiser. Nesse caso, os bitcoins ficariam perdidos para sempre, pois não haveria como gastá-los em uma transação futura. Por exemplo, a recompensa do bloco 501.726 era de 12,5 BTC, mas o minerador não enviou nenhum bitcoin a si mesmo na transação coinbase desse bloco, então esses bitcoins estão perdidos para sempre. Isso provavelmente foi um erro.
- O subsídio do bloco é frequentemente chamado erroneamente de "recompensa do bloco". É comum ver os novos bitcoins serem chamados de "recompensa do bloco", mas, tecnicamente, a recompensa do bloco é composta pelo subsídio do bloco (os novos bitcoins) + as taxas de transação. Não acho que vá causar problemas se você confundir, mas resolvi mencionar, pois eu mesmo já cometi esse erro no passado.
- O termo "recompensa do bloco" não foi usado no whitepaper. Satoshi só se referiu à recompensa de mineração como um incentivo, e não usou o termo "recompensa do bloco" até mais de um ano depois, no fórum bitcointalk. Só um fato curioso para o seu próximo quiz de bar.
- O fornecimento total de bitcoin é de 20.999.999,9769 BTC. Então, tecnicamente, é menos do que o "limite de 21 milhões" que você sempre ouve falar. Isso se deve, em parte, ao fato de que o halving é um deslocamento de bits à direita, o que significa que o subsídio do bloco é arredondado para baixo quando o subsídio anterior era um número ímpar. De novo, mais um fato para o quiz de bar.