The Ultimate Guide to Mempools

DATE PUBLISHED: MAY 26, 2022
11 MIN
DATE UPDATED: OCT 3, 2023

Ideally, every transaction made in the Bitcoin network must be included in 6 blocks to be confirmed, which takes 10 minutes. But with the growth of cryptocurrencies’ popularity, things have changed. Today, BTC transactions stay in the Memory Pool for some time. In this guide, we will definewhat is a mempool and what it means for Bitcoin and other blockchains.

Start Trading on 3Commas Today

Get full access to all 3Commas trading tools with free trial period

What is mempool?

Bitcoin mempool is a set of all transactions that have not yet been confirmed and are waiting for their turn. In times of high network congestion, your transaction could hang unconfirmed in the mempool for several hours or even days.

How a mempool works?

  1. The user creates a transaction and sends it to the network. 
  2. The transaction enters the mempool and waits for the miner to select it for inclusion in the next block.
  3. When a transaction is included in a block, it receives the first confirmation.
  4. After receiving confirmation, the transaction is removed from the mempool.

With a normal network load, transactions do not spend much time in the mempool space and are quickly confirmed. However, when user activity increases, a fairly large number of unconfirmed transactions can accumulate in the mempool.

Naturally, with a decrease in user activity, the number of new transactions decreases and the network gets unloaded. In this case, transactions are gradually confirmed and the mempool becomes almost empty.

Now, as we explained what a mempool is, it’s time to describe its features and application.

What is the role of mempools?

Since a node is free to select which transactions it wants to keep in memory and which ones it wants to relay to other nodes, each node in the network has a specific and potentially different mempool. The mempool rules are therefore local.

In 2023, the role of mempools likely continues to be pivotal in the operation of blockchain networks, especially in the context of cryptocurrencies. However, specific implementations and features may have evolved to address scalability, congestion, and efficiency challenges that blockchain networks have encountered over time.

These rules have two roles: to prevent node overload and DDoS attacks and to introduce a clear standard to facilitate protocol implementation and limit errors due to the programmable nature of Bitcoin.

DDoS attack prevention

The first role is obvious: if all nodes accept all transactions instantly, the Bitcoin network will stop functioning. Some of the mempool rules are aimed at restricting the influx of transactions and include the following requirements:

  1. The minimum fee paid by a transaction is 1000 satoshis per virtual kilobyte, or 1 sat / ov or 4 sat / wu.
  2. The amount of an exit must be greater than a minimum amount, typically 546 satoshis.
  3. A transaction can be replaced by an adversarial transaction (spending the same output) if the input concerned is indicated as such by nSequence ≤ 0xfffffffd. This feature is called Replace-by-Fee.
  4. Transactions must be finalized. Otherwise, it will be rejected by the mempool.
  5. The maximum number of ascending transactions in the mempool is 25.
  6. The size of a transaction is limited to 400,000 units (100 KB for a typical transaction).
  7. The number of signature checks is limited to 15 operations.

Limiting software errors

The second role concerns the programmable aspect of the system. In Bitcoin, each output contains a script (called "locking") which is supplemented by a second script (called "unlocking") and executed upon spending as input. This theoretically allows a wide range of actions to be performed, restricted only by the capabilities of the programming language. However, at the end of 2010, these programming possibilities were severely restricted to avoid the exploitation of potential flaws in the software code.

The order of transactions priority in the mempool

Depending on the congestion of the Bitcoin network, the transaction may therefore remain in the mempool for a certain time. However, a transaction can take priority over others. It depends on the fees paid by the user for sending their transaction over the network.

The higher the costs incurred, the higher the position of the transaction in the waiting list will be. Most often, the fee is expressed in satoshis / bytes, and miners prioritize transactions that maximize this ratio.

For example, if the sender pays more than 100 satoshis / bytes for sending their transaction, it will be included in the next block unless a large number of transactions pay a higher fee.

However, it is possible to speed up the confirmation of a transaction thanks to Replace-by-Fee (RBF). RBF is a feature of Bitcoin that allows the issuer of an as yet unconfirmed transaction to replace it with another by increasing the fees associated with it.

