Bitcoin Batching Transactions – What You Need to Know
Coinbase managed to help its clients save 75.2% in transaction fees and reduce their daily transaction count by 95% by batching Bitcoin transactions. Transaction batching is combining multiple transactions into one rather than creating a new transaction for every request. It dramatically reduces the costs of transacting bitcoin and reduces the overall Bitcoin network load, allowing it to fit more payments in a smaller space.
Currently, many popular Bitcoin exchanges use this scaling technique of payment batching. Also, many wallets have it as a built-in feature that users can quickly implement in custom wallets and payment-sending solutions. This guide will introduce bitcoin batching transactions, some benefits it has on its users, and a relatable drawback.
What is Bitcoin Batching
Unlike other cryptocurrencies like Ripple and Ethereum using an account/balance model, bitcoin uses another alternative – Unspent Transaction Output model (UTXO) – in its transactions. Bitcoin users don’t have balances in their wallets; instead, they have UTXOs that they control.
When transacting bitcoin to someone else, the sum they need to transfer should be equivalent to the number of UTXOs their wallet selects as inputs. The recipient will receive the desired amount (output), after which the sender gets back the difference and the change output. The output consists of an unlimited number of bitcoins in Satoshi – the lowest denominational unit of a bitcoin (1 Satoshi equals 0.00000001 Bitcoin).
A Simpler Explanation
If you’re buying a soda for $10 and only have a $20, you don’t give the cashier half of your 20 dollar bill – you hand him the 20 and receive some change instead.
A block has no hardcoded limit to the number of transactions it can fit. Therefore, since miners have limited space of 2MB to sell, they will need to pay higher fees for more significant transactions to be included.
There are two approaches in which you can keep your transactions as small as possible and save fees:
- UTXO consolidation or consolidating your outputs – you can use as few inputs as possible by continuously sending smaller UTXOs to yourself when the fees are low and receive one large UTXO back
- Transaction batching – if you make frequent transfers, you can include an almost unlimited amount of outputs to different people in one transaction
Batching is common for mining pools or exchanges that can trade off immediacy for efficiency. A batched transaction from an exchange will have dozens if not hundreds of outputs; therefore, it’s rare for an everyday bitcoin owner to go to the additional effort of batching transactions. Furthermore, most wallets make it hard to construct batched transactions.
Benefits of Batching Bitcoin Transactions
Batching has some benefits to bitcoin users:
The Best Way to Accumulate Multiple Transfers
Batching is an excellent way to reduce the number of transactions by aggregating thousands of single transfers. Before batching, bitcoin users would send transactions with unique transaction ID for each of them.
Reducing the Maximum Number of Unspent Bitcoin in Your Wallet
Batching transactions creates a single change output for all the transaction payments, leading to fewer unused inputs.
Minimized Consumer Transaction Fees
The fees for sending many transactions significantly reduces when batching Bitcoin transactions because they merge into one.
Reduced Transaction Generated Per Day
Batching Bitcoin transactions minimizes transactions made per day, which means that our services are doing less work to achieve the same result. Less block space is needed with batched transactions, reducing the overall impact on the network, and you can be more efficient.
Reduces Internal Alerts for Exchanges
Exchanges continually monitor their systems and alert engineers when services start operating outside the norm. Before batching bitcoin transactions, the time it took for a bitcoin to send a request to get processed and submitted to the network as a transaction was delayed extensively.
It is because of increased activity levels on the Bitcoin network and random delays between blocks getting mined by miners. Exchanges often have to wait on the change output from a previous transaction to get confirmed to use those funds to fulfill another request. With reduced transactions, exchanges have fewer change outputs to wait on, and the problem has nearly faded.
The downside of Batching Bitcoin Transactions
The significant benefits of batching are reduced fees and lower costs; however, it also comes with drawbacks – a lack of privacy and centralization. After you send users using the same transaction, they can assume that you pay everyone else receiving an output from that transaction. Nevertheless, this problem is partially avoidable by sending batched payments in a coinjoin transaction created with other users.
Many exchanges make payments to users when those users make a withdrawal request. But when it comes to batching, users need to accept that their payment will not be sent immediately, only after some time when it combines with other withdrawal requests. Firstly, there will be a delay in notifying users in their receiving wallet of the unconfirmed transaction unless they send the batch containing their payment. Secondly, by delaying the sending of their payment, there will be a delay in its confirmation.
Batching Bitcoin transactions is one effective way to reduce fees and costs; however, one last concern is users are unable to fee bump a batched payment. To prevent attackers from wasting node resources, transaction relay nodes such as Bitcoin Core impose limits on the transactions. The receiver of your payments can respend their output in smaller transactions that build up the transaction group containing your transaction.
If your transaction group gets closer to a limit, the harder you’ll be able to fee bump your transactions using either the Replace-by-Fee (RFB) or Child-Pays-for-Parent (CPFP) fee bumping. An increase in unconfirmed childrens transactions will increase the CPFP bumping fee. You will have to pay for your transaction’s increased fee rate and the costs lost to miners when they remove any child transactions to accept your payment.