This article has been translated from English to Brazilian.

Como funcionam as transações de Bitcoin?

Uma transação de Bitcoin é uma transferência de uma determinada quantidade de bitcoins de um endereço para outro endereço que é registrada no blockchain.

Mas como esse processo de "transferência" realmente funciona?

Nesta lição, mostrarei a você como funciona uma transação de Bitcoin do início ao fim.

Primeiro, veremos como funciona uma transação de Bitcoin do ponto de vistado usuário. Depois, veremos como funciona uma transação de Bitcoin do ponto de vista de um pássaro.

Isso ajudará você a se lembrar de todos os novos conceitos que aprendeu nas lições anteriores.

Você está pronto?

Start Bitcoin Transaction

Digamos que a Ironman tenha 1 bitcoin que deseja enviar para o Batman.

Ironman sends 1 BTC to Batman

Do ponto de vista do Homem de Ferro

A primeira coisa que o Homem de Ferro faria seria abrir sua carteira de Bitcoin.

Pode ser qualquer tipo de carteira, mas, neste exemplo, ele está usando uma carteira de software que instalou em seu laptop.

Ironman initiates Bitcoin transaction

A próxima coisa que ele faz é pedir ao Batman seu endereço de Bitcoin.

Esse é o local onde o Batman deseja receber seu bitcoin. O Batman lhe envia um endereço de Bitcoin por e-mail e o Ironman o copia e cola.

Ironman asks for Batman's address

Em seguida, o Ironman digita a quantidade de bitcoins que deseja enviar ao Batman.

Batman enters 1 BTC

Como seus enormes dedos de liga de ouro e titânio são propensos a erros de digitação, ele verifica duas vezes se digitou o número correto.

E clica em Enviar.

Batman sends 1 BTC

Em seguida, o software da carteira solicita a senha para confirmar a transação.

Para enviar o bitcoin, o Ironman precisa provar para a rede Bitcoin que é ele quem está enviando o dinheiro e que ele é o proprietário do bitcoin.

É aí que entra sua chave privada (que está armazenada na carteira).

Depois que o Ironman digita a senha correta, o software da carteira "assina" a transação usando a chave privada do Batman, criando uma parte separada de dados conhecida como "assinatura digital". (Tudo isso é feito nos bastidores).

Bitcoin wallet signs transaction

Transação de Bitcoin nos bastidores

A partir daqui, o envolvimento do Batman está concluído.

O software da carteira se conecta a um nó de Bitcoin e envia a mensagem de transação, juntamente com a "assinatura digital" e a chave pública.

O nó verifica se a transação é válida:

  • O remetente tem BTC suficiente vinculado ao seu endereço para fazer a transação?
  • O remetente está autorizado a enviar o BTC?

Por exemplo, ele verifica se o Batman realmente tem 1 BTC para enviar. Se a transação for aprovada em todas as verificações, o nó passará a transação para outros nós.

Por padrão, os nós não confiam uns nos outros, portanto, eles validarão a transação novamente para si mesmos.

E somente se considerarem a transação válida, eles compartilharão a transação com os nós aos quais estão conectados.

Bitcoin transaction sent to nodes

Se uma transação for considerada válida, ela será armazenada em uma área de armazenamento temporário conhecida como "pool de memória" ou "mempool".

Nesse momento, a transação é considerada "não confirmada" ou "pendente".

Bitconi transaction stored in mempool

Nós especiais conhecidos como "mineradores" empacotarão essa transação junto com outras transações válidas de seu mempool em um "bloco".

Bitcoin miners bundle transactions into a block

Os mineradores então competem para serem os primeiros a "minerar" seu bloco. Isso envolve a tentativa de encontrar um número que comece com um número específico de zeros.

A única maneira de encontrar esse número é por tentativa e erro. Em outras palavras, você deve fazer o maior número possível de tentativas.

Bitcoin miners compete

O primeiro minerador a adivinhar um número correto significa que ele é o primeiro a "minerar" seu bloco.

No momento em que o minerador adivinha corretamente, ele compartilha seu bloco juntamente com o "número vencedor" com outros nós da rede Bitcoin.

First Bitcoin miner to guess correct nonce wins

