Guide to Bitcoin’s Transaction Fees (Hint: Size Matters!)
Gaining an understanding of how blockchain fees impact the total cost of ownership of your distributed ledger strategy requires a study of how fees differ from one chain to the next. Let’s start with the grandmother of them all: Bitcoin.
By Bob Reselman
Published:January 4, 2023
8 min read
In this Article
- When it comes to how they charge fees for their usage, no two distributed ledgers are the same but most often charge fees in denominations of their native token.
- Developing an appreciation for the nuanced differences in fee structures from one chain to the next will help business executives and IT managers to make more informed decisions related to the total cost of blockchain ownership.
- The fees connected to a Bitcoin transaction are very much tied to the transaction’s payload size which in turn is connected to the transaction’s number of inputs and outputs.
- Another factor that impacts transaction cost can be the Bitcoin miner’s tip; a premium that’s paid to prioritize a transaction, especially during times of chain congestion
A key factor to consider for a company thinking about adopting Distributed Ledger Technology (DLT) is the impact that a particular ledger’s transaction fees will have on the total cost of ownership (TCO) of a blockchain project. Those fees can be acceptable or exorbitant. It all depends on how the particular ledger administers its fees and how users of the ledger incur them. There is no one-size-fits-all solution. Rather, fees vary according to the DLT and the cryptocurrencies that they support.
In this article, we’re going to look at how Bitcoin administers transaction fees. In later articles, we’ll examine how other popular cryptocurrencies and distributed ledgers administer fees (for example, see A CxO’s Guide to the Details of Ethereum’s Transaction Fees). But, we’ll first focus on the oldest and probably most well-known cryptocurrency in use today – Bitcoin.
Understanding the Bitcoin Fee Structure
Bitcoin charges a fee when a transaction is added to its blockchain. A blockchain, as the name implies, is a chain of blocks. In the case of Bitcoin (it may be different for other public distributed ledgers), those blocks hold transactional data that never changes – a property of the technology known as immutability. Hence, the blocks and the data they contain are secure and reliable. By the time Bitcoin’s block validation process finishes, only one of many candidate blocks gets to be the next block on the chain. Candidate Bitcoin blocks are prepared by participants in the process known as miners, who compete against each other for the right to make their candidate block the next block on the chain (the basis of this competition is a computer race to be the first to solve a cryptographic puzzle).
Once a candidate block earns the right to be the next block on the chain, the fee to add that block and the transactions it contains is calculated according to two factors. The first factor is the number and size of the block’s transactions. The more transactions that a block has translates into more computing work that needs to be done to validate the entire block of transactions.
The second factor used to determine a transaction fee is the voluntary incentivization premium that originating accounts (accounts that submit new transactions to the blockchain for processing) can offer to block-producing miners to prioritize the processing of their transactions over others that are waiting in the chain’s queue to be processed. (This voluntary premium, which is not unique to Bitcoin, is also known among some cryptocurrencies as a tip.)
Let’s take a look at the first factor: the number and size of transactions to be added to the block.
The Impact of the Number and Size of Transactions on Fees
In Bitcoin, as well as many other cryptocurrencies, multiple transactions can be stored in a candidate block that a Bitcoin miner has prepared for possible addition to the blockchain. A transaction can consist of one or many inputs as well as one or many outputs. You can think of an input as a Bitcoin coming from an originating account. An output is a target account to which Bitcoin from the originating account is sent.
The use case for a transaction having multiple inputs and outputs is one in which a transaction might aggregate Bitcoins from many originating accounts (the inputs) and then divide the aggregate value of the inputs according to a designated number of intended target accounts (the outputs). For example, Figure 1 shows a transaction with four inputs. The value of the Bitcoins submitted as four inputs will be distributed to two outputs.
Figure 1: A Bitcoin transaction with four inputs and two outputs (source: http://mempool.space).
Alternatively, a transaction can have a single input that’s divided up into multiple outputs. Or, a transaction can be structured with any number of inputs and outputs as long as they balance out.
As the number of inputs and outputs goes up, the transaction as measured in bytes also increases. As the byte count goes up, so does the transaction fee. This makes sense because transactions with a higher number of inputs and outputs require more computational labor for validation than a transaction that has only one input and one output.
Now, let’s take a look at the second factor in a Bitcoin transaction: the priority premium that a submitter assigns to a given transaction.
The Cost of Prioritizing a Transaction
In order to understand the priority premium, one needs to understand how transactions are added to Bitcoin’s blockchain.
Bitcoin transactions are not added to the Bitcoin blockchain immediately. A popular open network such as Bitcoin can accommodate hundreds if not thousands of transactions for a given block. Absorbing them all is a herculean task. Thus, to make things manageable, before a transaction is added to a blockchain, Bitcoin adds it to a pool of pending transactions known as the “mempool” or “unordered transaction pool” (essentially, a holding area for transactions waiting to be ordered, validated, and officially added to the blockchain). A blockchain miner then pulls the transaction out of the pool and adds it, along with other unordered transactions, to the next block s/he’s preparing for the intended addition to the blockchain. As explained earlier, Bitcoin miners compete for the right to add the next block to the Bitcoin blockchain. However, before any block can be added to the chain, the transactions intended for the block must be validated by the miner.
The order in which blocks are pulled from the unordered transaction pool for processing is often determined by another process, one that’s conducted according to a priority fee that originating accounts can optionally attach to their transactions. Some transactions may offer higher priority fees than others. In turn, profit-driven miners select transactions from the pool according to how much money they can make from processing the given transaction (a blockchain phenomenon known as “maximum extractable value” or “MEV”). Naturally, given the laws of supply and demand, the unordered transaction pool becomes so congested with transactions that miners cannot process them fast enough. As a result, the submitters can (and do) use priority premiums – the restaurant equivalent of tipping the hostess for priority seating – to incentivize miners to prioritize their transactions ahead of others. When the pool is less congested and demand goes down, those same miners will return to processing transactions for a lower fee.
So, when it comes to Bitcoin (and not necessarily other distributed ledgers), the priority fee is built into the overall fee that a submitter is willing to pay. Miners will typically choose which transactions to process from the unordered transaction pool according to the transactions that offer the most money per transaction byte. The “money-per-byte” amount combines both the computing cost for transaction validation and the priority fee.
Let’s look at an example.
In Bitcoin, the monetary unit used to account for transaction fees is a satoshi (SAT). A single satoshi is equivalent to 0.00000001 Bitcoin (BTC). Figure 2 shows an example of two estimates of Bitcoin fees for a transaction that has one input and one output. Whereas the estimate on the right is 0.04 SAT, the estimate on the left is significantly higher; 0.43 SAT. This is because the time to validate the translation on the left is set to 20 minutes, while the originating account of the transaction on the right is willing to wait 300 minutes for their transaction to validate. As one would expect, the estimate on the right assumes that the associated transaction will either be given a lower priority in a congested pool or the transaction will be submitted when the pool is less congested.
Also, notice the number of bytes in both estimates is the same, as shown at the lower part of Figure 2.
Figure 2: Examples of same-sized single input/single output transactions include higher fees if it has to be processed sooner than later (source: BTC Network Estimator).
Figure 3 shows two estimates for a transaction that has four inputs and two outputs. Notice that the fee estimates are greater than those shown in Figure 2. This makes sense because, at 660 bytes, the size of Figure 3’s transactions are larger than the ones shown in Figure 2.
Figure 3: Examples of estimating a Bitcoin transaction fee with four inputs and two outputs.
An important point to remember is that the cost per byte will change over time as Bitcoin’s congestion level fluctuates and will have a direct impact on the overall cost of a transaction fee.
Putting it All Together
Getting a handle on transaction fees is essential in order to ensure that the benefit of using a distributed ledger outweighs its operational cost. While the news is full of stories about using cryptocurrencies in investment and speculation schemes, when it comes to day-to-day business operations, cryptocurrency has a more utilitarian value. While cryptocurrency can be used to pay for transaction fees, it is also the fuel that drives distributed ledgers and the smart contracts that run on them.
To the extent that certain public ledgers support smart contracts (enterprises should focus on the ones that do), smart contracts are custom-developed business and financial applications that turn the chains that host them into application platforms. (To learn more about smart contracts, read the article, Why To Optimize Smart Contract Code For Blockchain Fee Reduction.) When an organization adopts a digital ledger to run smart contracts and store mission-critical information as well as other assets such as creative material in non-fungible tokens (NFT), it’s going to pay a transaction fee every time it touches the DLT. The fees can add up quickly, particularly when the number of smart contract executions escalates. Hence, it’s important for various enterprise stakeholders – from the CFO to smart contract developers – to understand exactly how transaction fees work on their ledgers of choice.
Organizations looking to optimize the TCO of their DLT usage will find that such optimizations are easier to manage with some chains than others. For example, as noted in Blockchain Journal’s overall Guide to Blockchain Fees, the cost of usage for some chains in terms of US dollars is pegged to the value of the chain’s native cryptocurrency and not the US dollar. In those cases, organizations will have less control over TCO because of volatility in the US dollar valuation of that cryptocurrency. Similarly, organizations have limited control over the laws of supply and demand that dictate the going rate for “tips” to ensure timely transaction processing during congestion. But, as noted in this and all Blockchain Journal articles regarding distributed ledger TCO, even on chains where fees are subject to these market conditions, just knowing exactly how fees work on a given chain is critical to understanding where the opportunities for cost optimization exist.
Once transaction fees for a given chain are realized, organizations can then develop methods to help minimize TCO. As just about any business executive will tell you, cost control is equally important to revenue generation as a factor in running a profitable business. Hence, it’s important to understand how transaction fees are determined under Bitcoin or any ledger that is under consideration for an organization’s blockchain project.