This article has been translated from English to Portuguese.
Como funcionam as transacçõ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 é registada na blockchain.
Mas como é que este processo de "transferência" funciona realmente?
Nesta lição, vou mostrar-te como funciona uma transação de Bitcoin do início ao fim.
Primeiro, vamos ver como funciona uma transação de Bitcoin na perspetiva de um utilizador. Depois, verás como funciona uma transação de Bitcoin do ponto de vista de um pássaro.
Isto vai ajudar-te a recordar todos os novos conceitos que aprendeste nas lições anteriores.
Estás pronto?!

Digamos que o Homem de Ferro tem 1 bitcoin que quer enviar para o Batman.

Do ponto de vista do Homem de Ferro
A primeira coisa que o Homem de Ferro faria seria abrir a sua carteira Bitcoin.
Pode ser qualquer tipo de carteira mas, neste exemplo, usa uma carteira de software que instalou no seu portátil.

A próxima coisa que faz é pedir ao Batman o seu endereço Bitcoin.
É aqui que o Batman quer receber a sua bitcoin. O Batman envia-lhe um endereço Bitcoin por e-mail e o Homem de Ferro copia e cola.

Depois introduz a quantidade de bitcoins que quer enviar ao Batman.

Como os seus enormes dedos de liga de ouro e titânio são propensos a erros de digitação, verifica duas vezes se introduziu o número correto.
E carrega em Enviar.

O software da carteira pede então a palavra-passe para confirmar a transação.
Para enviar bitcoin, o Ironman precisa de provar à rede Bitcoin que é ele que está a enviar o dinheiro e que é o proprietário do bitcoin.
É aí que entra a sua chave privada (que está guardada na carteira).
Depois de o Homem de Ferro introduzir a palavra-passe correta, o software da carteira "assina" a transação utilizando a chave privada do Batman, criando uma peça separada de dados conhecida como "assinatura digital". (Tudo isto é feito nos bastidores).

Transação Bitcoin nos bastidores
A partir daqui, o envolvimento do Batman está feito.
O software da carteira liga-se a um nó 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 suficientes ligados ao seu endereço para fazer a transação?
- O remetente está autorizado a enviar o BTC?
Por exemplo, verifica se o Batman tem realmente 1 BTC para enviar. Se a transação passar em todas as verificações, o nó passa a transação para outros nós.
Por defeito, os nós não confiam uns nos outros, por isso validam a transação novamente para eles próprios.
E apenas se considerarem a transação válida, partilham a transação com os nós a que estão ligados.

Se uma transação for considerada válida, é então armazenada numa área de armazenamento temporário conhecida como "memory pool" ou "mempool".
Neste ponto, uma transação é considerada "não confirmada" ou "pendente".

Nós especiais, conhecidos como "mineiros", irão empacotar esta transação juntamente com outras transacções válidas do seu mempool num "bloco".

Os mineiros competem então para serem os primeiros a "minerar" o seu bloco. Isto envolve tentar encontrar um número que comece com um número específico de zeros.
A única forma de encontrares este número é por tentativa e erro. Por outras palavras, tenta adivinhar o maior número possível.

O primeiro mineiro a adivinhar um número correto significa que é o primeiro a "minerar" o seu bloco.
No momento em que o mineiro adivinha corretamente, partilha o seu bloco juntamente com o "número vencedor" com outros nós da rede Bitcoin.

Os nós da rede Bitcoin verificam se o minerador adivinhou o número correto e, se estiver correto, adiciona o bloco do minerador vencedor à sua cópia do blockchain. E também envia este bloco para outros nós.
Uma vez que o bloco (que contém a transação) foi agora adicionado à versão "oficial" da cadeia de blocos, 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".

Do ponto de vista do Batman
O Batman vê que a transação foi confirmada e verifica a sua carteira Bitcoin para ver se a bitcoin foi transferida.

Quanto mais blocos forem construídos em cima do bloco com a transação do Ironman, mais "confirmada" está a transação na 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 já o tens!
Um bitcoin foi agora transferido de um endereço pertencente ao Ironman para um novo endereço que pertence ao Batman.
E a menos que o Homem de Ferro ou o Batman partilhem publicamente o endereço da sua carteira Bitcoin, ninguém saberá que dois super-heróis famosos estiveram envolvidos numa transação Bitcoin.
Tudo o que alguém veria seria 1 BTC a ser enviado de um endereço para outro, mas não saberia quem está por detrás dos endereços.
Como podes ver, muitos dos passos de uma transação de Bitcoin são feitos nos bastidores.
Uma vez que o Batman partilhou o seu endereço com o Ironman, e este iniciou a transação usando a sua carteira Bitcoin, o resto foi tratado por computadores e código de software.
Visão panorâmica de uma transação Bitcoin
Agora vamos dar uma visão geral de como funciona uma transação de Bitcoin.
Vamos assumir que o Homem de Ferro já introduziu o endereço do Batman e o montante de bitcoin a enviar.

