iniciar
iniciar

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 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.
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.
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:
.png)
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:

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:
Agora que estudamos a primeira parte do bloco, ou seja, seu cabeçalho, vamos analisar a segunda parte do bloco Bitcoin juntos.
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.
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.
%201.png)
