Enviando

Como você envia bitcoins?

Então você acabou de comprar alguns bitcoins e sacá-los para a sua carteira. Agora você quer enviar alguns bitcoins para outra pessoa.

É aqui que você precisa fazer uma transação.

Neste guia, vou te dar uma visão geral rápida de como fazer sua primeira transação de bitcoin.

Básico

Como você faz uma transação?

Diagrama mostrando o envio de bitcoins por uma carteira.

O processo para fazer uma transação de bitcoin é o mesmo para qualquer carteira que você use:

  1. Insira o endereço. É para onde você quer "enviar" os bitcoins.
  2. Insira o valor. A quantidade de bitcoins que você quer enviar. Isso provavelmente será em BTC ou satoshis.
    Ícone Ferramenta Conversor de Unidades
    Ícone Ferramenta

    Conversor de Unidades

    Converta entre as unidades comuns de bitcoin.

  3. Defina a taxa. (opcional) Isso basicamente define a "prioridade" da rapidez com que a transação será finalizada.

Aí é só clicar em "enviar" e pronto.

A partir daqui, você só precisa esperar a transação ser adicionada à blockchain

Sempre confira três vezes o valor e o endereço. Você não pode "desfazer" transações de bitcoin, então, se enviar bitcoins para o endereço errado, não vai recuperá-los.

Não se preocupe demais com erros de digitação no endereço. O endereço contém um checksum, o que significa que sua carteira detectará se ele for inválido. Então você não precisa conferir cada caractere para garantir que o endereço está correto – eu geralmente só confiro os primeiros e os últimos 4 ou 5 caracteres.

Use o TXID para rastrear sua transação. Quando você envia sua transação, sua carteira te dá um TXID, que é um número de referência único que você pode usar para verificar o status da sua transação em qualquer explorador de blockchain.

Processo

O que acontece quando você faz uma transação?

Quando você clica em "enviar", sua carteira envia sua transação para um dos nós da rede bitcoin.

A partir daí, ela é retransmitida de nó em nó até que todos os nós da rede tenham uma cópia da sua transação.

Animação mostrando uma transação de bitcoin sendo enviada a um nó e retransmitida pela rede.

No início, sua transação fica armazenada no memory pool de cada nó, que é como uma "área de espera" temporária para transações que foram recentemente transmitidas pela rede.

Animação mostrando uma transação sendo armazenada na memória de cada nó.

Depois de aproximadamente 10 minutos, um dos nós da rede vai minerar as transações mais recentes do seu memory pool na sua blockchain.

Ele então compartilhará esse novo bloco de transações com os outros nós da rede.

Animação mostrando um novo bloco de transações sendo adicionado à blockchain.

Ao receber esse bloco, cada nó o verifica e o adiciona à sua blockchain também.

Como resultado, cada um dos nós atualiza sua blockchain para incluir as transações mais recentes, que foram movidas do memory pool (armazenamento temporário) para a blockchain (armazenamento permanente):

Diagrama mostrando a blockchain como armazenamento permanente de transações.

E se a sua transação for incluída em um bloco, então ela foi confirmada e o pagamento está completo.

Se não, você só vai ter que continuar esperando sua transação ir do memory pool para a blockchain.

Novos blocos são adicionados à blockchain em intervalos de 10 minutos (em média). Então, dependendo da taxa que você definiu na sua transação, você não deve ter que esperar muito para que ela seja confirmada.

Não confie em transações no memory pool. Transações no memory pool não são permanentes, então não considere um pagamento como "completo" até que a transação tenha chegado à blockchain.

Mineração

Como uma transação chega à blockchain?

Cada nó tem a oportunidade de tentar adicionar as transações do seu memory pool à sua blockchain. Esse processo é conhecido como mineração.

Para adicionar transações à blockchain, um minerador reúne transações do seu memory pool em um contêiner chamado bloco candidato. A partir daí, o minerador usa energia para tentar "minerar" esse bloco na blockchain.

