Topics Blockchain

Mempool do Bitcoin: O que Acontece com as Transações Não Confirmadas?

Avançado
Blockchain
Bitcoin
2021年10月26日

Bitcoin é uma rede de criptomoeda que permite aos usuários enviar e receber pagamentos eletrônicos em qualquer lugar do mundo. Não existem bitcoins físicos, nem contas nas quais os bitcoins são mantidos. Em vez disso, o Bitcoin atua como uma forma de dinheiro eletrônico, e os usuários podem fazer transações ponto a ponto (P2P) usando o blockchain do Bitcoin, que funciona como um tipo de livro-razão eletrônico. O blockchain é constantemente atualizado por nós, que compartilham saldos e dados atualizados em toda a rede. No entanto, antes que as transações possam ser adicionadas ao blockchain, elas devem ir para o mempool.

Como funciona uma transação de Bitcoin?

Antes de chegarmos ao mempool, vamos entender como funciona uma transação de Bitcoin. Todas as transações de bitcoin são simplesmente transações pendentes e só existem no mempool antes de serem confirmadas. Sempre que um usuário inicia uma transação de bitcoin, ela é assinada criptograficamente e enviada para a rede Bitcoin aguardando um minerador verificar a transação e adicioná-la ao blockchain. Toda transação verificada está publicamente disponível e acessível no livro-razão público como um meio de registrar e distribuir de forma transparente para o livro-razão de cada transação de Bitcoin sem possibilidade de ser manipulada.

A tecnologia blockchain possibilita a descentralização, mas tem suas limitações. Por exemplo, a rede Bitcoin processa cerca de 4,6 transações por segundo ou TPS. Compare isso com o VisaNet, que processa 1.700 TPS. Embora sejam possíveis algumas adaptações para melhorar a escalabilidade da tecnologia blockchain, o sistema continua a ser comparativamente lento, o que tem levado a altas taxas e a atrasos ocasionais, especialmente durante períodos de grande volume de transações.

O blockchain foi originalmente projetado para permitir que o Bitcoin operasse sem bancos, supervisão governamental, agências reguladoras ou outras autoridades centrais. Embora o Bitcoin não precise de autoridades externas para operar, ele ainda precisa ser capaz de verificar transações, o que faz através de chaves criptográficas.

A criptografia de chave pública do Bitcoin atua como identificação para os usuários, permitindo que acessem suas carteiras ou contas e, principalmente, para garantir a integridade das transações. Cada usuário tem uma chave privada para seu próprio uso e uma chave pública que é visível para todos no sistema. Juntas, essas chaves atuam como uma assinatura digital para autenticar transações.

Quando dois usuários chegam a um acordo sobre uma transação específica, o próximo passo é a autorização. Cada transação deve ser autorizada antes de poder ser adicionada ao blockchain. Isso é feito por meio de consenso, o que significa que todas as partes descentralizadas, como os computadores da rede, ou nós, precisam concordar objetivamente que a transação está autorizada e é válida. Os proprietários (mineradores) dos nós são incentivados a verificar uma transação não confirmada através do consenso de prova de trabalho, ou PoW, que exige que eles resolvam problemas criptográficos, ou quebra-cabeças matemáticos complexos.

Uma vez que esse problema é resolvido, a transação é verificada e pode ser adicionada ao bloco. Quando o bloco Bitcoin está cheio, ele é adicionado à blockchain denominado como finalização, e o próximo bloco é aberto.

O que é um Mempool de Bitcoin?

O mempool, ou pool de memória, é uma sala de espera virtual onde se coletam transações pendentes válidas até que um minerador as processe para serem adicionadas no próximo bloco. Cada nó mantém seu próprio mempool, e cada nó tem sua própria capacidade de armazenamento para transações não confirmadas. Quando uma transação é confirmada e incluída em um bloco, ela é removida do mempool. 

Os nós compartilham os dados do mempool retransmitindo as transações assinadas de um para o outro até atingir toda a rede. Quando um mempool geral atinge a capacidade total durante períodos de alto volume de transações, o nó prioriza transações julgando o valor das taxas de transação que estão acima das taxas de limite. Qualquer transação que esteja abaixo da taxa limite será removida do mempool e apenas transações mais novas cujas taxas atendem o mínimo são adicionadas de volta ao mempool. Em outras palavras, transações com taxas mais altas são priorizadas para serem processadas e retiradas do mempool e adicionadas ao bloco.

A Correlação Entre o Mempool do Bitcoin e as Taxas de Transação

Se pensarmos no mempool como uma sala de espera, quando está congestionado, haverá um grande volume de transações aguardando para serem processadas. Normalmente, as transações passam suavemente para dentro e para fora do mempool à medida que são verificadas e adicionadas ao bloco, mas ocasionalmente, o mempool pode ficar congestionado.

Períodos de congestão geralmente podem ser atribuídos a um alto volume de transações ou à diminuição abrupta do hash de mineração. Durante esses períodos, o mempool fica congestionado e podem ocorrer atrasos, resultando em um aumento nas taxas.

O termo “hash de mineração” refere-se à dificuldade de mineração da blockchain. Pode não haver mineradores suficientes para lidar com a complexidade ou congestionamento da blockchain naquele momento. Portanto, algumas transações devem esperar mais tempo para serem confirmadas.

Cada transação de Bitcoin permanece no mempool até estar pronta para ser confirmada, mas não há um mempool único e abrangente. Cada nó tem seu mempool associado e, por padrão, o mempool normalmente não excede 300 MB.

