Blockchain

O arquivo permanente de transações do Bitcoin

Diagrama mostrando a blockchain como um arquivo armazenado pelos nós da rede bitcoin.

A blockchain é um arquivo de transações. É o arquivo mais importante que um nó bitcoin mantém.

Ela é chamada de "blockchain" (cadeia de blocos) porque novas transações são adicionadas ao arquivo em blocos, e esses blocos são construídos um sobre o outro para criar uma cadeia de blocos. Daí, blockchain.

Mas, no fim, a blockchain é o armazenamento permanente das transações de bitcoin.

Blockchain ao vivo — o explorador de blocos em tempo real (tamanho atual da blockchain e a tabela de blocos recentes) será disponibilizado na Fase 3 (reconstruído sobre uma API pública). Por enquanto, este é um marcador.

Download

Como você obtém uma cópia da blockchain?

Diagrama mostrando a blockchain sendo baixada de outros nós da rede.

A forma mais fácil de obter uma cópia da blockchain é rodar um nó Bitcoin.

Quando você roda o programa Bitcoin (ex.: Bitcoin Core), o seu nó baixa automaticamente blocos de outros nós da rede até você ter uma cópia atualizada da blockchain no seu computador.

Quando os nós se conectam uns aos outros, eles informam mutuamente a altura da sua cadeia (quantos blocos têm) durante o handshake inicial. Se outro nó tem mais blocos que você, o seu nó solicita esses blocos aos outros nós até você ter uma cópia completa da blockchain.

Como resultado, os nós estão constantemente se comunicando para replicar a blockchain em cada computador da rede.

Não existe uma versão única ou definitiva da "blockchain". Cada nó mantém a sua própria cópia local da blockchain, e ela pode variar de computador para computador a qualquer momento.

Pode levar um tempo para baixar a blockchain completa quando você roda o Bitcoin pela primeira vez. Isso é chamado de Initial Block Download (IBD).

Mineração

Como novos blocos são adicionados à blockchain?

Diagrama mostrando um bloco sendo minerado na blockchain por um nó da rede.

Novos blocos de transações precisam ser minerados na blockchain.

Em resumo, o processo de mineração envolve coletar transações do memory pool em um bloco candidato e, então, usar poder de processamento para produzir um hash de bloco que esteja abaixo de um valor alvo específico. Isso significa que qualquer nó da rede pode minerar um novo bloco, mas você precisa usar energia para conseguir fazê-lo.

Ícone Ferramenta Hash do Bloco

Cabeçalho do Bloco

Decodifique e codifique um cabeçalho de bloco.

0 bytes
Cabeçalho do Bloco (Campos)

Versão

Versão: 0
0d
0d
Ícone Ferramenta Ajuste de Dificuldade

Ajuste de Dificuldade

Calcule o novo alvo a partir do alvo atual e do tempo real de mineração de um período de 2016 blocos.

0x
0 bytes
Tempo (segundos)
0d
0d

O período de ajuste de dificuldade é de 2016 blocos. Em média, um bloco é minerado a cada 600 segundos (10 minutos), então o tempo esperado é 2016 × 600 = 1.209.600 segundos.

Razão

O tempo real dividido pelo tempo esperado. Multiplicamos o alvo atual por essa razão para obter o novo alvo.

0x
0x
0 bytes

do cabeçalho do bloco, e é esse o alvo de fato usado na mineração.>Nota: esse valor de alvo é levemente truncado para ser armazenado no campo

Quando um nó (ou "minerador") minera um novo bloco com sucesso, ele o compartilha com os outros nós da rede. Ao receberem esse novo bloco, os outros nós o adicionam à sua blockchain, e os mineradores começam a tentar minerar um novo bloco em cima dele.

Diagrama mostrando um bloco recém-minerado sendo propagado para os outros nós da rede.

Como resultado, os mineradores estão constantemente trabalhando para estender a blockchain com novos blocos de transações.

  • Devido ao poder de processamento necessário para minerar um bloco e ao alvo que se ajusta regularmente, novos blocos são adicionados à blockchain a cada 10 minutos (em média).
  • Um nó não é obrigado a tentar minerar novos blocos. Em vez disso, ele pode simplesmente manter uma cópia da blockchain e retransmitir novos blocos a outros nós quando os recebe.

Aqui está um vídeo sobre como funciona a mineração no Bitcoin.

Reorganizações da Cadeia

Dois blocos podem ser minerados ao mesmo tempo?

Enquanto a blockchain é construída, é perfeitamente normal que dois blocos sejam minerados ao mesmo tempo.

Diagrama mostrando um fork temporário na blockchain por causa de dois blocos minerados ao mesmo tempo.
Se dois blocos são minerados ao mesmo tempo, isso causa um "fork" temporário na cadeia.

Nessa situação, os nós consideram o primeiro bloco que recebem como parte da sua blockchain, mas também guardam o segundo bloco que recebem, por garantia. Porém, o segundo bloco a chegar (e as transações dentro dele) não será considerado parte da sua blockchain ativa.