Os nós da rede Bitcoin verificam se o minerador adivinhou o número correto e, se estiver correto, ele adiciona o bloco do minerador vencedor à sua cópia do blockchain. E eles também enviam esse bloco para outros nós.

Como o bloco (que contém a transação) agora foi adicionado à versão "oficial" do blockchain, a transação agora é considerada "confirmada"

Quando esse bloco é criado e a nova transação é verificada e incluída nesse bloco, diz-se que a transação tem "uma confirmação".

Bitcoin nodes validate new block

Do ponto de vista do Batman

Batman vê que a transação foi confirmada e verifica sua carteira de Bitcoin para ver se o bitcoin foi transferido.

Bitcoin transaction confirmed

Quanto mais blocos forem construídos sobre o bloco com a transação do Ironman, mais "confirmada" será a transação no blockchain.

Basicamente, cada bloco adicionado é considerado uma "confirmação adicional". Esperar por seis confirmações é o padrão atual para que a maioria das transações seja considerada segura.

E três você tem!

Um bitcoin foi transferido de um endereço de propriedade do Ironman para um novo endereço de propriedade do Batman.

E, a menos que o Homem de Ferro ou o Batman compartilhem publicamente o endereço de suas carteiras de Bitcoin, ninguém saberá que dois super-heróis famosos estavam envolvidos em uma transação de Bitcoin.

Tudo o que você veria seria 1 BTC sendo enviado de um endereço para outro, mas não saberia quem está por trás dos endereços.

Como você pode ver, muitas das etapas de uma transação de Bitcoin foram realizadas nos bastidores.

Depois que o Batman compartilhava seu endereço com o Ironman e este iniciava a transação usando sua carteira de Bitcoin, o restante era feito por computadores e códigos de software.

Visão panorâmica de uma transação de Bitcoin

Agora vamos dar uma visão geral de como funciona uma transação de Bitcoin.

Vamos supor que o Ironman já tenha digitado o endereço do Batman e a quantia de bitcoin a ser enviada.

Bitcoin has been sent

A carteira do Ironman se conecta a um nó que transmite uma mensagem a todos os computadores ("a rede Bitcoin") que executam uma cópia do banco de dados atualizado ("blockchain do Bitcoin") que diz, efetivamente, "Quero enviar 1 bitcoin para o Batman".

O Ironman tem uma sequência exclusiva de letras e números chamada de "chave privada". Com essa chave privada, o software da carteira do Batman gera uma "assinatura digital" que garante que a mensagem vem dele e não de outra pessoa.

Os computadores ("nós completos") da rede Bitcoin podem confirmar facilmente se foi o Ironman quem realmente enviou a mensagem usando uma sequência diferente de letras e números fornecida pelo Ironman, chamada de "chave pública", para verificar essa "assinatura digital".

Eles também podem confirmar facilmente que Ironman tem 1 bitcoin para enviar porque todos eles têm uma cópia do banco de dados atual.

Todos os nós estão constantemente atualizando uns aos outros com as informações mais recentes ("transações") que são adicionadas à rede Bitcoin.

Uma transação existe como um registro da transferência de bitcoin de um endereço para outro. As transações não são registradas individualmente no blockchain, mas são primeiro agrupadas em blocos.

É importante ressaltar que, nesse momento, a transação foi apenas proposta. Nenhum computador atualizou sua cópia do livro-razão ("blockchain") ainda.

As transações são inicialmente colocadas no que equivale a uma sala de espera ("mempool"), onde ficam aguardando confirmação.

O mempool (pool de memória) é um banco de dados menor de transações não confirmadas (pendentes) que cada nó mantém. Todas as transações no mempool estão pendentes e não devem ser confiáveis até que sejam incluídas em um bloco.

Como a transação está apenas sendo proposta e não liquidada, o sistema pode retransmitir rapidamente a mensagem para garantir que todos os participantes estejam cientes dela.

No diagrama abaixo, Ironman e Batman são representados por carteiras roxas.

Os círculos cinza representam os computadores ("full nodes") que fazem parte da rede Bitcoin ponto a ponto (P2P).

Os quadrados pretos representam o "blockchain", cópias atualizadas sequencialmente do livro-razão, no momento em que Ironman propõe sua transação à rede.