Some wallets natively integrate this functionality, which is particularly useful in the event of severe network congestion.

How can I speed up transaction processing?

Small block size is one of the major problems that the Bitcoin network faces. If earlier this was not a problem, now, when BTC is being actively used by millions of users around the world, it sometimes causes serious inconvenience.

Before entering the mempool, BTC transactions should include information about the amount of the commission (reward for the miner). And since there are no specific limits for it, users can set a minimum commission, up to several satoshis.

This is a good thing for users as they don't have to pay a flat fee and can save money. But for miners, this state of affairs is not very profitable. Therefore, it is quite logical that they choose transactions with the highest commission from the mempool. That allows them to generate a fair profit. 

An equally logical conclusion suggests that you can speed up the processing of your transactions by setting a larger amount of remuneration. This will give your transactions a higher priority for miners and processing will be faster.

It’s not a 100% guarantee

This approach may be efficient but still will not help solve the problem of network congestion. Here are some reasons why increasing commissions won't help users much:

  • The commission is too big. If all users start increasing the reward, then they will have to pay even more to increase the priority of their transaction. And this can lead to a situation when the commission becomes very expensive and unprofitable for users.
  • The network bandwidth does not change. High commission transactions will be processed quickly. But the mempool will still be filled with transactions with minimal reward.
  • The problem of spam attacks. Network performance can be deliberately slowed down by attackers who send a large number of transactions with minimal fees. This causes the mempool to overflow.

How to reduce mempools?

The problem of queuing transactions included in block mem pool causes serious inconvenience to users who need to quickly conduct a transaction on the Bitcoin network. For example, in mid-August 2017, the size of the mempool was about 82 MB with the total number of mempool unconfirmed transactions up to 100,000. Some transactions could take up to a week to confirm.

The most effective way to solve the problem is to increase the network bandwidth. If miners can include more transactions in one block, the mempool will be unloaded faster and the queue will not accumulate.

Bitcoin contributors try to solve this problem in different ways. Some community members are in favor of increasing the block size. On August 1, 2017, a Bitcoin hard fork was made: in this version of the Bitcoin protocol, the block size increased to 8 MB. Consequently, Bitcoin Cash, a new cryptocurrency appeared.

SegWit

Regarding the original Bitcoin network, it was proposed to implement the Segregated Witness (SegWit) protocol. In this protocol, the block size remains unchanged (1 MB), but part of the data, namely transaction signatures, is taken out of the block size and stored in separate files. This approach helps unload blocks and allows adding more transactions to fit in the block.

The transition to the SegWit protocol happened on August 24, 2017. In the meantime, the problem of mempool congestion remains relevant, and transactions with a large commission will be a priority.

Mempool FAQs

  • This is a reserve of blockchain unconfirmed transactions maintained by a node of the network. In 2023, the concept of the mempool likely continues to be an integral part of blockchain networks, particularly in cryptocurrencies. Users and developers continue to monitor mempool data to estimate transaction confirmation times, optimize fees, and gauge network health.

    However, for the most current and detailed information on the state of blockchain technology and the mempool in 2023, it's advisable to refer to up-to-date sources and blockchain-specific documentation or communities, as the technology and terminology can evolve rapidly.

  • For Bitcoins to be sent to or from your wallet, the transfer must receive two confirmations. This is a standard requirement for any secure wallet. The process can take from five minutes to an hour, depending on network congestion.

  • This is a transaction that has not yet been approved by miners and included in a ready block.

  • Lack of confirmation is a very rare case, as most transfers receive confirmation within 72 hours. Experts recommend that you wait 72 hours before resubmitting funds. If the transaction does not reach the blockchain after 72 hours, the Bitcoins will again appear on the sender's wallet.

  • It is impossible to cancel a confirmed transfer. Crypto enthusiasts have repeatedly stated how inconvenient this is: there have been cases when the user carefully checked all the transfer data, but c accidentally sent the assets to the wrong recipient. Sadly, but in such a situation, it will not be possible to return the money.

  • In this case, the mempool meaning is the same as for Bitcoin. It stores unconfirmed transactions until they get validated and confirmed.