Ir para o conteúdo
Banking on Bitcoin

Tecnologia

O que é a mempool do Bitcoin? Por que as transações esperam

A mempool é onde as transações válidas de bitcoin esperam por um bloco. Veja por que um pagamento pode ficar pendente e como o replace-by-fee e o CPFP ajudam.

Por · Publicado · Atualizado

Ilustração de um microchip com uma moeda de bitcoin brilhante no centro

Ideias principais

  • A mempool é a sala de espera de um nó para transações válidas que ainda não estão em um bloco. Cada nó mantém a sua própria, então não existe uma única mempool global.
  • Os mineradores preenchem cada bloco primeiro com as transações que pagam mais por unidade de espaço do bloco. O espaço é limitado, então os usuários competem, e essa competição é o mercado de taxas.
  • Uma transação pendente geralmente significa que o fee rate dela está baixo demais para a demanda atual. As moedas não se moveram, e nada se perdeu.
  • O replace-by-fee permite que quem enviou aumente a taxa de uma transação pendente. O child-pays-for-parent permite que alguém puxe uma transação travada gastando a saída dela com uma taxa alta.
  • Os nós descartam transações que esperam demais, cerca de duas semanas por padrão no Bitcoin Core, e podem remover as de taxa baixa quando a sua mempool enche.

O que é a mempool do Bitcoin?

A mempool, abreviação de memory pool (pool de memória), é o conjunto de transações válidas que um nó recebeu e mantém enquanto elas esperam para ser incluídas em um bloco. É uma sala de espera, e não parte do blockchain (cadeia de blocos).

Quando você envia um pagamento, a sua carteira (wallet) entrega a transação a um nó. O nó confere se as assinaturas são válidas, se as moedas não foram gastas e se a taxa atinge o mínimo dele. Se a transação passa, o nó a armazena e a repassa aos seus pares, que repetem as verificações. Em segundos, uma transação válida está na mempool de muitos nós. Quando um minerador a inclui em um bloco, os nós a removem, porque agora ela está confirmada. Como funciona o Bitcoin? trata de blocos e confirmações.

Cada nó decide por conta própria o que guardar, então não existe uma única mempool. Os nós recebem as transações em momentos ligeiramente diferentes, e os operadores definem seus próprios limites de taxa mínima e de tamanho da mempool. O blockchain é o registro com o qual todos os nós concordam, enquanto cada mempool é a cópia de trabalho de um nó sobre o que pode vir a seguir. O que é um nó Bitcoin? explica o que os nós fazem.

Como os mineradores escolhem quais transações incluir?

Em geral, os mineradores preenchem um bloco com as transações que pagam a maior taxa por unidade de espaço, descendo a partir do topo até o bloco ficar cheio. O que é escasso é o espaço, e não a quantidade de bitcoin enviada, então o fee rate (taxa por unidade de espaço) importa mais do que a taxa total. A unidade usual é satoshis por byte virtual, e Quantos satoshis tem um bitcoin? explica o que são satoshis.

Imagine uma van que sai mais ou menos a cada dez minutos com um número fixo de lugares. Os passageiros oferecem uma gorjeta por lugar, e o motorista embarca primeiro as melhores gorjetas. Um passageiro com muita bagagem precisa de mais lugares e por isso paga mais no total, com a mesma gorjeta por lugar. Da mesma forma, uma transação com muitas entradas ocupa mais espaço, como mostra O que é um UTXO?.

Se as transações A e B têm o mesmo tamanho e A oferece um fee rate quatro vezes maior, A entra no próximo bloco e B espera, a menos que sobre espaço. Na maioria dos pools, o nó do operador faz essa seleção, como trata Pools de mineração de Bitcoin explicados.

Por que existe um mercado de taxas?

Existe um mercado de taxas porque um bloco comporta apenas uma quantidade limitada de dados e chega a cada dez minutos, mais ou menos, então os usuários competem por espaço e o preço dele varia com a demanda. Quando poucas transações estão esperando, cada bloco esvazia a mempool e um fee rate baixo basta. Quando muitas estão esperando, forma-se uma fila e o fee rate necessário para o próximo bloco sobe.