Como você pode ver, cópias idênticas do blockchain são armazenadas em computadores de todo o mundo ("full nodes") que executam o software Bitcoin. Esse design garante que nenhuma entidade esteja no controle do livro-razão e torna o Bitcoin resistente a ser controlado (ou fechado) por qualquer governo ou autoridade central.

Todos os nós que mantêm uma cópia completa do blockchain, conhecidos como "nós completos", precisariam ser destruídos para apagar o registro. Enquanto o livro-razão inteiro existir em pelo menos um nó completo, haverá um registro de todas as transações de Bitcoin ao longo da história.

Ironman and Batman as purple wallets

É claro que o Homem de Ferro não é o único a criar uma transação. Há outros membros dos Vingadores enviando seus bitcoins para outros destinatários. Por exemplo, o Capitão América poderia estar enviando alguns bitcoins para o Soldado Invernal.

É aqui que entra um participante especial da rede: os "mineradores".

Os mineradores são computadores espalhados pelo mundo e formam uma parte essencial da rede Bitcoin. Seu trabalho é agrupar novas transações válidas, como as do Ironman, e propô-las para liquidação.

Esses grupos de transações são chamados de "blocos", que é a origem do "bloco" em "blockchain".

Um bloco é uma coleção de transações. Os blocos são vinculados cronologicamente para formar uma "cadeia de blocos" ou blockchain.

A qualquer momento, milhares desses computadores estão competindo entre si pelo direito de criar o próximo bloco. A competição envolve a solução de um "quebra-cabeça", e os mineradores só podem propor um novo bloco se resolverem o quebra-cabeça atual.

Esse "quebra-cabeça" basicamente se resume à tentativa de adivinhar um número correto. A probabilidade de você adivinhar um número correto é de aproximadamente 1 em 6 trilhões.

Portanto, o truque para ser o primeiro a encontrar um número "vencedor" é adivinhar o maior número possível de números. Isso requer muita capacidade de computação, o que consome grandes quantidades de energia.

Quem encontrar a solução primeiro terá direito a uma recompensa, conhecida como "recompensaporbloco".

A recompensa do bloco foi criada para incentivar os nós a participarem da mineração. Caso contrário, não haveria mineradores, pois eles não conseguiriam recuperar o alto custo dos computadores e o custo da eletricidade para operá-los.

A recompensa do bloco é composta por DOIS componentes:

  1. Bitcoins recém-criados
  2. Taxas de transação (que são pagas pela pessoa que inicia a transação, como o Ironman)

Os bitcoins recém-criados "ganhos" pelo minerador são conhecidos como "subsídio de bloco" e representam a maior parte da recompensa. Atualmente, cada novo bloco vem com uma recompensa de 6,25 bitcoins recém-criados.

Cada bloco contém várias transações, e todas as transações incluem uma taxa, que os mineradores cobram.

Em resumo:

Recompensa do bloco = subsídio do bloco + taxas de transação

A recompensa do bloco é o que incentiva os mineradores a realizar o trabalho necessário para verificar as transações e manter o banco de dados.

A cada 210.000 blocos, ou aproximadamente a cada quatro anos, o subsídio do bloco é cortado pela metade em um evento conhecido como "halving". Esse processo continuará até que o subsídio do bloco seja zero. Nesse ponto, os mineradores só cobrarão taxas de transação

Novos blocos são estabelecidos na rede Bitcoin aproximadamente a cada 10 minutos, embora o tempo exato dependa da rapidez com que o "quebra-cabeça" é resolvido.

Atualmente, a maior parte da mineração é feita por "pools de mineração", grupos de mineradores que combinam seu poder de processamento e compartilham a recompensa do bloco entre si.

Esse processo é mostrado no diagrama abaixo.

Bitcoin Network with Miners

Os mineradores agora são representados por círculos laranja.

O quadrado azul mostra o livro-razão atualizado que inclui várias transações novas, inclusive a do Ironman

Por enquanto, apenas um participante da rede (o minerador que propôs o novo bloco de transações) pode ver o livro-razão totalmente atualizado.

Todos os outros participantes ainda veem apenas os blocos mais antigos, que estão representados em preto.

Como a recompensa é significativa, muitos mineradores competem para liquidar cada bloco de transações.

