The cost to complete a Bitcoin transaction has skyrocketed in recent days. A week ago, it cost around $6 on average to get a transaction accepted by the Bitcoin network. The average fee soared to $26 on Friday and was still almost $20 on Sunday.

The reason is simple: until recently, the Bitcoin network had a hard-coded 1 megabyte limit on the size of blocks on the blockchain, Bitcoin's shared transaction ledger. With a typical transaction size of around 500 bytes, the average block had fewer than 2,000 transactions. And with a block being generated once every 10 minutes, that works out to around 3.3 transactions per second.

A September upgrade called segregated witness allowed the cryptographic signatures associated with each transaction to be stored separately from the rest of the transaction. Under this scheme, the signatures no longer counted against the 1 megabyte blocksize limit, which should have roughly doubled the network's capacity. But only a small minority of transactions have taken advantage of this option so far, so the network's average throughput has stayed below 2,500 transactions per block—around four transactions per second.

How Bitcoin fees work

Bitcoin has a transaction fee system to handle situations where demand for the network exceeds its capacity. Whenever someone submits a transaction to the network, they have the option to include a transaction fee that goes to whichever miner includes that transaction in a block. If there are more transactions than will fit into one block, miners can be expected to choose the transactions with the highest fees first. So the higher the fee you attach to a transaction, the more likely it is to make it into the next block.

Of course, demand fluctuates over the course of the day. So if you have a non-urgent transaction, you're welcome to submit it with a below-average fee and let it sit around unconfirmed for a few hours. At some point, demand might slacken and you might get your transaction at a bargain price.

What this means is that not every Bitcoin transaction on Sunday paid that average $20 fee. Some paid significantly more than that, while others got away with paying less. As I write this on Monday morning, one website estimates you should pay $16.31 to get a transaction into the next block, while getting a transaction into one of the next six blocks (i.e. within the next hour) costs around $13.46.

This is a big headache for people trying to use Bitcoin as a day-to-day payment network. In the network's early days, Bitcoin boosters would tout the network's fast payments and near-zero fees. But now users sometimes have to choose between paying more than $20 in fees or waiting hours—if not days—for their transactions to complete.

Users on the DarkNetMarkets subreddit—where users discuss buying drugs and other illicit goods on underground sites—have vented their frustration in recent days about high fees.

Debate about how to cope with rising demand has split the Bitcoin community in two. On one side are "big block" advocates who argue that the network should simply raise the 1MB block limit. After more than two years of argument, some big blockers created Bitcoin Cash, a fork of the mainstream Bitcoin software that allows blocks to be up to 8MB.

But others, including the main developers of the standard Bitcoin client, worry that larger blocks will make it too difficult for ordinary users to participate in Bitcoin's peer-to-peer process for validating transactions. They have instead pinned their hopes on Lightning, an experimental new payment network that routes payments using chains of payment channels. If Lightning works as supporters hope it will, it will allow most bitcoin transactions to occur off-chain, permitting a lot more transactions to occur without increasing the size of the blockchain.