Diagrama mostrando um minerador usando poder de processamento para tentar minerar um bloco candidato na blockchain.
Qualquer nó da rede pode se tornar um minerador.

Como resultado, o processo de mineração é basicamente uma competição em toda a rede, em que qualquer nó tem a chance de minerar o próximo bloco. Um nó que minera mais rápido tem mais chance de minerar o próximo bloco, mas o processo de mineração é imprevisível, então nenhum nó isolado tem controle sobre a adição de blocos à blockchain.

Diagrama mostrando vários mineradores na rede tentando adicionar o próximo bloco à blockchain.
Qualquer um desses mineradores poderia ser o que mina o próximo bloco na blockchain.

Depois de cerca de 10 minutos (em média), um dos mineradores acabará minerando o próximo bloco de transações e o compartilhará com todos os outros nós da rede. Cada nó então confere o bloco (para garantir que é válido e foi minerado corretamente) e o adiciona à sua blockchain também.

Diagrama mostrando um minerador minerando um bloco e enviando-o aos outros nós da rede.
Os nós pela rede atualizam sua blockchain com o bloco recém-minerado.

A partir daí, cada minerador constrói um novo bloco candidato (com novas transações do memory pool) e começa a tentar minerar o próximo bloco na cadeia.

Como resultado, os mineradores trabalham constantemente para estender a blockchain com novos blocos de transações do seu memory pool.

Por que as transações precisam ser mineradas?

O mecanismo de mineração é importante pelos seguintes motivos:

  1. Impede que transações conflitantes sejam gravadas na blockchain. Se duas transações conflitantes forem enviadas à rede (ex.: tentando enviar os mesmos bitcoins para dois lugares diferentes), então apenas uma delas será gravada na blockchain.
  2. Qualquer nó pode minerar o próximo bloco de transações. Devido ao fato de o mecanismo de mineração ser imprevisível, qualquer nó tem chance de minerar o próximo bloco, o que significa que nenhum nó isolado tem controle total sobre as transações que são adicionadas à blockchain.
  3. É difícil remover transações da blockchain. Minerar um bloco exige energia, o que torna difícil para qualquer minerador individual adquirir energia suficiente para reescrever a blockchain.

No geral, a mineração é o que permite que vários computadores em uma rede descentralizada concordem com a mesma cópia de um arquivo regularmente atualizado.

Ou, em outras palavras, é o que permite ao Bitcoin manter um livro-razão seguro de transações.

Taxas

O que são as taxas de transação?

Toda transação de bitcoin inclui uma taxa.

Essas taxas são recolhidas pelos mineradores e, portanto, funcionam como um incentivo para que os mineradores incluam sua transação em um bloco.

Por quê?

Porque um bloco candidato só pode conter uma certa quantidade de dados. Então, se muitas pessoas estão fazendo transações ao mesmo tempo, pode haver mais transações dentro do memory pool do que cabem em um bloco:

Diagrama mostrando mais transações no memory pool do que cabem em um bloco candidato.

Nota: Um bloco pode conter cerca de 2 MB de dados de transação, mas o memory pool pode conter 300 MB ou mais.

Portanto, os mineradores escolhem popular seus blocos candidatos com as transações que têm as taxas mais altas, porque podem recolher essas taxas (via transação coinbase) se conseguirem minerar o bloco.

Diagrama mostrando um minerador selecionando as transações de maior taxa do memory pool para preencher seu bloco candidato.

Porque, no fim das contas, a maioria dos mineradores quer ganhar o máximo de dinheiro possível com a mineração.

Então, quando há muitas transações no memory pool, quanto maior a taxa que você coloca na sua transação, maior a "prioridade" dela para ser incluída em um bloco, e mais rápido ela será minerada.

Animação mostrando como você pode definir uma taxa em uma transação ao enviar bitcoins de uma carteira.
  • O memory pool é como uma fila. As transações com as taxas mais altas ficam na frente.
  • A taxa de transação efetivamente determina a posição da transação no memory pool. Quanto maior a taxa, mais rápido ela será minerada.
  • Uma boa carteira permite que você defina sua própria taxa. A carteira também deve te dar uma estimativa de quanto tempo levará para a transação ser minerada com base no tamanho da sua taxa.

