O que é um bloco de Bitcoin?

Disponível como podcast
Compartilhe o artigo:

Um dos muitos mecanismos que permitem que o Bitcoin funcione corretamente é o blockchain. Como você deve ter descoberto nos artigos do blog Bitstack, o blockchain permite evitar o gasto duplo da mesma moeda bitcoin (o que é chamado de UTXO).

Como o nome sugere, esse blockchain é composto por blocos. Neste artigo, exploramos o que realmente são os blocos de Bitcoin e como cada bloco é construído.

O que é blockchain?

O blockchain é um registro que lista todas as transações de Bitcoin. Ele é usado no protocolo para que cada usuário esteja ciente das transações anteriores. Graças a isso, podemos provar a inexistência de um gasto anterior de bitcoins e, portanto, evitar gastos duplos.

Esse conceito é explicado de forma muito simples no Livro Branco do Bitcoin de Satoshi Nakamoto com a famosa frase:” A única maneira de confirmar a ausência de uma transação é estar ciente de todas as transações.

O objetivo desse registro é, portanto, registrar a data e hora das transações passadas. Para poder dedicar uma hora a essas informações, nós as agrupamos em blocos. Cada bloco inclui a impressão digital do bloco anterior para torná-lo imutável, criando uma espécie de cadeia. É por isso que falamos de blockchain, ou “blockchain” em inglês.

➤ Saiba mais sobre o papel do blockchain no Bitcoin.

Qual é a estrutura de um bloco no Bitcoin?

Um bloco de Bitcoin é composto principalmente por duas partes distintas. O primeiro é o cabeçalho, que contém 80 bytes de metadados. A segunda é a lista de transações executadas.

Desde a atualização do SegWit de 2017, o tamanho de um bloco é determinado por uma unidade virtual chamada peso. O peso de um bloco é calculado adicionando seu tamanho real a três vezes seu tamanho, mas sem testemunhas (assinaturas). O limite máximo é de 4 milhões de unidades de peso. Em teoria, um bloco Bitcoin SegWit pode, portanto, ter um tamanho real máximo de pouco menos de 4 MB. No entanto, o tamanho médio real do bloco normalmente oscila entre 1 e 2 MB desde 2017.

A chegada do protocolo Ordinals ao Bitcoin no início deste ano de 2023 afetou essa média para o aumento. Desde fevereiro, os blocos de Bitcoin têm um tamanho médio real de cerca de 3 MB.

O cabeçalho do bloco Bitcoin

A parte principal de um bloco de Bitcoin é seu cabeçalho. Quando falamos sobre a impressão digital de um bloco, ou seu hash, é de fato seu cabeçalho que passamos duas vezes na função de hash SHA256.

Para entender a composição do cabeçalho de um bloco, o melhor é estudar um real. Aqui estão as informações sobre o bloco nº 714 254, extraído pela F2Pool em 15 de dezembro de 2021:

Se você quiser fazer o mesmo no seu nó Bitcoin, execute o comando “getblockheader” seguido pela impressão digital do bloco desejado no bitcoin-cli.

Graças a esse comando, descobrimos vários elementos sobre o bloco estudado. Nem todas essas informações estão incluídas no cabeçalho. O cabeçalho real do bloco é composto por apenas 6 elementos:

  • A versão em bloco (”versão”). Isso torna possível acompanhar as atualizações do protocolo Bitcoin;
  • A impressão do bloco anterior (”BlockHash anterior”). É o hash criptográfico do cabeçalho do bloco anterior. Nesse caso, é a impressão do bloco 714 253. Como explicamos a você em nosso artigo sobre como o Bitcoin funciona, cada bloco inclui a impressão digital do bloco anterior;
  • A raiz de Merkle (”Merkleroot”). É a impressão digital criptográfica que está na base da nossa árvore Merkle. Vou explicar o que é na próxima parte;
  • A data e hora do bloco (”Hora”). É uma medida de quanto tempo o bloco foi minerado (de acordo com o minerador). Esta medida é estabelecida noHora Unix, ou seja, o número de segundos decorridos desde 1º de janeiro de 1970. Há alguma flexibilidade nessa medida, pois é suficiente que o carimbo de data/hora seja maior que o tempo médio dos 11 blocos anteriores para que seja válido;
  • O alvo (”Pedaços”). É uma codificação do alvo de dificuldade do bloco usado em Proof-of-Work. Estávamos falando sobre isso em nosso artigo sobre prova de trabalho, a área ocupada deve ser menor ou igual ao valor alvo para que o bloco seja válido;
  • O Núncio (”Núncio”). Esse é o valor que pode ser alterado pelo minerador durante a busca por um hash de prova de trabalho válido.

