The Bitcoin mempool is a vital part of sending and receiving transactions. Many beginners are under the impression that transactions are being send between the sender and the recipient. In this article we are going to explore how Bitcoin transactions are being send and what the mempool really is.
The mempool is like a lobby
Every transaction in Bitcoin is written in its blockchain. The advantage of this method is that no entity on this planet can manipulate past transactions, change the monetary supply or fake any new transactions. This basically means that a sender is not interacting with the recipient of his transaction, but with the blockchain itself.
The blockchain is a distributed ledger, which means that a sender is addressing the Bitcoin network in order to make the transaction happen. The Bitcoin network is not a single entity but thousands of decentralized nodes and most of these nodes hold a full copy of the blockchain that is updated each time a new block is confirmed.
Confirmation of blocks and therefore of transactions is done by the miners. Miners are in effect also nodes, but they are set with a specific task and perform costly computation in order to solve a cryptographic puzzle. This is where the mempool comes into play. How do miners know which transaction has to be included in the next block?
When a transaction is being send to the network it gets included in the so-called mempool after the nodes have propagated it. Before it can enter the mempool the transaction has to fulfil a couple of criteria which are checked by the nodes:
- Transaction has to follow Bitcoins current protocol
- Signature must be valid
- Outputs do not exceed inputs
- BTC have been not spend twice
The mempool is a database and all of its entries are transactions that have not been yet confirmed. It’s like a hotel lobby and everyone getting seated until their room is ready. In order to take a seat everyone has to comply with the Bitcoin protocol which is checked individually by each node in the network.
Which transaction to serve next?
The mempool is often crowded. There are times when more people are trying to send transactions and they often coincide with high volatility of Bitcoins price. Meaning that if there is a sharp increase or decrease in price more market participants see reason to act and start moving their BTC all at the same time.
But even when the mempool isn’t crowded, there has to be an order to process all the waiting transactions and decide which one will make it and be included in the next block. This is where transaction fees become important.
The mempool isn’t working on a first come first serve basis. Instead, there is a competition between transacting parties for the space of the next block. The block size of Bitcoin is limited with a theoretical limit of 4 megabytes and a more realistic maximum of 2 megabytes. While writing this article the blocksize ranged somewhere between 1 and 1,5 megabytes. So how do you get a ticket for the precious space?
By paying a higher fee than others your transaction becomes more attractive to miners. If they include yours first and solve the next block successfully, they maximize their reward.
What if I don’t pay any fees?
Bitcoin is producing a new block every 10 minutes on average. Meaning that an on-chain transaction has to wait at least 10 minutes before the first confirmation of the network. But what if you don’t like to be the highest bidder? You could also do great if the transaction to your wallet appear in 3 hours.
Most Bitcoin wallets have an build-in mechanisim for estimating on how long a transaction is going to take depending on the fees that you are choosing. The software can do that because the mempool is public and allows an estimation of the average fee that is being paid, the amount of transactions already waiting and the time it will pobably take until yours is confirmed. Please note that these estimations are not an exact science and results can vary since the network load and the average fee can change within minutes.
If you don’t like to pay any fees that is also absolutely possible. But that makes it highly unlikely that your transaction is going to be processed at all. It could take days or even worse at some point the mempool will drop out your transaction because it became stall for too long. That being said you also don’t need to panic if a transaction is stalling. It either gets confirmed later or will be be dropped out of the pool.
What does mempool mean?
Mempool is combination of the words memory and pool. It is a database accessible by all nodes in the Bitcoin network that contains valid transactions that have not yet been approved.
Are other cryptocurrencies are also using a mempool?
Yes, most blockchains are working with the same or a similar concept. Basically, all cryptos that follow Bitcoins design do have a mempool like Litecoin for instance. Others like Ethereum are not following Bitcoins design, but also using a mempool.
How do I take a look at the mempool?
There are a couple of websites which provide simple service of watching the mempool and the current fees that are involved. Here is one example, please note that we chose it for informational purpose and we do not endorse any specific service. Another option is to access it running your own node using the Bitcoin core wallet.
Is it possible to overpay fees?
Yes, that is absolutely possible and also a reason why fees should never been set manually. Most wallets have a build-in mechanism that estimates transaction fees according to the current situation.
How long does it take until a stall transaction is dropped from the mempool?
The average configuration for the mempool expiry is 336 hours or 14 days. Please note that the expirey depends on the wallet that you are using. Some wallets also have a re-broadcast option that prevents transactions from dropping out. Another factor is the rest of the network. Some nodes might keep that transaction in mempool which can cause a longer period of time until it gets confirmed or dropped out.