Que taxa devo colocar na minha transação?

Isso depende de quão rápido você quer que sua transação seja minerada com base em quantas transações estão atualmente esperando no memory pool:

Tamanho do mempool (exemplo):
0,03 vMB
144 transações
Nota: Estes são valores de exemplo. O tamanho do seu memory pool varia conforme há quanto tempo o seu nó está online e a quais nós você está conectado.

Quanto mais rápido você quiser que sua transação seja minerada, maior a taxa que você deve usar.

Portanto, uma boa carteira usa o tamanho atual do memory pool para recomendar várias taxas por byte com base em quantos blocos você gostaria que sua transação demorasse para ser minerada:

BlocosTempo (estimativa)Taxa
23 sats/vbyte
31 sats/vbyte
61 sats/vbyte
121 sats/vbyte
1441 sats/vbyte
4321 sats/vbyte

Nota: Um novo bloco é minerado a cada 10 minutos (em média).

  • Essas taxas vêm do comando bitcoin-cli estimatesmartfee do Bitcoin Core. É o que a maioria das carteiras de bitcoin usa para recomendar taxas.
  • Estas são estimativas. Ninguém pode garantir quando sua transação será minerada, pois mais transações podem entrar na rede depois da sua e empurrar a sua transação para o fim da fila.
  • Os tamanhos de taxa são ordenados por sats/vbyte. É o tamanho da taxa em satoshis dividido pelo tamanho da transação em bytes virtuais. Isso porque os mineradores querem obter o máximo de taxas pelo espaço que cada transação ocupa em um bloco.

Você também pode sempre escolher definir sua própria taxa personalizada na transação. Você pode verificar o status atual do memory pool e decidir uma taxa que ache que funcionará melhor para suas necessidades.

Mas, em geral:

  • É útil verificar o estado do memory pool ao decidir o tamanho da taxa de transação:
  • Não coloque uma taxa muito alta na sua transação a menos que realmente precise. Se você não se importa de esperar um pouco para sua transação ser minerada, use uma taxa menor.

O que acontece se eu colocar uma taxa baixa na minha transação?

Ao definir uma taxa baixa na sua transação, você a coloca "no fim da fila" do memory pool.

Isso não tem problema, mas significa que você vai ter que esperar por um período mais calmo em que o memory pool se esvazie para que sua transação possa ser incluída em um bloco.

Animação mostrando uma transação de taxa baixa sendo incluída em um bloco depois que todas as transações de taxa mais alta foram mineradas.
Transações de taxa mais baixa acabarão sendo incluídas em um bloco se não houver transações de taxa mais alta restando no memory pool.

Porém, as transações só ficam no memory pool de um nó por 2 semanas (veja mempoolexpiry), e após esse período o nó remove a transação do seu memory pool. Se isso acontecer, sua transação desaparece da rede, e é como se ela nunca tivesse acontecido.

Diagrama mostrando uma transação sendo removida do memory pool se não for minerada em um certo tempo.
As transações só ficam esperando no memory pool por um tempo determinado.
  • A maioria das carteiras permite aumentar a taxa da sua transação enquanto ela ainda está no memory pool. Então, se sua transação está demorando demais para ser minerada, você pode aumentar o tamanho da taxa para acelerar o processo.
  • Você sempre pode retransmitir sua transação para a rede se ela sair do memory pool.

Não considere uma transação de bitcoin como final até que ela tenha sido confirmada. Transações com taxas muito baixas podem não ser mineradas e desaparecerão da rede se ficarem tempo demais no memory pool.

Confirmações

Quantas confirmações devo esperar?

Como um guia rápido:

Uma confirmação é quando sua transação é minerada em um bloco. Confirmações adicionais são quando mais blocos são minerados sobre o bloco em que sua transação foi incluída.