Quando o mempool está congestionado, os usuários têm a opção de pagar taxas mais altas, o que pode colocar suas transações na frente da fila para uma confirmação mais rápida. Por outro lado, as transações com taxas mais baixas permanecerão no mempool, onde ficarão não confirmadas até que o congestionamento seja resolvido. Da mesma forma, durante períodos de congestionamento mínimo, quando o volume de transações é baixo, as taxas são correspondentemente mais baixas. Uma vez que uma transação é capturada e adicionada a um bloco confirmado, ela é removida do mempool.

Você pode verificar o status da sua transação BTC aqui.

Entendendo o Tamanho do Mempool e a Contagem de Transações

O tamanho do mempool em bytes é uma métrica para estimar quanto tempo o congestionamento irá durar, enquanto o gráfico de contagem de transações do mempool oferece uma exibição clara do influxo de transações que estão causando o congestionamento. Quanto maior o tamanho do mempool, geralmente se traduz em uma rede mais congestionada, o que resultará em um tempo médio de confirmação mais longo e taxas de prioridade mais altas são necessárias para que as transações sejam adicionadas ao bloco. No entanto, se o tamanho do mempool diminuir, isso significa que um nó recebeu um novo bloco válido e acabou removendo as transações pendentes contidas no bloco do mempool. 

Normalmente, o tamanho do mempool pode flutuar, pois depende do número de transações que estão sendo retransmitidas. Como cada nó também tem sua própria versão das transações pendentes, dependendo de suas capacidades para armazenar transações não confirmadas, isso também explica por que o tamanho do mempool varia.

Por outro lado, se a contagem de transações do mempool aumentar, isso significa que o número total de transações não confirmadas no mempool está subindo. Assim, uma taxa mais alta é incorrida. Por exemplo, em 4 de outubro de 2021, o mempool do Bitcoin continha 4,25 mil transações pendentes, e a taxa média de transação era de $2,45. Compare isso com 25 de outubro de 2021, quando o tamanho do mempool atingiu um máximo de 6,6 mil transações, com uma taxa média de transação de $3,09.

Você pode verificar as taxas atuais aqui.

O que Fazer se Houver uma Sobrecarga de Transações?

Durante períodos de tráfego intenso, a rede Bitcoin pode acabar com um acúmulo significativo de transações, aumentando os tempos de espera e elevando as taxas de transação. Quando a demanda supera a oferta, os mineradores têm considerável liberdade para escolher quais transações irão processar primeiro. Em cenários como estes, até mesmo aqueles que pagaram taxas generosas podem estar esperando mais tempo do que o esperado.

Várias coisas contribuem para o acúmulo, incluindo o fato de que a blockchain do Bitcoin não é facilmente escalável — o que significa que também é facilmente sobrecarregada. Ao lidar com períodos de alta congestão, você tem a opção de simplesmente esperar, ou mudar para a Lightning Network para completar transações menores fora da cadeia principal, ou pagar uma taxa de transação mais alta.

Assim que a transação for enviada, você ainda tem algumas opções que podem acelerá-la. Se a sua transação estiver estagnada na fila, você pode avançar na linha com o opt-in Replace-by-Fee, ou opt-in RBF, que permite reenviar sua transação com uma taxa mais alta. No entanto, nem todas as carteiras suportam essa opção. Se a sua não suportar, você precisará considerar alternativas, como "child pays for parent", ou CPFP. Com CPFP, os mineradores escolhem transações que incluem as maiores taxas combinadas. Você também pode usar um acelerador de transação, que permite enviar transações de pelo menos 0,1 mBTC por kilobyte para o pool de mineração ViaBTC para confirmação prioritária.

Finalmente, você pode usar a Lightning Network, que é uma solução de Camada 2. A Lightning Network permite que você abra um novo canal, complete quantas transações desejar fora da cadeia da rede convencional do Bitcoin e depois feche o canal de pagamento quando as transações forem verificadas. Ao usar a Lightning Network, você pode essencialmente pular a fila congestionada e suas taxas também podem ser significativamente menores.

Se nem a Lightning Network nem qualquer outra solução forem uma opção, fique tranquilo de que, mesmo com transações emperradas, o seu bitcoin não está perdido. Permanecerá na sua carteira até que a transação seja confirmada.

Então, e se o Mempool Não Existisse?

Toda transação deve passar pelo mempool antes de poder ser adicionada à blockchain. Durante períodos de alto tráfego e congestionamento, o mempool coleta e armazena transações até que os mineradores possam adicioná-las ao bloco.

O mempool também possibilita que os nós acessem os mempools de outros nós, o que lhes fornece mais detalhes sobre transações específicas antes da confirmação. Embora a maioria dos usuários queira passar o mínimo de tempo possível no mempool, isso nem sempre é possível — especialmente quando mais transações chegam do que podem ser processadas prontamente. Quando um bloco é minerado, todas as transações que ele contém serão removidas do mempool, o que reduz o tamanho do mempool conforme necessário.

Sem o mempool, os nós não conseguiriam visualizar as transações recebidas e não teriam ideia de quão congestionada está a rede blockchain. Seria impossível entender ou identificar a fonte dos problemas de tráfego, altas taxas e outros problemas associados ao congestionamento.

Conclusão

Esperar que uma transação seja concluída pode ser frustrante. Embora você possa ficar tentado a culpar o mempool, é uma característica crucial da rede Bitcoin porque é usado para agregar e manter transações até que estejam prontas para serem adicionadas à blockchain. Entender como o mempool funciona pode ajudá-lo a usá-lo a seu favor para garantir que suas transações sejam processadas a tempo — e para diminuir sua frustração se não forem.