Por definição, resolver o "quebra-cabeça" é um esforço caro, pois requer um poder de computação significativo e muita eletricidade. E é impossível saber qual dos milhares de mineradores resolverá o "quebra-cabeça" primeiro.

Quando um minerador resolve o "quebra-cabeça" (adivinha um número correto), ele pode publicar a solução e propor seu bloco de transações para a rede.

O que é interessante nessa abordagem é que, embora a solução do quebra-cabeça seja difícil e cara, a verificação do resultado é muito fácil. E quando um minerador publica uma solução e seu bloco de transações, outros membros da rede verificam o trabalho.

Se as transações forem válidas e a solução do "quebra-cabeça" estiver correta, os participantes da rede atualizarão sua cópia do banco de dados para refletir as novas transações.

Nesse momento, a transação do Ironman é considerada liquidada ou "confirmada". O 1 bitcoin foi transferido do endereço do Ironman para o endereço do Batman e foi oficialmente registrado no blockchain.

Esse "mecanismodeconsenso" para determinar quais transações são permanentemente registradas e "confirmadas" é o coração do projeto de blockchain do Bitcoin.

Esse processo é mostrado abaixo.

Bitcoin Network syncs blockchain

Todos os participantes da rede já aceitaram o novo bloco de transações proposto( quadradoazul ). Como resultado, seus livros contábeis são atualizados e sincronizados.

É importante ressaltar que a concorrência para liquidar o próximo bloco de transações depende da inclusão das informações do bloco anterior, o que faz com que os mineradores atualizem rapidamente sua cópia do banco de dados e garante que seja muito difícil adulterar um bloco liquidado.

Esse "encadeamento de blocos" é o motivo pelo qual essa arquitetura de banco de dados é chamada de "blockchain".

O blockchain do Bitcoin contém todos os blocos desde sua criação, desde o primeiro bloco conhecido como "Bloco Gênesis".

E se o minerador desconhecido de Bitcoin que envia um bloco for um mau ator e propuser um bloco inválido de transações que, de alguma forma, o beneficie?

Ou se o Homem de Ferro for mal-intencionado e estiver tentando enviar o mesmo 1 bitcoin para o Homem-Aranha e a Mulher Maravilha ao mesmo tempo sem que ninguém perceba?

Os participantes da rede examinam cada transação em cada bloco proposto e rejeitam blocos com transações inválidas. Atualmente, mais de 100.000 nós estão verificando independentemente cada transação de Bitcoin!

Como o trabalho de validar transações e garantir que somente transações válidas sejam liquidadas é trivialmente fácil para os participantes da rede, mas tentar liquidar transações é caro, o incentivo para tentar fraudar o sistema é mínimo.

Resumo

Vamos resumir todas as interações na rede Bitcoin:

  • Se você quiser enviar bitcoins para outra pessoa, forneça o endereço de Bitcoin do destinatário e sua carteira se conectará a um nó para iniciar uma transação.
  • O nó verificará a transação, a validará e, em seguida, transmitirá e retransmitirá a transação válida para outros nós e mineradores. Se uma transação violar uma das regras do Bitcoin, os nós a rejeitarão automaticamente.
  • Os mineradores agrupam essas transações em um "bloco candidato" (bloco temporário) e competem para ser o primeiro a publicar seu bloco no blockchain, sendo o primeiro a adivinhar corretamente uma solução para um "quebra-cabeça" matemático.
  • O minerador "vencedor" publica esse bloco temporário como um bloco permanente no blockchain, confirmando a transação (e outras transações no lote).
  • Os nós recebem esse bloco e verificam se o minerador está seguindo as regras da rede. (Se o bloco violar uma das regras do Bitcoin, os nós o rejeitarão automaticamente).
  • Sempre que um nó recebe um novo bloco e o considera válido, ele o retransmite para outros nós, de modo que todos os nós (inclusive os mineradores) possam permanecer sincronizados e manter blockchains idênticos.
  • Todos os outros mineradores excluem o bloco temporário em que estavam trabalhando e iniciam um novo "bloco candidato" com um novo "quebra-cabeça" matemático.
  • Quando o nó ao qual a carteira do destinatário se conecta tiver recebido o novo bloco, a carteira do destinatário mostrará um saldo atualizado com os bitcoins recém-recebidos.