Os dez minutos são apenas uma média. Um bloco pode chegar em segundos e o seguinte meia hora depois.

As taxas também fazem parte do que os mineradores ganham. O subsídio do bloco é cortado a cada halving, então as taxas ganham peso com o tempo, como explica O que é o halving do Bitcoin?. Taxas do Bitcoin trata de como as taxas de rede são definidas.

Por que a minha transação de Bitcoin está pendente?

Uma transação está pendente porque foi transmitida, mas nenhum minerador a colocou em um bloco ainda, na maioria das vezes porque o fee rate dela é menor do que o necessário agora. “Pendente” ou “não confirmada” em uma carteira descreve exatamente esse estado.

As causas habituais são:

  • O fee rate está abaixo do que a demanda atual exige.
  • Um intervalo longo e aleatório entre blocos.
  • A transação gasta uma saída de uma transação anterior que também não foi confirmada, então precisa esperar por ela.
  • A carteira não a transmitiu, ou o site que você está consultando ainda não a viu.

As suas moedas não se movem enquanto a transação espera. Até ser confirmada, o pagamento não é definitivo, e é por isso que quem recebe tradicionalmente espera por confirmações. Como enviar e receber bitcoin com segurança descreve como isso se mostra na prática.

Como as carteiras estimam as taxas a partir da mempool?

As carteiras olham o que está esperando na mempool e a rapidez com que transações em diferentes fee rates foram confirmadas nos blocos recentes, e então sugerem valores para uma confirmação mais rápida ou mais lenta. O resultado é uma estimativa para os próximos blocos, não uma promessa.

As estimativas erram quando a demanda muda depois que você envia, porque uma mempool que parecia vazia pode encher em minutos. Muitas carteiras deixam você escolher uma velocidade ou informar o seu próprio fee rate, como descreve Carteiras de Bitcoin explicadas. Uma corretora (exchange) define a taxa dos seus próprios saques.

O que é o replace-by-fee?

O replace-by-fee, ou RBF, permite que quem enviou troque uma transação pendente por uma nova versão que gasta as mesmas moedas e paga uma taxa maior. Os nós descartam a versão antiga e repassam a nova. Apenas uma versão pode ser confirmada, porque as duas gastam as mesmas moedas.

Muitas carteiras oferecem isso como um botão de “aumentar taxa” ou “acelerar”. O destinatário e o valor continuam os mesmos, e a taxa extra normalmente sai do seu troco. Se uma transação pode ser substituída depende de como a carteira a montou e das configurações dos nós. Quem recebe pode ver um pagamento não confirmado desaparecer e ser substituído, o que é mais um motivo para ele não ser definitivo.

O que é o child-pays-for-parent?

O child-pays-for-parent, ou CPFP, acelera uma transação travada gastando uma de suas saídas em uma nova transação com uma taxa generosa. A nova transação “filha” (child) não pode ser confirmada antes da transação “pai” (parent) que ela gasta, então os mineradores que querem a taxa da transação filha incluem as duas e avaliam o par pelo fee rate combinado.

Replace-by-feeChild-pays-for-parent
Quem pode usarQuem enviouQuem enviou, pelo troco, ou quem recebeu, pela saída que recebeu
O que fazSubstitui a transação pendente por uma versão com taxa maiorAdiciona uma segunda transação que puxa a primeira para um bloco
O que acontece com a originalÉ descartadaContinua e é confirmada junto com a transação filha
O que exigeUma carteira com suporte a substituiçãoUma carteira capaz de gastar moedas não confirmadas

O que acontece se uma transação esperar demais?

Os nós descartam transações que esperam demais. O padrão do Bitcoin Core é cerca de duas semanas, e cada operador pode mudá-lo. Um nó também pode remover transações antes disso: se a sua mempool ultrapassar o limite de tamanho definido pelo operador, ele remove primeiro as de taxa mais baixa e eleva temporariamente o fee rate mínimo que aceita.

