Why are Bitcoin fees so high!?

in #bitcoin7 years ago (edited)

I've seen dozens of people ask some version of this question: "Why was my Bitcoin fee so high?" Recently fees for Bitcoin transfers have averaged $50 and some have been over $100--even for transactions of just a few dollars. After typing out lengthy responses several times, I thought I'd post this here.

There are three factors affecting your Bitcoin fee: (1) the Bitcoin "mempool," (2) the size in bytes of your transaction, and (3) a miner’s fee per byte.

Background

A limited number of Bitcoin transactions are confirmed by Bitcoin miners when they generate a new block. The miners select a batch of transactions to confirm, and those transactions are included in their block. Bitcoin users try to get their transactions chosen for confirmation by offering a fee to the miners; the fee is expressed in BTC/byte. Miners tend to grab the transactions with the highest fees to confirm.

The Bitcoin mempool

When there are more transactions being made than there is space in the blockchain, a backlog begins to build up, known as the Bitcoin mempool. Transactions offering lower fees start piling up, and only those offering the highest fees get confirmed.

You can take a look at the mempool at https://core.jochen-hoenicke.de/queue/#24h. You'll notice several large bands along the bottom of the chart that are never touched by the top line; those represent transactions with low fees that are not being confirmed. You'll also notice bands of color at the top that totally disappear when the top line dips below them, and others that get hit by the top line from time to time. Those represent transactions with a fee high enough they were picked up by the miners for confirmation.

Looking at the chart right now, I'd want to offer at least 50 Satoshis (1 Satoshi is 0.00000001 Bitcoin, so 0.00000050 BTC) if I'm hoping to get confirmed in the next day or so, but at least 160 Satoshis if I want a pretty fast confirmation. Fees of less than 50 Satoshis/byte may get confirmed some time in the next couple of weeks, or they may get deleted by Bitcoin Core after 2 weeks, or they may get confirmed by some other node weeks later.

Transaction Size

So how are some transactions bigger (in Bytes) than others? The same way my pocket can hold more bills and coins some times than others. I can start out with a $20 bill in my pocket one morning, and buy coffee for $1.87 and end up with a $10, a $5, 3 $1s, a dime, and 3 pennies.

In the same way you could start out with 3 Bitcoins one day; if you spend 0.72 BTC you'll have 2 Bitcoins and 0.28 Bitcoin; if you spend another 0.3 BTC you'll have 1 Bitcoin, 0.28 Bitcoin, and 0.7 Bitcoin; and if you spend another 0.02 you might have 1 Bitcoin, 0.26 Bitcoin, and 0.7 in your wallet. Finally, you might spend 1.92 bitcoin, and end up with just 0.04. Your first transaction might be "Give Bob 0.72 BTC using this Bitcoin and return the 0.28 change to me." Your final transaction would be more like "Give Bob this Bitcoin, this 0.26 Bitcoin, and this 0.7 Bitcoin, and return the 0.02 change to me"--more bytes of data, multiplied by the fee you set.

A typical transaction is about 500 bytes, so a fee of 100 Satoshis/byte would work out to 50,000 Satoshis or 0.00050000 BTC ($6 at $12,000/BTC) and a fee of 250 would work out to 125,000 Satoshis/0.00125000/$15). The fee is the same whether your transaction is for 0.0017 or 3.75 BTC.

Setting the miner's fee per byte

If you're using an exchange, they try to calculate a fee that will get your order filled pretty quick and avoid those "I sent funds out of Exchange X 3 days ago and it still isn't in my wallet!" complaints. If you're using a wallet that supports it, you get to set the fee yourself. If you’re using GDAX, they’ll pay the transaction fee for you!

Sort:  

"If you're using an exchange, they try to calculate a fee that will get your order filled pretty quick and avoid those "I sent funds out of Exchange X 3 days ago and it still isn't in my wallet!" complaints."

The vast majority of exchanges don't allow you as a user to set the outbound (withdrawal) fee. Hence the complaints about not receiving the coins, since users in that situation didn't have any control over the fee choice made by the exchange. Exchanges typically batch up withdrawals, so have large (byte-size) transactions, which need large fees to go along.

Users do have control over fees going into exchanges. For transactions you as a user are sending anywhere, it's good to emphasize that higher fees are needed for faster transactions (not for more valuable ones, necessarily).

It's like paying for overnight shipping versus ground shipping for an item. Whether you're shipping a diamond ring or a paperclip, the weight's similar, so the shipping cost will be similar, and only vary on how fast you want that item delivered to you.

Good response. Perhaps I should write a "Why do Bitcoin transactions take so long!?" post for those experiencing the other side of the coin.

I paid $50 to buy steem the other day and was not happy about it, but than it went from $2.90 to almost $8 so I am happy 😊

I also found that the problem fee is high

I am a newcomer and I really want to be your friend.
I will follow you~

More informative .

Congratulations @ch3x! You received a personal award!

1 Year on Steemit

Click here to view your Board

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @ch3x! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!