A carteira do Ironman liga-se a um nó que transmite uma mensagem a todos os computadores ("a rede Bitcoin") que executam uma cópia da base de dados actualizada ("blockchain da Bitcoin") que diz, efetivamente, "Quero enviar 1 bitcoin ao Batman".
O Ironman tem uma sequência única de letras e números chamada "chave privada". Com esta 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 ("full nodes") da rede Bitcoin podem facilmente confirmar se foi o Homem de Ferro quem realmente enviou a mensagem, usando uma sequência diferente de letras e números que o Homem de Ferro fornece, chamada "chave pública" para verificar esta "assinatura digital".
Também podem confirmar facilmente que o Ironman tem 1 bitcoin para enviar porque todos têm uma cópia da base de dados atual.
Todos os nós estão constantemente a atualizar-se uns aos outros com as últimas informações ("transacções") que são adicionadas à rede Bitcoin.
Uma transação existe como um registo da transferência de bitcoin de um endereço para outro. As transacções não são registadas individualmente na blockchain, mas são primeiro agrupadas em blocos.
É importante notar que, neste momento, a transação apenas foi proposta. Nenhum computador actualizou ainda a sua cópia do livro-razão ("blockchain").
As transacções são inicialmente colocadas no que equivale a uma sala de espera ("mempool"), onde ficam à espera de confirmação.
O mempool (pool de memória) é uma base de dados mais pequena de transacções não confirmadas (pendentes) que cada nó mantém. Todas as transacções no mempool estão pendentes e não devem ser confiáveis até que sejam incluídas num bloco.
Como a transação está apenas a ser proposta e não liquidada, o sistema pode rapidamente retransmitir a mensagem para garantir que todos os participantes tenham conhecimento dela.
No diagrama abaixo, o Ironman e o Batman são representados por carteiras roxas.
Os círculos cinzentos representam os computadores ("full nodes") que fazem parte da rede Bitcoin peer-to-peer (P2P).
Os quadrados pretos representam a "blockchain", cópias sequencialmente actualizadas do livro-razão, no momento em que o Ironman propõe a sua transação à rede.
Como podes ver, cópias idênticas da blockchain são armazenadas em computadores de todo o mundo ("full nodes") que executam o software Bitcoin. Este design garante que nenhuma entidade única está no controlo do livro-razão e torna a Bitcoin resistente a ser controlada (ou encerrada) 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 livro-razão. Enquanto o livro-razão inteiro existir em pelo menos um nó completo, haverá um registo de todas as transacções Bitcoin ao longo da história.

Claro que o Ironman não é o único a criar uma transação. Há outros membros dos Vingadores que enviam os seus bitcoins para outros destinatários. Por exemplo, o Capitão América pode estar a enviar alguns bitcoins para o Soldado Invernal.
É aqui que entra um participante especial na rede: os "mineiros".
Os mineiros são computadores que estão espalhados por todo o mundo e formam uma parte crítica da rede Bitcoin. O seu trabalho é juntar ou agrupar novas transacções válidas, como as do Ironman, e propô-las para liquidação.
Esses grupos de transações são chamados de "blocos", que é de onde vem o "bloco" em "blockchain".
Um bloco é um conjunto de transacções. Os blocos são ligados entre si cronologicamente para formar uma "cadeia de blocos" ou blockchain.
Em qualquer altura, milhares destes computadores competem entre si pelo direito de criar o próximo bloco. A competição envolve a resolução de um "puzzle", e os mineiros só podem propor um novo bloco se resolverem o puzzle atual.
Este "puzzle" resume-se basicamente a tentar adivinhar um número correto. A probabilidade de adivinhar um número correto é de cerca de 1 em 6 triliões.
Assim, o truque para seres o primeiro a encontrar um número "vencedor" é adivinhar o maior número possível de números. Para tal, é necessário um grande poder de computação, que consome uma enorme quantidade de energia.
Quem encontrar a solução primeiro tem direito a uma recompensa, conhecida como "recompensa por bloco".
A recompensa do bloco foi concebida para incentivar os nós a participarem na extração de minério. De outra forma, não haveria mineiros, uma vez que não conseguiriam recuperar o elevado custo dos computadores e da eletricidade necessária ao seu funcionamento.
A recompensa do bloco é feita de DOIS componentes:
- Bitcoins recém-cunhados
- 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 mineiro são conhecidos como o "subsídio do bloco" e representam a maior parte da recompensa. Atualmente, cada novo bloco vem com uma recompensa de 6,25 bitcoins recém-cunhados.
Cada bloco contém várias transacções, e todas as transacções incluem uma taxa, que os mineiros cobram.
Resumindo:
Recompensa do bloco = subsídio do bloco + taxas de transação
A recompensa do bloco é o que incentiva os mineiros a realizar o trabalho necessário para verificar as transacções e manter a base de dados.
A cada 210.000 blocos, ou aproximadamente a cada quatro anos, o subsídio de bloco é cortado pela metade, num evento conhecido como "halving". Este processo continuará até que o subsídio por bloco seja zero. Nessa altura, os mineiros apenas cobrarão taxas de transação
Novos blocos são instalados na rede Bitcoin aproximadamente a cada 10 minutos, embora o tempo exato dependa da rapidez com que o "puzzle" é resolvido.
Hoje, 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.
Este processo é mostrado no diagrama abaixo.

