An inefficient use of Bitcoin

People on Reddit recently associated a Bitcoin address with the current backlog experienced by the Bitcoin network. While I don’t know the exact impact of this address’ activity on the current backlogs, I spotted a way to reduce the size these transactions take.

Before diving in the optimization of this address’ activity, I’d like to point out that this article is in no way making the argument that the incriminated address’ activity is illegitimate, or part of a larger scale “attack” on the Bitcoin network. As pointed out by LaurentMT, “there is no difference between a spam attack and an inefficient process” in Bitcoin, and to me this case clearly belongs to the latter category.

This address is making tens of thousands of OP_RETURN transactions (to put it simply, it is inserting data in the blockchain). Furthermore, this address’ owners are very probably associated with the mining pool BitFury since it mined 64% of transactions from this address (while BitFury only represents ~9% of the mining power at this time).

While OP_RETURN is the cleanest way to do insert data in the blockchain and is used in many laudable applications, BitFury and this address’ owners can take advantage of the Bitcoin protocol to reduce the footprint of this activity.

Normally, only one OP_RETURN output is allowed per transaction. So when someone wants to insert N pieces of data in the blockchain, they have to make N transactions, resulting in a very big overhead in transaction size. In this case, each transaction consists of around 390 bytes, but only 40 are the data being inserted in the blockchain.

Transactions with multiple OP_RETURN outputs are possible in the Bitcoin protocol, but the standard relay policy makes it so they’re not relayed by peers on the network. However, since they are still valid, it is possible for miners to mine transactions with as many OP_RETURN outputs as they wish (as long as the transaction does not exceed 1MB in size).

Since the owners of this address seem to already be in relation with BitFury, they would just have to craft transactions with multiple OP_RETURN outputs and send them directly to BitFury instead of broadcasting them on the network.

I did the maths, and had this technique been used, this address would have used 86.6% less block space (equivalent to allowing more than 100,000 “normal” transactions to be mined over the last 4 months) and its owners would have saved up in the order of 10 BTC in fees.

This is only one of many inefficient uses of Bitcoin out there, but as fees go up, we should expect transaction creators to try to optimize their usage of Bitcoin as their inefficiencies will start to cost them non-negligible amounts of money like in this case.

If you’re the owner of this address and want to use this technique to save on fees or you just enjoyed this article, feel free to contribute to my beer fund :)