Bitcoin has the ambition of becoming a global settlement network, but the network faces growing pains as more users flood the blockchain with transactions. There are distinct limitations in the number of transactions that can be pushed through and receive final confirmation on chain, and the fee market is used to balance and order transactions.
Bitcoin is already available worldwide since all you need is an Internet connection. As more people hear about the asset and become interested in using the network, new users onboarding can easily add to more load on the network.
In order to be a successful global settlement network, Bitcoin needs to be able to facilitate all kinds of transactions efficiently. This includes both small and large payments, as well as payments that need to be processed quickly.
As the network comes under strain, users of the network need to make better use of block space, and due to Bitcoins’ programmable nature, there are ways in which a single transaction can match a bunch of conditions.
What is transaction batching?
Transaction batching is the process of combining multiple Bitcoin transactions into a single transaction. This can be done by a wallet, exchange, or other service that takes the time to compile these types of transactions and broadcast them to the network.
Batching transactions reduces the total amount of data used because Bitcoin fees are paid based on how much data the transaction uses; combining multiple transactions into a single transaction can lower data overhead and thus save on fees.
When you batch a transaction, you’re effectively committing one large input and dictating that this input has to be split into sending UTXOs to a host of different addresses that require payment.
Batching transactions are popular with exchanges, who can save on fees when dealing with multiple withdrawals from their service. When users request a withdrawal from an exchange, the custodian can create a batched transaction and submit 1 Bitcoin, for example, and have that split up to pay everyone who requested an on-chain payment. Exchanges will often encourage users to opt for batched transactions by providing a “delayed” settlement for free or at a low cost.
Batched transactions are also popular with mining pools; once they’ve received their block subsidy and transaction fees from winning a block, the mining pool can then batch transactions and redistribute them to all the miners in the pool based on the amount of hash rate they provided during the securing of that latest block.
Another use for batching transactions is to create multiple Lightning channels, while users who subscribe to Ordinal theory might use batched transactions to distribute tokens or NFTs tied to a specific set of Satoshis.
How does transaction batching work?
When a custodian or exchange batch transactions, it first identifies all of the transactions that can be included in the batch. These transactions must have a common input, such as a change output from a previous transaction.
Once the transactions have been identified, they are combined into a single transaction. The single transaction is then sent to the Bitcoin network, and once confirmed on-chain by the miners, the funds are allocated to the various public keys stipulated in the construction of the batched transaction.
What are the benefits of transaction batching?
There are several benefits to transaction batching, including:
- Reduced fees: Because the total amount of data used is reduced, the fees for the batched transaction are also reduced. It’s possible to save 75% on transaction fees by batching just a small number of payments and with no degradation in confirmation speed or other changes required. Even using exactly the same inputs you’d use without batching, it’s possible to save more than 20%.
- Increased efficiency: Batching transactions can help to improve the efficiency of the Bitcoin network by reducing the number of transactions that need to be processed and satisfying a host of different users’ transactions faster.
- Improved privacy: Batching transactions can help to improve the privacy of users by grouping transactions together with similar amounts, making it harder to detect who owns what coins and if these coins are going to different users or the same users with different public keys. Batched transactions could also be spent into a CoinJoin to make it even harder to associate with a particular user.
What Is Additive Batching?
As an exchange custodian or LSP, you must constantly deal with the fee market and users’ demand for on-chain settlement. Fees go up, fees go down, but the business must always fight for fee efficiency; otherwise, you need to pass it on to the customer, which might alienate a user base or eat the cost, which reduces your margins.
Miners will mine any transaction that meets consensus and bag the associated fees, so it’s up to you to ensure you make the most of every transaction you broadcast to the mempool. Batched transactions, like any transaction, are first sent to the mempool and have to compete with other transactions before it is added to a block.
While a batched transaction waits to be picked up, it can be altered during that time using “Additive batching”, a scheme in which additional outputs are added to unconfirmed transactions in the mempool.
When a custodian users additive batching, they could purposefully set a low fee for a transaction and broadcast it to the mempool, knowing a miner would ignore it. As more requests come in during a certain time period, the custodian can rebroadcast the transaction with a Replace By Fee (RBF) transaction or Child-Pays-For-Parent transaction.
The custodian would increase the inputs and outputs needed and bump up the fee to get miners to confirm this latest version of the transaction.
In additive RBF batching, the service provider introduces new outputs (and confirmed inputs) to a transaction in the mempool to incorporate new customer withdrawals into an unconfirmed transaction. As each customer requests a withdrawal, an output is added to the transaction in the mempool. This transaction continues to be updated until it confirms or reaches some other local optimum.
Additive batching allows custodians to make better use of the volume they have and the urgency of transaction requests they need to settle. In using additive batching, custodians can either pocket the savings or pass those savings on to the customer.
Do your own research.
If you want to learn more about transaction batching, use this article as a jumping-off point and don’t trust what we say as the final say. Take the time to research, check out their official resources below or review other articles and videos tackling the topic.