Memory is Money: transaction fees in the Bitcoin payment network

by

Memory is Money is a sequence of posts on Core Economics describing the internals of the Bitcoin network. The intended audience are professional (academic) economists. Memory is Money is not  a tutorial series on how to use Bitcoin, there are many excellent resources for this on the internet. It will be occasionally useful to describe certain aspects of the Bitcoin network with the aid of a user interface, for this I will use the open source Armory desktop application for managing personal Bitcoin funds. The data of all transactions in the network is publicly available, I’ll use the website blockchain.info when needed.

In this post I shall describe the basic aspects of the Bitcoin payment system, paying special attention to transaction fees. I recall attending a number of seminars by Joshua Gans, Stephen King, and Julian Wright about regulating interchange fees (for references see for example  Joshua and Stephen’s papers). At the time there was significant interest in understand  the economics of payment fees. The Australian Reserve Bank conducted an enquiry into interchange fees associated with credit cards and moved to regulate these fees. The Bitcoin payment system makes certain aspects of this redundant,  as it is a payment system that does not require intermediation  by MasterCard or Visa or Bankcard. It allows for bilateral payments directly from one Bitcoin account to another and such payments are registered by a decentralised network of competing Bitcoin accountants.

Introduction to the payment system

Bitcoin is a distributed network for recording Bitcoin denominated transactions between Bitcoin accounts.  Transactions between Bitcoin accounts (addresses in wallets) do not rely on trusted third party mediation and are recorded by a network of competing accountants (miners) in a public ledger that contains a record of all transactions. There is only one way to transfer Bitcoins from one account to another, and that involves getting the distributed network of competing Bitcoin miners to record the transaction.

All transactions in the Bitcoin network are made between Bitcoin addresses in wallets (for this post, simply  wallets). Wallets contain private and public information. The public information in a wallet is an address for receiving Bitcoins. It looks like this:

1HB5XMLmzFVj8ALj6mfBsbifRoD4miY36v 

This particular address is the public address for donating to Wikileaks. Anyone who knows the public address in your wallet can send you Bitcoins. You don’t have to be online for this to happen, in fact you don’t have to do anything to receive Bitcoins. However, you do have to have an internet connection to know the balance of Bitcoins in your wallet. This is because your wallet does not contain the Bitcoins you own, that information is contained in the public record of Bitcoin transactions, which you need to access each time you want to check the quantity of Bitcoins you own.

The Bitcoin wallet also includes private information used for sending Bitcoins to other wallets. This information is secret to you. It is private information that is best kept offline. Some keep it in printed form in a safe, others on a USB that does not go into a computer with an internet connection. Many people these days keep the private component of their wallet in an online account held by a trusted third party  (I’m not entirely familiar with this method or the trust issues associated with it). While you can keep an eye on your Bitcoin balance, and can receive  Bitcoins, without accessing the private part of your wallet (indeed, without your full wallet being online), you need to use your private key to send  Bitcoins to another wallet.

When sending Bitcoins, you are required to choose a non-negative transaction fee that you are willing to pay to the miner that records the transaction. Competing miners confirm your transaction and update the public record. This in-turn updates the balances in the sender’s and receiver’s wallets. Receivers do not pay a transaction fee.

It is possible at present to get your  transactions confirmed without paying a positive transaction fee. When I began writing this Memory is Money  post a transfer of around $140 million USD was made and confirmed in 33 minutes at no cost to the sender. That is, with a zero transaction fee. This information is publicly available (for example see here) and is shown in the next figure:

bigchash

With a zero transaction fee you run the risk of delays in confirmation. Transactions with zero fees can remain unconfirmed, unless they meet certain priority requirements that are described below.  Presently, it takes on average around 12 minutes for transactions to be confirmed, and there has been some sort of spike in average confirmation times since the US senate’s hearing on Bitcoins, see the next figure:

average

 

 

Miners and transaction fees in the Bitcoin payment system

With an eye on eventually developing a straightforward model  for understanding Bitcoin transactions, here is how things work at present (I’ve eschewed certain details. In particular, those having to do with the heterogeneity of computer-memory size of transactions, these are not related to the economic size of the transaction, and I’m ignoring issues having to do with miner dispute resolution and the ways transaction fees are handled in the presence of disputes).

There is a large number of wallet owners. Each individual may own a number of wallets, which are generated at zero cost. The owner of wallet A wants to send Bitcoins to the owner of wallet B. The owner of wallet A is connected to the network. There is a large number of miners (accountants) all of whom are also connected to the network. The basic timeline for confirming a transaction is as follows:

  1. The software of the owner of address A announces to the network that a quantity of Bitcoins are sent from wallet address A to wallet address B with a non-negative transaction fee.
  2. The announcement is accepted into network memory pool if it satisfies certain minimal conditions.
  3. The memory pool contains many unconfirmed transactions. These are ordered according to a priority rule.
  4. A miner makes a list (according to a block creation rule) of unconfirmed transactions. This list has a size upper bound, so some unconfirmed transactions can be left out of the list.
  5. The competing miners try to solve a computational problem associated with their list (block).
  6. If the computational problem is solved, then the solution is confirmed by other miners and the transactions listed in the block by the successful miner are entered into the public record.

