CONCEITO
Mempool
Mempool é o conjunto local de transações de Bitcoin ainda não confirmadas que um nó aceitou segundo suas regras de validação e políticas. Cada nó mantém sua própria mempool, de modo que não existe uma fila única e global contendo exatamente as mesmas transações em toda a rede.
DEFINIÇÃO ESSENCIAL
Mempool é o conjunto local de transações ainda não confirmadas aceitas por um nó
Quando uma transação é transmitida pela rede Bitcoin, ela pode chegar a diferentes nós antes de ser incluída em um bloco. Cada nó verifica a transação e decide, segundo regras de consenso e políticas locais de aceitação e retransmissão, se irá mantê-la entre as transações candidatas à propagação e eventual confirmação.
Mempool, contração de memory pool — literalmente, “pool de memória” — é o conjunto de transações ainda não confirmadas que um determinado nó aceitou para manter localmente. Para entrar nessa mempool, a transação precisa satisfazer verificações relevantes de validade e também as políticas adotadas pelo próprio nó para aceitação e retransmissão. Como nós podem receber transações em momentos diferentes e utilizar configurações ou políticas diferentes, cada nó pode possuir uma mempool diferente das demais. Estar numa mempool significa que a transação foi aceita naquele contexto local como não confirmada; não significa que ela já faça parte da blockchain nem garante que será incluída em um bloco.
Não existe uma única mempool do Bitcoin
Cada nó constrói sua própria visão das transações não confirmadas a partir do que recebeu, validou e decidiu aceitar segundo suas políticas. Duas mempools podem ser muito semelhantes sem serem necessariamente idênticas, e uma transação presente na mempool de um nó pode estar ausente da mempool de outro.
EM TERMOS SIMPLES
A mempool é uma área de espera local antes da confirmação
Uma transação não precisa aparecer imediatamente em um bloco depois de ser criada. Ela pode circular entre nós, ser aceita em suas mempools e permanecer ali enquanto aguarda uma possível inclusão por mineradores. Essa “espera”, porém, não acontece numa fila central controlada pela rede inteira.
Cada nó decide quais transações manter
Quando recebe uma transação não confirmada, um nó realiza verificações antes de aceitá-la em sua mempool. Transações que não atendem às condições exigidas podem ser rejeitadas, enquanto as aceitas passam a integrar o conjunto local daquele nó. A mempool é, portanto, parte do estado local do nó, e não uma base de dados central à qual toda a rede escreve simultaneamente.
Estar na mempool ainda não significa estar confirmado
Uma transação presente na mempool ainda não foi incluída num bloco que faça parte da cadeia aceita pelo nó. Ela pode ser conhecida e retransmitida por muitos participantes da rede sem possuir confirmação. Mempool descreve um estado não confirmado da transação; confirmação depende de sua inclusão em um bloco posteriormente aceito pela rede segundo as regras executadas pelos nós.
Estar na mempool não garante inclusão em um bloco
Mineradores selecionam entre as transações disponíveis ao construir blocos candidatos, normalmente levando em conta fatores econômicos e restrições técnicas. Uma transação pode permanecer não confirmada por algum tempo, deixar de ser mantida por determinados nós ou ser afetada por outras transações relacionadas. Portanto, aceitação na mempool torna uma transação candidata à confirmação, mas não constitui uma promessa de que ela será minerada.
COMO FUNCIONA
Como transações não confirmadas circulam, são aceitas e chegam aos blocos
Uma transação pode passar por vários nós antes de ser confirmada. Cada nó recebe informações de seus pares, verifica a transação segundo as regras e políticas que aplica e decide se irá mantê-la em sua própria mempool e retransmiti-la. Mineradores participam desse mesmo processo e utilizam as transações disponíveis localmente para construir blocos candidatos.
01
A transação se propaga entre nós da rede
Depois de criada, uma transação pode ser anunciada aos pares de um nó e propagada progressivamente pela rede. Os diferentes participantes não recebem necessariamente a transação ao mesmo tempo nem pela mesma rota, e alguns podem nunca recebê-la. A propagação é distribuída entre pares, razão pela qual diferentes nós podem possuir visões temporariamente diferentes do conjunto de transações não confirmadas.
02
Cada nó verifica a transação antes de aceitá-la
Ao receber uma transação, o nó realiza verificações como existência e disponibilidade das entradas referenciadas, satisfação das condições de gasto e respeito às exigências aplicáveis à transação. Para mantê-la na mempool, também são consideradas políticas locais de aceitação e retransmissão, que podem ser mais restritivas do que aquilo que as regras de consenso permitiriam em um bloco válido. Por isso, aceitação na mempool é uma decisão local baseada em validade e política, não um voto global da rede sobre a transação.
03
Transações não confirmadas podem depender umas das outras
Uma transação presente na mempool pode criar uma saída que outra transação não confirmada utiliza como entrada, formando uma relação entre transação ancestral e transação descendente. O nó precisa acompanhar essas dependências para avaliar corretamente os gastos e impedir que uma mesma saída seja aceita simultaneamente em transações incompatíveis dentro de sua visão da mempool. Assim, a mempool não é apenas uma lista desconectada de transações: ela pode conter cadeias de transações vinculadas pelos UTXOs que criam e consomem.
04
Mineradores selecionam transações para construir blocos candidatos
Mineradores mantêm ou utilizam uma visão das transações disponíveis e escolhem quais delas incluir em seus blocos candidatos, respeitando regras de validade, limites do bloco e relações de dependência entre transações. Incentivos econômicos relacionados às taxas influenciam essa seleção, mas a mempool não funciona como uma fila estritamente cronológica em que a primeira transação recebida necessariamente será a primeira confirmada. Quando um bloco válido contendo determinada transação é aceito pelo nó, essa transação deixa de ser não confirmada e sua presença na mempool deixa de ser necessária.
A mempool coordena candidatos, não confirma transações
A mempool permite que um nó acompanhe transações ainda não confirmadas, verifique suas dependências e participe de sua propagação, mas não concede confirmação nem determina coletivamente quais transações entrarão no próximo bloco. A confirmação depende da inclusão em um bloco que posteriormente seja aceito pelo nó como parte da cadeia válida.
DISTINÇÕES IMPORTANTES
Mempool não é blockchain, fila global, confirmação ou consenso
A mempool ocupa uma posição intermediária entre a propagação de uma transação e sua possível confirmação, mas não deve ser confundida com nenhuma dessas etapas. Ela é um estado local mantido pelos nós, sujeito a políticas próprias e separado da cadeia de blocos já aceita.
Mempool não é blockchain
A blockchain registra transações incluídas em blocos aceitos pelo nó, enquanto a mempool mantém localmente determinadas transações que ainda não foram confirmadas. Uma transação pode existir na mempool por algum tempo e nunca ser incluída na cadeia, assim como pode desaparecer da mempool por diferentes razões. Portanto, a mempool não é uma parte provisória ou pendente da blockchain, mas uma estrutura separada utilizada para acompanhar transações ainda não confirmadas.
A mempool de um nó não é uma fila global da rede
Cada nó recebe transações a partir de seus próprios pares, em momentos diferentes, e aplica suas próprias políticas de aceitação, armazenamento e retransmissão. Por isso, duas mempools podem conter conjuntos semelhantes, mas não necessariamente idênticos, de transações. Não existe um servidor ou registro central que mantenha uma lista oficial de todas as transações não confirmadas do Bitcoin.
Aceitação na mempool não é confirmação
Uma transação aceita na mempool já passou por verificações suficientes para aquele nó mantê-la como não confirmada, mas ainda não foi incluída em um bloco aceito como parte da cadeia. Enquanto isso não ocorrer, seu estado continua diferente de uma transação confirmada. Presença na mempool indica aceitação local como candidata à confirmação; confirmação exige inclusão efetiva em um bloco posteriormente aceito pelo nó.
Política de mempool não é regra de consenso
Regras de consenso determinam as condições que um nó aplica ao decidir se blocos e transações incluídas neles são válidos, enquanto políticas de mempool e relay também determinam quais transações não confirmadas o nó está disposto a armazenar e retransmitir. Essas políticas podem ser mais restritivas e variar entre configurações ou versões sem alterar necessariamente as regras de consenso. Por isso, uma transação não aceita na mempool de determinado nó não deve ser automaticamente classificada como inválida pelas regras de consenso.
LIMITES E CONTROVÉRSIAS
Uma transação não confirmada permanece sujeita a condições locais e mudanças de estado
A mempool é útil para propagar e acompanhar transações antes da confirmação, mas seu conteúdo não possui a mesma estabilidade da blockchain aceita. Transações podem estar presentes em alguns nós e ausentes em outros, podem ser removidas localmente e competem por espaço limitado nos blocos, enquanto pagamentos sem confirmação permanecem expostos a riscos que a simples presença em uma mempool não elimina.
01
Mempools diferentes podem conter transações diferentes
Nós podem receber transações em momentos distintos, manter conexões diferentes e aplicar políticas locais que não sejam exatamente iguais. Como resultado, uma transação pode estar presente na mempool de alguns nós e ausente da de outros sem que isso represente necessariamente uma ruptura do funcionamento da rede. A mempool oferece uma visão local do estado não confirmado, não uma fotografia universal e perfeitamente sincronizada de todas as transações pendentes do Bitcoin.
02
Permanecer na mempool não é garantido
Um nó dispõe de recursos finitos e aplica políticas para decidir quais transações não confirmadas continuará armazenando. Dependendo das condições locais, transações podem ser removidas da mempool, por exemplo quando deixam de atender às condições relevantes daquele estado ou quando o nó precisa administrar os recursos destinados ao conjunto de transações pendentes. Ser aceito uma vez na mempool não cria um direito permanente de permanecer nela até a confirmação.
03
Taxas influenciam a seleção, mas não compram uma confirmação garantida
Como o espaço disponível em cada bloco é limitado, mineradores possuem incentivo econômico para considerar as taxas oferecidas pelas transações ao selecionar o conteúdo de seus blocos candidatos. Uma taxa mais competitiva pode aumentar a atratividade relativa de uma transação, mas outros fatores, como dependências entre transações, políticas locais e o conjunto efetivamente disponível ao minerador, também participam do processo. Por isso, pagar uma taxa maior pode aumentar a probabilidade ou reduzir o tempo esperado de confirmação em determinadas condições, mas não constitui uma garantia protocolar de inclusão no próximo bloco.
04
Uma transação sem confirmação ainda pode ser substituída ou entrar em conflito
Antes da confirmação, uma transação ainda não possui a mesma estabilidade de uma transação incluída na cadeia aceita. Dependendo de sua construção, das políticas aplicadas pelos nós e da existência de transações incompatíveis tentando gastar as mesmas saídas, diferentes participantes podem observar estados concorrentes antes que um deles seja confirmado. Portanto, aceitar um pagamento com zero confirmações envolve avaliar um risco diferente daquele existente depois que a transação passa a integrar um bloco aceito.
Não confirmado é um estado útil, mas não definitivo
A presença de uma transação em mempools permite propagação, acompanhamento e seleção para blocos candidatos, mas esse estado permanece local e transitório. Confirmação acrescenta uma condição diferente: a transação passa a integrar um bloco aceito pelo nó e, à medida que novos blocos são acrescentados, sua reversão tende a exigir um custo e uma reorganização progressivamente maiores.
CONTINUE A EXPLORAÇÃO
Conceitos relacionados
A mempool conecta a propagação das transações ao processo de validação e à possível inclusão em blocos. Os conceitos abaixo ajudam a compreender de onde vêm as entradas gastas, quem verifica as transações, como elas circulam pela rede e como deixam o estado não confirmado para integrar a blockchain.
UTXO
Saída de transação ainda não gasta que pode ser utilizada como entrada de uma nova transação quando suas condições de gasto são satisfeitas. Transações presentes na mempool consomem UTXOs existentes e também podem criar novas saídas utilizadas por outras transações ainda não confirmadas.
Nó completo
Nó que verifica independentemente blocos e transações de acordo com as regras que executa. Ao receber uma transação não confirmada, um nó completo pode verificar sua validade, aplicar políticas locais e decidir se irá aceitá-la em sua própria mempool e retransmiti-la aos seus pares.
Consenso
Conjunto de regras que permite aos nós avaliar quais blocos e transações podem fazer parte de uma cadeia válida. As políticas de mempool podem ser mais restritivas do que as regras de consenso, razão pela qual rejeitar uma transação não confirmada localmente não significa necessariamente que ela seria inválida em qualquer bloco possível.
Mineração
Processo pelo qual mineradores constroem blocos candidatos e competem para satisfazer o Proof of Work exigido pelo protocolo. Para formar esses blocos, eles selecionam transações disponíveis em sua própria visão do estado não confirmado, levando em conta validade, dependências, espaço disponível e incentivos associados às taxas. A mempool fornece candidatos; a mineração pode transformá-los em transações incluídas em blocos.
Blockchain
Histórico ordenado de blocos aceitos pelos nós. Enquanto a mempool contém localmente transações ainda não confirmadas, a blockchain registra transações que já foram incluídas em blocos pertencentes à cadeia aceita. Mempool e blockchain representam, portanto, estados diferentes da trajetória de uma transação.
Redes peer-to-peer
Arquitetura de comunicação em que nós se conectam diretamente a outros nós e propagam informações sem depender de um servidor central único. É por meio dessas conexões que transações podem circular entre participantes e chegar a mempools diferentes. A existência de mempools locais é inseparável da natureza distribuída da propagação peer-to-peer.
FONTES E DOCUMENTAÇÃO
Referências para aprofundamento
O Bitcoin Core mantém informações próprias sobre as transações não confirmadas que aceita, permite consultar esse estado local, testar a aceitação de novas transações e organizar dependências entre transações relacionadas. A documentação também mostra que a mempool possui limites e políticas próprias, distinguindo esse estado operacional das regras que determinam a validade da cadeia.
01
Bitcoin Core — getmempoolinfo
O comando getmempoolinfo retorna informações sobre o estado ativo da mempool do próprio nó, incluindo quantidade de transações, uso de memória, limite configurado, taxa mínima corrente para aceitação e parâmetros relacionados à política da mempool. Essa interface evidencia que a mempool é um estado mantido localmente pelo software e sujeito a recursos e configurações do nó, e não uma fila global armazenada de maneira idêntica por toda a rede.
Bitcoin Core · RPC getmempoolinfo · documentação 31.0.0
02
Bitcoin Core — getrawmempool
O comando getrawmempool permite consultar as transações presentes na mempool do nó e, no modo detalhado, apresenta informações como momento local de entrada, tamanho, taxas e relações com transações não confirmadas das quais uma transação depende ou que gastam suas saídas. A documentação ajuda a demonstrar que a mempool pode conter uma estrutura de dependências entre transações, e não apenas uma lista linear de itens esperando confirmação.
Bitcoin Core · RPC getrawmempool · documentação 31.0.0
03
Bitcoin Core — testmempoolaccept
O comando testmempoolaccept permite verificar se uma transação ou conjunto de transações seria aceito pela mempool sem efetivamente adicioná-lo. A documentação informa explicitamente que o teste considera violações de regras de consenso ou de política, além de requisitos aplicáveis a dependências e pacotes de transações. Essa referência sustenta uma das distinções centrais da página: aceitação em mempool envolve regras de validade e políticas operacionais, que não devem ser tratadas como uma única categoria.
Bitcoin Core · RPC testmempoolaccept · documentação 31.0.0
04
Bitcoin Core — Mempool design and limits
A documentação de projeto da mempool descreve transações não confirmadas como uma estrutura de dependências em que transações podem possuir pais, filhos, ancestrais e descendentes. Na arquitetura atual do Bitcoin Core, transações relacionadas são organizadas em clusters, e essa estrutura participa tanto da construção de modelos de bloco quanto das decisões de remoção quando é necessário liberar espaço. Isso mostra que seleção para mineração e gerenciamento da mempool envolvem relações entre transações e incentivos associados às taxas, não uma simples fila cronológica por ordem de chegada.
Bitcoin Core · Documentação de política · mempool-design.md
A mempool pertence ao estado local do nó
A documentação do Bitcoin Core permite consultar, testar e administrar a mempool de uma instância específica do software, incluindo suas transações, dependências, limites e políticas de aceitação. Isso reforça que não existe uma mempool global mantida por consenso: nós podem possuir estados não confirmados diferentes e ainda aplicar as mesmas regras à cadeia que consideram válida.