One of the main advantages of transactions on the Bitcoin network is the high speed of processing — in an ideal world, a transaction joins six blocks for confirmation and is quickly processed, usually within ten minutes. However, beginners often wonder why a transaction is hanging. And the answer is that these operations are not added directly to the blockchain. First, the system collects and stores them in the Mempool.
And if you are going to use the Grapherex wallet to operate your BTC assets, then you should definitely learn more about Mempools and the features of their operations. Let’s take a closer look!
What Is a Mempool?
Let’s start with the basics. A Mempool is a storage space for a set of transactions that have not yet been confirmed and are waiting for their turn. Every computer that is set up for mining has a “temporary storage” space for these transactions. Depending on the load on the network at a particular point in time, the operation itself can wait for its turn in the Mempool for anything from several hours to several days.
How Does It Work?
Let’s say customers want to send someone a certain number of Bitcoins through their Grapherex wallet. When confirming the transaction, the system will be redirected to perform the following actions:
- sign the transaction with secret keys;
- select one of your unspent transaction outputs that are needed to build it;
- broadcast the transaction to the Bitcoin network and prepare it for full verification.
And after these actions, the Mempool comes into play. Your transaction won’t be completed at the time you confirm it — instead, it will be stored in the Mempool. To verify a transaction, the miner needs to select it and verify it manually.
Miners are people who use their computers to process and confirm transactions. The more times a single transaction is confirmed, the less likely it is to be compromised. Ideally, a Mempool transaction will be verified six times before it becomes part of the blockchain.
Key Mempool Roles
Each node (an electronic device that is part of the network) can choose which transactions to store in its memory and which operations need to be transferred further. The fact is that each node processes numerous transactions, and hence it has different Mempools. The main role of Mempools is related to two tasks:
- Node overload prevention. If every existing node started processing all existing transactions, the network would instantly cease its normal existence. That is why there are certain rules: the minimum commission is 1000 Satoshi per virtual kilobyte, the output amount must be greater than the minimum amount, the ‘Replace-by-Fee’ function works, and the maximum number of upstream transactions is no more than 25. In addition, the size of one operation is limited to 400,000 units, and the number of signature checks is limited to 15 operations.
- Elimination/limitation of software errors. Typically, in a system, each output contains lock and unlock scripts that run on spending as input. This feature allowed the system to perform a large number of useful actions, but errors appeared in the program code. In order to eliminate this problem, in 2010, these possibilities were limited.
Thus, Mempools help DDoS attack prevention by unloading the network and preventing software errors — and this positively affects system stability.
Transaction Processing Orders
As users have already understood, transactions remain in the pool for a certain amount of time, and this period grows when there is a heavy network load. Some operations have priority —generally, it depends on the commissions that customers pay when making a request. Logically, the higher the cost, the higher the operation will be on the waiting list and the faster it will be processed.
However, this doesn’t provide a one hundred per cent guarantee for instant processing. A total increase in commissions will lead to unprofitable operations and spam attacks. In addition, the throughput of the commission will still not change. The more rational way to speed up a transaction is to use the “Replace-by-Fee” feature, which makes it possible to replace an unconfirmed transaction with another one, increasing fees.