This article has been translated from English to Brazilian.

O Bitcoin responde à pergunta: "Qual transação você deve manter?"

A maneira como o Bitcoin responde a essa pergunta é brilhante.

Veja como...

Cada nó da rede Bitcoin compartilha informações sobre novas transações.

As transações feitas na rede Bitcoin NÃO são adicionadas diretamente ao blockchain. Elas são primeiro coletadas e armazenadas no que chamamos de "pool de memória".

TODOS os computadores que executam o programa Bitcoin criam uma área de armazenamento temporário para transações chamada "memory pool". Também conhecido como "mempool", para abreviar.

Cada nó do Bitcoin tem seu próprio mempool, onde armazena a fila de transações que verificou e considera válidas.Bitcoin Node's Memory Pool

Em termos gerais, um mempool é uma fila organizada em que as transações são armazenadas e classificadas antes de serem adicionadas a um bloco recém-criado.

  • O pool de memória contém transações "novas" ou não confirmadas (armazenadas como transações individuais).
  • O blockchain armazena transações "arquivadas" ou confirmadas (empacotadas em "blocos").

Todas as transações de bitcoin são simplesmente transações "não confirmadas" e só existem no mempool antes de serem "confirmadas" e adicionadas ao blockchain.

Na rede Bitcoin, todos os nós completos têm um pool de memória.

All Bitcoin nodes have a memory pool

Digamos que você inicie uma transação neste lado da rede( transaçãoroxa ).

Depois, você vai até aqui, usa o mesmo bitcoin e insere a transação vermelha neste computador.

Se você notar, essas duas transações NÃO são gravadas diretamente no arquivo. Ambas as transações são simplesmente armazenadas primeiro no pool de memória de cada computador.

Both transactions are stored in memory pool

Portanto, ambas as transações se propagarão pela rede.

Esse computador REJEITARÁ a transação vermelha porque já recebeu a roxa.

Transaction is rejected from mempool

Portanto, agora AMBAS as transações estão na rede.

Mas elas ainda NÃO foram gravadas no arquivo, portanto, o arquivo ainda não foi atualizado.

Both transactions are waiting in mempool

O que acontecerá então é que todos esses computadores trabalharão e tentarão colocar suas transações do pool de memória no arquivo.

Eles competirão para serem os primeiros a ter suas transações do pool de memória adicionadas ao topo do arquivo.Bitcoin mining nodes compete

Digamos que este computador (em amarelo) seja o primeiro a conseguir fazer isso.

Bitcoin node first to add transaction to blockchain

Ele adiciona sua transação do pool de memória ao arquivo:

Bitcoin nodes adds transaction to blockchain

E quando isso for feito....

Ele passará sua cópia atualizada do arquivo para todos os outros computadores aos quais está conectado....

Bitcoin node shares blockchain copy

E eles atualizarão suas cópias.

Na ilustração abaixo, este nó aqui recebe o arquivo atualizado que contém a transação roxa gastando o mesmo bitcoin.

Bitcoin node kicks out conflicting transaction

O que acontece com a transação vermelha conflitante em seu pool de memória?

Como o mesmo bitcoin já foi gasto na transação roxa, ele expulsará a transação vermelha de seu pool de memória!

Em seguida, esse nó transmitirá o arquivo atualizado.

E o(s) outro(s) nó(s) fará(ão) a mesma coisa... expulsará(ão) quaisquer transações conflitantes em seu pool de memória.

All Bitcoin nodes kick out conflicting transaction

Agora todos os computadores têm o arquivo atualizado.

É assim que você resolve o problema de ter duas transações conflitantes na rede.

Você literalmente tem apenas uma "área de espera" (mempool) para transações pendentes e os nós competem e tentam adicionar suas transações ao arquivo.

Neste exemplo, o cara roxo receberia o bitcoin...Bitcoin transaction is successful

Mas quando você tentar gastar o mesmo bitcoin com o cara vermelho, não vai funcionar.Bitcoin transaction fails

Esse processo de competição entre os nós para tentar obter suas transações do pool de memória para o arquivo ("o blockchain") é chamado de MINERAÇÃO.