Um cabeçalho de bloco Bitcoin contém apenas esses 6 elementos. O pedido obter cabeçalho de bloco No entanto, recebemos outras informações que podem ser interessantes de analisar, mas que na verdade não fazem parte do cabeçalho em si:

  • A pegada do bloco (”Hash”). Esse é o resultado do hash criptográfico do cabeçalho. Se o bloco for válido, essa pegada deve ser menor ou igual à meta de dificuldade para prova de trabalho (mineração);
  • O número de confirmações de bloqueio (”confirmações”). Isso indica o número de blocos válidos extraídos acima deste no momento em que o comando é executado;
  • A altura do bloco (”Altura”). Esse é o lugar do bloco na blockchain. Aqui, temos o bloco 714.254º de Bitcoin;
  • O tempo médio dos últimos 11 blocos (”Tempo médio”). Essa é a informação usada para verificar se a data e hora do bloco está de acordo com o protocolo;
  • Trabalho acumulado (”Cadeia”). É a soma do trabalho de todos os blocos dessa cadeia. Lembre-se de que a cadeia válida no Bitcoin é aquela com a maior quantidade de trabalho acumulado;
  • A impressão do próximo bloco (”Próximo blockhash”). É o hash criptográfico do cabeçalho do próximo bloco. Nesse caso, é a impressão do bloco 714 255.

Agora que estudamos a primeira parte do bloco, ou seja, seu cabeçalho, vamos analisar a segunda parte do bloco Bitcoin juntos.

As árvores Merkle de um bloco de Bitcoin

As transações em um bloco de Bitcoin não são listadas simplesmente uma após a outra. Em vez disso, eles são organizados em um acumulador criptográfico chamado “árvore Merkle”. Isso possibilita a produção de uma raiz de Merkle, que é um resumo muito pequeno de todas as transações no bloco.

Seu princípio é bem simples de entender. Cada transação é passada primeiro por meio de uma função hash. Os hashes resultantes são concatenados dois a dois (ou seja, colocados de ponta a ponta). Em seguida, eles são passados por uma função hash novamente. Continuamos esse processo assim até obtermos um único hash chamado “raiz de Merkle”.

Como visto anteriormente, essa raiz de Merkle é então incluída no cabeçalho do bloco. Isso permite que todas as transações sejam representadas de forma condensada no cabeçalho. Assim, a menor modificação de uma transação passada altera a árvore Merkle, portanto, também altera a raiz de Merkle e, portanto, altera o cabeçalho do bloco e sua pegada. Como essa impressão digital é usada no próximo bloco, a menor modificação de uma transação anterior finalmente quebra o blockchain do Bitcoin.

Desde 2017 e a introdução do SegWit, os blocos de Bitcoin na verdade contêm 2 árvores Merkle. O primeiro contém as transações sem sua testemunha e o segundo contém a testemunha de cada transação. A raiz da segunda árvore Merkle é incluída na transação da Coinbase para que as alterações possam ser detectadas.

📌 A transação coinbase é a primeira transação no bloco Bitcoin. Ele permite que o minerador vencedor colete os bitcoins que lhe são devidos como recompensa por seu trabalho de mineração. É composto pela recompensa coinbase, que emite novos bitcoins, e pelas taxas de transação incluídas no bloco.

É daí que vem o nome “SegWit”, que é a sigla para “Segregated Witness”, que em francês significa “testemunha separada”.

No diagrama acima, podemos ver que as testemunhas, conhecidas como “WTX”, têm sua própria árvore Merkle. A raiz dessa árvore é colocada na transação coinbase. As transações sem suas testemunhas também têm sua própria árvore Merkle. A raiz da segunda árvore é colocada no cabeçalho do bloco. Então, todas as partes de todas as transações no bloco são condensadas no cabeçalho.

Conclusão

O Blockchain é usado no Bitcoin para evitar gastos duplos. Ele funciona como um servidor de carimbo de data/hora. Portanto, um bloco é simplesmente um agrupamento de transações de Bitcoin com alguns metadados. Sua estrutura é dividida principalmente em dois espaços: o cabeçalho e as árvores Merkle.

O cabeçalho de um bloco é composto por 6 elementos: a versão, a impressão do bloco anterior, a raiz de Merkle, o timestamp, o alvo de dificuldade e o nonce.

As transações, por outro lado, são agrupadas em uma árvore de Merkle. Esse acumulador criptográfico produz uma raiz que é incrementada no cabeçalho do bloco para vincular tudo.

Disponível como podcast

Resumo

Compartilhe o artigo:

Você pode gostar desses itens

A Bitstack SAS, uma empresa registrada no Registro de Comércio e Empresas de Aix-en-Provence sob o número 899 125 090, operando o nome comercial Bitstack, está registrada como agente da Xpollens - uma instituição de dinheiro eletrônico aprovada pela ACPR (CIB 16528 - RCS Nanterre No. 501586341, 110 Avenue de France 75013 Paris) - com a Autoridade de Controle e Resolução Prudencial (“ACPR”).”) sob o número 747088 e aprovado como provedor de serviços de ativos criptográficos (“PSCA”) pela Autorité des Marchés Financiers (“AMF”) como uma troca de criptoativos por fundos, a troca de criptoativos para outros criptoativos, execução de pedidos sobre ativos criptográficos em nome de clientes, custódia e administração de ativos criptográficos em nome de clientes e prestação de serviços de transferência de ativos criptográficos em nome de clientes sob o número A2025-003, cuja sede está localizada em 100 Impasse des Houillères 13590 Meyreuil.

Investir em ativos digitais envolve o risco de perda parcial ou total do capital investido.
O desempenho passado não é garantia de desempenho futuro.
BAIXAR
Bitstack