Consequentemente, os nós da rede ficarão em desacordo temporário sobre qual desses dois blocos pertence ao topo da cadeia.

Esse desacordo é resolvido quando o próximo bloco é minerado. O próximo bloco será construído sobre um desses blocos, criando uma nova cadeia mais longa de blocos, e, por regra, os nós sempre adotam a cadeia conhecida mais longa como a sua blockchain ativa.

Como resultado, os nós com a cadeia mais curta fazem uma reorganização da cadeia para tirar os blocos da sua cadeia ativa antiga em favor dos blocos que formam a nova cadeia mais longa.

Diagrama mostrando um fork temporário na blockchain sendo resolvido por meio de uma reorganização da cadeia.
Um fork é resolvido quando um novo bloco é minerado, pois isso cria uma nova cadeia mais longa.

Então, embora possa haver desacordos pela rede sobre qual bloco (ou blocos) pertence ao topo da blockchain a qualquer momento, a mineração de novos blocos e a adoção da cadeia mais longa fazem com que os nós sempre acabem sincronizados.

Um fork temporário como esse é raro. Acontece cerca de uma vez por mês (aproximadamente) e geralmente só afeta o bloco do topo da blockchain.

Cadeia Mais Longa

Blocos na blockchain podem ser substituídos?

Devido à forma como a blockchain é construída, é possível que blocos no topo da cadeia sejam substituídos.

Os nós sempre adotam a cadeia mais longa como a versão "verdadeira" da blockchain. Portanto, você poderia sempre tentar construir uma nova cadeia mais longa de blocos para substituir uma existente, e todos os nós da rede a adotariam.

Como resultado, isso permite "desfazer" ou reverter uma transação de bitcoin da blockchain.

Diagrama mostrando os nós da rede adotando a cadeia mais longa de blocos como a sua blockchain.
Se você construir uma nova cadeia mais longa de blocos, os outros nós a adotarão como a sua blockchain.

Porém, o problema é que todos os mineradores são incentivados a sempre construir sobre a cadeia conhecida mais longa. Isso significa que o poder de processamento combinado dos mineradores da rede estará focado em construir uma única cadeia, que será construída mais rápido do que qualquer cadeia que você pudesse construir sozinho.

Diagrama mostrando os nós da rede adotando a cadeia mais longa de blocos como a sua blockchain.
Os mineradores naturalmente trabalham para estender a cadeia mais longa atual.

Em outras palavras, o poder de processamento combinado da rede trabalhando para construir a blockchain ajuda a proteger os blocos (e transações) que já foram minerados na blockchain.

Então, a única forma de você realizar uma reorganização intencional da cadeia (para "desfazer" uma transação em um bloco existente) seria ter mais poder de processamento que todos os outros mineradores combinados, para conseguir minerar mais rápido que a rede e construir uma cadeia mais longa para todos adotarem. Isso é chamado de "ataque de 51%".

Ninguém realizou um ataque de 51% bem-sucedido na blockchain do Bitcoin.

Localização

Onde a blockchain é armazenada?

Se você roda um nó Bitcoin Core, os arquivos da blockchain ficam no seguinte local do seu computador:

A blockchain é dividida em vários arquivos chamados blk00000.dat, blk00001.dat, blk00002.dat, e assim por diante. Isso porque é mais fácil trabalhar com vários arquivos pequenos do que com um único arquivo gigante. Veja blk.dat para detalhes.

Resumo

A visualização animada da construção da blockchain (incluindo uma reorganização da cadeia) será adicionada posteriormente.

A blockchain é o armazenamento permanente das transações de bitcoin. Novas transações são adicionadas ao arquivo em blocos, e esses blocos são construídos uns sobre os outros para criar uma cadeia.

Novos blocos são adicionados à blockchain por meio da mineração, que envolve o uso de poder de processamento de computador. Isso significa que é preciso energia para minerar um bloco, mas qualquer nó pode trabalhar para tentar adicionar o próximo bloco à cadeia.

Quando um novo bloco é minerado, ele é retransmitido pela rede, e os nós o verificam e o adicionam à sua cadeia. Isso torna a blockchain um livro-razão de transações em constante crescimento, distribuído por vários computadores em uma rede.

Os nós sempre adotam a cadeia mais longa de blocos como a versão ativa da blockchain, o que resolve os desacordos sobre quais blocos pertencem ao topo da cadeia. Isso também protege os blocos que já estão na blockchain, pois exigiria grandes quantidades de energia para construir uma cadeia que substitua blocos mais abaixo na cadeia.

O mecanismo de minerar e adotar a cadeia mais longa permite que vários computadores em uma rede concordem com o mesmo conjunto de blocos e transações, ao mesmo tempo em que torna difícil para qualquer um fazer mudanças históricas nos blocos (e, portanto, nas transações) da blockchain.

Como resultado, a blockchain é um arquivo de transações seguro, distribuído e regularmente atualizado.

Recursos