Bitcoin fees in decline

After the long-awaited activation of the Bitcoin network’s upgrade SegWit many questions quickly arose about when and how bitcoin users would start to enjoy its benefits.

Once wallets and users employ the new SegWit format, blocks can theoretically grow as large as four megabytes each. In practice, however, developers have stated that they’ll be more likely to see 1.7 to 2.1 megabytes blocks. 80 wallet developers, exchanges, pools, and other Bitcoin projects indicated that they were ready for Segwit prior to activation, out of a of 137 entities listed on bitcoincore.org.

The first block larger than Bitcoin’s original 1,000 kilobyte block size limit was mined on August 25, weighing in at 1032.119 kb. Large blocks have continued to trickle in, and today we commonly see as many as six blocks in a row all larger than the old limit. SegWit transactions now account for a little over one percent of transactions, as users, companies, and wallets have each had to make changes to facilitate the new format.

Transaction percentage2

Percentage of SegWit-formatted transactions in each of bitcoin’s recent blocks

While bigger blocks have become a reality, there was little indication that any reduction in fees had been delivered to Bitcoin’s users. Fees have occasionally been as large as US$9 per transaction, and larger blocks should alleviate fee pressure.

In order for the fees to shrink, Bitcoin transactions in the mempool, which holds pending transactions before they are added to blocks, had to be emptied of more than 100 megabytes of backed-up transactions that existed just before SegWit’s activation.

However, transactions in the Bitcoin mempool size dropped off sharply on August 29, and it’s been around four megabytes since. Clearing the backlog has also made the average size of Bitcoin’s blocks far smaller. Starting on Sunday at block 483,286, many blocks have been half-full or smaller, and fee sizes have dropped to their lowest in a year.

Block Size

The original purpose for SegWit was to patch a vulnerability called Transaction Malleability, (TxMal) which first became famous when Mark Karpeles blamed it for the MtGox hack in 2013. The patch that fixes TxMal also adds a framework that helps Bitcoin scale in other ways, namely by making these layer-two applications easier to implement, such as the Lightning Network and Sidechains.

There are a further eight distinct changes that are manifesting themselves in different ways at different times. Only one of them affected the block size limit, while others work to increase the system’s efficiency so that the number of transactions that Bitcoin can process increases, without increasing the blocksize. Still other changes work to raise Bitcoin’s security.

One change, called ‘linear scaling of sighash operations,’ is an efficiency gain that changes the calculation of the transaction hash for signatures. “Each byte of a transaction only needs to be hashed at most twice,” states the Bitcoin Core development website. It more efficiently does the same job as before, so that large transactions can still be generated without running into problems due to signature hashing, even if they are generated maliciously.

Another change, called ‘script versioning,’ promises to enable lots of smaller efficiency gains which will be enabled in future versions of Bitcoin. The patch makes improving Bitcoin’s code safer by simply adding a version number to all script improvements. This allows individuals to opt-in to particular versions.

Script versioning allows many future projects like Schnorr signatures, key recovery, smaller signature sizes, sidechains, drivechains, and smarter smart contracts using Merklized Abstract Syntax Trees (MAST) all possible without another contentious hard fork.

In the meantime, version 0.15 of Bitcoin is slated for release within the next few days, and has many small and medium-sized improvements. Blockstream CTO Greg Maxwell recently gave a presentation focusing on the changes in 0.15, and it included many system efficiency tweaks. Among them was a new fee estimation system.

Wallets are currently estimating the appropriate fee for a Bitcoin transaction, and it’s often too high. All types of Bitcoin wallets, including internally-hosted wallets on exchanges, face this problem. Maxwell explained that the new 0.15 wallet is “smarter about not producing change which would be uneconomical to spend and will slightly overpay fees to avoid doing so.”

Fee estimate

Bitcoin developer Jameson Lopp has already integrated the new software into his statistics tracking website, and stated on Sunday that he has seen a huge improvement in fee estimates for the new Bitcoin wallet clients. In some cases, it shows that users can send extremely small fees of just a few satoshis, and at worst, the fees were estimated at around one fifth of their previous highest estimation.