Glossário / Mineração e consenso
Bloco
- O que é um bloco?
- Um bloco é um lote de transações de bitcoin mais o cabeçalho de 80 bytes que o sela, adicionado à cadeia aproximadamente a cada dez minutos pelo minerador que o resolver primeiro.
Os blocos transformam um fluxo de pagamentos em um registro ordenado e permanente. Cada um carrega um cabeçalho, uma contagem de transações e as próprias transações, e o pacote inteiro é limitado a quatro milhões de unidades de peso, o que na prática significa alguns milhares de pagamentos. Quando as pessoas dizem que um pagamento foi confirmado, querem dizer que um minerador o colocou em um bloco.
Como funciona
Um bloco tem três partes, e somente a primeira tem tamanho fixo.
O cabeçalho tem 80 bytes e nunca varia. Depois dele vem o número de transações, escrito no formato compactSize de comprimento variável do bitcoin. Em seguida vêm as próprias transações, em ordem, com um requisito rígido: a primeira deve ser a transação coinbase, a que paga o minerador. Um bloco cuja coinbase ocupa o segundo lugar é rejeitado com a mesma firmeza que um bloco contendo uma assinatura forjada.
O tamanho não é mais contado em bytes simples. Desde que o SegWit foi ativado em agosto de 2017, o limite é de 4.000.000 unidades de peso, em que um byte fora da testemunha custa quatro unidades e um byte de testemunha custa uma. Isso produz um teto próximo de 4 MB para blocos com muitos dados de testemunha e de cerca de 1 MB para um bloco cheio de transações de estilo antigo, com blocos reais típicos ficando entre 1,5 MB e 2 MB. A regra original de 1.000.000 bytes sobrevive por baixo como um limite para a parte que não é de testemunha, e é por isso que a resposta honesta a “qual o tamanho máximo de um bloco” é um intervalo, e não um número.
Todo o resto é verificado por cada nó de forma independente. O hash do cabeçalho deve ser igual ou inferior ao alvo, a raiz de Merkle deve corresponder às transações realmente presentes, nenhuma entrada pode ser gasta duas vezes, e a saída coinbase não pode reivindicar mais do que o subsídio mais as taxas das transações incluídas. O protocolo também impõe ao minerador um período de espera: os bitcoins criados em um bloco não podem ser gastos até que 100 blocos adicionais tenham sido construídos sobre ele, de modo que um minerador cujo bloco é depois descartado em uma reorganização não pode já ter gasto o que recebeu.
Por que isso importa quando você compra bitcoin
O espaço de bloco é um leilão, e a taxa do seu saque é um lance nele.
Os blocos são finitos e a demanda não é, então quando a mempool está cheia as transações que pagam mais por byte virtual são aceitas primeiro e o resto espera. Esse é o mecanismo por trás de todo chamado de suporte do tipo “por que meu saque está travado”. Verificar um estimador de taxas antes de mover seus bitcoins, e movê-los em uma hora tranquila quando você puder, não custa nada e costuma economizar mais do que a diferença nas taxas de corretora que você passou uma tarde comparando.
A cifra de dez minutos é uma média, não um horário. A descoberta de blocos se comporta como um processo aleatório sem memória, então os intervalos se dispersam muito: mais de um terço dos blocos leva mais de dez minutos, e cerca de um em cada vinte leva mais de meia hora. Uma corretora que credita depósitos depois de várias confirmações está, portanto, informando uma distribuição, e não um prazo de entrega, e um depósito que não chegou em vinte minutos geralmente é normal, e não perdido.
Há também uma forma de contornar o espaço de bloco por completo. Os pagamentos Lightning são liquidados off-chain e só tocam um bloco quando um canal é aberto ou fechado, e é por isso que um aplicativo como o Strike pode mover valor em segundos enquanto um saque on-chain espera pelo próximo bloco. Vale a pena entender essa contrapartida antes de supor que toda transferência de bitcoin tem que custar uma taxa a um minerador.
Dentro do bloco 774.628, o maior já minerado
O bloco 774.628, minerado pelo pool Luxor em 1º de fevereiro de 2023, é o maior bloco que o bitcoin já produziu: 3,96 MB.
Ele continha 63 transações, e uma delas respondia por 3,94 MB do total, uma inscrição da imagem Taproot Wizard enfiada em uma testemunha Taproot. O pool coordenou a transação diretamente, em vez de retirá-la da mempool, e ela pagou quase nada ao bloco: cerca de 0,009 BTC em taxas, contra um subsídio que na época ainda era de 6,25 BTC. O recorde anterior havia sido de 2,77 MB.
Vale a pena procurar esse bloco porque ele mostra a regra do peso em ação. O antigo limite de 1 MB teria tornado aquela transação impossível, e o orçamento de 4.000.000 unidades de peso só a tornou possível porque os dados de testemunha têm desconto. Ele também mostra que um único participante pode ocupar um bloco inteiro, que é exatamente o que se disputou na guerra do tamanho de bloco.
Bloco vs cabeçalho de bloco
Um bloco é o objeto inteiro; o cabeçalho é o resumo de 80 bytes na frente dele. A distinção é prática, não pedante. Os mineradores calculam o hash apenas do cabeçalho, as carteiras leves baixam apenas cabeçalhos, e um nó que está sincronizando pela primeira vez baixa a cadeia de cabeçalhos antes de pedir uma única transação. Se um documento diz “o hash do bloco”, quer dizer o hash desses 80 bytes, e não um hash dos pagamentos dentro dele.
Bloco vs bloco obsoleto
Um bloco está na cadeia com a qual a rede concorda; um bloco obsoleto é um bloco perfeitamente válido que perdeu a corrida para ser essa cadeia. De vez em quando, dois mineradores resolvem blocos quase no mesmo momento, a rede mantém brevemente dois candidatos, e o ramo que para de crescer é abandonado. O bloco descartado não tinha nada de errado, e suas transações quase sempre reaparecem no bloco seguinte. É também por isso que uma única confirmação é mais fraca que seis: quanto mais fundo um bloco está, menos plausível se torna que um ramo concorrente o ultrapasse.