Os mineiros são agora representados por círculos cor de laranja.
O quadrado azul mostra o livro-razão atualizado que inclui uma série de novas transacções, incluindo a do Ironman
Por enquanto, apenas um participante da rede (o mineiro que propôs o novo bloco de transacções) pode ver o livro-razão totalmente atualizado.
Todos os outros participantes continuam a ver apenas os blocos mais antigos, que estão representados a preto.
Como a recompensa é significativa, muitos mineiros competem para resolver cada bloco de transacções.
Por definição, resolver o "puzzle" é um esforço dispendioso, uma vez que requer um poder de computação significativo e muita eletricidade. E é impossível saber qual dos milhares de mineiros resolverá o "puzzle" primeiro.
Quando um mineiro resolve o "puzzle" (adivinha um número correto), pode publicar a solução e propor o seu bloco de transacções à rede.
O que é interessante nesta abordagem é que, embora a resolução do puzzle seja difícil e dispendiosa, a verificação do resultado é muito fácil. E quando um mineiro publica uma solução e o seu bloco de transacções, outros membros da rede verificam o trabalho.
Se as transacções forem válidas e a solução para o "puzzle" estiver correta, os participantes da rede actualizam a sua cópia da base de dados para refletir as novas transacções.
Nesse momento, a transação do Ironman é considerada liquidada ou "confirmada". A 1 bitcoin passou do endereço do Ironman para o endereço do Batman e foi oficialmente registada na blockchain.
Este "mecanismodeconsenso" para determinar que transacções são permanentemente registadas e "confirmadas" é o coração do design da blockchain da Bitcoin.
Este processo é mostrado abaixo.

Todos os participantes da rede já aceitaram o novo bloco de transacções proposto( quadradoazul ). Como resultado, os seus registos são actualizados e sincronizados.
É importante notar que a competição para liquidar o próximo bloco de transacções depende da inclusão da informação do bloco anterior, o que faz com que os mineiros actualizem rapidamente a sua cópia da base de dados e garante que a adulteração de um bloco liquidado é muito difícil.
Este "encadeamento de blocos" é a razão pela qual esta arquitetura de base de dados é chamada de "blockchain".
O blockchain do Bitcoin contém todos os blocos desde o seu início, voltando ao primeiro bloco conhecido como "Bloco Génesis".
E se o mineiro desconhecido da Bitcoin que submete um bloco é um mau ator e propõe um bloco inválido de transacções que de alguma forma o beneficia?
E se o Homem de Ferro for malicioso e estiver a tentar enviar o mesmo 1 bitcoin para o Homem-Aranha e para a Mulher Maravilha ao mesmo tempo sem que ninguém se aperceba?
Os participantes da rede examinam cada transação em cada bloco proposto e rejeitam blocos com transacções inválidas. Atualmente, mais de 100.000 nós estão a verificar independentemente cada transação de Bitcoin!
Uma vez que o trabalho de validar transacções e garantir que apenas as transacções válidas são liquidadas é trivialmente fácil para os participantes da rede, mas tentar liquidar transacções é dispendioso, o incentivo para tentar defraudar o sistema é mínimo.
Resumo
Vamos resumir todas as interações na rede Bitcoin:
- Se quiseres enviar bitcoins a outra pessoa, forneces o endereço Bitcoin do destinatário e a tua carteira liga-se a um nó para iniciar uma transação.
- O nó verifica a transação, valida-a e depois transmite e retransmite a transação válida a outros nós e mineiros. Se uma transação violar uma das regras da Bitcoin, os nós rejeitam-na automaticamente.
- Os mineiros agrupam estas transacções num "bloco candidato" (bloco temporário) e competem para serem os primeiros a publicar o seu bloco na cadeia de blocos, sendo os primeiros a adivinhar corretamente uma solução para um "puzzle" matemático.
- O mineiro "vencedor" publica este bloco temporário como um bloco permanente na cadeia de blocos, confirmando a transação (e outras transacções no lote).
- Os nós recebem este bloco e verificam se o mineiro está a seguir 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, retransmite-o para outros nós, para que todos os nós (incluindo os mineiros) possam permanecer em sincronia e manter blockchains idênticos.
- Todos os outros mineiros apagam o bloco temporário em que estavam a trabalhar e começam um novo "bloco candidato" com um novo "puzzle" matemático.
- Assim que o nó ao qual a carteira do destinatário se liga tiver recebido o novo bloco, a carteira do destinatário mostrará um saldo atualizado com os bitcoins recém-recebidos.