Uma transação descartada não faz você perder as moedas. Elas nunca foram gastas na cadeia, e as suas chaves ainda as controlam. Alguns nós podem ter guardado a transação por mais tempo, e uma carteira pode retransmiti-la, então ela ainda pode ser confirmada depois. Pagar de novo com outras moedas antes de saber que a primeira transação sumiu pode significar pagar duas vezes.

O que fazer com uma transação travada?

Descubra em que pé ela está e depois decida se espera ou aumenta a taxa.

  1. Copie o ID da transação (TXID) na sua carteira e procure-o em um explorador de blocos (block explorer) ou visualizador da mempool, que mostra se ela está esperando e qual fee rate ofereceu em comparação com a demanda atual.
  2. Se não há pressa, espere. Quando a demanda cai, fee rates mais baixos voltam a entrar nos blocos.
  3. Se a sua carteira tem a opção de aumentar a taxa, use-a. Quem recebe, com uma carteira adequada, pode usar o CPFP na saída que está prestes a receber.
  4. Em um saque de corretora, fale com o suporte da corretora, porque você não controla a taxa.
  5. Ignore qualquer site ou mensagem que ofereça “destravar” uma transação ou peça a sua frase-semente (seed phrase). Nenhuma solução precisa dela, como explica O que é uma frase-semente?.

Se um atraso tem consequências jurídicas ou financeiras, pergunte a um profissional qualificado quais são as suas opções. Está começando agora com Bitcoin? A trilha Comece aqui cobre o básico em ordem.

Onde dá para ver a mempool?

Exploradores de blocos e visualizadores da mempool mostram uma visão ao vivo das transações em espera, geralmente desenhadas como os próximos blocos empilhados por fee rate. Eles mostram quantas estão esperando, quais fee rates têm probabilidade de ser confirmados em breve e onde está uma transação específica. Cada site executa seus próprios nós, então os números diferem um pouco e mudam a cada minuto, e é por isso que este artigo não cita nenhum. Um nó que você mesmo executa mostra a sua própria mempool.

Leia a seguir

Perguntas frequentes

O que é a mempool do Bitcoin?

A mempool, abreviação de memory pool (pool de memória), é o conjunto de transações válidas, mas ainda não confirmadas, que um nó guarda enquanto elas esperam para ser incluídas em um bloco. Cada nó mantém a sua própria mempool, então não existe uma única mempool global, e nós diferentes podem divergir um pouco.

Por que a minha transação de Bitcoin está pendente?

Normalmente porque o fee rate (taxa por unidade de espaço) dela está baixo demais para a demanda atual, então os mineradores estão preenchendo os blocos com transações que pagam mais por unidade de espaço. Outras causas incluem um intervalo longo entre blocos, uma transação que depende de uma anterior ainda não confirmada ou uma carteira que ainda não a transmitiu. As suas moedas não se moveram.

Quanto tempo uma transação pode ficar na mempool?

Depende das configurações de cada nó. O padrão do Bitcoin Core descarta transações depois de cerca de duas semanas, e um nó também pode remover transações de taxa baixa antes disso se a sua mempool encher. Uma transação descartada não faz você perder as moedas, porque elas nunca foram gastas na cadeia.

O que é replace-by-fee?

O replace-by-fee permite que quem enviou substitua uma transação pendente por uma nova versão que gasta as mesmas moedas e paga uma taxa maior. Apenas uma das duas pode ser confirmada, e a que paga mais é mais atraente para os mineradores. Exige suporte da carteira de quem envia.

O que é child-pays-for-parent?

O child-pays-for-parent acelera uma transação travada gastando uma de suas saídas em uma nova transação com taxa alta. Os mineradores que querem a taxa da nova transação também precisam incluir a travada, então normalmente as duas são confirmadas juntas. Tanto quem enviou quanto quem recebe pode fazer isso.

Artigos relacionados