Zero Confirmation: Fees Increase in Bitcoin Network

In recent months many bitcoin users have been complaining about their transaction taking hours to get confirmed. Indeed, this happens quite often, and some users think that increasing a transaction fee could save the day. But is this really a remedy?

Distributed Lab experts have written an exclusive feature for ForkLog explaining specific features of this issue.

In fact, it’s impossible to determine transaction fees in the future: you either have to pay through the nose by setting a higher fee, or you wait for a long time for the transaction to confirm.

However, in bitcoin network all data is open, therefore the solution is to constantly analyze the state of the network in order to determine the best fee at the moment. This proves to be quite a task for an average user, and it should be performed by software, like that of bitcoin wallets.

Still, most wallets either don’t offer such functions and thus make users pay extra money, or hide this functionality forcing users to wait for the transaction to confirm by making fees minimal.

Bitxfy, a mobile wallet developed by Distributed Lab, is one of those apps that dynamically determine the fees. The developers have designed their own algorithm of estimating a transaction fee.

Average transaction confirmation time

The next step is to allow the user to customize the fee. This is done by selecting one of the three transaction priorities with each of them based on the current optimal rate. Thus, if you wish the transaction to confirm faster, you may increase the priority to middle or high. Upon forming the priorities, the algorithm assumes that an average-priority transaction has to have a 50% chance of making it to the first two blocks found after it had been sent.

A somewhat similar solution is of offered by Mycelium, which gives users a possibility to select between LowPriority, Economy, Normal, and Priority dynamic miner fees.

It should be noted, that in some abnormal situations transactions may require more time to confirm, as it is impossible to forecast the fee in the long run. Still, such algorithms provide much faster confirmations without paying excessive fees.

In order to learn how this works one has to understand what a bitcoin transaction fee actually is. The fee mechanism is established to pay for services in the distributed network, where the service is the data storage. Essentially, users pay for each byte of data added to the single database. Since the distributed network’s capacity is limited, users compete for the record priority. By forming transactions, users set a fee, i.e. a certain amount of bitcoins for each byte. Over the last month, the average cost of such a record varied between 20 to 300 satoshis per byte. As the cost varies dynamically over the time, users have to compete almost at random.

Number of transactions awaiting confirmation

Therefore, the problem is often is not in user decisions, but in wallet or other services software.

Regardless of availability of manual control over transaction priorities, bitcoin wallets may use mechanisms of estimating current costs of recording instead of using constant or manually updated values. In terms of saving fees and transaction priority governance, this gives the wallet quite an edge.

It should be noted, that record cost forecast is possible as well, but such forecasts work only in the short run (a couple of minutes on average). If the forecast is outdated and the transaction is not confirmed, it’s quite possible that one will have to wait for hours and even days for it to confirm. It follows, that it’s not the forecast, but the actual price for the recent few hours that should be the closest to the optimal fee.

Significantly, Bitcoin’s protocol is quite flexible in terms of fees: for instance, one of the improvement proposals, BIP125, allows users to increase fees for transactions that had already been formed and sent.

Unfortunately, there are few wallets that implement this functionality for the convenience of their users. This feature also has a number of technical nuances and requirements for correct work: for instance, user has to estimate the fee size once again, form and sign a new (alternate) transaction, broadcast it to the network, and continue monitoring. This explains why the option of increasing fees for existing transactions is not spread too widely.

Thus, the best solution for mobile wallets is in adaptive calculation of cost of blockchain records along with the option of selecting priority for each transaction. Still, since the network load is totally unpredictable, it’s important to remember that no fee estimation/forecast algorithm can be a certainty.