Turning to payoffs,

  • If the transaction from address A to B was in the confirmed list of transactions, then the balances in addresses A (minus transaction fee) and B are adjusted. If the transaction is not confirmed within three days, it is usually cancelled by the sender’s software.
  • The successful miner receives a reward of a) newly minted Bitcoins and b) the transaction fees in the new memory block that has been created. Unsuccessful miners get nothing.
  • All miners that attempted to solve a computational problem pay a cost that depends on the technology that they use (e.g., electricity, hardware cost). Analytically, solving a computational problem is indistinguishable from a technology dependent probability distribution describing a probability of successfully completing a project in a contest setting. Indeed, the beauty of costly (seemingly useless) proof-of-work computational challenges is that they are a clever implementation of decentralised  randomness (a nature node) in the mechanism.

The priority rule in  step 3 above does not involve the transaction fee. If there are two transactions for x and y Bitcoins going from a single address to another single address and have been in the memory pool for time t1 and t2, respectively, then the first transaction is given greater priority than the second iff xt1 > yt2.

On the other hand, the current block creation rule of step 4 above involves the transaction fee in the following nonlinear way:

  • There is a limit to the size of the block listing transactions to be confirmed by the miner, lets call this least-upper-bound M.
  • If less than a threshold of around 0.06M is in the block, then include any transaction (according to priority) even those that have zero fees.
  • For less than 0.5M accept all transactions that include a flat 0.0005 Bitcoin transaction fee.
  • For the range 0.5M to M accept transactions with fees that increase exponentially with the size of the block.

Looking ahead

Miners have began implementing their own fee rules. So envisage a situation, which may soon happen in the Bitcoin network, where the miners are principally motivated by the transaction fee.  Over time, the reward of newly minted Bitcoins is set to diminish. If the Bitcoin exchange rate stabilises, then this may increase the focus of miners on transaction fees. In the extreme case where miners are exclusively rewarded through transaction fees, the overwhelming incentive will be to move away from the priority rules involving time, and simply prioritise transactions based on fees. A sender’s transaction fees in this situation buys her priority in the transaction-confirmation process.  The basic idea in the Bitcoin transaction system is that there are too many miners for either regulation or collusion. So the situation in which prioritisation is based exclusively on transaction fees is in line with standard intuition about economic efficiency.

There are, however, informational problems associated with a decentralised mechanism in which fees reduce delays. There needs to be a parsimonious way to inform users about the delays that they can expect at each level of transaction fee. How will a person making a transaction know the price of expeditious confirmation? There is no centralised exchange here, no market maker announcing the priority bids and asks. Further, one cannot expect a rule that compels miners to truthfully announce their fees-rules: Why would a potentially anonymous miner do this? Why would a user believe this? I also don’t think that this is a problem that can be resolved in a hardwired way within the Bitcoin system. Transaction delays and the required fees to alleviate these delays is likely to emerge as a major issue for the Bitcoin payment system. The issue may, however, be mitigated by means of client-side third-party  information aggregation software that provide realtime estimates of fees-to-delay schedules based on publicly available information regarding confirmed and importantly unconfirmed transactions.

My own expectation is that the Bitcoin payment system will increasingly be used for remittance. Indeed, I would not be surprised if the remittance activities of say Western Union will be fundamentally changed within a few years. This, however, cannot happen in the presence of uncertainty regarding transaction delays and the inability of users to reduce these using higher transaction fees.

There are ongoing discussions in the Bitcoin community about how to improve the use of transaction fees (see for example). Economists interested in payment systems can potentially make significant contributions to these discussions.

