If you are a father, you can no doubt relate to a “waiting room.” How many hours spent drinking coffee, pacing the floor, biting fingernails and if you partake – smoking cigarette after cigarette?
It’s not just fathers who play the waiting game; if you look around, you’ll see you are not alone. Moms, Dads, brothers, sisters, aunts, uncles, and friends often gather as well. All experience the same “anticipation” as they wait. (And in some incidences wait, and wait and wait.)
Although that waiting is so much fun, it’s not the kind of wait we are on about here. Ok, what “wait” are we referring to then? The Mempool wait.
Allow me to explain a Mempool:
To give the skinny on a Mempool: A Mempool is simply a waiting area for all Bitcoin transactions.
When you purchase Bitcoin, you have had to wait – no doubt – for the purchase to arrive at it’s intended destination. Sometimes that wait is short, and other times, it seems like it will never come.
When a transaction broadcasts into a Network, it is first “verified” by all available Nodes in the network. (these are computers participating in a system} from all over the world. (usually, but not always, we must wait until the transaction is verified six times for it to reach the receiver)
Nodes are typically different sizes (measured in MB), meaning; they can store varying amounts of “unconfirmed transactions.” And this explains why each node has its unique rendition of a block and why we see blocks with different quantities of transactions.
Once the transaction passes through the verification process, it is then picked up by a “full node” operated on a network of computers. It then sits as an “unconfirmed transaction,” or waiting area called a Mempool (shortened from Memory Pool) until it is picked up by a ” miner,” then included in the next block.
What Decides When a Transaction is Picked up by a Miner?
To keep Nodes from crashing due to an overload of transactions in their Mempool, the Node will start prioritizing by the amount of fee attached to the deal using an Incentivized system. Naturally, the higher prices paid in fees will result in quicker inclusion times since the miners want to earn the most they can. Miners receive their pay by the charges associated with the transactions, so to ensure your transaction is included quicker, it is wise to pay a higher fee.
An Incentivized system presents a problem. Miners will naturally seek to include the transactions with the higher fees first, rather than confirming the one with lower fees. If you pay no costs at all, you risk miners viewing your transaction as a “spam transaction” and taken out of the Mempool entirely.
The issue with this Incentivized system is two-fold:
- Lower fees can result in longer confirmation times – this is not to say that your transaction will never be confirmed. However, it can take hours and even days longer. (on average 48 hours if not rejected)
- Micro-transactions are all but impossible. Say, for instance, you want to buy a coffee, pay for a taxi, or even pay for parking. You could end up paying more in fees than the actual costs, so it is not practical and makes no sense to use Bitcoin in this way.
BIP 35 Explained:
BIP 35 (Bitcoin improvement #35) allows an outside Node to access another’s Node with intentions of:
- Allowing Lite Wallets (SPV clients) learn what transactions are before they are confirmed and included in the next block.
- Allowing miners to download the list of transactions awaiting confirmation and search out those with higher fees so they can begin their work.
- Allowing remote diagnostics to be run.
Important because the faster the transactions are included in the next blocks, the better the user experience will be.
Something that is not wanted is a “traffic jam,” which will result if the number of new transactions comes in faster than those cleared and included in blocks go out to the Blockchain.
Once a Node accepts a block from a miner, those transactions are then removed from the Node. This removal results in a drop in the size of the Mempool.
Keep in mind if the size of most Mempool’s is about 3 MB, it would mean transactions would have to wait a couple of blocks for inclusion in the next available block; because each block is about 1 MB in size. So it would take three confirmations to clear the whole Mempool IF no new transactions were coming in.
What can be done if you want to speed your transaction through the Mempool?
- Pay a higher fee prior to broadcasting the transaction to ensure miners are “incentivized.” (this would be my choice, as I have not tried and therefore have no success history with the other two avenues)
- Some wallets like Electrum will allow you to use RBF (replace by fee), which will enable you to rebroadcast a transaction to replace the other one and with a higher price fee paid.
- Some Mining Pools allow you to speed up your transaction process for a fee or picked up or on a first-come, first-serve basis.
Mempool is an integral part of the Bitcoin system. They allow us to “see” if there are traffic jams, which would cause a time delay in the overall processing of our transactions and higher fees paid.