Diagrama mostrando confirmações como a profundidade de uma transação na blockchain.
O número de confirmações se refere a quão fundo sua transação está na blockchain.

Por que isso importa?

Bem, eu sei que disse que você não pode remover uma transação da blockchain, mas é tecnicamente possível que isso aconteça. Devido à forma como a blockchain funciona, um minerador mal-intencionado com muito poder de mineração poderia usar sua energia para construir uma nova blockchain mais longa para os nós adotarem, e substituir blocos (e transações) que já estão na cadeia.

Isso ainda não aconteceu no Bitcoin, mas, como eu disse, é tecnicamente possível.

Diagrama mostrando a probabilidade decrescente de um minerador conseguir substituir um número crescente de blocos no topo da blockchain.
Fica exponencialmente mais difícil para um minerador remover uma transação quanto mais fundo ela desce na blockchain.

Então, é por isso que às vezes se recomenda esperar por 6 confirmações (ou mais) para ter certeza de que uma transação não pode ser revertida, porque nesse ponto não é mais "computacionalmente viável" para um minerador substituir esse número de blocos. Porém, a menos que você esteja se protegendo de um minerador mal-intencionado fazendo um ataque contra toda a rede, isso é exagero.

Um tempo de espera mais razoável para ter confiança de que uma transação não será desfeita é de 2 confirmações. Isso porque o bloco do topo da blockchain tem a tendência de ser trocado por outro bloco durante a reorganização natural da cadeia.

Diagrama mostrando uma reorganização da cadeia em que o bloco do topo da blockchain é substituído por outro.
Reorganizações da cadeia acontecem quando dois blocos são minerados ao mesmo tempo e competem pelo mesmo lugar na cadeia.

Então, quando sua transação passa do primeiro bloco (ou seja, 2 confirmações), você pode ter confiança de que ela não será desfeita pelo funcionamento natural da forma como a blockchain é construída.

Reorganizações da cadeia acontecem cerca de uma vez a cada 44,7 dias (uma vez a cada 6.505 blocos).

Pessoalmente, 1 confirmação é suficiente para mim na maior parte do tempo, e eu espero por 2 confirmações se estou recebendo um pagamento grande do qual quero ter certeza dupla de que não será revertido.

Eu só esperaria por umas 6+ confirmações se estivesse vendendo minha casa por bitcoin e estivesse ativamente preocupado que a blockchain pudesse estar sob ataque.

Monitoramento

Como posso verificar o status da minha transação?

Uma das coisas mais legais do bitcoin é que você pode usar exploradores de blockchain para ver o status das suas transações em tempo real.

Quando você faz uma transação de bitcoin, sua carteira deve te dar o TXID daquela transação. É como um número de referência único da transação, e você pode usá-lo para encontrar a transação em um explorador de blockchain.

Aqui estão alguns exploradores de blockchain úteis:

Agora, um explorador de blockchain é basicamente só um site que funciona como uma janela para um bitcoin. Então, ao inserir seu TXID, você só está pedindo ao explorador para olhar na sua blockchain (ou memory pool) e te mostrar os detalhes de uma transação que ele recebeu.

Diagrama mostrando um explorador de blockchain como uma janela para os dados de um nó Bitcoin em execução.
Os exploradores de blocos só exibem os dados de dentro da sua blockchain (e memory pool).

Não vou cobrir todos os detalhes do que os exploradores podem te mostrar, mas algumas das coisas que acho mais úteis são:

Enfim, sua carteira provavelmente vai te dar as informações básicas sobre sua transação (como se ela foi confirmada ou não), mas um explorador de blockchain permite que você se aprofunde nos detalhes da transação, o que é bem legal.

Você também pode descobrir o status das transações pelo seu próprio nó Bitcoin Core usando bitcoin-cli gettransaction [txid].

Resumo

Aqui estão minhas principais dicas para fazer transações de bitcoin:

Você vai pegar o jeito depois das suas primeiras transações.

Tentei tornar este guia o mais completo possível, mas, no fim, a experiência é sempre a melhor professora. Então, vá com calma e tente.