7 Responses to "Memory is Money: transaction fees in the Bitcoin payment network"
  1. A few points.

    1. There is still a real cost to transactions because mining is costly (electricity, servers, labour time etc). That they are paid via currency debasement is beside the point, and it seems the path is towards payment of fees to miners. Mmm… sounds a lot like a real bank/government supported currency.

    2. The ‘trusted third party’ of a bank has now been replaced by a ‘trusted network of miners’. And as verification become more complex as system grows, the costs will rise. Why won’t miners try and game the system? From my reading as mining consolidates over time the system is vulnerable to various attacks. Whoever has the most computing power wins?

    3. Using the currency for trade/transaction and for speculation/investment are competing interests. If the value is increasing who would want to use Bitcoins for purchases when they can hold them for a return?

    4. What about competing electronic currencies? It seems that any day the whole system could collapse from t aloes of trust and some alternative will take over.

    5. 12 minutes! Really? This is only going to get worse I imagine as the incentive for mining and verification diminishes and costs increase.

    What do you expect to happen in the next year or two with Bitcoins? Do you imagine a boom in take up of real shops and online retailers accepting the currency? What about verification times? Transaction fees? Or simply more chaos and instability of Bitcoins values? Paint me your expected future picture.

  2. 1. Yes there is a cost and that cost will eventually be covered with transaction fees.

    2. Not really. Trusted third party bank has now been replaced by a large network of miners, each untrusted, independently interacting, motivated by profit. Trusted third party bank has been replaced by a market place for trust coordinated by a decentralisation algorithm that seems to work (though I can’t prove that).

    3. Speculation in Bitcoins is like buying equity in new technology. The new technology here is the payment system. So there is a dual role for holding Bitcoin, transferring/payment, and equity in the technology. I don’t know how one would separate these in such a decentralised system. On this point, how do we value Bitcoins? well it’s valued the same way as Twitter: look at the number of people who have adopted it and those that have invested in the network. The whole notion of this has no intrinsic value therefore its value will eventually be zero doesn’t make sense to me. It’s like saying that twitter has no intrinsic value if everyone stops using twitter (you can’t turn your twitter shares it into jewellery), thus twitter is a “bubble” whatever the meaning of that is.

    4. I can’t see the whole system collapsing, for some reason well designed P2P networks that are useful do not collapse. They keep on churning. If everyone stops using Bitcoin for payments, then people will simply use it for memory (time stamping, document verification). I think the Bitcoin network will be with us for a long time.

    5. Confirmation times is a problem. I can’t see Bitcoin used without third party escrow for point of sale applications. Naked Bitcoin in my opinion will potentially dominate remittance, I’m happy to wait a few hours for confirmation of a transfer to family in India. The hope is that someone will work out an escrow system for it so that it can be used to buy groceries.

    “6” I have no idea what you mean by chaos. As an economist I’m comfortable with chaos if that means the interaction of a large number of independently motivated individuals, I’m not comfortable with “order”. My first intuition usually is, let the market sort it out, it aggregates information well. My intuition is usually _not_ we need three or four trusted suppliers because we are scared of the mob of buyers and sellers that has descended to the market outside the cathedral.

    As for instability, well no I’m not comfortable with that, but I guess once the market works out how to value an internet innovation that has attracted hundreds of thousands of users in a network, then things should get better. If we can work out the value of a Twitter IPO, then we can work out the value of Bitcoins.

    My views:

    a) There is potential for take-up by online stores but not real shops at this stage. There is also great potential in the area of remittance, Western Union remittance may go the way of Blockbuster.

    b) Verification times depend on which fee system is eventually chosen. The present one is broken. But this is easy to solve: remove the block creation rule that I described in the post and change the priority rule to:

    e^{1+ tx_fee} x (number of transacted bitcoins) x (length of time in memory pool)/ (memory size of transaction)

  3. 2. This has been explained by the creator, to solve this problem he implemented Byzantine General’s Problem. http://en.wikipedia.org/wiki/Byzantine_fault_tolerance http://www.mail-archive.com/cryptography@metzdowd.com/msg09997.html This means that as long as at least 50% of the mining network is honest, the payment system is safe.

    3. This is something that you won’t find out till you have Bitcoins, and will especially be true if you frequently shop on the internet. They are almost too easy to spend. Its weird, you know the currency is being worth more, at the moment even on a daily basis. And still you spend it… I can’t back this up with any research paper, but transnational volume would be a good indication of its potential use. https://blockchain.info/charts/n-transactions?timespan=all&showDataPoints=false&daysAverageString=7&show_header=true&scale=0&address=

    4. Well this is truly interesting, since Bitcoin is completely opensource, and thus anyone can copy and change it and create their own currency. The one thing that is most important with these “crypto” currencies, is their network effect. How many miners are there, and how many people are using it. The more miners the more difficult it will be for anyone to tamper with the system. This is also the strength of Bitcoin, since its the original, it gained the biggest network effect that together with people building loads of tools for Bitcoin has made it the most populair one.

    5. To be honest I haven’t looked into this recently, and thus I can only speculate on why it has gone up recently. Which in my opinion is due the increase in transaction volume.

    The aimed confirmation time with Bitcoin is 10 minutes, which in my opinion is more than acceptable.

    When I initially found Bitcoin, this was one of my biggest worries… What if Bitcoin takes over the world, and 99% of all transactions over the world get handled by Bitcoin…Well we don’t have to worry just yet. Everything I found indicates that Bitcoin is easily scale-able to at least 5000 transactions per second, and can even be scaled up much more, up to potentially hundreds of thousands transactions per second. https://en.bitcoin.it/wiki/Scalability

    “6” Yes, online retailers, 10 minute waiting time is trivial. As for retail shops. Current mining network, would require a minimal 500 million dollar investment, just get one block reversed. In the 10 minute window, that would give a cost of about 0.9 million per second. Do you know of any retail shops, that sell things worth more than a million? The amount of effort and money that needs to be put into double spending (this is why you need the verification blocks, created every 10 minutes)
    If you are buying something like a house with bitcoin… yes you would want to wait a couple of verification blocks. But then a cup of coffee isn’t out of place either.

    So yes you will see more online retailers and regular shops accepting bitcoin, Verification times (blocks) will stay around 10 minutes.

    Transaction fees, they are still working on these, from what I understood is that they are eventually transitioning to a new system, to which you only need to tell the priority. (urgent, priority, normal, low priority, free / lowest) Or something similar, where in this case urgent will get you in the next block guaranteed (software will figure out how much txn fees you need to pay) priority going into a block within the hour (6 blocks), normal going into a block within 6 hours (36 blocks), low going into a block within 12 hours, and free going into a block within a day or 2.

    Yes you will get massive chaos, at some point, everyone will want to go into bitcoin and prices will go even more crazy than they have been going over the last couple of days. (fluctuations between 500 and 900 USD on the same day…) However for merchants, there is however an nice alternative which are payment processors. For a small fee, they instantly transfer the bitcoins back into dollars, negating the exchange volatility. Bitpay is one of those companies.

    And then, when the market finally has settled, you’ll start seeing a much more stable price of bitcoins, due to the sheer volume it has. (someone wanting a billion dollars worth of bitcoin, will have much less impact on a trillion dollar market, then a 10 billion dollar market, the bigger bitcoin gets, the less volatile it will become)

    Coming back to verification times, yes several people came to the same conclusion you had, for retail stores, 10 minutes is too long. One of those people created Litecoin back in 2011, which has 4x the coins Bitcoin has, and 4x as short confirmation times. (2.5minutes on average) And nowadays you have loads of coins, some with verification times as quick as 30 seconds.
    – My one worry on this is, that I believe the 10 minute time was chosen, as the perfect balance between speed and maintainability. You have to keep in mind that Bitcoin, when doing VISA’s volume, (2000 transactions per second) takes up about 500mb per verification block. (8mbit continues network stream of data)

    B) This is a big problem to solve, you can set estimated / averaged confirmation times, you can’t “remove” them. Block creation is build on a probability scheme to provide neutrality / trust.

    This because someone needs to verify and claim the transaction fees, the only way to do this fair is by randomization. To achieve a random “winner” or accountant whichever you prefer, they use hashing. And by setting the difficulty (amount of zeros at the end of the hash) they can control the average time it takes for anyone to find a qualified number. (very difficult to properly explain this, read the white paper calculations part. http://bitcoin.org/bitcoin.pdf )

    Awesome article!

  4. Hi Mylon, do you have any idea why there has been a recent dramatic increase in nodes in Holand? It overtook Australia recenty, but for no apparent reason (vpn? tor exit nodes?)

  5. I can only speculate… The one big change I have seen in holland is that the major food delivery site in holland, started accepting bitcoin. (basically all kinds of local food delivery shops are connected through this site, and the site handles all the online payment hassle) The one other thing, which has been known for several months now, so I wouldn’t expect that to cause an quick uptick now. Is that in holland bitcoin is being regulated under existing law. We always had a local currency law in our laws, which basically states that any local currency needs to be converted back to euros when it comes to taxes.

    Yea been looking through all dutch bitcoin related news over the past month, the one big one is that the biggest site for online ordering of food started accepting it. And grabbed getaddr.bitnodes.io which indicates the same thing. Crazy how one site can have such drastic impacted… from 2000 to almost 6000 nodes in under a month…

    • Hi Mylon, It’s going crazy in Holland and now in Israel. Israel is interesting, there are capital flow restrictions in both directions with its neighbours. Bitcoin is going to get rid of that. I’m documenting the mining process and am in contact with various miners about their personal experiences. I’ll contact you, to see if personal mining is still profitable.

  6. Hi Rabee,

    Yes today has been completely crazy… Litecoin climbed almost 200% against Bitcoin, and Bitcoin broke through the $1000 USD mark.

    Yes Israel will be very interesting to see then, especially how the government will react to that.

    Dug into mining extensively some time ago, but nowadays its not too profitable. It’s been climbing and dropping from time to time (as it should, keeping it stabilized at barely profitable) but since the big hit with Asics on Bitcoin I mostly gave up. Missed the first batch and due to circumstances also didn’t manage to get in on the second batch. Maybe I’ll be lucky on the next back in Q1 2014. Anyhow, feel free to contact me, have been mining plenty on GPU’s and even setup some pools for testing purposes.

%d bloggers like this:
PageLines