LAST UPDATED: JUNE 8, 2018
The past year has been one of the most exciting years for Bitcoin and cryptocurrencies in general. Gazing at it in retrospect, it’s reminiscent of an action-packed blockbuster movie full of financial drama, hacks, forks, rising-star altcoins, skyrocketing prices, new regulations and heated debates within the crypto community. All of this was, of course, followed by massive media coverage.
Many would say that 2017 was the best year for crypto thus far, but there are two sides to every coin — and Bitcoin is no exception. Due to Bitcoin’s architecture design, the rising volume of transactions was followed by an exponential rise in fees.
The average bitcoin transaction fee skyrocketed from just $0.40 per transaction in January 2017 to $32.50 in January 2018! The situation worsened to such a point that big merchants like Steam and Bitspark started refusing bitcoin payments and shifted to other cryptocurrencies such as Bitcoin Cash or Dash.
Though the situation has settled down again (for now) with transactions fees below $1, fees got to such a ridiculous point that Bitcoin could no longer claim ’low-transaction cost‘ as one of its most cherished features.
That being said, this article aims to clarify bitcoin transaction fees and inform you on why they matter, why the sudden rise in price, and what you, as a profane investor, can do about it.
A brief intro to Bitcoin mining
Bitcoin transaction fees – A user’s perspective
So, who sets the fees?
Deciding how much fees you should pay
The automatic way to set Bitcoin transaction fees
The manual way to set Bitcoin transaction fees
Are there any workarounds?
How is Bitcoin dealing with this problem?
A Brief Intro to Bitcoin Mining
To understand all the drama surrounding transaction fees, you must first understand how bitcoin mining, one of the key components of the Bitcoin protocol, works.
Without getting too technical, mining is the process by which the Bitcoin network issues new bitcoins and more importantly, reaches emergent consensus on the state of the blockchain.
Certain nodes on the Bitcoin network are called miners, who run specialized computer hardware called a ’mining rig’. Because Satoshi has cleverly removed the need for ‘third trusted parties’ from the equation, the ’verification of payments’, or the ’clearing and settlement of transactions‘ is managed by the miners in the Bitcoin network.
Miners validate the new transactions by integrating them into ’blocks‘ and compete with other miners by expending vast amounts of electricity to find the answer to a complex mathematical puzzle. Whoever finds the answer to the mathematical puzzle first gets to integrate his block into the decentralized ledger and thus validate all the transactions in the block and reap the rewards.
This method of reaching emergent consensus is known as the proof-of-work algorithm. The PoW algorithm is designed to provide ‘both the carrot and the stick’ to active miners.
Those who try to cheat the system end up with discarded blocks and big electricity bills, while those who play by the rules are incentivized to continue to do so by getting two rewards: the newly mined bitcoins from the Coinbase transaction, and all the fees that the users of the network integrated into their transactions.
Bitcoin Transaction Fees – A User’s Perspective
In this article, however, we’re not going to look at fees from the miners’ perspective, but from the perspective of the ordinary user.
Because of the protocol design, every block has a limited capacity of 1mb of data, which averages around 2,000 transactions per block. Because one block gets minted about every 10 minutes, it follows that if there are more than 2,000 transactions per 10 minutes (and of course, there are), the miners have to choose which transactions to include in the blocks they’re mining.
Because mining is all about making a profit, the miners are prioritizing the transactions with the highest fees. This means that users of the protocol are essentially bidding to get their transaction validated and embedded in the blockchain as soon as possible by offering miners higher rewards for their work. The higher the fees, the faster the transaction gets processed.
Transaction fees are not Bitcoin policy and they’re not mandatory, at least not in theory. However, in light of the recent massive adoption resulting in a high volume of transactions, they’re functionally obligatory.
Users who don’t include fees for the miners will have to wait for days to get their transactions confirmed. It should also be noted that because the block rewards are halving every four years until all of them are minted in 2140, the end goal is to make transaction fees the primary incentive for mining.
So, Who Sets the Fees?
The price is determined by the market for block space, or to be more precise, the price is set at the point where the supply and demand curves meet. On the demand side, there are spenders, all of them with different needs when it comes to their transactions. Some want fast confirmations, some don’t. Some use wallets with dynamic fee estimation, some do it manually.
On the supply side, the Bitcoin protocol limits the maximum block size to 1mb and the time required to mint it to 10 minutes on average. This eventually translates into:
Bigger volume of transactions + More urgent transactions
= Higher fees
Deciding How Much Fees You Should Pay
When we talk about distributed networks, we usually refer to three types of decentralization: architectural, logical and political. A truly distributed network like Bitcoin encompasses all of the aspects of decentralization. Bitcoin is politically decentralized, which means that no one controls it. It has rules without rulers. Apropos, like everything else in Bitcoin, the rules for ‘the order of transactions’ are set in code.
Namely, every transaction has its priority set by three criteria:
Age – The ’older‘ the inputs of a transaction are, the better
Size (in kb) – this is the structure of the transaction composed of metadata, inputs, and outputs
Fees – The bigger the fee, the higher the transaction priority will be
Although it’s possible to pick and choose which inputs (by size and age) to incorporate when you create transactions, it’s really impractical, and the chances that you’re going to do a better job than your wallet software are slim. This means that fees are the only malleable parameter left to work with.
Now, before we explain how to choose what fees to pay, first you have to ask yourself one simple question: how important is the speed of confirmation for this transaction for me? Because this is all that really matters.
If you want your transactions to be validated as fast as possible, you’re going to have to pay higher fees. If you can afford to wait a few hours or even a few days, then you can get away with paying the lowest fees or even zero fees for your transaction.
The Automatic Way to Set Bitcoin Transaction Fees
Most of the bitcoin wallets today come with the capability to efficiently calculate the amount of fees you need to pay to get your transaction through in a reasonable amount of time.
For example, if you’re using a popular online wallet like blockchain.info, the wallet offers two options for transactions:
Regular – The estimated confirmation time is more than 1 hour. Select this option if you want to save money, but are OK with your transaction taking longer
Prioritized – The estimated confirmation time is less than 1 hour. Choose this if you want to save time, but pay more.
The Manual Way to Set Bitcoin Transaction Fees
If you’re not in a hurry and you’re willing to spend a few hours of your time to save some money, you can set the fees manually.
Before you do anything else you want to use a bitcoin fee calculator like this one. The metrics on the site are represented as satoshis per byte because that’s what miners care about as they can only store so many transactions in a 1mb block.
You, however, care about the total fee of your transaction, which is also determined by the size of your transaction (measured in bytes) rather than the funds contained in it. A 300-byte transaction will cost you the same amount of fees, no matter if you’re sending 100 bitcoins or 100 satoshis.
Although there is no regular method to see the size of your transaction before you send it, there’s one clever tactic you can use. Set a manual fee per KB at 7 satoshis/byte which equates to 0.0007/KB (just for example) in your online wallet.
Now use the recommended fee from the wallet calculator to reverse engineer the size of your transaction by dividing the recommended fee by your fee per KB and multiply it by 1000. So if you get recommended 0.000220 and your fee per kb is 0.0007 that’s 0.000220/0.0007 x 1000 = 314.2 bytes transaction.
Now that you presumably know the size of your transaction, decide how long you’re willing to wait for confirmation. By looking at the chart above, you can choose how much time you want to wait (in minutes) and see the recommended satoshi per byte fee. That’s the fee you want to pay for each byte in your transaction. If you’re too busy to calculate the bytes in your transaction using the method above, just assume your transaction is somewhere between 260 (median size) and 500 bytes (a bit larger).
Are There Any Workarounds?
After reading this article, you’re probably wondering if there is some kind of hack or a workaround to cut the transaction fees down? Frankly, there isn’t. The rules of the game are set by the Bitcoin protocol, and you can’t circumvent the rules. That’s the beauty of Bitcoin. However, what you can do, is to be smart about it.
One way you can cut your costs is by batching multiple payments together so you can cut the size of your transaction. Another method is to avoid the rush hours or the times of the day when the network deals with the highest transaction volumes. Also, if we’re honest about it, most of the payments you send are not that urgent after all; waiting a few more hours might be the reasonable thing to do.
Another alternative is to ditch Bitcoin altogether and use other cryptocurrencies like Bitcoin Cash, Dash, Litecoin, Monero or others to make really fast payments with very low fees. However, there aren’t many merchants accepting altcoins as payment so this may be a hindrance.
How is Bitcoin Dealing With This Problem?
There are two schools of thought in the Bitcoin community at the moment. Part of the community simply wants to raise the storage room of blocks from 1mb to 8mb, creating space for more transactions and improve, at least temporarily, the way Bitcoin is used as means of exchange.
The other side of this debate rightfully fears that increasing the blocksize will also increase the storage and bandwidth requirements for running a ’full node’ and thus it will create a more centralized network with fewer people verifying the transactions.
In fact, the divide between the two groups was so great that part of the community supporting bigger blocks forked the Bitcoin blockchain and created Bitcoin Cash. As it stands, Bitcoin has the support of the vast majority in the community.
The most promising alternative thus far is the Segregated Witness technology. Using SegWit actually halves the transaction fees, but for some reason only 12% of the network takes advantage of this technology.
Most wallets and exchanges still haven’t implemented SegWit, which makes the usage of the technology kind of a hassle at the moment. Only a few online wallets like Coinbase, the BTC.com wallet and few hard wallets like Trezor and Ledger Nano S support SegWit as of today.
Another way of dealing with the issue of a jammed blockchain is the Lightning Network technology. The Bitcoin community has been waiting in excitement for this solution to go live, and finally, on January 20, 2018, the alpha version of the Lightning Network was released for public testing on the main client. The first ever off-blockchain purchase has already been conducted with great success. So what’s the deal with Lightning Network?
The Lightning Network enables users to create separate ‘payment channels’ between each other and conduct as many micro and macro transactions as they like, instantaneously, with zero fees. The Lightning Network creates bidirectional payment channels using Bitcoin’s native smart-contract scripting language to generate a ledger entry on the blockchain, signed by both participants and used for the transaction of value between two parties, without broadcasting every transaction to the blockchain.
This entry can be closed by either party at any point in time, and only the most recent version of the state of affairs (the final balance) is considered as valid and broadcasted to the blockchain. This system vastly reduces the number of transactions that the Bitcoin protocol has to process and therefore greatly reduces the fees. It essentially solves the Bitcoin scalability problem while enabling instant payments without worrying about block confirmation times.
This so-called ‘upgrade’ to Bitcoin is the technology that may eventually save it from complete failure as a currency. However, the cryptocurrency world is stochastic, and no one can predict the future with any certainty at the moment. The unveiling of the battle for dominance between various cryptocurrencies is one of the most exciting phenomena to observe in our lifetimes. Whoever comes on top will change the name of the game.